Warning, file /plasma/kwin/src/kcms/scripts/kwinscriptsdata.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002     SPDX-FileCopyrightText: 2020 Cyril Rossi <cyril.rossi@enioka.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "kwinscriptsdata.h"
0008 
0009 #include <KConfigGroup>
0010 #include <KPackage/Package>
0011 #include <KPackage/PackageLoader>
0012 #include <KPackage/PackageStructure>
0013 #include <KPluginFactory>
0014 
0015 KWinScriptsData::KWinScriptsData(QObject *parent, const QVariantList &args)
0016     : KCModuleData(parent, args)
0017     , m_kwinConfig(KSharedConfig::openConfig("kwinrc"))
0018 {
0019 }
0020 
0021 QVector<KPluginMetaData> KWinScriptsData::pluginMetaDataList() const
0022 {
0023     auto filter = [](const KPluginMetaData &md) {
0024         return md.isValid() && !md.rawData().value("X-KWin-Exclude-Listing").toBool();
0025     };
0026 
0027     const QString scriptFolder = QStringLiteral("kwin/scripts/");
0028     return KPackage::PackageLoader::self()->findPackages(QStringLiteral("KWin/Script"), scriptFolder, filter).toVector();
0029 }
0030 
0031 bool KWinScriptsData::isDefaults() const
0032 {
0033     QVector<KPluginMetaData> plugins = pluginMetaDataList();
0034     KConfigGroup cfgGroup(m_kwinConfig, "Plugins");
0035     for (auto &plugin : plugins) {
0036         if (cfgGroup.readEntry(plugin.pluginId() + QLatin1String("Enabled"), plugin.isEnabledByDefault()) != plugin.isEnabledByDefault()) {
0037             return false;
0038         }
0039     }
0040 
0041     return true;
0042 }