File indexing completed on 2024-05-12 04:02:24

0001 /* -*- C++ -*-
0002     This file is part of ThreadWeaver.
0003 
0004     SPDX-FileCopyrightText: 2005-2014 Mirko Boehm <mirko@kde.org>
0005 
0006     SPDX-License-Identifier: LGPL-2.0-or-later
0007 */
0008 
0009 #include <iostream>
0010 
0011 #include <QApplication>
0012 #include <QCommandLineOption>
0013 #include <QCommandLineParser>
0014 #include <QFileInfoList>
0015 #include <QTest>
0016 
0017 #include "Benchmark.h"
0018 #include "MainWindow.h"
0019 #include "Model.h"
0020 
0021 using namespace std;
0022 
0023 int main(int argc, char **argv)
0024 {
0025     QApplication app(argc, argv);
0026     app.setApplicationName(QLatin1String("ThumbNailer"));
0027     app.setOrganizationDomain(QLatin1String("kde.org"));
0028     QCommandLineParser parser;
0029     parser.setApplicationDescription(app.translate("main", "ThreadWeaver ThumbNailer Example"));
0030     parser.addHelpOption();
0031     parser.addPositionalArgument(QLatin1String("mode"), QLatin1String("Benchmark or demo mode"));
0032     parser.process(app);
0033     const QStringList positionals = parser.positionalArguments();
0034     const QString mode = positionals.isEmpty() ? QLatin1String("demo") : positionals[0];
0035     if (mode == QLatin1String("benchmark")) {
0036         Benchmark benchmark;
0037         const QStringList arguments = app.arguments().mid(1); // remove mode selection
0038         return QTest::qExec(&benchmark, arguments);
0039     } else if (mode == QLatin1String("demo")) {
0040         // demo mode
0041         MainWindow mainWindow;
0042         mainWindow.show();
0043         return app.exec();
0044     } else {
0045         wcerr << "Unknown mode " << mode.toStdWString() << endl << endl;
0046         parser.showHelp();
0047         Q_UNREACHABLE();
0048     }
0049     return 0;
0050 }