File indexing completed on 2024-04-28 07:51:16
0001 /* 0002 SPDX-FileCopyrightText: 1998 Andreas Wüst <AndreasWuest@gmx.de> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "toplevel.h" 0008 0009 #include "levelset.h" 0010 #include "katomic_version.h" 0011 0012 #include <KLocalizedString> 0013 #include <KAboutData> 0014 #include <KCrash> 0015 #include <KMessageBox> 0016 #include <KDBusService> 0017 0018 #include <QTimer> 0019 #include <QCommandLineParser> 0020 #include <QCommandLineOption> 0021 #include <QApplication> 0022 0023 // ########################## 0024 // # Main # 0025 // ########################## 0026 0027 int main(int argc, char **argv) 0028 { 0029 QApplication app(argc, argv); 0030 0031 KLocalizedString::setApplicationDomain("katomic"); 0032 KAboutData aboutData( QStringLiteral("katomic"), i18n("KAtomic"), 0033 QStringLiteral(KATOMIC_VERSION_STRING), 0034 i18n("Atomic Entertainment Game"), 0035 KAboutLicense::GPL, 0036 i18n("(c) 1998, Andreas Wuest\n(c) 2007-2009 Dmitry Suzdalev")); 0037 aboutData.addAuthor(i18n("Andreas Wuest"), i18n("Original author"), QStringLiteral("AndreasWuest@gmx.de")); 0038 aboutData.addAuthor(i18n("Dmitry Suzdalev"), i18n("Porting to KDE4. Current maintainer"), QStringLiteral("dimsuz@gmail.com")); 0039 aboutData.addAuthor(i18n("Stephan Kulow"), QString(), QStringLiteral("coolo@kde.org")); 0040 aboutData.addAuthor(i18n("Cristian Tibirna"), QString(), QStringLiteral("tibirna@kde.org")); 0041 aboutData.addCredit(i18n("Carsten Pfeiffer"), QString(), QStringLiteral("pfeiffer@kde.org")); 0042 aboutData.addCredit(i18n("Dave Corrie"), QString(), QStringLiteral("kde@davecorrie.com")); 0043 aboutData.addCredit(i18n("Kai Jung"), i18n("6 new levels"), QStringLiteral("jung@fh-fresenius.de")); 0044 aboutData.addCredit(i18n("Danny Allen"), i18n("Game graphics and application icon"), QStringLiteral("danny@dannyallen.co.uk")); 0045 aboutData.addCredit(i18n("Johann Ollivier Lapeyre"), i18n("New great SVG artwork for KDE4"), QStringLiteral("johann.ollivierlapeyre@gmail.com")); 0046 aboutData.addCredit(i18n("Brian Croom"), i18n("Port to use KGameRenderer"), QStringLiteral("brian.s.croom@gmail.com")); 0047 aboutData.setHomepage(QStringLiteral("https://apps.kde.org/katomic")); 0048 0049 QCommandLineParser parser; 0050 KAboutData::setApplicationData(aboutData); 0051 KCrash::initialize(); 0052 parser.addOption(QCommandLineOption({QStringLiteral("hackmode")}, i18n( "Enable access to all levels" ))); 0053 0054 aboutData.setupCommandLine(&parser); 0055 parser.process(app); 0056 aboutData.processCommandLine(&parser); 0057 0058 app.setWindowIcon(QIcon::fromTheme(QStringLiteral("katomic"))); 0059 0060 KDBusService service; 0061 if (!LevelSet::isDefaultLevelsAvailable()) 0062 { 0063 KMessageBox::error(nullptr, i18n("KAtomic failed to find its default level set and will quit. Please check your installation.")); 0064 QTimer::singleShot(0, &app, &QApplication::quit); 0065 } 0066 else 0067 { 0068 if ( app.isSessionRestored() ) 0069 kRestoreMainWindows<AtomTopLevel>(); 0070 else { 0071 AtomTopLevel *top = new AtomTopLevel; 0072 if ( parser.isSet( QStringLiteral("hackmode") ) ) 0073 top->enableHackMode(); 0074 0075 top->show(); 0076 } 0077 } 0078 0079 return app.exec(); 0080 } 0081