File indexing completed on 2024-05-05 05:28:25

0001 /*
0002 
0003     SPDX-FileCopyrightText: 2011-2014 Sebastian Kügler <sebas@kde.org>
0004     SPDX-FileCopyrightText: 2017 Marco Martin <mart@kde.org>
0005 
0006     SPDX-License-Identifier: GPL-2.0-or-later
0007 */
0008 
0009 #include "settingsapp.h"
0010 
0011 #include <QDebug>
0012 #include <QQmlContext>
0013 #include <QQmlEngine>
0014 
0015 #include <KDBusService>
0016 
0017 #include <KLocalizedString>
0018 
0019 SettingsApp::SettingsApp(QCommandLineParser &parser, QObject *parent)
0020     : QObject(parent)
0021     , m_parser(&parser)
0022 {
0023     setupKDBus();
0024 }
0025 
0026 SettingsApp::~SettingsApp() = default;
0027 
0028 void SettingsApp::setupKDBus()
0029 {
0030     QCoreApplication::setOrganizationDomain("kde.org");
0031     KDBusService *service = new KDBusService(KDBusService::Unique, this);
0032 
0033     QObject::connect(service, &KDBusService::activateRequested, this, [this](const QStringList &arguments, const QString & /*workingDirectory*/) {
0034         qDebug() << "activateRequested" << arguments;
0035         m_parser->parse(arguments);
0036 
0037         if (m_parser->isSet("module")) {
0038             const QString module = m_parser->value("module");
0039             qDebug() << "Loading module:" << module;
0040             Q_EMIT moduleRequested(module);
0041         }
0042 
0043         Q_EMIT activateRequested();
0044     });
0045 }
0046 
0047 void SettingsApp::setStartModule(const QString &startModule)
0048 {
0049     m_startModule = startModule;
0050     Q_EMIT startModuleChanged();
0051 }
0052 
0053 void SettingsApp::setSingleModule(const bool singleModule)
0054 {
0055     m_singleModule = singleModule;
0056     Q_EMIT singleModuleChanged();
0057 }