File indexing completed on 2024-04-21 03:51:10

0001 /*
0002     SPDX-FileCopyrightText: 1999-2001 Ewald Arnold <kvoctrain@ewald-arnold.de>
0003     SPDX-FileCopyrightText: 2006 Peter Hedlund <peter.hedlund@kdemail.net>
0004     SPDX-FileCopyrightText: 2007 Frederik Gladhorn <frederik.gladhorn@kdemail.net>
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 /// @file src/main.cpp
0009 
0010 #include "parleymainwindow.h"
0011 #include <config-parley.h>
0012 
0013 #include <KAboutData>
0014 #include <KCrash>
0015 #include <KLocalizedString>
0016 #include <QApplication>
0017 #include <QCommandLineParser>
0018 
0019 int main(int argc, char *argv[])
0020 {
0021     QApplication app(argc, argv);
0022 
0023     KLocalizedString::setApplicationDomain("parley");
0024 
0025     KAboutData aboutData(QStringLiteral("parley"), ki18n("Parley").toString(), PARLEY_VERSION_STRING);
0026     aboutData.setShortDescription(ki18n("Vocabulary Trainer").toString());
0027     aboutData.setLicense(KAboutLicense::GPL);
0028     aboutData.setCopyrightStatement(ki18n("© 1999-2002\tEwald Arnold\n"
0029                                           "© 2001-2002\tThe KDE team\n"
0030                                           "© 2004-2007\tPeter Hedlund\n"
0031                                           "© 2007-2010\tFrederik Gladhorn\n")
0032                                         .toString());
0033     aboutData.setOtherText(ki18n("Helps you train your vocabulary").toString());
0034     aboutData.setHomepage(QStringLiteral("https://edu.kde.org/parley"));
0035     aboutData.setBugAddress("submit@bugs.kde.org");
0036 
0037     aboutData.addAuthor(ki18n("Inge Wallin").toString(), ki18n("Developer and Co-maintainer").toString(), QStringLiteral("inge@lysator.liu.se"));
0038 
0039     aboutData.addAuthor(ki18n("Amarvir Singh").toString(), ki18n("Developer and Co-maintainer").toString(), QStringLiteral("amarvir.ammu.93@gmail.com"));
0040 
0041     aboutData.addAuthor(ki18n("Frederik Gladhorn").toString(), ki18n("Developer, former maintainer").toString(), QStringLiteral("gladhorn@kde.org"));
0042 
0043     aboutData.addAuthor(ki18n("Daniel Laidig").toString(), ki18n("Developer").toString(), QStringLiteral("d.laidig@gmx.de"));
0044 
0045     aboutData.addAuthor(ki18n("David Capel").toString(), ki18n("Practice Dialogs").toString(), QStringLiteral("wot.narg@gmail.com"));
0046 
0047     aboutData.addAuthor(ki18n("Avgoustinos Kadis").toString(), ki18n("Scripting").toString(), QStringLiteral("avgoustinos.kadis@kdemail.net"));
0048 
0049     aboutData.addAuthor(ki18n("Peter Hedlund").toString(),
0050                         ki18n("Countless fixes, former maintainer, port to KDE4").toString(),
0051                         QStringLiteral("peter.hedlund@kdemail.net"));
0052 
0053     aboutData.addAuthor(ki18n("Ewald Arnold").toString(),
0054                         ki18n("Original Author").toString(),
0055                         QStringLiteral("kvoctrain@ewald-arnold.de"),
0056                         QStringLiteral("http://www.ewald-arnold.de"));
0057 
0058     aboutData.addCredit(ki18n("Lee Olson").toString(), ki18n("Artwork and Oxygen Icons").toString());
0059 
0060     aboutData.addCredit(ki18n("Anne-Marie Mahfouf").toString(), ki18n("Port to KConfig XT").toString());
0061 
0062     aboutData.addCredit(ki18n("Jeremy Whiting").toString(), ki18n("Rewriting the kvtml library for KDE4").toString());
0063 
0064     aboutData.addCredit(ki18n("Markus Büchele").toString(), ki18n("Bug reports and testing on the way to KDE4").toString());
0065 
0066     aboutData.addCredit(ki18n("Ramona Knapp").toString(), ki18n("Conceived the name Parley").toString());
0067 
0068     KAboutData::setApplicationData(aboutData);
0069     QApplication::setApplicationName(QStringLiteral("parley"));
0070     QApplication::setApplicationVersion(PARLEY_VERSION_STRING);
0071     QApplication::setOrganizationDomain(QStringLiteral("kde.org"));
0072     QApplication::setWindowIcon(QIcon::fromTheme(QStringLiteral("parley")));
0073 
0074     KCrash::initialize();
0075 
0076     QCommandLineParser parser;
0077     parser.addPositionalArgument(ki18n("[file]").toString(), ki18n("Document file to open").toString());
0078 
0079     aboutData.setupCommandLine(&parser);
0080     parser.process(app);
0081     aboutData.processCommandLine(&parser);
0082 
0083     if (app.isSessionRestored()) {
0084         int n = 1;
0085         while (KMainWindow::canBeRestored(n)) {
0086             (new ParleyMainWindow())->restore(n);
0087             n++;
0088         }
0089         return app.exec();
0090     } else {
0091         KMainWindow *parleyApp;
0092 
0093         const QStringList args = parser.positionalArguments();
0094 
0095         if (!args.isEmpty()) {
0096             parleyApp = new ParleyMainWindow(QUrl::fromLocalFile(args.first()));
0097         } else {
0098             parleyApp = new ParleyMainWindow();
0099         }
0100 
0101         parleyApp->show();
0102         return app.exec();
0103     }
0104 }