From 36dcf4b27450f04ac60a05cd2837c1b58fd5b24a Mon Sep 17 00:00:00 2001 From: Daniel Teichmann Date: Thu, 8 Jul 2021 15:55:53 +0200 Subject: Classes share one specific D-Bus object now. --- src/main.cpp | 14 +++++++++----- src/main_qmladaptor.cpp | 5 ++++- src/main_qmladaptor.h | 4 +++- src/scenes/add_server_wizard/add_server_wizard.cpp | 6 ++++-- 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index a72e42b..7f86b6d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -83,16 +83,18 @@ int main(int argc, char *argv[]) { QQmlApplicationEngine engine(&app); + QScopedPointer dbus_api (new DBusAPI()); + // Make mainqmladaptor available to QML - QScopedPointer main_gui (new MainQMLAdaptor(&app, &engine)); + QScopedPointer main_gui (new MainQMLAdaptor(&app, &engine, dbus_api.data())); engine.rootContext()->setContextProperty("mainqmladaptor", main_gui.data()); - QScopedPointer _dbus_api (new DBusAPI()); - QObject::connect(_dbus_api.data(), + QObject::connect(dbus_api.data(), SIGNAL(serviceGetWebAppHostsResponse(QJsonDocument*)), main_gui.data(), SLOT(get_web_app_hosts_response(QJsonDocument*))); - _dbus_api.data()->get_web_app_hosts_request(); + dbus_api.data()->get_web_app_hosts_request(); + engine.load(QUrl(QStringLiteral("qrc:/src/main.qml"))); if (engine.rootObjects().isEmpty()) @@ -116,7 +118,9 @@ int main(int argc, char *argv[]) { SLOT(onRwaHostSelected(QString))); // Make add_server_wizard available to QML - QScopedPointer wizard (new Add_Server_wizard(&app, main_gui.data())); + QScopedPointer wizard (new Add_Server_wizard(&app, + main_gui.data(), + dbus_api.data())); engine.rootContext()->setContextProperty("add_server_wizard", wizard.data()); return app.exec(); diff --git a/src/main_qmladaptor.cpp b/src/main_qmladaptor.cpp index c1d3f14..2dec33c 100644 --- a/src/main_qmladaptor.cpp +++ b/src/main_qmladaptor.cpp @@ -26,10 +26,13 @@ #include "main_qmladaptor.h" -MainQMLAdaptor::MainQMLAdaptor(QObject *parent, QQmlApplicationEngine* engine) : QObject(parent) { +MainQMLAdaptor::MainQMLAdaptor(QObject *parent, QQmlApplicationEngine* engine, + DBusAPI *dbus_api) : QObject(parent) { Q_ASSERT(engine != nullptr); + Q_ASSERT(dbus_api != nullptr); _engine = engine; + _dbus_api = dbus_api; _rwaHostModel = new QList; } diff --git a/src/main_qmladaptor.h b/src/main_qmladaptor.h index a289a74..48923d5 100644 --- a/src/main_qmladaptor.h +++ b/src/main_qmladaptor.h @@ -37,6 +37,7 @@ #include #include "RWAHost.h" +#include "DBusAPI.h" class MainQMLAdaptor : public QObject { @@ -59,7 +60,8 @@ class MainQMLAdaptor : public QObject Q_PROPERTY(QMessageBox::Icon _messageDialogIcon READ getMessageDialogIcon NOTIFY messageDialogIconChanged) public: - explicit MainQMLAdaptor(QObject *parent, QQmlApplicationEngine *engine = nullptr); + explicit MainQMLAdaptor(QObject *parent, QQmlApplicationEngine *engine = nullptr, + DBusAPI *dbus_api = nullptr); void setRWAHostModel(QList *rwa_hosts); diff --git a/src/scenes/add_server_wizard/add_server_wizard.cpp b/src/scenes/add_server_wizard/add_server_wizard.cpp index 09db898..a5bee47 100644 --- a/src/scenes/add_server_wizard/add_server_wizard.cpp +++ b/src/scenes/add_server_wizard/add_server_wizard.cpp @@ -27,10 +27,12 @@ #include "../../RWADBusAdaptor.h" #include "../../RWAHost.h" -Add_Server_wizard::Add_Server_wizard(QObject *parent, MainQMLAdaptor *main_gui) : QObject(parent) { +Add_Server_wizard::Add_Server_wizard(QObject *parent, + MainQMLAdaptor *main_gui, DBusAPI *dbus_api) : QObject(parent) { Q_ASSERT(main_gui != nullptr); + Q_ASSERT(dbus_api != nullptr); - _dbus_api = new DBusAPI(); + _dbus_api = dbus_api; _main_gui = main_gui; // _dbus_api --serviceAddWebAppHostResponse-> this.add_web_app_host_response() -- cgit v1.2.3