]> Some of my projects - localmylist.git/commitdiff
WorkThread should have gotten its own Settings instance. Everything that can use...
authorAPTX <marek321@gmail.com>
Wed, 13 Jun 2012 22:49:51 +0000 (00:49 +0200)
committerAPTX <marek321@gmail.com>
Wed, 13 Jun 2012 22:49:51 +0000 (00:49 +0200)
localmylist/abstracttask.cpp
localmylist/abstracttask.h
localmylist/mylist.cpp
localmylist/workthread.cpp
localmylist/workthread.h

index 4822e9b8ede970ac906e8ebf31068e509786c523..4502816d13d488f483e744365179fd9a39e75ae9 100644 (file)
@@ -3,7 +3,7 @@
 namespace LocalMyList {
 
 AbstractTask::AbstractTask(QObject *parent) :
-       QObject(parent), db(0)
+       QObject(parent), db(0), settings(0)
 {
        connect(this, SIGNAL(nextWorkUnit()), this, SLOT(doNextWorkUnit()), Qt::QueuedConnection);
 }
@@ -32,6 +32,11 @@ void AbstractTask::setDatabase(Database *db)
        this->db = db;
 }
 
+void AbstractTask::setSettings(Settings *settings)
+{
+       this->settings = settings;
+}
+
 void AbstractTask::start()
 {
 }
index e537c870840b67c1aaed3039179f0d5f6cd4b592..c56332d019ce4e306935d849ca58653a93904899 100644 (file)
@@ -7,6 +7,7 @@
 namespace LocalMyList {
 
 class Database;
+class Settings;
 
 class LOCALMYLISTSHARED_EXPORT AbstractTask : public QObject
 {
@@ -20,6 +21,7 @@ public:
        virtual bool canUseThreads() const;
 
        void setDatabase(Database *db);
+       void setSettings(Settings *settings);
 
 public slots:
        virtual void start() = 0;
@@ -38,6 +40,7 @@ private slots:
 
 protected:
        Database *db;
+       Settings *settings;
 
        static const int OPERATIONS_PER_UNIT = 100;
 };
index b0ea14c4c5a843978c86321ddbe5b19499985c2c..793af79b09e307e8fd8e4a3929fa8a600af10059 100644 (file)
@@ -115,9 +115,8 @@ void MyList::setupRenameHandler()
 
        setupWorkThread();
 
-       m_renameHandler = new RenameHandler(workThread->database());
+       m_renameHandler = new RenameHandler(workThread->database(), workThread->settings());
        m_renameHandler->moveToThread(workThread);
-       connect(db, SIGNAL(renameDataChanged()), m_renameHandler, SLOT(handleRename()), Qt::QueuedConnection);
 }
 
 void MyList::setupWorkThread()
@@ -216,6 +215,7 @@ void MyList::executeTask(AbstractTask *task)
        {
                setupWorkThread();
                task->setDatabase(workThread->database());
+               task->setSettings(workThread->settings());
                task->moveToThread(workThread);
        }
        else
@@ -224,6 +224,7 @@ void MyList::executeTask(AbstractTask *task)
                        task->moveToThread(thread());
 
                task->setDatabase(database());
+               task->setSettings(settings());
        }
 
        connect(task, SIGNAL(finished()), this, SLOT(taskFinished()), Qt::QueuedConnection);
index 58d882cbffa78bb4afd6bd9661f8db04ec8cb37f..a12d0a26dedf8a9beb46c90fed914b4395e2395d 100644 (file)
@@ -4,17 +4,21 @@
 namespace LocalMyList {
 
 WorkThread::WorkThread(const QString &threadName, const DatabaseConnectionSettings &dbs, QObject *parent) :
-       QThread(parent), m_threadName(threadName), db(0)
+       QThread(parent), m_threadName(threadName), db(0), m_settings(0)
 {
        db = new Database(m_threadName);
        db->setConnectionSettings(dbs);
        db->moveToThread(this);
+       m_settings = new Settings(db);
+       m_settings->moveToThread(this);
 }
 
 WorkThread::~WorkThread()
 {
        if (db)
                delete db;
+       if (m_settings)
+               delete m_settings;
 }
 
 QString WorkThread::threadName() const
@@ -27,6 +31,11 @@ Database *WorkThread::database() const
        return db;
 }
 
+Settings *WorkThread::settings() const
+{
+       return m_settings;
+}
+
 void WorkThread::run()
 {
        db->connect();
index f00aeefa7aba48cac7fa68c9667b62576d99b181..5560e906036f53bab22f79ef9486063a9a7005f9 100644 (file)
@@ -4,6 +4,7 @@
 #include <QThread>
 #include "abstracttask.h"
 #include "database.h"
+#include "settings.h"
 
 namespace LocalMyList {
 
@@ -16,6 +17,7 @@ public:
 
        QString threadName() const;
        Database *database() const;
+       Settings *settings() const;
 
 protected:
        void run();
@@ -23,6 +25,7 @@ protected:
 private:
        QString m_threadName;
        Database *db;
+       Settings *m_settings;
 };
 
 } // namespace LocalMyList