File indexing completed on 2024-05-12 16:06:53
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 }