File indexing completed on 2024-04-21 05:46:23

0001 /*
0002     SPDX-FileCopyrightText: 2007 Nicolas Ternisien <nicolas.ternisien@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include <QApplication>
0008 #include <QCommandLineParser>
0009 
0010 #include <KAboutData>
0011 #include <KLocalizedString>
0012 
0013 #include "ksystemlog_debug.h"
0014 #include "ksystemlog_version.h"
0015 #include "mainWindow.h"
0016 
0017 int main(int argc, char **argv)
0018 {
0019     QApplication const app(argc, argv);
0020 
0021     KLocalizedString::setApplicationDomain(QByteArrayLiteral("ksystemlog"));
0022 
0023     KAboutData about(QStringLiteral("ksystemlog"),
0024                      i18n("KSystemLog"),
0025                      QStringLiteral(KSYSTEMLOG_VERSION_STRING),
0026                      i18n("System Logs Viewer by KDE"),
0027                      KAboutLicense::GPL_V2,
0028                      i18n("(C) 2007-2015, Nicolas Ternisien"),
0029                      i18n("Do not hesitate to report bugs and problems to Nicolas Ternisien <a "
0030                           "href='mailto:nicolas.ternisien@gmail.com'>nicolas.ternisien@gmail.com</a>"),
0031                      QStringLiteral("https://apps.kde.org/en/ksystemlog"),
0032                      QString());
0033 
0034     about.addAuthor(i18n("Nicolas Ternisien"),
0035                     i18n("Main developer"),
0036                     QStringLiteral("nicolas.ternisien@gmail.com"),
0037                     QStringLiteral("https://www.forum-software.org"));
0038     about.addAuthor(i18n("Vyacheslav Matyushin"), i18n("Journald mode, bugfixes"), QStringLiteral("v.matyushin@gmail.com"));
0039     about.addCredit(i18n("Bojan Djurkovic"), i18n("Log Printing"), QStringLiteral("dbojan@gmail.com"));
0040     about.addCredit(i18n("Laurent Montel"), i18n("Bug Fixing"), QStringLiteral("montel@kde.org"));
0041 
0042     KAboutData::setApplicationData(about);
0043 
0044     app.setApplicationDisplayName(about.displayName());
0045 
0046     QApplication::setWindowIcon(QIcon::fromTheme(QStringLiteral("utilities-log-viewer")));
0047 
0048     QCommandLineParser parser;
0049     about.setupCommandLine(&parser);
0050     parser.setApplicationDescription(about.shortDescription());
0051 
0052     // url to open
0053     parser.addPositionalArgument(QStringLiteral("URL"), i18n("Document to open."));
0054 
0055     // do the command line parsing
0056     parser.process(app);
0057 
0058     // handle standard options
0059     about.processCommandLine(&parser);
0060 
0061     // See if we are starting with session management
0062     if (app.isSessionRestored()) {
0063         kRestoreMainWindows<KSystemLog::MainWindow>();
0064     } else {
0065         // No session... Just start up normally
0066 
0067         const QStringList args = parser.positionalArguments();
0068 
0069         if (args.isEmpty()) {
0070             new KSystemLog::MainWindow();
0071         } else {
0072             // KSystemLog::MainWindow* mainWindow;
0073             new KSystemLog::MainWindow();
0074             for (int i = 0, total = args.count(); i < total; ++i) {
0075                 qCDebug(KSYSTEMLOG) << "Loading file " << args.at(i);
0076 
0077                 // TODO Implement this kind of loading
0078                 // LogManager* firstLogManager = d->tabs->createTab();
0079                 // d->tabs->load(Globals::instance().findLogMode("openLogMode"), firstLogManager);
0080                 // Open log mode need to automatically find the passed url : args->url(i)
0081             }
0082         }
0083     }
0084 
0085     return app.exec();
0086 }