File indexing completed on 2024-05-12 07:59:02

0001 /*
0002     SPDX-FileCopyrightText: 2010 Ni Hui <shuizhuyuanluo@126.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "mainwindow.h"
0008 #include "settings.h"
0009 #include "klickety_version.h"
0010 
0011 #include <KAboutData>
0012 #include <KCrash>
0013 #include <KDBusService>
0014 #include <KLocalizedString>
0015 
0016 #include <QApplication>
0017 #include <QCommandLineParser>
0018 #include <QCommandLineOption>
0019 
0020 int main( int argc, char* argv[] )
0021 {
0022     QApplication app( argc, argv );
0023     app.setWindowIcon(QIcon::fromTheme(QStringLiteral( "klickety" )));
0024 
0025     KLocalizedString::setApplicationDomain("klickety");
0026 
0027     KAboutData aboutData( QStringLiteral( "klickety" ), i18n( "Klickety" ), QStringLiteral( KLICKETY_VERSION_STRING ),
0028                           i18n( "Klickety is an adaptation of the \"clickomania\" game" ),
0029                           KAboutLicense::GPL,
0030                           i18n( "(c) 2002-2005, Nicolas Hadacek\n(c) 2010, Ni Hui" ),
0031                           QString(),
0032                           QStringLiteral("https://apps.kde.org/klickety"));
0033 
0034     QCommandLineParser parser;
0035     KAboutData::setApplicationData( aboutData );
0036     KCrash::initialize();
0037     parser.addOption( QCommandLineOption( QStringList() <<  QStringLiteral( "KSameMode" ), i18n( "Start with KSame compatibility mode" ) ) );
0038 
0039     aboutData.setupCommandLine( &parser );
0040     parser.process( app );
0041     aboutData.processCommandLine( &parser );
0042 
0043     bool kSameMode = parser.isSet( QStringLiteral("KSameMode") );
0044 
0045     // we use different file for storing ksame mode configuration
0046     if ( kSameMode ) {
0047         Settings::instance( QStringLiteral( "ksamerc" ) );
0048         aboutData.setShortDescription( i18n( "A little game about balls and how to get rid of them" ) );
0049         aboutData.addAuthor( i18n( "Marcus Kreutzberger"), i18n( "Original author" ), QStringLiteral("kreutzbe@informatik.mu-luebeck.de") );
0050         aboutData.addAuthor( i18n( "Henrique Pinto"), i18n( "Past maintainer" ), QStringLiteral("henrique.pinto@kdemail.net") );
0051         aboutData.addAuthor( i18n( "Ni Hui" ), i18n( "Integration with Klickety. Current maintainer" ), QStringLiteral("shuizhuyuanluo@126.com") );
0052         aboutData.addCredit( i18n( "Johann Ollivier Lapeyre"), i18n("Artwork"), QStringLiteral("johann.ollivierlapeyre@gmail.com") );
0053     }
0054     else {
0055         Settings::instance( QStringLiteral( "klicketyrc" ) );
0056         aboutData.addAuthor( i18n( "Nicolas Hadacek" ), i18n( "Original author" ), QStringLiteral("hadacek@kde.org") );
0057         aboutData.addAuthor( i18n( "Ni Hui" ), i18n( "Rewrite for KDE4. Current maintainer" ), QStringLiteral("shuizhuyuanluo@126.com") );
0058         aboutData.addCredit( i18n( "Dan Hill" ), i18n( "Icons" ) );
0059     }
0060 
0061     // see if we are starting with session management
0062     if ( app.isSessionRestored() ) {
0063         kRestoreMainWindows<MainWindow>();
0064     }
0065     else {
0066         MainWindow* window = new MainWindow( kSameMode );
0067         window->show();
0068     }
0069 
0070     KDBusService service;
0071 
0072     return app.exec();
0073 }