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.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/core/kcoreconfigskeleton.cpp b/src/core/kcoreconfigskeleton.cpp
index d02705d9..bfa3a60f 100644
--- a/src/core/kcoreconfigskeleton.cpp
+++ b/src/core/kcoreconfigskeleton.cpp
@@ -167,6 +167,12 @@ bool KConfigSkeletonItem::isSaveNeeded() const
return d->mIsSaveNeededImpl();
}
+QVariant KConfigSkeletonItem::getDefault() const
+{
+ Q_D(const KConfigSkeletonItem);
+ return d->mGetDefaultImpl();
+}
+
void KConfigSkeletonItem::readImmutability(const KConfigGroup &group)
{
Q_D(KConfigSkeletonItem);
@@ -185,6 +191,12 @@ void KConfigSkeletonItem::setIsSaveNeededImpl(const std::function<bool ()> &impl
d->mIsSaveNeededImpl = impl;
}
+void KConfigSkeletonItem::setGetDefaultImpl(const std::function<QVariant ()> &impl)
+{
+ Q_D(KConfigSkeletonItem);
+ d->mGetDefaultImpl = impl;
+}
+
KPropertySkeletonItem::KPropertySkeletonItem(QObject *object, const QByteArray &propertyName, const QVariant &defaultValue)
: KConfigSkeletonItem(*new KPropertySkeletonItemPrivate(object, propertyName, defaultValue), {}, {})
{
@@ -196,6 +208,10 @@ KPropertySkeletonItem::KPropertySkeletonItem(QObject *object, const QByteArray &
Q_D(const KPropertySkeletonItem);
return d->mReference != d->mLoadedValue;
});
+ setGetDefaultImpl([this] {
+ Q_D(const KPropertySkeletonItem);
+ return d->mDefaultValue;
+ });
}
QVariant KPropertySkeletonItem::property() const
@@ -1555,6 +1571,7 @@ KConfigCompilerSignallingItem::KConfigCompilerSignallingItem(KConfigSkeletonItem
setIsDefaultImpl([this] { return mItem->isDefault(); });
setIsSaveNeededImpl([this] { return mItem->isSaveNeeded(); });
+ setGetDefaultImpl([this] {return mItem->getDefault(); });
}
KConfigCompilerSignallingItem::~KConfigCompilerSignallingItem()