diff options
author | Erik Prabowo Kamal <erik@darapsa.co.id> | 2019-08-31 18:14:46 +0800 |
---|---|---|
committer | Erik Prabowo Kamal <erik@darapsa.co.id> | 2019-08-31 18:14:46 +0800 |
commit | 2668e0fcf29f7c452320f4c53ebd599498a3498b (patch) | |
tree | 0a7664253526fe679224d8dc1026b3c95dd4ad17 | |
parent | bc16081929011b89a02e57f0b087c99ddb9f4ce7 (diff) |
Made sure the user and controller singletons are instantiated early
This is because when the controller is lazy loaded, somehow the worker failed to initialise librtclient with the server URL before libcurl gets to perform.
-rw-r--r-- | main.cxx | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -9,16 +9,20 @@ int main(int argc, char* argv[]) QGuiApplication app(argc, argv); QQmlApplicationEngine engine; - qmlRegisterSingletonType<User>("id.co.darapsa.kelakon.user", 0, 1, "User", [](QQmlEngine *engine, QJSEngine *scriptEngine) -> QObject* { + auto 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{}; }); - qmlRegisterSingletonType<User>("id.co.darapsa.kelakon.rtclient", 0, 1, "RTClient", [](QQmlEngine *engine, QJSEngine *scriptEngine) -> QObject* { + auto user = engine.singletonInstance<User*>(typeId); + Q_UNUSED(user) + typeId = qmlRegisterSingletonType<User>("id.co.darapsa.kelakon.rtclient", 0, 1, "RTClient", [](QQmlEngine *engine, QJSEngine *scriptEngine) -> QObject* { Q_UNUSED(engine) Q_UNUSED(scriptEngine) return new Controller{}; }); + auto controller = engine.singletonInstance<Controller*>(typeId); + Q_UNUSED(controller) engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); return app.exec(); |