Warning, file /plasma/discover/notifier/main.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 * SPDX-FileCopyrightText: 2019 Aleix Pol Gonzalez <aleixpol@blue-systems.com> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "../DiscoverVersion.h" 0008 #include <KAboutData> 0009 #include <KConfig> 0010 #include <KConfigGroup> 0011 #include <KCrash> 0012 #include <KDBusService> 0013 #include <KLocalizedString> 0014 #include <KSharedConfig> 0015 #include <QApplication> 0016 #include <QCommandLineParser> 0017 #include <QDBusConnection> 0018 #include <QDBusConnectionInterface> 0019 #include <QDBusMessage> 0020 #include <QDebug> 0021 #include <QMenu> 0022 0023 #include "NotifierItem.h" 0024 0025 int main(int argc, char **argv) 0026 { 0027 QApplication app(argc, argv); 0028 app.setOrganizationDomain(QStringLiteral("kde.org")); 0029 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) 0030 app.setAttribute(Qt::AA_UseHighDpiPixmaps, true); 0031 #endif 0032 KCrash::setFlags(KCrash::AutoRestart); 0033 0034 NotifierItem notifier; 0035 bool hide = false; 0036 KDBusService::StartupOptions startup = {}; 0037 { 0038 KAboutData about(QStringLiteral("discover.notifier"), 0039 i18n("Discover Notifier"), 0040 version, 0041 i18n("System update status notifier"), 0042 KAboutLicense::GPL, 0043 i18n("© 2010-2022 Plasma Development Team")); 0044 about.addAuthor(QStringLiteral("Aleix Pol Gonzalez"), {}, QStringLiteral("aleixpol@kde.org")); 0045 about.setProductName("discover/discover"); 0046 about.setProgramLogo(app.windowIcon()); 0047 about.setTranslator(i18nc("NAME OF TRANSLATORS", "Your names"), i18nc("EMAIL OF TRANSLATORS", "Your emails")); 0048 0049 KAboutData::setApplicationData(about); 0050 0051 QCommandLineParser parser; 0052 QCommandLineOption replaceOption({QStringLiteral("replace")}, i18n("Replace an existing instance")); 0053 parser.addOption(replaceOption); 0054 QCommandLineOption hideOption({QStringLiteral("hide")}, i18n("Do not show the notifier"), i18n("hidden"), QStringLiteral("false")); 0055 parser.addOption(hideOption); 0056 about.setupCommandLine(&parser); 0057 parser.process(app); 0058 about.processCommandLine(&parser); 0059 0060 if (parser.isSet(replaceOption)) { 0061 startup |= KDBusService::Replace; 0062 } 0063 0064 const auto config = KSharedConfig::openConfig(); 0065 KConfigGroup group(config, "Behavior"); 0066 0067 if (parser.isSet(hideOption)) { 0068 hide = parser.value(hideOption) == QLatin1String("true"); 0069 group.writeEntry<bool>("Hide", hide); 0070 config->sync(); 0071 } else { 0072 hide = group.readEntry<bool>("Hide", false); 0073 } 0074 } 0075 0076 KDBusService service(KDBusService::Unique | startup); 0077 notifier.setVisible(!hide); 0078 0079 return app.exec(); 0080 }