File indexing completed on 2026-08-09 07:09:55
0001 /* 0002 SPDX-FileCopyrightText: 2020 Benjamin Port <benjamin.port@enioka.com> 0003 0004 SPDX-License-Identifier: LGPL-2.0-only 0005 */ 0006 0007 #include "kcmoduledata.h" 0008 0009 #include <QList> 0010 #include <QPointer> 0011 0012 #include <KCoreConfigSkeleton> 0013 0014 class KCModuleDataPrivate 0015 { 0016 public: 0017 explicit KCModuleDataPrivate(KCModuleData *probe) 0018 : _q(probe) 0019 { 0020 } 0021 0022 KCModuleData *_q; 0023 QList<QPointer<KCoreConfigSkeleton>> _skeletons; 0024 }; 0025 0026 KCModuleData::KCModuleData(QObject *parent) 0027 : QObject(parent) 0028 , d(new KCModuleDataPrivate(this)) 0029 { 0030 connect(this, &KCModuleData::aboutToLoad, this, &KCModuleData::loaded); 0031 QMetaObject::invokeMethod( 0032 this, 0033 [this] { 0034 aboutToLoad(QPrivateSignal()); 0035 }, 0036 Qt::QueuedConnection); 0037 } 0038 0039 KCModuleData::~KCModuleData() = default; 0040 0041 void KCModuleData::registerSkeleton(KCoreConfigSkeleton *skeleton) 0042 { 0043 if (!skeleton || d->_skeletons.contains(skeleton)) { 0044 return; 0045 } 0046 0047 d->_skeletons.append(skeleton); 0048 } 0049 0050 bool KCModuleData::isDefaults() const 0051 { 0052 bool defaults = true; 0053 for (const auto &skeleton : std::as_const(d->_skeletons)) { 0054 defaults &= skeleton->isDefaults(); 0055 } 0056 return defaults; 0057 } 0058 0059 void KCModuleData::revertToDefaults() 0060 { 0061 for (const auto &skeleton : std::as_const(d->_skeletons)) { 0062 skeleton->useDefaults(true); 0063 skeleton->save(); 0064 } 0065 } 0066 0067 void KCModuleData::autoRegisterSkeletons() 0068 { 0069 const auto skeletons = findChildren<KCoreConfigSkeleton *>(); 0070 for (auto *skeleton : skeletons) { 0071 registerSkeleton(skeleton); 0072 } 0073 } 0074 0075 bool KCModuleData::matchesQuery(const QString &query) const 0076 { 0077 // Currently not implemented, here for future use case 0078 Q_UNUSED(query) 0079 return false; 0080 } 0081 0082 #include "moc_kcmoduledata.cpp"