File indexing completed on 2024-05-12 05:14:03
0001 /* 0002 SPDX-FileCopyrightText: 2018 Volker Krause <vkrause@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "pkpassmanager.h" 0008 #include "pkpassimageprovider.h" 0009 #include "util.h" 0010 0011 #include <KPkPass/Field> 0012 #include <KPkPass/Barcode> 0013 #include <KPkPass/BoardingPass> 0014 0015 #include <KLocalizedContext> 0016 0017 #include <QQmlApplicationEngine> 0018 #include <QQmlContext> 0019 0020 #include <QDebug> 0021 #include <QGuiApplication> 0022 #include <QUrl> 0023 0024 int main(int argc, char **argv) 0025 { 0026 QCoreApplication::setApplicationName(QStringLiteral("pkpassviewer")); 0027 QCoreApplication::setOrganizationName(QStringLiteral("KDE")); 0028 QCoreApplication::setOrganizationDomain(QStringLiteral("kde.org")); 0029 QGuiApplication app(argc, argv); 0030 0031 if (app.arguments().size() <= 1) { 0032 qCritical("Missing command line argument!"); 0033 exit(1); 0034 } 0035 0036 PkPassManager passMgr; 0037 const auto passId = passMgr.importPass(QUrl::fromLocalFile(app.arguments().at(1))); 0038 if (passId.isEmpty()) { 0039 qCritical("Failed to open or parse pkpass file!"); 0040 exit(1); 0041 } 0042 0043 qmlRegisterUncreatableMetaObject(KPkPass::Barcode::staticMetaObject, "org.kde.pkpass", 1, 0, "Barcode", {}); 0044 qmlRegisterUncreatableMetaObject(KPkPass::Field::staticMetaObject, "org.kde.pkpass", 1, 0, "Field", {}); 0045 qmlRegisterUncreatableType<KPkPass::Pass>("org.kde.pkpass", 1, 0, "Pass", {}); 0046 qmlRegisterUncreatableType<KPkPass::BoardingPass>("org.kde.pkpass", 1, 0, "BoardingPass", {}); 0047 qmlRegisterSingletonType("org.kde.itinerary", 1, 0, "Util", [](QQmlEngine*, QJSEngine *engine) -> QJSValue { 0048 return engine->toScriptValue(Util()); 0049 }); 0050 0051 QQmlApplicationEngine engine; 0052 engine.rootContext()->setContextObject(new KLocalizedContext(&engine)); 0053 engine.addImageProvider(QStringLiteral("org.kde.pkpass"), new PkPassImageProvider(&passMgr)); 0054 engine.rootContext()->setContextProperty(QStringLiteral("_passId"), passId); 0055 engine.rootContext()->setContextProperty(QStringLiteral("_pass"), passMgr.pass(passId)); 0056 engine.load(QStringLiteral("qrc:/qt/qml/org/kde/itinerary/pkpassviewer.qml")); 0057 0058 return app.exec(); 0059 } 0060