File indexing completed on 2024-05-12 17:08:56

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 void SessionsPrivatePlugin::registerTypes(const char *uri)
0016 {
0017     Q_ASSERT(uri == QLatin1String("org.kde.plasma.lookandfeel"));
0018 
0019     qmlRegisterSingletonType<KPackageInterface>(uri, 1, 0, "LookAndFeel", [](QQmlEngine *, QJSEngine *) {
0020         KConfigGroup cg(KSharedConfig::openConfig(), "KDE");
0021         const QString packageName = cg.readEntry("LookAndFeelPackage", QString());
0022         const auto package = KPackage::PackageLoader::self()->loadPackage(QStringLiteral("Plasma/LookAndFeel"), packageName);
0023         return new KPackageInterface(package);
0024     });
0025 }