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