File indexing completed on 2024-05-19 16:38:18
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 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) 0025 QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); 0026 QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); 0027 #endif 0028 QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts); 0029 QCoreApplication::setOrganizationName(QStringLiteral("PlankPlayer")); 0030 QCoreApplication::setApplicationName(QStringLiteral("PlankPlayer")); 0031 0032 QQuickStyle::setStyle(QStringLiteral("org.kde.desktop")); 0033 QQuickStyle::setFallbackStyle(QStringLiteral("Fusion")); 0034 QGuiApplication app(argc, argv); 0035 KLocalizedString::setApplicationDomain("plank-player"); 0036 0037 QQmlApplicationEngine engine; 0038 engine.rootContext()->setContextObject(new KLocalizedContext(&engine)); 0039 QUrl homePath(QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); 0040 engine.rootContext()->setContextProperty(QStringLiteral("HomeDirectory"), homePath); 0041 0042 QString argumentFileUrl; 0043 0044 if (arguments.count() > 1) { 0045 QUrl url = QUrl::fromUserInput(arguments.at(1)); 0046 if (url.isValid()) { 0047 argumentFileUrl = url.toString(); 0048 } 0049 } 0050 0051 engine.rootContext()->setContextProperty(QStringLiteral("argumentFileUrl"), argumentFileUrl); 0052 0053 const QUrl url(QStringLiteral("qrc:/qml/main.qml")); 0054 QObject::connect(&engine, &QQmlApplicationEngine::objectCreated, 0055 &app, [url](QObject *obj, const QUrl &objUrl) { 0056 if (!obj && url == objUrl) 0057 QCoreApplication::exit(-1); 0058 }, Qt::QueuedConnection); 0059 engine.load(url); 0060 0061 return app.exec(); 0062 }