]> Some of my projects - localmylist.git/commitdiff
Add AddRelatedEpisodesTask
authorAPTX <marek321@gmail.com>
Fri, 6 Jul 2012 10:55:38 +0000 (12:55 +0200)
committerAPTX <marek321@gmail.com>
Fri, 6 Jul 2012 10:55:38 +0000 (12:55 +0200)
localmylist/addrelatedepisodestask.cpp [new file with mode: 0644]
localmylist/addrelatedepisodestask.h [new file with mode: 0644]
localmylist/include/LocalMyList/AddRelatedEpisodesTask [new file with mode: 0644]
localmylist/localmylist.pro
management-gui/mainwindow.cpp
management-gui/mainwindow.h
management-gui/mainwindow.ui

diff --git a/localmylist/addrelatedepisodestask.cpp b/localmylist/addrelatedepisodestask.cpp
new file mode 100644 (file)
index 0000000..d3d2457
--- /dev/null
@@ -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 (file)
index 0000000..7cf3e20
--- /dev/null
@@ -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 (file)
index 0000000..c824e18
--- /dev/null
@@ -0,0 +1,2 @@
+#include "../../addrelatedepisodestask.h"
+
index c41ab2e164b4793032842811c52a58968259c648..75a88a3ba60ccac6a86ee2e133a2b46b5673769b 100644 (file)
@@ -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 += \
index b82581787b6c51c46f9c40c66095528b8f0f3b7c..e724d39db69d7a363c8c0d3eb1f85cc5b0987666 100644 (file)
@@ -12,6 +12,7 @@
 #include "database.h"
 #include "mylistmodel.h"
 #include "unknownfilelookuptask.h"
+#include "addrelatedepisodestask.h"
 #include "renamesettingsdialog.h"
 
 #include <QDebug>
@@ -344,3 +345,8 @@ void MainWindow::on_actionStartDirectoryWatcher_triggered()
 {
        MyList::instance()->setupDirectoryWatcher();
 }
+
+void MainWindow::on_actionAddRelatedEpisodeInfo_triggered()
+{
+       MyList::instance()->executeTask(new AddRelatedEpisodesTask());
+}
index 65db390a6e923fe3698f820d0082bdeef8c2fc21..a5576be363956385009fc55f7f4204efad9138cb 100644 (file)
@@ -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;
index ed4d657c05ea765b3be97541d51e319842f237f5..82464043559de7f59ec618cde3df3275b8b5f83a 100644 (file)
@@ -91,6 +91,7 @@
     <addaction name="actionClearStartedPendingRequests"/>
     <addaction name="actionClearStartedMyListUpdates"/>
     <addaction name="actionClearFileRenames"/>
+    <addaction name="actionAddRelatedEpisodeInfo"/>
     <addaction name="separator"/>
     <addaction name="actionClearDatabase"/>
     <addaction name="actionClearMyListData"/>
     <string>Start Directory Watcher</string>
    </property>
   </action>
+  <action name="actionAddRelatedEpisodeInfo">
+   <property name="text">
+    <string>Add Related Episode Info</string>
+   </property>
+  </action>
  </widget>
  <layoutdefault spacing="6" margin="11"/>
  <customwidgets>