File indexing completed on 2024-05-12 04:34:48

0001 /* ============================================================
0002 *
0003 * SPDX-FileCopyrightText: 2007-2012 Kåre Särs <kare.sars@iki .fi>
0004 * SPDX-FileCopyrightText: 2014 Gregor Mitsch : port to KDE5 frameworks
0005 *
0006 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0007 *
0008 * ============================================================ */
0009 
0010 #include <QCommandLineParser>
0011 #include <QCommandLineOption>
0012 #include <QShortcut>
0013 
0014 #include <KAboutData>
0015 #include <KLocalizedString>
0016 
0017 #include "skanlite.h"
0018 
0019 #include <skanlite_debug.h>
0020 #include <skanlite_version.h>
0021 
0022 int main(int argc, char *argv[])
0023 {
0024 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
0025     QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
0026 #endif
0027     QApplication app(argc, argv);
0028 
0029     KLocalizedString::setApplicationDomain("skanlite");
0030 
0031     KAboutData aboutData(QStringLiteral("skanlite"), // componentName, k4: appName
0032                          i18n("Skanlite"), // displayName, k4: programName
0033                          QStringLiteral(SKANLITE_VERSION_STRING), // version
0034                          i18n("Scanning application by KDE based on libksane."), // shortDescription
0035                          KAboutLicense::GPL, // licenseType
0036                          i18n("(C) 2008-2020 Kåre Särs"), // copyrightStatement
0037                          QString(), // other Text
0038                          QString() // homePageAddress
0039                         );
0040 
0041     aboutData.addAuthor(i18n("Kåre Särs"),
0042                         i18n("developer"),
0043                         QStringLiteral("kare.sars@iki.fi"));
0044 
0045     aboutData.addAuthor(i18n("Gregor Mi"),
0046                         i18n("contributor"));
0047 
0048     aboutData.addAuthor(i18n("Arseniy Lartsev"),
0049                         i18n("contributor"));
0050 
0051     aboutData.addCredit(i18n("Gilles Caulier"),
0052                         i18n("Importing libksane to extragear"));
0053 
0054     aboutData.addCredit(i18n("Anne-Marie Mahfouf"),
0055                         i18n("Writing the user manual"));
0056 
0057     aboutData.addCredit(i18n("Laurent Montel"),
0058                         i18n("Importing libksane to extragear"));
0059 
0060     aboutData.addCredit(i18n("Chusslove Illich"),
0061                         i18n("Help with translations"));
0062 
0063     aboutData.addCredit(i18n("Albert Astals Cid"),
0064                         i18n("Help with translations"));
0065 
0066     // Required for showing the translation list KXmlGui is not used
0067     aboutData.setTranslator(i18nc("NAME OF TRANSLATORS", "Your names"),
0068                             i18nc("EMAIL OF TRANSLATORS", "Your emails"));
0069 
0070     app.setWindowIcon(QIcon::fromTheme(QStringLiteral("skanlite")));
0071     KAboutData::setApplicationData(aboutData);
0072 
0073     QCoreApplication::setApplicationVersion(aboutData.version());
0074     QCommandLineParser parser;
0075     aboutData.setupCommandLine(&parser);
0076     QCommandLineOption deviceOption(QStringList() << QStringLiteral("d") << QStringLiteral("device"), i18n("Sane scanner device name. Use 'test' for test device."), i18n("device"));
0077     parser.addOption(deviceOption);
0078     parser.process(app); // the --author and --license is shown anyway but they work only with the following line
0079     aboutData.processCommandLine(&parser);
0080 
0081     const QString deviceName = parser.value(deviceOption);
0082     qCDebug(SKANLITE_LOG) << QStringLiteral("deviceOption value=%1").arg(deviceName);
0083 
0084     Skanlite skanliteDialog(deviceName, nullptr);
0085 
0086     skanliteDialog.show();
0087 
0088     QShortcut *prevShortcut = new QShortcut(QKeySequence(QStringLiteral("Ctrl+Q")), &skanliteDialog);
0089     QObject::connect(prevShortcut, &QShortcut::activated, &app, &QApplication::quit);
0090 
0091     return app.exec();
0092 }
0093