From 938ea55a0a272b6fd1e35ee383c1f444cdbebf05 Mon Sep 17 00:00:00 2001 From: Erik Prabowo Kamal Date: Thu, 29 Aug 2019 14:32:39 +0800 Subject: Renamed NetworkWorker to just Worker --- kelakon.pro | 4 ++-- main.cxx | 4 ++-- networkworker.cxx | 13 ------------- networkworker.hxx | 14 -------------- worker.cxx | 13 +++++++++++++ worker.hxx | 14 ++++++++++++++ 6 files changed, 31 insertions(+), 31 deletions(-) delete mode 100644 networkworker.cxx delete mode 100644 networkworker.hxx create mode 100644 worker.cxx create mode 100644 worker.hxx diff --git a/kelakon.pro b/kelakon.pro index 388027c..34a2948 100644 --- a/kelakon.pro +++ b/kelakon.pro @@ -5,11 +5,11 @@ QT += \ debug: DEFINES += DEBUG HEADERS += \ - networkworker.hxx \ + worker.hxx \ user.hxx SOURCES += \ - networkworker.cxx \ + worker.cxx \ user.cxx \ main.cxx diff --git a/main.cxx b/main.cxx index cacf2cd..5f0e13d 100644 --- a/main.cxx +++ b/main.cxx @@ -2,7 +2,7 @@ #include #include #include "user.hxx" -#include "networkworker.hxx" +#include "worker.hxx" int main(int argc, char* argv[]) { @@ -10,7 +10,7 @@ int main(int argc, char* argv[]) QGuiApplication app(argc, argv); QQmlApplicationEngine engine; - NetworkWorker worker{}; + Worker worker{}; QThread thread; worker.moveToThread(&thread); diff --git a/networkworker.cxx b/networkworker.cxx deleted file mode 100644 index 3487d4c..0000000 --- a/networkworker.cxx +++ /dev/null @@ -1,13 +0,0 @@ -#include "rtclient.h" -#include "networkworker.hxx" - -NetworkWorker::NetworkWorker(QObject* parent) : - QObject{parent} -{ - rtclient_init(); -} - -NetworkWorker::~NetworkWorker() -{ - rtclient_cleanup(); -} diff --git a/networkworker.hxx b/networkworker.hxx deleted file mode 100644 index 05124d5..0000000 --- a/networkworker.hxx +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef NETWORKWORKER_HXX -#define NETWORKWORKER_HXX - -#include - -class NetworkWorker : public QObject -{ - Q_OBJECT - public: - explicit NetworkWorker(QObject* parent = nullptr); - virtual ~NetworkWorker(); -}; - -#endif // NETWORKWORKER_HXX diff --git a/worker.cxx b/worker.cxx new file mode 100644 index 0000000..8c915f8 --- /dev/null +++ b/worker.cxx @@ -0,0 +1,13 @@ +#include "rtclient.h" +#include "worker.hxx" + +Worker::Worker(QObject* parent) : + QObject{parent} +{ + rtclient_init(); +} + +Worker::~Worker() +{ + rtclient_cleanup(); +} diff --git a/worker.hxx b/worker.hxx new file mode 100644 index 0000000..cdb2811 --- /dev/null +++ b/worker.hxx @@ -0,0 +1,14 @@ +#ifndef WORKER_HXX +#define WORKER_HXX + +#include + +class Worker : public QObject +{ + Q_OBJECT + public: + explicit Worker(QObject* parent = nullptr); + virtual ~Worker(); +}; + +#endif // WORKER_HXX -- cgit v1.2.3 From c8891b50d1f30c7c07bf96f8eaf2e1002ce573b8 Mon Sep 17 00:00:00 2001 From: Erik Prabowo Kamal Date: Thu, 29 Aug 2019 15:30:00 +0800 Subject: Set up a way for the thread to quit --- controller.cxx | 16 ++++++++++++++++ controller.hxx | 18 ++++++++++++++++++ kelakon.pro | 6 ++++-- main.cxx | 9 ++------- 4 files changed, 40 insertions(+), 9 deletions(-) create mode 100644 controller.cxx create mode 100644 controller.hxx diff --git a/controller.cxx b/controller.cxx new file mode 100644 index 0000000..d1271b9 --- /dev/null +++ b/controller.cxx @@ -0,0 +1,16 @@ +#include "worker.hxx" +#include "controller.hxx" + +Controller::Controller() +{ + Worker* worker = new Worker{}; + worker->moveToThread(&thread); + connect(&thread, &QThread::finished, worker, &QObject::deleteLater); + thread.start(); +} + +Controller::~Controller() +{ + thread.quit(); + thread.wait(); +} diff --git a/controller.hxx b/controller.hxx new file mode 100644 index 0000000..e293ec4 --- /dev/null +++ b/controller.hxx @@ -0,0 +1,18 @@ +#ifndef CONTROLLER_HXX +#define CONTROLLER_HXX + +#include + +class Controller : public QObject +{ + Q_OBJECT + + public: + Controller(); + ~Controller(); + + private: + QThread thread; +}; + +#endif // CONTROLLER_HXX diff --git a/kelakon.pro b/kelakon.pro index 34a2948..5df2f8e 100644 --- a/kelakon.pro +++ b/kelakon.pro @@ -5,12 +5,14 @@ QT += \ debug: DEFINES += DEBUG HEADERS += \ + user.hxx \ worker.hxx \ - user.hxx + controller.hxx SOURCES += \ - worker.cxx \ user.cxx \ + worker.cxx \ + controller.cxx \ main.cxx RESOURCES += kelakon.qrc diff --git a/main.cxx b/main.cxx index 5f0e13d..0b52736 100644 --- a/main.cxx +++ b/main.cxx @@ -1,8 +1,7 @@ #include #include -#include #include "user.hxx" -#include "worker.hxx" +#include "controller.hxx" int main(int argc, char* argv[]) { @@ -10,10 +9,6 @@ int main(int argc, char* argv[]) QGuiApplication app(argc, argv); QQmlApplicationEngine engine; - Worker worker{}; - QThread thread; - worker.moveToThread(&thread); - qmlRegisterSingletonType("id.co.darapsa.kelakon.user", 0, 1, "User", [](QQmlEngine *engine, QJSEngine *scriptEngine) -> QObject* { Q_UNUSED(engine) Q_UNUSED(scriptEngine) @@ -23,7 +18,7 @@ int main(int argc, char* argv[]) }); engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); - thread.start(); + Controller controller{}; return app.exec(); } -- cgit v1.2.3