/************************************************************************************* * Copyright (C) 2010 by Aleix Pol * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License * * as published by the Free Software Foundation; either version 2 * * of the License, or (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * *************************************************************************************/ #include #include #include #include #include #include #include #include #include #include #include #include #include "aboutdata.h" #ifdef __ANDROID__ #include "android.h" Q_DECL_EXPORT #endif int main(int argc, char *argv[]) { QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QApplication app(argc, argv); app.setApplicationName(QStringLiteral("okularkirigami")); KAboutData aboutData = okularAboutData(); KAboutData::setApplicationData(aboutData); QCommandLineParser parser; // parser.setApplicationDescription(i18n("Okular mobile")); aboutData.setupCommandLine(&parser); parser.process(app); aboutData.processCommandLine(&parser); QQmlApplicationEngine engine; #ifdef __ANDROID__ AndroidInstance::handleViewIntent(); qmlRegisterSingletonType("org.kde.okular.app", 2, 0, "AndroidInstance", [](QQmlEngine *, QJSEngine *) -> QObject * { return new AndroidInstance; }); const QString uri = URIHandler::handler.m_lastUrl; #else qmlRegisterSingletonType("org.kde.okular.app", 2, 0, "AndroidInstance", [](QQmlEngine *, QJSEngine *) -> QObject * { return new QObject; }); const QString uri = parser.positionalArguments().count() == 1 ? QUrl::fromUserInput(parser.positionalArguments().constFirst(), {}, QUrl::AssumeLocalFile).toString() : QString(); #endif // TODO move away from context property when possible engine.rootContext()->setContextObject(new KLocalizedContext(&engine)); engine.rootContext()->setContextProperty(QStringLiteral("uri"), uri); engine.rootContext()->setContextProperty(QStringLiteral("about"), QVariant::fromValue(aboutData)); QVariantMap paths; paths[QStringLiteral("desktop")] = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation); paths[QStringLiteral("documents")] = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation); paths[QStringLiteral("music")] = QStandardPaths::writableLocation(QStandardPaths::MusicLocation); paths[QStringLiteral("movies")] = QStandardPaths::writableLocation(QStandardPaths::MoviesLocation); paths[QStringLiteral("pictures")] = QStandardPaths::writableLocation(QStandardPaths::PicturesLocation); paths[QStringLiteral("home")] = QStandardPaths::writableLocation(QStandardPaths::HomeLocation); engine.rootContext()->setContextProperty(QStringLiteral("userPaths"), paths); engine.setBaseUrl(QUrl(QStringLiteral("qrc:/package/contents/ui/"))); engine.load(QUrl(QStringLiteral("qrc:/package/contents/ui/main.qml"))); return app.exec(); }