#include "mylistview.h"
#include "mylist.h"
+#include "database.h"
#include "mylistmodel.h"
#include "mylistnode.h"
#include "mylistfiltermodel.h"
connect(openAction, SIGNAL(triggered()), this, SLOT(requestOpenFile()));
openNextAction = new QAction(tr("Open Next"), this);
connect(openNextAction, SIGNAL(triggered()), this, SLOT(requestOpenFile()));
- markWatchedAction = new QAction(tr("Marked Watched"), this);
- connect(markWatchedAction, SIGNAL(triggered()), this, SLOT(markWatched()));
+ markAnimeWatchedAction = new QAction(tr("Mark Anime Watched"), this);
+ connect(markAnimeWatchedAction, SIGNAL(triggered()), this, SLOT(markAnimeWatched()));
+ markEpisodeWatchedAction = new QAction(tr("Mark Episode Watched"), this);
+ connect(markEpisodeWatchedAction, SIGNAL(triggered()), this, SLOT(markEpisodeWatched()));
+ markFileWatchedAction = new QAction(tr("Mark Watched"), this);
+ connect(markFileWatchedAction, SIGNAL(triggered()), this, SLOT(markFileWatched()));
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);
aniDBLinkAction->setText(tr("Open AniDB Page (%1%2)").arg('a').arg(node->id()));
actions << aniDBLinkAction
<< openNextAction
+ << markAnimeWatchedAction
<< renameFilesAction
<< requestDataAction;
break;
aniDBLinkAction->setText(tr("Open AniDB Page (%1%2)").arg('e').arg(node->id()));
actions << aniDBLinkAction
<< openAction
+ << markEpisodeWatchedAction
<< renameFilesAction
<< requestDataAction;
break;
aniDBLinkAction->setText(tr("Open AniDB Page (%1%2)").arg('f').arg(node->id()));
actions << aniDBLinkAction
<< openAction
- << markWatchedAction
+ << markFileWatchedAction
<< renameTestAction
<< renameFilesAction
<< requestDataAction;
case MyListNode::FileLocationNode:
aniDBLinkAction->setText(tr("Open AniDB Page (%1%2)").arg('f').arg(node->id()));
actions << aniDBLinkAction
- << markWatchedAction
<< renameTestAction
<< renameFilesAction;
break;
emit openFileRequested(customContextMenuIndex);
}
-void MyListView::markWatched()
+void MyListView::markAnimeWatched()
{
using namespace LocalMyList;
MyListNode *node = myListFilterModel()->node(customContextMenuIndex);
+ if (node->type() != MyListNode::AnimeNode)
+ return;
+
+ PendingMyListUpdate pmu;
+ pmu.aid = node->id();
+
+ pmu.setMyWatched = true;
+ pmu.myWatched = QDateTime::currentDateTime();
+
+ MyList::instance()->database()->addPendingMyListUpdate(pmu);
+}
+
+void MyListView::markEpisodeWatched()
+{
+ using namespace LocalMyList;
+
+ MyListEpisodeNode *node = static_cast<MyListEpisodeNode *>(myListFilterModel()->node(customContextMenuIndex));
+
+ if (node->type() != MyListNode::EpisodeNode)
+ return;
+
+ PendingMyListUpdate pmu;
+ pmu.aid = node->internalData().data.aid;
+ pmu.epno = node->internalData().data.epno;
+ pmu.eptype = node->internalData().data.type;
+
+ pmu.setMyWatched = true;
+ pmu.myWatched = QDateTime::currentDateTime();
+
+ MyList::instance()->database()->addPendingMyListUpdate(pmu);
+}
+
+void MyListView::markFileWatched()
+{
+ using namespace LocalMyList;
+
+ MyListNode *node = myListFilterModel()->node(customContextMenuIndex);
+
+ if (node->type() != MyListNode::FileNode)
+ return;
+
MyList::instance()->markWatched(node->id());
}