summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--controller.cxx11
-rw-r--r--kelakon.pro2
-rw-r--r--main.cxx21
-rw-r--r--user.hxx1
4 files changed, 19 insertions, 16 deletions
diff --git a/controller.cxx b/controller.cxx
index 4e518f4..757d475 100644
--- a/controller.cxx
+++ b/controller.cxx
@@ -1,14 +1,19 @@
+#include <QQmlApplicationEngine>
#include "worker.hxx"
#include "controller.hxx"
-Controller::Controller(QObject* parent) :
- QObject{parent}
+Controller::Controller(QObject* parent) : QObject{parent}
{
Worker* worker = new Worker{};
worker->moveToThread(&thread);
connect(&thread, &QThread::finished, worker, &QObject::deleteLater);
- connect(parent, SIGNAL(logIn(QString, QString)),
+
+ auto engine = dynamic_cast<QQmlApplicationEngine*>(parent);
+ auto rootObjects = engine->rootObjects();
+ auto appWindow = rootObjects[0];
+ connect(appWindow, SIGNAL(logIn(QString, QString)),
worker, SLOT(logIn(QString, QString)));
+
thread.start();
}
diff --git a/kelakon.pro b/kelakon.pro
index 8b9ead1..847864d 100644
--- a/kelakon.pro
+++ b/kelakon.pro
@@ -2,6 +2,8 @@ QT += \
quickcontrols2 \
svg
+*-g++: QMAKE_CXXFLAGS += -std=gnu++17
+*-clang: QMAKE_CXXFLAGS += -std=c++17
debug: DEFINES += DEBUG
HEADERS += \
diff --git a/main.cxx b/main.cxx
index 9437396..479d302 100644
--- a/main.cxx
+++ b/main.cxx
@@ -10,21 +10,16 @@ int main(int argc, char* argv[])
QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
-
- qmlRegisterSingletonType<User>("id.co.darapsa.kelakon.user", 0, 1, "User", [](QQmlEngine *engine, QJSEngine *scriptEngine) -> QObject* {
- Q_UNUSED(engine)
- Q_UNUSED(scriptEngine)
- return new User{};
- });
-
+ User::typeId = qmlRegisterSingletonType<User>("id.co.darapsa.kelakon.user"
+ , 0, 1, "User"
+ , [](QQmlEngine *engine, QJSEngine *scriptEngine) -> QObject* {
+ Q_UNUSED(engine)
+ Q_UNUSED(scriptEngine)
+ return new User{};
+ });
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
- auto rootObjects = engine.rootObjects();
- if (rootObjects.isEmpty()) return -1;
-
- auto appWindow = rootObjects[0];
- Controller controller{appWindow};
+ Controller controller{&engine};
TaskList taskList;
engine.rootContext()->setContextProperty("taskList", &taskList);
-
return app.exec();
}
diff --git a/user.hxx b/user.hxx
index 18dd176..3bb9b7e 100644
--- a/user.hxx
+++ b/user.hxx
@@ -32,6 +32,7 @@ class User : public QObject
m_isLoggedIn{isLoggedIn}
{}
~User() {}
+ inline static int typeId;
QString const& name() const { return m_name; }
QString const& password() const { return m_password; }