From 41c2f9c4d52a2ab8ca0b55ef188ff11c8b49f09d Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Thu, 9 Nov 2023 20:07:30 -0500 Subject: [PATCH] Re-arrange main.cpp and add no gui option when DBus activated We don't want the QML engine initialized at all when launching on notifications, it'll be useless there. --- src/main.cpp | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 2e1a718a5..295e5d4a8 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -166,6 +166,10 @@ int main(int argc, char *argv[]) QStringLiteral("/var/config/fontconfig/conf.d/99-noto-mono-color-emoji.conf")); #endif +#ifdef HAVE_KDBUSADDONS + KDBusService service(KDBusService::Unique); +#endif + ColorSchemer colorScheme; if (!NeoChatConfig::self()->colorScheme().isEmpty()) { colorScheme.apply(NeoChatConfig::self()->colorScheme()); @@ -177,10 +181,30 @@ int main(int argc, char *argv[]) qmlRegisterUncreatableType("com.github.quotient_im.libquotient", 1, 0, "KeyVerificationSession", {}); + QCommandLineParser parser; + parser.setApplicationDescription(i18n("Client for the matrix communication protocol")); + parser.addPositionalArgument(QStringLiteral("urls"), i18n("Supports matrix: url scheme")); + parser.addOption(QCommandLineOption("ignore-ssl-errors"_ls, i18n("Ignore all SSL Errors, e.g., unsigned certificates."))); + +#ifdef HAVE_KUNIFIEDPUSH + QCommandLineOption dbusActivatedOption(QStringLiteral("dbus-activated"), i18n("Internal usage only.")); + dbusActivatedOption.setFlags(QCommandLineOption::Flag::HiddenFromHelp); + parser.addOption(dbusActivatedOption); +#endif + + about.setupCommandLine(&parser); + parser.process(app); + about.processCommandLine(&parser); + +#ifdef HAVE_KUNIFIEDPUSH + if (parser.isSet(dbusActivatedOption)) { + return QCoreApplication::exec(); + } +#endif + QQmlApplicationEngine engine; #ifdef HAVE_KDBUSADDONS - KDBusService service(KDBusService::Unique); service.connect(&service, &KDBusService::activateRequested, &RoomManager::instance(), @@ -208,15 +232,6 @@ int main(int argc, char *argv[]) QObject::connect(&engine, &QQmlApplicationEngine::quit, &app, &QCoreApplication::quit); engine.setNetworkAccessManagerFactory(new NetworkAccessManagerFactory()); - QCommandLineParser parser; - parser.setApplicationDescription(i18n("Client for the matrix communication protocol")); - parser.addPositionalArgument(QStringLiteral("urls"), i18n("Supports matrix: url scheme")); - parser.addOption(QCommandLineOption("ignore-ssl-errors"_ls, i18n("Ignore all SSL Errors, e.g., unsigned certificates."))); - - about.setupCommandLine(&parser); - parser.process(app); - about.processCommandLine(&parser); - if (parser.isSet("ignore-ssl-errors"_ls)) { QObject::connect(NetworkAccessManager::instance(), &QNetworkAccessManager::sslErrors, NetworkAccessManager::instance(), [](QNetworkReply *reply) { reply->ignoreSslErrors();