File indexing completed on 2025-02-16 06:56:48
0001 /* 0002 SPDX-FileCopyrightText: 2008 Sascha Peilicke <sasch.pe@gmx.de> 0003 0004 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 #include "gui/mainwindow.h" 0008 0009 #include "kigo_version.h" 0010 0011 #include <KAboutData> 0012 #include <KCrash> 0013 0014 #include <QApplication> 0015 #include <KLocalizedString> 0016 #include <QCommandLineParser> 0017 #include <KDBusService> 0018 0019 /** 0020 * This namespace collects all classes related to Kigo, the Go board game. 0021 */ 0022 namespace Kigo { /* This is only a Doxygen stub */ } 0023 0024 /** 0025 * The standard C/C++ program entry point. Application 'about' data 0026 * is created here and command line options are configured and checked 0027 * if the user invokes the application. If everything is set up, the 0028 * method displays the main window and jumps into the Qt event loop. 0029 */ 0030 int main(int argc, char *argv[]) 0031 { 0032 QApplication app(argc, argv); 0033 0034 KLocalizedString::setApplicationDomain("kigo"); 0035 0036 KAboutData aboutData(QStringLiteral("kigo"), i18n("Kigo"), QStringLiteral(KIGO_VERSION_STRING), 0037 i18n("KDE Go Board Game"), KAboutLicense::GPL_V2, 0038 i18n("Copyright (c) 2008-2010 Sascha Peilicke")); 0039 aboutData.addAuthor(i18n("Sascha Peilicke (saschpe)"), i18n("Original author"), 0040 QStringLiteral("sasch.pe@gmx.de"), QStringLiteral("https://saschpe.wordpress.com")); 0041 aboutData.addCredit(i18n("Yuri Chornoivan"), i18n("Documentation editor"), 0042 QStringLiteral("yurchor@ukr.net")); 0043 aboutData.addCredit(i18n("Arturo Silva"), i18n("Default theme designer"), 0044 QStringLiteral("jasilva28@gmail.com")); 0045 aboutData.setHomepage(QStringLiteral("https://apps.kde.org/kigo")); 0046 aboutData.setDesktopFileName(QStringLiteral("org.kde.kigo")); 0047 0048 QCommandLineParser parser; 0049 KAboutData::setApplicationData(aboutData); 0050 KCrash::initialize(); 0051 parser.addOption(QCommandLineOption(QStringList() << QStringLiteral("game"), i18nc("@info:shell", "Game to load (SGF file)"), i18nc("@info:shell", "gamefile"))); 0052 parser.addPositionalArgument(i18nc("@info:shell", "[gamefile]"), i18nc("@info:shell", "Game to load (SGF file)")); 0053 0054 aboutData.setupCommandLine(&parser); 0055 parser.process(app); 0056 aboutData.processCommandLine(&parser); 0057 KDBusService service; 0058 0059 app.setWindowIcon(QIcon::fromTheme(QStringLiteral("kigo"))); 0060 0061 if (app.isSessionRestored()) { 0062 kRestoreMainWindows<Kigo::MainWindow>(); 0063 } else { 0064 0065 QString game; 0066 if (parser.isSet(QStringLiteral("game"))) { 0067 game = parser.value(QStringLiteral("game")); 0068 } 0069 if (parser.positionalArguments().count() == 1) { 0070 game = parser.positionalArguments().at(0); 0071 } 0072 0073 auto mainWin = new Kigo::MainWindow(game, nullptr); 0074 0075 mainWin->show(); 0076 } 0077 return app.exec(); 0078 }