diff --git a/src/core/kcoreconfigskeleton.h b/src/core/kcoreconfigskeleton.h --- a/src/core/kcoreconfigskeleton.h +++ b/src/core/kcoreconfigskeleton.h @@ -52,6 +52,7 @@ */ class KCONFIGCORE_EXPORT KConfigSkeletonItem { + Q_DECLARE_PRIVATE(KConfigSkeletonItem) public: typedef QList < KConfigSkeletonItem * >List; typedef QHash < QString, KConfigSkeletonItem * > Dict; @@ -226,6 +227,8 @@ bool isSaveNeeded() const; protected: + explicit KConfigSkeletonItem(KConfigSkeletonItemPrivate &dd, const QString &_group, const QString &_key); + /** * sets mIsImmutable to true if mKey in config is immutable * @param group KConfigGroup to check if mKey is immutable in @@ -241,8 +244,7 @@ void setIsDefaultImpl(const std::function &impl); void setIsSaveNeededImpl(const std::function &impl); -private: - KConfigSkeletonItemPrivate *const d; + KConfigSkeletonItemPrivate *const d_ptr; }; /** diff --git a/src/core/kcoreconfigskeleton.cpp b/src/core/kcoreconfigskeleton.cpp --- a/src/core/kcoreconfigskeleton.cpp +++ b/src/core/kcoreconfigskeleton.cpp @@ -37,17 +37,26 @@ return result; } +KConfigSkeletonItemPrivate::~KConfigSkeletonItemPrivate() = default; + KConfigSkeletonItem::KConfigSkeletonItem(const QString &_group, const QString &_key) : mGroup(_group) , mKey(_key) - , d(new KConfigSkeletonItemPrivate) + , d_ptr(new KConfigSkeletonItemPrivate) +{ +} + +KConfigSkeletonItem::KConfigSkeletonItem(KConfigSkeletonItemPrivate &dd, const QString &_group, const QString &_key) + : mGroup(_group) + , mKey(_key) + , d_ptr(&dd) { } KConfigSkeletonItem::~KConfigSkeletonItem() { - delete d; + delete d_ptr; } void KConfigSkeletonItem::setGroup(const QString &_group) @@ -82,41 +91,49 @@ void KConfigSkeletonItem::setLabel(const QString &l) { + Q_D(KConfigSkeletonItem); d->mLabel = l; } QString KConfigSkeletonItem::label() const { + Q_D(const KConfigSkeletonItem); return d->mLabel; } void KConfigSkeletonItem::setToolTip(const QString &t) { + Q_D(KConfigSkeletonItem); d->mToolTip = t; } QString KConfigSkeletonItem::toolTip() const { + Q_D(const KConfigSkeletonItem); return d->mToolTip; } void KConfigSkeletonItem::setWhatsThis(const QString &w) { + Q_D(KConfigSkeletonItem); d->mWhatsThis = w; } QString KConfigSkeletonItem::whatsThis() const { + Q_D(const KConfigSkeletonItem); return d->mWhatsThis; } void KConfigSkeletonItem::setWriteFlags(KConfigBase::WriteConfigFlags flags) { + Q_D(KConfigSkeletonItem); d->mWriteFlags = flags; } KConfigBase::WriteConfigFlags KConfigSkeletonItem::writeFlags() const { + Q_D(const KConfigSkeletonItem); return d->mWriteFlags; } @@ -132,31 +149,37 @@ bool KConfigSkeletonItem::isImmutable() const { + Q_D(const KConfigSkeletonItem); return d->mIsImmutable; } bool KConfigSkeletonItem::isDefault() const { + Q_D(const KConfigSkeletonItem); return d->mIsDefaultImpl(); } bool KConfigSkeletonItem::isSaveNeeded() const { + Q_D(const KConfigSkeletonItem); return d->mIsSaveNeededImpl(); } void KConfigSkeletonItem::readImmutability(const KConfigGroup &group) { + Q_D(KConfigSkeletonItem); d->mIsImmutable = group.isEntryImmutable(mKey); } void KConfigSkeletonItem::setIsDefaultImpl(const std::function &impl) { + Q_D(KConfigSkeletonItem); d->mIsDefaultImpl = impl; } void KConfigSkeletonItem::setIsSaveNeededImpl(const std::function &impl) { + Q_D(KConfigSkeletonItem); d->mIsSaveNeededImpl = impl; } diff --git a/src/core/kcoreconfigskeleton_p.h b/src/core/kcoreconfigskeleton_p.h --- a/src/core/kcoreconfigskeleton_p.h +++ b/src/core/kcoreconfigskeleton_p.h @@ -54,6 +54,7 @@ : mIsImmutable(true) , mWriteFlags(KConfigBase::Normal) {} + virtual ~KConfigSkeletonItemPrivate(); bool mIsImmutable; ///< Indicates this item is immutable KConfigBase::WriteConfigFlags mWriteFlags; ///< The flags to pass to calls of writeEntry() and revertToDefault()