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 }