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 }