File indexing completed on 2024-04-28 16:54:25

0001 /*
0002     SPDX-FileCopyrightText: Andrew Stanley-Jones <asj@cban.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include <stdio.h>
0008 #include <stdlib.h>
0009 
0010 #include <KAboutData>
0011 #include <KDBusService>
0012 #include <KLocalizedString>
0013 
0014 #include <QApplication>
0015 #include <QCommandLineParser>
0016 #include <QSessionManager>
0017 
0018 #include "klipper.h"
0019 #include "tray.h"
0020 
0021 int main(int argc, char *argv[])
0022 {
0023     QApplication app(argc, argv);
0024     KLocalizedString::setApplicationDomain("klipper");
0025 
0026     KAboutData aboutData(QStringLiteral("klipper"),
0027                          i18n("Klipper"),
0028                          QStringLiteral(KLIPPER_VERSION_STRING),
0029                          i18n("Plasma cut & paste history utility"),
0030                          KAboutLicense::GPL,
0031                          i18n("(c) 1998, Andrew Stanley-Jones\n"
0032                               "1998-2002, Carsten Pfeiffer\n"
0033                               "2001, Patrick Dubroy"));
0034     aboutData.addAuthor(i18n("Carsten Pfeiffer"), i18n("Author"), QStringLiteral("pfeiffer@kde.org"));
0035 
0036     aboutData.addAuthor(i18n("Andrew Stanley-Jones"), i18n("Original Author"), QStringLiteral("asj@cban.com"));
0037 
0038     aboutData.addAuthor(i18n("Patrick Dubroy"), i18n("Contributor"), QStringLiteral("patrickdu@corel.com"));
0039 
0040     aboutData.addAuthor(i18n("Luboš Luňák"), i18n("Bugfixes and optimizations"), QStringLiteral("l.lunak@kde.org"));
0041 
0042     aboutData.addAuthor(i18n("Esben Mose Hansen"), i18n("Previous Maintainer"), QStringLiteral("kde@mosehansen.dk"));
0043 
0044     aboutData.addAuthor(i18n("Martin Gräßlin"), i18n("Maintainer"), QStringLiteral("mgraesslin@kde.org"));
0045 
0046     aboutData.setTranslator(i18nc("NAME OF TRANSLATORS", "Your names"), i18nc("EMAIL OF TRANSLATORS", "Your emails"));
0047 
0048     KAboutData::setApplicationData(aboutData);
0049 
0050 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
0051     QGuiApplication::setFallbackSessionManagementEnabled(false);
0052 #endif
0053 
0054     auto disableSessionManagement = [](QSessionManager &sm) {
0055         sm.setRestartHint(QSessionManager::RestartNever);
0056     };
0057     QObject::connect(&app, &QGuiApplication::commitDataRequest, disableSessionManagement);
0058     QObject::connect(&app, &QGuiApplication::saveStateRequest, disableSessionManagement);
0059     app.setQuitOnLastWindowClosed(false);
0060 
0061     QCommandLineParser parser;
0062     aboutData.setupCommandLine(&parser);
0063     parser.process(app);
0064     aboutData.processCommandLine(&parser);
0065 
0066     KDBusService service(KDBusService::Unique);
0067 
0068     KlipperTray klipper;
0069     return app.exec();
0070 }