File indexing completed on 2025-10-19 05:18:32
0001 // SPDX-FileCopyrightText: 2021 Aditya Mehra <aix.m@outlook.com> 0002 // 0003 // SPDX-License-Identifier: GPL-2.0-or-later 0004 0005 #include <QGuiApplication> 0006 #include <QQmlApplicationEngine> 0007 #include <QQuickStyle> 0008 #include <QStandardPaths> 0009 #include <QQmlContext> 0010 0011 #include <KLocalizedContext> 0012 #include <KLocalizedString> 0013 0014 int main(int argc, char *argv[]) 0015 { 0016 QStringList arguments; 0017 for (int a = 0; a < argc; ++a) { 0018 arguments << QString::fromLocal8Bit(argv[a]); 0019 } 0020 0021 qputenv("QT_VIRTUALKEYBOARD_DESKTOP_DISABLE", QByteArray("0")); 0022 qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard")); 0023 0024 QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts); 0025 QCoreApplication::setOrganizationName(QStringLiteral("PlankPlayer")); 0026 QCoreApplication::setApplicationName(QStringLiteral("PlankPlayer")); 0027 0028 QQuickStyle::setStyle(QStringLiteral("org.kde.desktop")); 0029 QQuickStyle::setFallbackStyle(QStringLiteral("Fusion")); 0030 QGuiApplication app(argc, argv); 0031 KLocalizedString::setApplicationDomain(QByteArrayLiteral("plank-player")); 0032 0033 QQmlApplicationEngine engine; 0034 engine.rootContext()->setContextObject(new KLocalizedContext(&engine)); 0035 QUrl homePath(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); 0036 engine.rootContext()->setContextProperty(QStringLiteral("HomeDirectory"), homePath); 0037 0038 QString argumentFileUrl; 0039 0040 if (arguments.count() > 1) { 0041 QUrl url = QUrl::fromUserInput(arguments.at(1)); 0042 if (url.isValid()) { 0043 argumentFileUrl = url.toString(); 0044 } 0045 } 0046 0047 engine.rootContext()->setContextProperty(QStringLiteral("argumentFileUrl"), argumentFileUrl); 0048 0049 const QUrl url(QStringLiteral("qrc:/qml/main.qml")); 0050 QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, 0051 &app, [url](QObject *obj, const QUrl &objUrl) { 0052 if (!obj && url == objUrl) 0053 QCoreApplication::exit(-1); 0054 }, Qt::QueuedConnection); 0055 engine.load(url); 0056 0057 return app.exec(); 0058 }