File indexing completed on 2024-05-12 05:37:14

0001 /*
0002     SPDX-FileCopyrightText: 2021 Aleix Pol Gonzalez <aleixpol@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005 */
0006 
0007 #include "lookandfeelqmlplugin.h"
0008 
0009 #include "kpackageinterface.h"
0010 #include <KConfigGroup>
0011 #include <KPackage/PackageLoader>
0012 #include <KSharedConfig>
0013 #include <QQmlEngine>
0014 
0015 using namespace Qt::StringLiterals;
0016 
0017 void SessionsPrivatePlugin::registerTypes(const char *uri)
0018 {
0019     Q_ASSERT(uri == QLatin1String("org.kde.plasma.lookandfeel"));
0020 
0021     qmlRegisterSingletonType<KPackageInterface>(uri, 1, 0, "LookAndFeel", [](QQmlEngine *, QJSEngine *) {
0022         KConfigGroup cg(KSharedConfig::openConfig(), u"KDE"_s);
0023         const QString packageName = cg.readEntry("LookAndFeelPackage", QString());
0024         const auto package = KPackage::PackageLoader::self()->loadPackage(QStringLiteral("Plasma/LookAndFeel"), packageName);
0025         return new KPackageInterface(package);
0026     });
0027 }