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

0001 /*.
0002     SPDX-FileCopyrightText: 2007 Vladimir Kuznetsov <ks.vladimir@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include <QApplication>
0008 #include <QCommandLineParser>
0009 #include <QDebug>
0010 #include <QDir>
0011 #include <QIcon>
0012 #include <QUrl>
0013 
0014 #include <KAboutData>
0015 #include <KCrash>
0016 #include <KLocalizedString>
0017 
0018 #include "mainwindow.h"
0019 
0020 #include "step_version.h"
0021 
0022 int main(int argc, char* argv[])
0023 {
0024     QApplication app(argc, argv);
0025     KLocalizedString::setApplicationDomain("step");
0026 
0027     app.setAttribute(Qt::AA_UseHighDpiPixmaps, true);
0028 
0029 
0030     KAboutData aboutData(QStringLiteral("step"),
0031                          i18n("Step"),
0032                          STEP_VERSION_STRING,
0033                          i18n("Interactive physical simulator"),
0034                          KAboutLicense::GPL,
0035                          i18n("(C) 2007 Vladimir Kuznetsov"),
0036                          QString(),
0037                          i18n("https://edu.kde.org/step")
0038     );
0039 
0040     aboutData.addAuthor(
0041         QStringLiteral("Vladimir Kuznetsov"),
0042         i18n("Original author"),
0043         i18n("ks.vladimir@gmail.com")
0044     );
0045 
0046     aboutData.addAuthor(
0047         QStringLiteral("Carsten Niehaus"),
0048         i18n("Code contributions"),
0049         i18n("cniehaus@kde.org")
0050     );
0051 
0052     KAboutData::setApplicationData(aboutData);
0053     QApplication::setWindowIcon(QIcon::fromTheme(QStringLiteral("step")));
0054 
0055     KCrash::initialize();
0056 
0057     QCommandLineParser parser;
0058 
0059     QCommandLineOption option(QStringList() << QStringLiteral("+[url]") << i18n( "Document to open" ));
0060     parser.addOption(option);
0061 
0062     parser.process(app);
0063 
0064     MainWindow* mainWindow = new MainWindow();
0065     mainWindow->show();
0066 
0067     const QStringList args = parser.positionalArguments();
0068 
0069     if(args.count() > 0) {
0070         //qDebug() << args[0] << endl;
0071         // open the step files passed as arguments as relative or absolute paths
0072         mainWindow->openFile(
0073             (QUrl(args[0], QUrl::TolerantMode).isRelative() && !QDir::isAbsolutePath(args[0]))
0074             ? QUrl::fromLocalFile(QDir::current().absoluteFilePath(args[0]))
0075             : QUrl::fromUserInput(args[0])
0076         );
0077     }
0078 
0079     return app.exec();
0080 }