File indexing completed on 2024-05-12 17:08:38
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 KQuickAddons::ConfigModule *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 } else if (KPluginMetaData altData(QStringLiteral("kcms/") + path); altData.isValid()) { 0035 // Also check the old "kcms" namespace 0036 // TODO KF6 remove this branch of the if statement 0037 kcmMetaData = altData; 0038 } 0039 } 0040 0041 if (kcmMetaData.isValid()) { 0042 m_path = kcmMetaData.fileName(); 0043 Q_EMIT pathChanged(); 0044 0045 m_kcm = KPluginFactory::instantiatePlugin<KQuickAddons::ConfigModule>(kcmMetaData, this).plugin; 0046 Q_EMIT kcmChanged(); 0047 } else { 0048 qWarning() << "Unknown module" << path << "requested"; 0049 } 0050 }