File indexing completed on 2024-04-21 03:41:33

0001 // SPDX-FileCopyrightText: 2010 by Aleix Pol <aleixpol@kde.org>
0002 // SPDX-License-Identifier: GPL-2.0-or-later
0003 
0004 #include <QGuiApplication>
0005 #ifdef Q_OS_ANDROID
0006 #include <QQuickStyle>
0007 #else
0008 #include <QApplication>
0009 #endif
0010 
0011 #include <KAboutData>
0012 #include <KLocalizedContext>
0013 #include <KLocalizedString>
0014 
0015 #include <QCommandLineParser>
0016 #include <QIcon>
0017 #include <QQmlApplicationEngine>
0018 #include <QQmlContext>
0019 #include <QStandardPaths>
0020 
0021 #include "kalgebra_version.h"
0022 #include "kalgebramobile.h"
0023 
0024 Q_DECL_EXPORT int main(int argc, char *argv[])
0025 {
0026 #ifdef Q_OS_ANDROID
0027     QQuickStyle::setStyle("Material");
0028 #endif
0029 #ifdef Q_OS_ANDROID
0030     QGuiApplication app(argc, argv);
0031 #else
0032     QApplication app(argc, argv);
0033 #endif
0034     KLocalizedString::setApplicationDomain("kalgebramobile");
0035     KAboutData about(QStringLiteral("kalgebramobile"),
0036                      QStringLiteral("KAlgebra"),
0037                      QStringLiteral(KALGEBRA_VERSION_STRING),
0038                      i18n("A portable calculator"),
0039                      KAboutLicense::GPL,
0040                      i18n("(C) 2006-2023 Aleix Pol i Gonzalez"));
0041     about.addAuthor(i18n("Aleix Pol i Gonzalez"), i18nc("@info:credit", "Maintainer"), QStringLiteral("aleixpol@kde.org"));
0042     about.setTranslator(i18nc("NAME OF TRANSLATORS", "Your names"), i18nc("EMAIL OF TRANSLATORS", "Your emails"));
0043     KAboutData::setApplicationData(about);
0044     QGuiApplication::setWindowIcon(QIcon::fromTheme(QStringLiteral("kalgebra")));
0045 
0046     {
0047         QCommandLineParser parser;
0048         about.setupCommandLine(&parser);
0049         parser.process(app);
0050         about.processCommandLine(&parser);
0051     }
0052 
0053     KAlgebraMobile widget;
0054 
0055     QQmlApplicationEngine engine;
0056 
0057     qmlRegisterSingletonInstance("org.kde.kalgebra.mobile", 1, 0, "App", &widget);
0058     qmlRegisterSingletonType("org.kde.kalgebra.mobile", 1, 0, "About", [](QQmlEngine *engine, QJSEngine *) -> QJSValue {
0059         return engine->toScriptValue(KAboutData::applicationData());
0060     });
0061     engine.rootContext()->setContextObject(new KLocalizedContext(&engine));
0062     engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
0063     return app.exec();
0064 }