aboutsummaryrefslogtreecommitdiff
path: root/src/core/kcoreconfigskeleton.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/kcoreconfigskeleton.cpp')
-rw-r--r--src/core/kcoreconfigskeleton.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/core/kcoreconfigskeleton.cpp b/src/core/kcoreconfigskeleton.cpp
index b3eb0019..34c58ff6 100644
--- a/src/core/kcoreconfigskeleton.cpp
+++ b/src/core/kcoreconfigskeleton.cpp
@@ -135,11 +135,31 @@ bool KConfigSkeletonItem::isImmutable() const
return d->mIsImmutable;
}
+bool KConfigSkeletonItem::isDefault() const
+{
+ return d->mIsDefaultImpl();
+}
+
+bool KConfigSkeletonItem::isSaveNeeded() const
+{
+ return d->mIsSaveNeededImpl();
+}
+
void KConfigSkeletonItem::readImmutability(const KConfigGroup &group)
{
d->mIsImmutable = group.isEntryImmutable(mKey);
}
+void KConfigSkeletonItem::setIsDefaultImpl(const std::function<bool ()> &impl)
+{
+ d->mIsDefaultImpl = impl;
+}
+
+void KConfigSkeletonItem::setIsSaveNeededImpl(const std::function<bool ()> &impl)
+{
+ d->mIsSaveNeededImpl = impl;
+}
+
KCoreConfigSkeleton::ItemString::ItemString(const QString &_group, const QString &_key,
QString &reference,
const QString &defaultValue,
@@ -1091,6 +1111,28 @@ void KCoreConfigSkeleton::read()
usrRead();
}
+bool KCoreConfigSkeleton::isDefaults() const
+{
+ KConfigSkeletonItem::List::ConstIterator it;
+ for (it = d->mItems.constBegin(); it != d->mItems.constEnd(); ++it) {
+ if (!(*it)->isDefault()) {
+ return false;
+ }
+ }
+ return true;
+}
+
+bool KCoreConfigSkeleton::isSaveNeeded() const
+{
+ KConfigSkeletonItem::List::ConstIterator it;
+ for (it = d->mItems.constBegin(); it != d->mItems.constEnd(); ++it) {
+ if ((*it)->isSaveNeeded()) {
+ return true;
+ }
+ }
+ return false;
+}
+
bool KCoreConfigSkeleton::save()
{
//qDebug();
@@ -1394,6 +1436,9 @@ KConfigCompilerSignallingItem::KConfigCompilerSignallingItem(KConfigSkeletonItem
Q_ASSERT(mTargetFunction);
Q_ASSERT(mItem);
Q_ASSERT(mObject);
+
+ setIsDefaultImpl([this] { return mItem->isDefault(); });
+ setIsSaveNeededImpl([this] { return mItem->isSaveNeeded(); });
}
KConfigCompilerSignallingItem::~KConfigCompilerSignallingItem()