]> Some of my projects - localmylist.git/commitdiff
Additional mark watched helper functions.
authorAPTX <redacted>
Thu, 3 Oct 2013 18:49:57 +0000 (20:49 +0200)
committerAPTX <redacted>
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 4c3305f..09a5090 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 f1bd060..e500c0f 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 acc9038..39cfc70 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 4d953d5..b744341 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);