File indexing completed on 2024-05-05 17:32:16
0001 /* 0002 0003 SPDX-FileCopyrightText: 2019 Nicolas Fella <nicolas.fella@gmx.de> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #include "module.h" 0009 0010 #include <KPluginFactory> 0011 0012 KQuickConfigModule *Module::kcm() const 0013 { 0014 return m_kcm; 0015 } 0016 0017 QString Module::path() const 0018 { 0019 return m_path; 0020 } 0021 0022 void Module::setPath(const QString &path) 0023 { 0024 if (m_path == path) { 0025 return; 0026 } 0027 0028 // In case the user clicks from the UI we pass in the absolute path 0029 KPluginMetaData kcmMetaData(path); 0030 if (!kcmMetaData.isValid()) { 0031 // From the command line or DBus we usually get only the plugin id 0032 if (KPluginMetaData data(QStringLiteral("plasma/kcms/systemsettings/") + path); data.isValid()) { 0033 kcmMetaData = data; 0034 } 0035 } 0036 0037 if (kcmMetaData.isValid()) { 0038 m_path = kcmMetaData.fileName(); 0039 Q_EMIT pathChanged(); 0040 0041 m_kcm = KQuickConfigModuleLoader::loadModule(kcmMetaData, this).plugin; 0042 Q_EMIT kcmChanged(); 0043 Q_EMIT nameChanged(); 0044 0045 m_valid = true; 0046 Q_EMIT validChanged(); 0047 } else { 0048 qWarning() << "Unknown module" << path << "requested"; 0049 m_valid = false; 0050 Q_EMIT validChanged(); 0051 } 0052 } 0053 0054 bool Module::valid() 0055 { 0056 return m_valid; 0057 }