File indexing completed on 2024-04-14 05:46:46

0001 /*
0002     SPDX-FileCopyrightText: 2005-2007, 2009-2010 Tom Albers <toma@kde.org>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include <KConfigGroup>
0008 #include <KCrash>
0009 #include <KDBusService>
0010 #include <KLocalizedString>
0011 #include <KSharedConfig>
0012 #include <Kdelibs4ConfigMigrator>
0013 #include <QApplication>
0014 #include <QCommandLineParser>
0015 #include <QDebug>
0016 #include <QSessionManager>
0017 #include <kaboutdata.h>
0018 #include <kmessagebox.h>
0019 #include <kstartupinfo.h>
0020 #include <stdio.h>
0021 #include <stdlib.h>
0022 
0023 #include "rsiwidget.h"
0024 
0025 int main(int argc, char *argv[])
0026 {
0027     QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps, true);
0028     QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling, true);
0029     QApplication app(argc, argv);
0030     app.setQuitOnLastWindowClosed(false);
0031 
0032     Kdelibs4ConfigMigrator migrate(QLatin1String("rsibreak"));
0033     migrate.setConfigFiles(QStringList() << QLatin1String("rsibreakrc") << QLatin1String("rsibreak.notifyrc"));
0034     migrate.migrate();
0035 
0036     KLocalizedString::setApplicationDomain("rsibreak");
0037 
0038     KAboutData aboutData("rsibreak",
0039                          i18n("RSIBreak"),
0040                          "0.12.15",
0041                          i18n("Try to prevent Repetitive Strain Injury by "
0042                               "reminding a user to rest."),
0043                          KAboutLicense::GPL,
0044                          i18n("(c) 2005-2015, The RSIBreak developers"));
0045 
0046     aboutData.addAuthor(i18n("Albert Astals Cid"), i18n("Maintainer"), "aacid@kde.org");
0047 
0048     aboutData.addAuthor(i18n("Tom Albers"), i18n("Former author"), "toma@kde.org", "http://www.omat.nl");
0049 
0050     aboutData.addAuthor(i18n("Bram Schoenmakers"), i18n("Former author"), "bramschoenmakers@kde.nl");
0051 
0052     aboutData.setTranslator(i18nc("NAME OF TRANSLATORS", "Your names"), i18nc("EMAIL OF TRANSLATORS", "Your emails"));
0053 
0054     QCommandLineParser parser;
0055     KAboutData::setApplicationData(aboutData);
0056     parser.addOption(QCommandLineOption("autostart"));
0057     aboutData.setupCommandLine(&parser);
0058     parser.process(app);
0059     aboutData.processCommandLine(&parser);
0060 
0061     KDBusService service(KDBusService::Unique);
0062 
0063     auto disableSessionManagement = [](QSessionManager &sm) {
0064         sm.setRestartHint(QSessionManager::RestartNever);
0065     };
0066     QObject::connect(&app, &QGuiApplication::commitDataRequest, disableSessionManagement);
0067     QObject::connect(&app, &QGuiApplication::saveStateRequest, disableSessionManagement);
0068 
0069     if (parser.isSet("autostart")) {
0070         KConfigGroup config = KSharedConfig::openConfig()->group("General");
0071         const bool autostart = config.readEntry("AutoStart", false);
0072         if (!autostart)
0073             return 0;
0074     }
0075 
0076     KCrash::initialize();
0077 
0078     new RSIObject();
0079     return app.exec();
0080 }