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