-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.cpp
123 lines (97 loc) · 4.17 KB
/
main.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
/*
Copyright (C) 2002-2005, Jason Katz-Brown <[email protected]>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "kolf.h"
#include "kolf_version.h"
#include <iostream>
#include <QApplication>
#include <QCommandLineOption>
#include <QCommandLineParser>
#include <QDebug>
#include <QFile>
#include <QUrl>
#include <KAboutData>
#include <KCrash>
#include <KDBusService>
#include <KLocalizedString>
using namespace std;
int main(int argc, char **argv)
{
// Fixes blurry icons with fractional scaling
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
QGuiApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
#endif
QApplication app(argc, argv);
KLocalizedString::setApplicationDomain("kolf");
KAboutData aboutData( QStringLiteral("kolf"),
i18n("Kolf"),
QStringLiteral(KOLF_VERSION_STRING),
i18n("KDE Minigolf Game"),
KAboutLicense::GPL,
i18n("(c) 2002-2010, Kolf & Cattn developers"),
QString(),
QStringLiteral("https://apps.kde.org/kolf"));
aboutData.addAuthor(i18n("Stefan Majewsky"), i18n("Current maintainer"), QStringLiteral("[email protected]"));
aboutData.addAuthor(i18n("Jason Katz-Brown"), i18n("Former main author"), QStringLiteral("[email protected]"));
aboutData.addAuthor(i18n("Niklas Knutsson"), i18n("Advanced putting mode"));
aboutData.addAuthor(i18n("Rik Hemsley"), i18n("Border around course"));
aboutData.addAuthor(i18n("Timo A. Hummel"), i18n("Some good sound effects"), QStringLiteral("[email protected]"));
aboutData.addAuthor(i18n("Cattn"), i18n("Kolf modder!"), QStringLiteral("[email protected]"));
aboutData.addAuthor(i18n("Vape"), i18n("idk he's there"), QStringLiteral("[email protected]"));
aboutData.addCredit(i18n("Rob Renaud"), i18n("Wall-bouncing help"));
aboutData.addCredit(i18n("Aaron Seigo"), i18n("Suggestions, bug reports"));
aboutData.addCredit(i18n("Erin Catto"), i18n("Developer of Box2D physics engine"));
aboutData.addCredit(i18n("Ryan Cumming"), i18n("Vector class (Kolf 1)"));
aboutData.addCredit(i18n("Daniel Matza-Brown"), i18n("Working wall-bouncing algorithm (Kolf 1)"));
QCommandLineParser parser;
KAboutData::setApplicationData(aboutData);
KCrash::initialize();
parser.addOption(QCommandLineOption(QStringList() << QStringLiteral("+file"), i18n("File")));
parser.addOption(QCommandLineOption(QStringList() << QStringLiteral("course-info"), i18n("Print course information and exit")));
aboutData.setupCommandLine(&parser);
parser.process(app);
aboutData.processCommandLine(&parser);
KDBusService service;
// I've actually added this for my web site uploaded courses display
if (parser.isSet(QStringLiteral("course-info")))
{
QString filename(parser.value(QStringLiteral("course-info")));
if (QFile::exists(filename))
{
CourseInfo info;
KolfGame::courseInfo(info, filename);
cout << info.name.toLatin1().constData()
<< " - " << i18n("By %1", info.author).toLatin1().constData()
<< " - " << i18n("%1 holes", info.holes).toLatin1().constData()
<< " - " << i18n("par %1", info.par).toLatin1().constData()
<< endl;
return 0;
}
else
{
qCritical() << i18n("Course %1 does not exist.", filename);
}
}
KolfWindow *top = new KolfWindow;
if (parser.positionalArguments().count() >= 1)
{
QUrl url = QUrl::fromUserInput(parser.positionalArguments().at(parser.positionalArguments().count() - 1));
top->openUrl(url);
}
else
top->closeGame();
top->show();
app.setWindowIcon(QIcon::fromTheme(QStringLiteral("kolf")));
return app.exec();
}