1 /*
2     SPDX-FileCopyrightText: 2008-2009 Stefan Majewsky <majewsky@gmx.net>
3 
4     SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 
7 #include "mainwindow.h"
8 #include "settings.h"
9 #include "kdiamond_version.h"
10 
11 #include <ctime>
12 
13 #include <KAboutData>
14 #include <KCrash>
15 
16 #include <KLocalizedString>
17 
18 #include <KgDifficulty>
19 #include <kdelibs4configmigrator.h>
20 #include <QApplication>
21 #include <QCommandLineParser>
22 #include <QStandardPaths>
23 #include <KDBusService>
24 
main(int argc,char ** argv)25 int main(int argc, char **argv)
26 {
27     // Fixes blurry icons with fractional scaling
28     QGuiApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
29     QApplication app(argc, argv);
30     Kdelibs4ConfigMigrator migrate(QStringLiteral("kdiamond"));
31     migrate.setConfigFiles(QStringList() << QStringLiteral("kdiamondrc") << QStringLiteral("kdiamond.notifyrc"));
32     migrate.setUiFiles(QStringList() << QStringLiteral("kdiamondui.rc"));
33     migrate.migrate();
34 
35     KLocalizedString::setApplicationDomain("kdiamond");
36     KAboutData about(QStringLiteral("kdiamond"), i18nc("The application's name", "KDiamond"),
37                      QStringLiteral(KDIAMOND_VERSION_STRING),
38                      i18n("KDiamond, a three-in-a-row game."),
39                      KAboutLicense::GPL, i18n("(C) 2008-2010 Stefan Majewsky and others"),
40                      QString(),
41                      QStringLiteral("https://kde.org/applications/games/org.kde.kdiamond"));
42     about.addAuthor(i18n("Stefan Majewsky"), i18n("Original author and current maintainer"), QStringLiteral("majewsky@gmx.net"));
43     about.addAuthor(i18n("Paul Bunbury"), i18n("Gameplay refinement"), QStringLiteral("happysmileman@googlemail.com"));
44     about.addCredit(i18n("Eugene Trounev"), i18n("Default theme"), QStringLiteral("eugene.trounev@gmail.com"));
45     about.addCredit(i18n("Felix Lemke"), i18n("Classic theme"), QStringLiteral("lemke.felix@ages-skripte.org"));
46     about.addCredit(i18n("Jeffrey Kelling"), i18n("Technical consultant"), QStringLiteral("kelling.jeffrey@ages-skripte.org"));
47     QCommandLineParser parser;
48     KAboutData::setApplicationData(about);
49     KCrash::initialize();
50     about.setupCommandLine(&parser);
51     parser.process(app);
52     about.processCommandLine(&parser);
53 
54     app.setWindowIcon(QIcon::fromTheme(QStringLiteral("kdiamond")));
55 
56     //resource directory for KNewStuff2 (this call causes the directory to be created; its existence is necessary for the downloader)
57     QStandardPaths::writableLocation(QStandardPaths::AppDataLocation) + QLatin1String("/themes/");
58 
59     Kg::difficulty()->addStandardLevelRange(
60         KgDifficultyLevel::VeryEasy,
61         KgDifficultyLevel::VeryHard
62     );
63     KDBusService service;
64     // see if we are starting with session management
65     if (app.isSessionRestored()) {
66         kRestoreMainWindows<MainWindow>();
67     } else {
68         MainWindow *window = new MainWindow;
69         window->show();
70     }
71     return app.exec();
72 }
73