File indexing completed on 2024-05-12 04:34:10

0001 /*
0002     SPDX-FileCopyrightText: 2010 Aleix Pol <aleixpol@kde.org>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include <QApplication>
0008 
0009 #include <KLocalizedContext>
0010 #include <QCommandLineParser>
0011 #include <QDebug>
0012 #include <QDir>
0013 #include <QFileInfo>
0014 #include <QIcon>
0015 #include <QQmlApplicationEngine>
0016 #include <QQmlContext>
0017 #include <QQmlEngine>
0018 #include <QStandardPaths>
0019 #include <QTimer>
0020 
0021 #include "aboutdata.h"
0022 
0023 #ifdef __ANDROID__
0024 #include "android.h"
0025 
0026 Q_DECL_EXPORT
0027 #endif
0028 int main(int argc, char *argv[])
0029 {
0030     QApplication app(argc, argv);
0031     app.setApplicationName(QStringLiteral("okularkirigami"));
0032 
0033     KLocalizedString::setApplicationDomain("org.kde.active.documentviewer");
0034 
0035     KAboutData aboutData = okularAboutData();
0036     KAboutData::setApplicationData(aboutData);
0037 
0038     QCommandLineParser parser;
0039     // parser.setApplicationDescription(i18n("Okular mobile"));
0040     aboutData.setupCommandLine(&parser);
0041     parser.process(app);
0042     aboutData.processCommandLine(&parser);
0043     QQmlApplicationEngine engine;
0044 
0045 #ifdef __ANDROID__
0046     AndroidInstance::handleViewIntent();
0047     qmlRegisterSingletonType<QObject>("org.kde.okular.app", 2, 0, "AndroidInstance", [](QQmlEngine *, QJSEngine *) -> QObject * { return new AndroidInstance; });
0048     const QString uri = URIHandler::handler.m_lastUrl;
0049 #else
0050     qmlRegisterSingletonType<QObject>("org.kde.okular.app", 2, 0, "AndroidInstance", [](QQmlEngine *, QJSEngine *) -> QObject * { return new QObject; });
0051     const QString uri = parser.positionalArguments().count() == 1 ? QUrl::fromUserInput(parser.positionalArguments().constFirst(), {}, QUrl::AssumeLocalFile).toString() : QString();
0052 #endif
0053     // TODO move away from context property when possible
0054     engine.rootContext()->setContextObject(new KLocalizedContext(&engine));
0055     engine.rootContext()->setContextProperty(QStringLiteral("uri"), uri);
0056     engine.rootContext()->setContextProperty(QStringLiteral("about"), QVariant::fromValue(aboutData));
0057     QVariantMap paths;
0058     paths[QStringLiteral("desktop")] = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);
0059     paths[QStringLiteral("documents")] = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
0060     paths[QStringLiteral("music")] = QStandardPaths::writableLocation(QStandardPaths::MusicLocation);
0061     paths[QStringLiteral("movies")] = QStandardPaths::writableLocation(QStandardPaths::MoviesLocation);
0062     paths[QStringLiteral("pictures")] = QStandardPaths::writableLocation(QStandardPaths::PicturesLocation);
0063     paths[QStringLiteral("home")] = QStandardPaths::writableLocation(QStandardPaths::HomeLocation);
0064     engine.rootContext()->setContextProperty(QStringLiteral("userPaths"), paths);
0065 
0066     engine.setBaseUrl(QUrl(QStringLiteral("qrc:/package/contents/ui/")));
0067     engine.load(QUrl(QStringLiteral("qrc:/package/contents/ui/main.qml")));
0068     return app.exec();
0069 }