]> Some of my projects - localmylist.git/commitdiff
Additional mark watched helper functions.
authorAPTX <marek321@gmail.com>
Thu, 3 Oct 2013 18:49:57 +0000 (20:49 +0200)
committerAPTX <marek321@gmail.com>
Thu, 3 Oct 2013 18:49:57 +0000 (20:49 +0200)
markWatchedIfUnwatched marks a file watched only if it is unwatched. This can prevent changing an already set view date.
markUnwatched marks a file unwatched. This is exposed in the mylist view.

localmylist-management/mylistview.cpp
localmylist-management/mylistview.h
localmylist/mylist.cpp
localmylist/mylist.h

index 4c3305f371616d2a11e9e0ccc9c92b91f18893cb..09a5090ffe284b84bb5cab4e83f1d673ee5434e7 100644 (file)
@@ -30,6 +30,8 @@ MyListView::MyListView(QWidget *parent) :
        connect(markEpisodeWatchedAction, SIGNAL(triggered()), this, SLOT(markEpisodeWatched()));
        markFileWatchedAction = new QAction(tr("Mark Watched"), this);
        connect(markFileWatchedAction, SIGNAL(triggered()), this, SLOT(markFileWatched()));
+       markFileUnwatchedAction = new QAction(tr("Mark Unwatched"), this);
+       connect(markFileUnwatchedAction, SIGNAL(triggered()), this, SLOT(markFileUnwatched()));
        aniDBLinkAction = new QAction(tr("Open AniDB Page"), this);
        connect(aniDBLinkAction, SIGNAL(triggered()), this, SLOT(openAnidbPage()));
        renameFilesAction = new QAction(tr("Rename Files Related to Entry"), this);
@@ -88,6 +90,7 @@ void MyListView::showCustomContextMenu(const QPoint &pos)
                        actions << aniDBLinkAction
                                        << openAction
                                        << markFileWatchedAction
+                                       << markFileUnwatchedAction
                                        << renameTestAction
                                        << renameFilesAction
                                        << requestDataAction;
@@ -174,6 +177,18 @@ void MyListView::markFileWatched()
        MyList::instance()->markWatched(node->id());
 }
 
+void MyListView::markFileUnwatched()
+{
+       using namespace LocalMyList;
+
+       MyListNode *node = myListFilterModel()->node(customContextMenuIndex);
+
+       if (node->type() != MyListNode::FileNode)
+               return;
+
+       MyList::instance()->markUnwatched(node->id());
+}
+
 void MyListView::openAnidbPage()
 {
        using namespace LocalMyList;
index f1bd060ba12af79ed77d16e7bce34b82dc00afe4..e500c0fb461d50d6914a6ee2de27c35d0759bfa2 100644 (file)
@@ -27,6 +27,7 @@ private slots:
        void markAnimeWatched();
        void markEpisodeWatched();
        void markFileWatched();
+       void markFileUnwatched();
        void openAnidbPage();
        void requestFileRename();
        void renameTest();
@@ -42,6 +43,7 @@ private:
        QAction *markAnimeWatchedAction;
        QAction *markEpisodeWatchedAction;
        QAction *markFileWatchedAction;
+       QAction *markFileUnwatchedAction;
        QAction *aniDBLinkAction;
        QAction *renameTestAction;
        QAction *renameFilesAction;
index acc9038eb2d8ebaa36759aa4405d500cb8d63a20..39cfc705053e3b0b9997e51dcd75e7a20b018c62 100644 (file)
@@ -123,6 +123,25 @@ void MyList::markWatched(int fid, QDateTime when)
        database()->addPendingMyListUpdate(pmu);
 }
 
+void MyList::markWatchedIfUnwatched(int fid, QDateTime when)
+{
+       File f = database()->getFile(fid);
+       if (f.fid && f.myWatched.isNull())
+               markWatched(fid, when);
+}
+
+void MyList::markUnwatched(int fid)
+{
+       if (!fid)
+               return;
+
+       PendingMyListUpdate pmu;
+       pmu.fid = fid;
+       pmu.setMyWatched = true;
+
+       database()->addPendingMyListUpdate(pmu);
+}
+
 void MyList::voteAnime(int aid, double vote)
 {
        PendingMyListUpdate pmu;
index 4d953d51a8f7a5b91bcb885cf7bf58a4efd80241..b744341c809677563b409eb5cb3d16c0458de83b 100644 (file)
@@ -55,6 +55,8 @@ public:
 
 public slots:
        void markWatched(int fid, QDateTime when = QDateTime::currentDateTime());
+       void markWatchedIfUnwatched(int fid, QDateTime when = QDateTime::currentDateTime());
+       void markUnwatched(int fid);
 
        void voteAnime(int aid, double vote);
        void voteEpisode(int eid, double vote);