Warning, file /utilities/kronometer/src/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: 2014 Elvis Angelaccio <elvis.angelaccio@kde.org>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "sessionmodel.h"
0008 #include "mainwindow.h"
0009 #include "version.h"
0010 
0011 #include <KAboutData>
0012 #include <KCrash>
0013 #include <KLocalizedString>
0014 
0015 #include <QApplication>
0016 #include <QDir>
0017 #include <QFileInfo>
0018 #include <QStandardPaths>
0019 
0020 int main (int argc, char **argv)
0021 {
0022     KLocalizedString::setApplicationDomain("kronometer");
0023 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
0024     QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps, true);
0025     QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling, true);
0026 #endif
0027     QApplication app {argc, argv};
0028 
0029     KCrash::initialize();
0030 
0031     auto aboutData = KAboutData {
0032         QStringLiteral("kronometer"),   // componentName
0033         i18nc("KAboutData display name", "Kronometer"),
0034         QStringLiteral(KRONOMETER_VERSION_STRING),
0035         i18n("Kronometer is a simple stopwatch application"), // shortDescription
0036         KAboutLicense::GPL_V2,    // licenseType
0037         i18n("Copyright (C) 2014-2016 Elvis Angelaccio"),    // copyrightStatement
0038         {},  // otherText
0039         QStringLiteral("https://userbase.kde.org/Kronometer")   // homePageAddress
0040     };
0041 
0042     aboutData.addAuthor(
0043         i18n("Elvis Angelaccio"),
0044         i18n("Maintainer"),
0045         QStringLiteral("elvis.angelaccio@kde.org"),
0046         QStringLiteral("https://eang.it")
0047     );
0048 
0049     aboutData.addCredit(
0050         i18n("Ken Vermette"),
0051         i18n("Kronometer icon"),
0052         QStringLiteral("vermette@gmail.com")
0053     );
0054 
0055     KAboutData::setApplicationData(aboutData);
0056 
0057     app.setApplicationName(aboutData.componentName());
0058     app.setApplicationDisplayName(aboutData.displayName());
0059     app.setOrganizationDomain(aboutData.organizationDomain());
0060     app.setApplicationVersion(aboutData.version());
0061     app.setWindowIcon(QIcon::fromTheme(QStringLiteral("kronometer")));
0062 
0063     // Make sure that the local data directory is available.
0064     auto appdata = QFileInfo {QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation)};
0065     if (!appdata.exists()) {
0066         auto dir = QDir {appdata.absolutePath()};
0067         dir.mkdir(appdata.fileName());
0068     }
0069 
0070     SessionModel sessionModel;
0071     auto window = new MainWindow {&sessionModel};
0072     window->show();
0073 
0074     return app.exec();
0075 }