File indexing completed on 2023-12-03 07:53:50
0001 /* 0002 SPDX-FileCopyrightText: 2000-2001 Nikolas Zimmermann <wildfox@kde.org> 0003 SPDX-FileCopyrightText: 2000-2001 Daniel Molkentin <molkentin@kde.org> 0004 SPDX-FileCopyrightText: 2007 Paolo Capriotti <p.capriotti@gmail.com> 0005 0006 SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #include <KAboutData> 0010 #include <KCrash> 0011 #include <KLocalizedString> 0012 #include <KDBusService> 0013 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) 0014 #include <Kdelibs4ConfigMigrator> 0015 #endif 0016 #include <QApplication> 0017 #include <QUrl> 0018 #include <QCommandLineParser> 0019 #include <QCommandLineOption> 0020 0021 0022 #include "mainwindow.h" 0023 #include "coord.h" 0024 #include "statswidget.h" 0025 #include "knavalbattle_version.h" 0026 0027 int main(int argc, char** argv) 0028 { 0029 // Fixes blurry icons with fractional scaling 0030 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) 0031 QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); 0032 #endif 0033 QApplication app(argc, argv); 0034 KLocalizedString::setApplicationDomain("knavalbattle"); 0035 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) 0036 Kdelibs4ConfigMigrator migrate(QStringLiteral("knavalbattle")); 0037 migrate.setConfigFiles(QStringList() << QStringLiteral("knavalbattlerc")); 0038 migrate.setUiFiles(QStringList() << QStringLiteral("knavalbattleui.rc")); 0039 migrate.migrate(); 0040 #endif 0041 0042 KAboutData aboutData(QStringLiteral("knavalbattle"), i18n("Naval Battle"), 0043 QStringLiteral(KNAVALBATTLE_VERSION_STRING), 0044 i18n("The KDE ship sinking game"), KAboutLicense::GPL, 0045 i18n("(c) 2000-2005 Nikolas Zimmermann, Daniel Molkentin\n" 0046 "(c) 2007 Paolo Capriotti"), 0047 QString(), 0048 QStringLiteral("https://apps.kde.org/knavalbattle") ); 0049 0050 aboutData.addAuthor(i18n("Paolo Capriotti"), i18n("Current maintainer"), QStringLiteral("p.capriotti@gmail.com")); 0051 aboutData.addAuthor(i18n("Nikolas Zimmermann"), i18n("Project Founder, GUI Handling, Client/Server"), QStringLiteral("wildfox@kde.org")); 0052 aboutData.addAuthor(i18n("Daniel Molkentin"), i18n("Dialog Stuff, Client/Server"), QStringLiteral("molkentin@kde.org")); 0053 aboutData.addAuthor(i18n("Kevin Krammer"), i18n("Computer Player"), QStringLiteral("kevin.krammer@gmx.at")); 0054 0055 aboutData.addCredit(i18n("Johann Ollivier Lapeyre"), i18n("Game artwork"), QStringLiteral("johann.ollivierlapeyre@gmail.com")); 0056 aboutData.addCredit(i18n("Eugene Trounev"), i18n("Background"), QStringLiteral("irs_me@hotmail.com")); 0057 aboutData.addCredit(i18n("Robert Wadley"), i18n("Artwork for some of the ships"), QStringLiteral("rob@robntina.fastmail.us")); 0058 aboutData.addCredit(i18n("Riccardo Iaconelli"), i18n("Welcome screen"), QStringLiteral("ruphy@fsfe.org")); 0059 aboutData.addCredit(i18n("Benjamin Adler"), i18n("Icon"), QStringLiteral("benadler@bigfoot.de")); 0060 aboutData.addCredit(i18n("Nils Trzebin"), i18n("Sounds"), QStringLiteral("nils.trzebin@stud.uni-hannover.de")); 0061 aboutData.addCredit(i18n("Elmar Hoefner"), i18n("GFX"), QStringLiteral("elmar.hoefner@uibk.ac.at")); 0062 aboutData.addCredit(i18n("Lukas Tinkl"), i18n("Non-Latin1 Support"), QStringLiteral("lukas@kde.org")); 0063 aboutData.addCredit(i18n("Malte Starostik"), i18n("Various improvements"), QStringLiteral("malte.starostik@t-online.de")); 0064 aboutData.addCredit(i18n("Albert Astals Cid"), i18n("Various improvements and bugfixes"), QStringLiteral("aacid@kde.org")); 0065 aboutData.addCredit(i18n("John Tapsell"), i18n("Various improvements and bugfixes"), QStringLiteral("john@geola.co.uk")); 0066 aboutData.addCredit(i18n("Inge Wallin"), i18n("Bugfixes and refactoring"), QStringLiteral("inge@lysator.liu.se")); 0067 aboutData.addCredit(i18n("Jakub Stachowski"), i18n("DNS-SD discovery"), QStringLiteral("qbast@go2.pl")); 0068 aboutData.addCredit(i18n("Roney Gomes"), i18n("Porting to KGameRenderer and QGraphicsView"), QStringLiteral("roney477@gmail.com")); 0069 0070 KAboutData::setApplicationData(aboutData); 0071 app.setWindowIcon(QIcon::fromTheme(QStringLiteral("knavalbattle"))); 0072 0073 QCommandLineParser parser; 0074 0075 parser.addPositionalArgument(i18n("[URL]"), i18n("URL of a Naval Battle game server to connect to after startup")); 0076 0077 aboutData.setupCommandLine(&parser); 0078 parser.process(app); 0079 aboutData.processCommandLine(&parser); 0080 0081 KCrash::initialize(); 0082 KDBusService service; 0083 0084 qRegisterMetaType<Coord>("Coord"); 0085 0086 QUrl url; 0087 const QStringList &args = parser.positionalArguments(); 0088 if (!args.isEmpty()) { 0089 for (int i = 0; i < args.count(); ++i) { 0090 url = QUrl(args.at(i)); 0091 0092 if (!url.isValid()) 0093 continue; 0094 0095 break; 0096 } 0097 } 0098 0099 MainWindow* window = new MainWindow(url); 0100 //StatsWidget* window = new StatsWidget(0, 0); 0101 window->show(); 0102 0103 return app.exec(); 0104 }