diff options
Diffstat (limited to 'src/main.cpp')
-rw-r--r-- | src/main.cpp | 75 |
1 files changed, 53 insertions, 22 deletions
diff --git a/src/main.cpp b/src/main.cpp index f6408b3..e29c8db 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,8 +1,8 @@ /* * This file is part of Remote Support Desktop * https://gitlab.das-netzwerkteam.de/RemoteWebApp/rwa.support.desktopapp - * Copyright 2020-2021 Daniel Teichmann <daniel.teichmann@das-netzwerkteam.de> - * Copyright 2020-2021 Mike Gabriel <mike.gabriel@das-netzwerkteam.de> + * Copyright 2020, 2021 Daniel Teichmann <daniel.teichmann@das-netzwerkteam.de> + * Copyright 2020, 2021 Mike Gabriel <mike.gabriel@das-netzwerkteam.de> * SPDX-License-Identifier: GPL-2.0-or-later * * This program is free software; you can redistribute it and/or modify @@ -36,14 +36,16 @@ #include <QQuickStyle> #include <signal.h> +#include "DBusAPI.h" #include "RWADBusAdaptor.cpp" #include "session.h" -#include "scenes/add_server_wizard/add_server_wizard.h" - -#define BUILD_TIME __DATE__ " " __TIME__ +#include "scenes/add_rwahost_wizard/add_rwahost_wizard.h" +#include "scenes/remote_control/remote_control_manager.h" +#include "RWAHostModel.h" +#include "RWAHost.h" int main(int argc, char *argv[]) { - qDebug() << "This app was built on: " << BUILD_TIME; + qDebug() << "This app was built on: " << __DATE__ << __TIME__; // We don't want users to have multiple instances of this app running QString tmpDirPath = QDir::tempPath() + "/rwa.support.desktopapp"; @@ -54,12 +56,12 @@ int main(int argc, char *argv[]) { tmpDir.mkpath("."); } QLockFile lockFile(tmpFilePath); - qDebug() << "Checking for a lockfile at: " + tmpFilePath; + qDebug().noquote() << QString("Checking for a lockfile at: '%0'").arg(tmpFilePath); if(!lockFile.tryLock(100)){ - qDebug() << QObject::tr("You already have this app running."); - qDebug() << QObject::tr("Only one instance is allowed."); - qDebug() << QObject::tr("Closing application now with an error."); + qCritical().noquote() << "You already have this app running.\n" + << "Only one instance is allowed.\n" + << "Closing application now with an error."; return 1; } @@ -70,27 +72,37 @@ int main(int argc, char *argv[]) { QQuickStyle::setStyle("Material"); QTranslator translator; - qDebug() << "Loading locale: qrc:/locales/bin/" + QLocale::system().name(); - if(translator.load(":/locales/bin/" + QLocale::system().name())) { + qDebug().noquote() << QString("Locales: Loading locale: qrc:/locales/%0") + .arg(QLocale::system().name()); + if(translator.load(":/locales/" + QLocale::system().name())) { app.installTranslator(&translator); - qDebug() << "Loaded: " + QLocale::system().name() + " locale!"; + qDebug().noquote() << "Locales: Loaded: " + QLocale::system().name() + " locale!"; } else { - qDebug() << "Unable to load translation"; + qWarning() << "Locales: Unable to load translation!"; } QQmlApplicationEngine engine(&app); - QScopedPointer<MainQMLAdaptor> main_gui (new MainQMLAdaptor(&app, &engine)); + QScopedPointer<DBusAPI> dbus_api (new DBusAPI()); + + // Make 'mainqmladaptor' available to QML + QScopedPointer<MainQMLAdaptor> main_gui ( + new MainQMLAdaptor(&app, &engine, dbus_api.data()) + ); - // Make mainqmladaptor available to QML engine.rootContext()->setContextProperty("mainqmladaptor", main_gui.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(); + + engine.load(QUrl(QStringLiteral("qrc:/src/main.qml"))); if (engine.rootObjects().isEmpty()) return -1; - QScopedPointer<Session> session (new Session(&app, main_gui.data())); - QObject::connect(main_gui.data(), SIGNAL(minimizeWindow()), engine.rootObjects().takeFirst(), @@ -101,10 +113,29 @@ int main(int argc, char *argv[]) { engine.rootObjects().takeFirst(), SLOT(showWindow())); - QScopedPointer<Add_Server_wizard> wizard (new Add_Server_wizard(&app)); - - // Make add_server_wizard available to QML - engine.rootContext()->setContextProperty("add_server_wizard", wizard.data()); + QObject::connect(engine.rootObjects().takeFirst()-> + findChild<QObject*>("sidebar_drawer"), + SIGNAL(rwaHostSelected(QString)), + main_gui.data(), + SLOT(onRwaHostSelected(QString))); + + // Make 'AddRWAHostWizard' available to QML + QScopedPointer<AddRWAHostWizard> wizard ( + new AddRWAHostWizard(&app, + main_gui.data(), + dbus_api.data()) + ); + engine.rootContext()-> + setContextProperty("add_rwahost_wizard", wizard.data()); + + // Make 'remote_control_manager' available to QML + QScopedPointer<RemoteControlManager> remote_mngr ( + new RemoteControlManager(&engine, + main_gui.data(), + dbus_api.data()) + ); + engine.rootContext()-> + setContextProperty("remote_control_manager", remote_mngr.data()); return app.exec(); } |