File indexing completed on 2024-03-24 04:04:41
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(QByteArrayLiteral("katomic")); 0032 0033 KAboutData aboutData( QStringLiteral("katomic"), i18n("KAtomic"), 0034 QStringLiteral(KATOMIC_VERSION_STRING), 0035 i18n("Atomic Entertainment Game"), 0036 KAboutLicense::GPL, 0037 i18n("(c) 1998, Andreas Wuest\n(c) 2007-2009 Dmitry Suzdalev")); 0038 aboutData.addAuthor(i18n("Andreas Wuest"), i18n("Original author"), QStringLiteral("AndreasWuest@gmx.de")); 0039 aboutData.addAuthor(i18n("Dmitry Suzdalev"), i18n("Porting to KDE4. Current maintainer"), QStringLiteral("dimsuz@gmail.com")); 0040 aboutData.addAuthor(i18n("Stephan Kulow"), QString(), QStringLiteral("coolo@kde.org")); 0041 aboutData.addAuthor(i18n("Cristian Tibirna"), QString(), QStringLiteral("tibirna@kde.org")); 0042 aboutData.addCredit(i18n("Carsten Pfeiffer"), QString(), QStringLiteral("pfeiffer@kde.org")); 0043 aboutData.addCredit(i18n("Dave Corrie"), QString(), QStringLiteral("kde@davecorrie.com")); 0044 aboutData.addCredit(i18n("Kai Jung"), i18n("6 new levels"), QStringLiteral("jung@fh-fresenius.de")); 0045 aboutData.addCredit(i18n("Danny Allen"), i18n("Game graphics and application icon"), QStringLiteral("danny@dannyallen.co.uk")); 0046 aboutData.addCredit(i18n("Johann Ollivier Lapeyre"), i18n("New great SVG artwork for KDE4"), QStringLiteral("johann.ollivierlapeyre@gmail.com")); 0047 aboutData.addCredit(i18n("Brian Croom"), i18n("Port to use KGameRenderer"), QStringLiteral("brian.s.croom@gmail.com")); 0048 aboutData.setHomepage(QStringLiteral("https://apps.kde.org/katomic")); 0049 0050 KAboutData::setApplicationData(aboutData); 0051 QApplication::setWindowIcon(QIcon::fromTheme(QStringLiteral("katomic"))); 0052 0053 KCrash::initialize(); 0054 0055 QCommandLineParser parser; 0056 parser.addOption(QCommandLineOption({QStringLiteral("hackmode")}, i18n( "Enable access to all levels" ))); 0057 aboutData.setupCommandLine(&parser); 0058 parser.process(app); 0059 aboutData.processCommandLine(&parser); 0060 0061 KDBusService service; 0062 0063 if (!LevelSet::isDefaultLevelsAvailable()) 0064 { 0065 KMessageBox::error(nullptr, i18n("KAtomic failed to find its default level set and will quit. Please check your installation.")); 0066 QTimer::singleShot(0, &app, &QApplication::quit); 0067 } 0068 else 0069 { 0070 if ( app.isSessionRestored() ) 0071 kRestoreMainWindows<AtomTopLevel>(); 0072 else { 0073 AtomTopLevel *top = new AtomTopLevel; 0074 if ( parser.isSet( QStringLiteral("hackmode") ) ) 0075 top->enableHackMode(); 0076 0077 top->show(); 0078 } 0079 } 0080 0081 return app.exec(); 0082 } 0083