From e04036b24aef79b9b7eb370c35c9f7b8ade77846 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=A6=8C=20=EA=A6=AB=EA=A6=B6=20=EA=A6=8F=EA=A7=80?= =?UTF-8?q?=EA=A6=A6=EA=A6=BF=20=EA=A6=A7=20=EA=A6=AE=20=EA=A6=91=20?= =?UTF-8?q?=EA=A6=A9=20=EA=A6=AD=EA=A7=80?= Date: Sat, 7 Sep 2019 17:42:11 +0800 Subject: The worker cannot have a parent because it has to be moved to a different thread --- controller.cxx | 2 +- worker.cxx | 12 +++--------- worker.hxx | 6 +++--- 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/controller.cxx b/controller.cxx index 4962072..7f8d2a0 100644 --- a/controller.cxx +++ b/controller.cxx @@ -4,7 +4,7 @@ Controller::Controller(QObject* parent) : QObject{parent} { - Worker* worker = new Worker{parent}; + Worker* worker = new Worker; worker->moveToThread(&thread); connect(&thread, &QThread::finished, worker, &QObject::deleteLater); diff --git a/worker.cxx b/worker.cxx index df0e832..5af91fb 100644 --- a/worker.cxx +++ b/worker.cxx @@ -3,27 +3,21 @@ #include "user.hxx" #include "worker.hxx" -Worker::Worker(QObject* parent) : - QObject{parent} +Worker::Worker() { rtclient_init("https://darapsa.co.id/rt"); } void Worker::logIn(QString const& name, QString const& password) { - auto engine = dynamic_cast(this->parent()); - auto user = engine->singletonInstance(User::typeId); - user->setName(name); rtclient_login(name.toLatin1().constData(), password.toLatin1().constData()); rtclient_user(name.toLatin1().constData()); } -void Worker::getTaskList() +void Worker::search(QString const& owner) { - auto engine = dynamic_cast(this->parent()); - auto user = engine->singletonInstance(User::typeId); QString query{"Owner='"}; - query.append(user->name()); + query.append(owner); query.append("'"); rtclient_search(query.toLatin1().constData()); } diff --git a/worker.hxx b/worker.hxx index ee5f027..130d1c6 100644 --- a/worker.hxx +++ b/worker.hxx @@ -8,12 +8,12 @@ class Worker : public QObject Q_OBJECT public: - explicit Worker(QObject* parent = nullptr); - virtual ~Worker(); + Worker(); + ~Worker(); public slots: void logIn(QString const& name, QString const& password); - void getTaskList(); + void search(QString const& owner); }; #endif // WORKER_HXX -- cgit v1.2.3