From: APTX Date: Wed, 13 Jun 2012 22:49:51 +0000 (+0200) Subject: WorkThread should have gotten its own Settings instance. Everything that can use... X-Git-Url: https://gitweb.aptx.org/?a=commitdiff_plain;h=8c8718576d38c75aabf6c73258d01687bfea565b;p=localmylist.git WorkThread should have gotten its own Settings instance. Everything that can use threads got its own settings pointer --- diff --git a/localmylist/abstracttask.cpp b/localmylist/abstracttask.cpp index 4822e9b..4502816 100644 --- a/localmylist/abstracttask.cpp +++ b/localmylist/abstracttask.cpp @@ -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() { } diff --git a/localmylist/abstracttask.h b/localmylist/abstracttask.h index e537c87..c56332d 100644 --- a/localmylist/abstracttask.h +++ b/localmylist/abstracttask.h @@ -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; }; diff --git a/localmylist/mylist.cpp b/localmylist/mylist.cpp index b0ea14c..793af79 100644 --- a/localmylist/mylist.cpp +++ b/localmylist/mylist.cpp @@ -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); diff --git a/localmylist/workthread.cpp b/localmylist/workthread.cpp index 58d882c..a12d0a2 100644 --- a/localmylist/workthread.cpp +++ b/localmylist/workthread.cpp @@ -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(); diff --git a/localmylist/workthread.h b/localmylist/workthread.h index f00aeef..5560e90 100644 --- a/localmylist/workthread.h +++ b/localmylist/workthread.h @@ -4,6 +4,7 @@ #include #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