From: APTX Date: Thu, 3 Oct 2013 18:49:57 +0000 (+0200) Subject: Additional mark watched helper functions. X-Git-Url: https://gitweb.aptx.org/?a=commitdiff_plain;h=af0662cdf872b66aa12ba4e6ca81852ed626913a;p=localmylist.git Additional mark watched helper functions. 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. --- diff --git a/localmylist-management/mylistview.cpp b/localmylist-management/mylistview.cpp index 4c3305f..09a5090 100644 --- a/localmylist-management/mylistview.cpp +++ b/localmylist-management/mylistview.cpp @@ -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; diff --git a/localmylist-management/mylistview.h b/localmylist-management/mylistview.h index f1bd060..e500c0f 100644 --- a/localmylist-management/mylistview.h +++ b/localmylist-management/mylistview.h @@ -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; diff --git a/localmylist/mylist.cpp b/localmylist/mylist.cpp index acc9038..39cfc70 100644 --- a/localmylist/mylist.cpp +++ b/localmylist/mylist.cpp @@ -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; diff --git a/localmylist/mylist.h b/localmylist/mylist.h index 4d953d5..b744341 100644 --- a/localmylist/mylist.h +++ b/localmylist/mylist.h @@ -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);