From: APTX Date: Fri, 6 Jul 2012 10:55:38 +0000 (+0200) Subject: Add AddRelatedEpisodesTask X-Git-Url: https://gitweb.tyo.aptx.org/?a=commitdiff_plain;h=acd714d9ccb722e42651a4ab3c1d7f1c7e0c53cf;p=localmylist.git Add AddRelatedEpisodesTask --- diff --git a/localmylist/addrelatedepisodestask.cpp b/localmylist/addrelatedepisodestask.cpp new file mode 100644 index 0000000..d3d2457 --- /dev/null +++ b/localmylist/addrelatedepisodestask.cpp @@ -0,0 +1,43 @@ +#include "addrelatedepisodestask.h" + +#include "database.h" + +namespace LocalMyList { + +AddRelatedEpisodesTask::AddRelatedEpisodesTask(QObject *parent) : AbstractTask(parent) +{ +} + +bool AddRelatedEpisodesTask::canUseThreads() const +{ + return true; +} + +void AddRelatedEpisodesTask::start() +{ + QSqlQuery q(db->connection()); + q.prepare( + "SELECT fer.eid FROM file_episode_rel fer " + " LEFT JOIN episode e ON (e.eid = fer.eid) " + " WHERE e.eid IS NULL "); + + if (!db->exec(q)) + { + emit finished(); + return; + } + + while (q.next()) + { + PendingRequest r; + r.eid = q.value(0).toInt(); + + if (!r.eid) + continue; + + db->addRequest(r); + } + emit finished(); +} + +} // namespace LocalMyList diff --git a/localmylist/addrelatedepisodestask.h b/localmylist/addrelatedepisodestask.h new file mode 100644 index 0000000..7cf3e20 --- /dev/null +++ b/localmylist/addrelatedepisodestask.h @@ -0,0 +1,22 @@ +#ifndef ADDRELATEDEPISODESTASK_H +#define ADDRELATEDEPISODESTASK_H + +#include "abstracttask.h" + +namespace LocalMyList { + +class LOCALMYLISTSHARED_EXPORT AddRelatedEpisodesTask : public AbstractTask +{ + Q_OBJECT + +public: + explicit AddRelatedEpisodesTask(QObject *parent = 0); + + bool canUseThreads() const; + + void start(); +}; + +} // namespace LocalMyList + +#endif // ADDRELATEDEPISODESTASK_H diff --git a/localmylist/include/LocalMyList/AddRelatedEpisodesTask b/localmylist/include/LocalMyList/AddRelatedEpisodesTask new file mode 100644 index 0000000..c824e18 --- /dev/null +++ b/localmylist/include/LocalMyList/AddRelatedEpisodesTask @@ -0,0 +1,2 @@ +#include "../../addrelatedepisodestask.h" + diff --git a/localmylist/localmylist.pro b/localmylist/localmylist.pro index c41ab2e..75a88a3 100644 --- a/localmylist/localmylist.pro +++ b/localmylist/localmylist.pro @@ -25,7 +25,8 @@ SOURCES += \ renamehandler.cpp \ unknownfilelookuptask.cpp \ renameutils.cpp \ - directorywatcher.cpp + directorywatcher.cpp \ + addrelatedepisodestask.cpp HEADERS += \ localmylist_global.h \ @@ -44,7 +45,8 @@ HEADERS += \ renamehandler.h \ unknownfilelookuptask.h \ renameutils.h \ - directorywatcher.h + directorywatcher.h \ + addrelatedepisodestask.h CONV_HEADERS += \ include/LocalMyList/AbstractTask \ @@ -57,6 +59,7 @@ CONV_HEADERS += \ include/LocalMyList/MyListModel \ include/LocalMyList/Settings \ include/LocalMyList/UnknownFileLookupTask \ + include/LocalMyList/AddRelatedEpisodesTask \ include/LocalMyList/RenameUtils SHARE += \ diff --git a/management-gui/mainwindow.cpp b/management-gui/mainwindow.cpp index b825817..e724d39 100644 --- a/management-gui/mainwindow.cpp +++ b/management-gui/mainwindow.cpp @@ -12,6 +12,7 @@ #include "database.h" #include "mylistmodel.h" #include "unknownfilelookuptask.h" +#include "addrelatedepisodestask.h" #include "renamesettingsdialog.h" #include @@ -344,3 +345,8 @@ void MainWindow::on_actionStartDirectoryWatcher_triggered() { MyList::instance()->setupDirectoryWatcher(); } + +void MainWindow::on_actionAddRelatedEpisodeInfo_triggered() +{ + MyList::instance()->executeTask(new AddRelatedEpisodesTask()); +} diff --git a/management-gui/mainwindow.h b/management-gui/mainwindow.h index 65db390..a5576be 100644 --- a/management-gui/mainwindow.h +++ b/management-gui/mainwindow.h @@ -59,6 +59,7 @@ private slots: void on_refreshButton_clicked(); void on_actionRenameScript_triggered(); void on_actionStartDirectoryWatcher_triggered(); + void on_actionAddRelatedEpisodeInfo_triggered(); private: Ui::MainWindow *ui; diff --git a/management-gui/mainwindow.ui b/management-gui/mainwindow.ui index ed4d657..8246404 100644 --- a/management-gui/mainwindow.ui +++ b/management-gui/mainwindow.ui @@ -91,6 +91,7 @@ + @@ -223,6 +224,11 @@ Start Directory Watcher + + + Add Related Episode Info + +