From 7411d37db68911c59016472e3aead0634cf555ae Mon Sep 17 00:00:00 2001 From: Daniel Teichmann Date: Mon, 27 Jul 2020 17:09:49 +0200 Subject: Move sources to src/ && lots of features --- src/main.cpp | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 src/main.cpp (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..a1b1b9f --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,66 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "RWADBusAdaptor.cpp" +#include "session.h" + +int main(int argc, char *argv[]) { + QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + QApplication app(argc, argv); + + QQuickStyle::setStyle("Material"); + + QTranslator translator; + qDebug() << "Loading locale: qrc:/locales/bin/" + QLocale::system().name(); + if(translator.load(":/locales/bin/" + QLocale::system().name())) { + app.installTranslator(&translator); + qDebug() << "Loaded: " + QLocale::system().name() + " locale!"; + } else { + qDebug() << "Unable to load translation"; + } + + QQmlApplicationEngine engine; + engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); + if (engine.rootObjects().isEmpty()) + return -1; + + QScopedPointer main_gui (new MainQMLAdaptor(&app, &engine)); + //MainQMLAdaptor *main_gui = new MainQMLAdaptor(&app, &engine); + // Make mainqmladaptor available to QML + engine.rootContext()->setContextProperty("mainqmladaptor", main_gui.data()); + + QScopedPointer session (new Session(&app, &engine, main_gui.data())); + //Session *session = new Session(&app, &engine, main_gui); + // Make 'session' available to QML + engine.rootContext()->setContextProperty("session", session.data()); + + // We don't want users to have multiple instances of this app running + QString tmpDirPath = QDir::tempPath() + "/rwa"; + QString tmpFilePath = tmpDirPath + "/remote-support-desktop-application-prevent-multiple-instances.lock"; + QDir tmpDir(tmpDirPath); + if (!tmpDir.exists()) { + // Ensure that the path exists + tmpDir.mkpath("."); + } + QLockFile lockFile(tmpFilePath); + qDebug() << "Checking for a lockfile at: " + 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."); + + return 1; + } + + return app.exec(); +} -- cgit v1.2.3