aboutsummaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/kconfig.cpp6
-rw-r--r--src/core/kconfig_p.h3
-rw-r--r--src/core/kconfigdata.cpp3
-rw-r--r--src/core/kconfigdata.h2
-rw-r--r--src/core/kconfiggroup.cpp14
-rw-r--r--src/core/kconfiggroup.h5
6 files changed, 26 insertions, 7 deletions
diff --git a/src/core/kconfig.cpp b/src/core/kconfig.cpp
index b78196d6..e1b11edd 100644
--- a/src/core/kconfig.cpp
+++ b/src/core/kconfig.cpp
@@ -1011,9 +1011,11 @@ void KConfigPrivate::putData(const QByteArray &group, const char *key,
}
}
-void KConfigPrivate::revertEntry(const QByteArray &group, const char *key)
+void KConfigPrivate::revertEntry(const QByteArray &group, const char *key, KConfigBase::WriteConfigFlags flags)
{
- bool dirtied = entryMap.revertEntry(group, key);
+ KEntryMap::EntryOptions options = convertToOptions(flags);
+
+ bool dirtied = entryMap.revertEntry(group, key, options);
if (dirtied) {
bDirty = true;
}
diff --git a/src/core/kconfig_p.h b/src/core/kconfig_p.h
index 7433ab2f..ac4cd631 100644
--- a/src/core/kconfig_p.h
+++ b/src/core/kconfig_p.h
@@ -50,7 +50,8 @@ public:
void putData(const QByteArray &group, const char *key, const QByteArray &value,
KConfigBase::WriteConfigFlags flags, bool expand = false);
- void revertEntry(const QByteArray &group, const char *key);
+ void revertEntry(const QByteArray &group, const char *key,
+ KConfigBase::WriteConfigFlags flags);
QStringList groupList(const QByteArray &group) const;
// copies the entries from @p source to @p otherGroup changing all occurrences
// of @p source with @p destination
diff --git a/src/core/kconfigdata.cpp b/src/core/kconfigdata.cpp
index d80b7d07..e1f4ee73 100644
--- a/src/core/kconfigdata.cpp
+++ b/src/core/kconfigdata.cpp
@@ -309,7 +309,7 @@ void KEntryMap::setEntryOption(QMap< KEntryKey, KEntry >::Iterator it, KEntryMap
}
}
-bool KEntryMap::revertEntry(const QByteArray &group, const QByteArray &key, KEntryMap::SearchFlags flags)
+bool KEntryMap::revertEntry(const QByteArray &group, const QByteArray &key, KEntryMap::EntryOptions options, KEntryMap::SearchFlags flags)
{
Q_ASSERT((flags & KEntryMap::SearchDefaults) == 0);
Iterator entry = findEntry(group, key, flags);
@@ -330,6 +330,7 @@ bool KEntryMap::revertEntry(const QByteArray &group, const QByteArray &key, KEnt
} else {
entry->mValue = QByteArray();
}
+ entry->bNotify = entry->bNotify || (options & EntryNotify);
entry->bDirty = true;
entry->bReverted = true; // skip it when writing out to disk
diff --git a/src/core/kconfigdata.h b/src/core/kconfigdata.h
index 2a5c643d..2d095034 100644
--- a/src/core/kconfigdata.h
+++ b/src/core/kconfigdata.h
@@ -223,7 +223,7 @@ public:
setEntryOption(findEntry(group, key, flags), option, bf);
}
- bool revertEntry(const QByteArray &group, const QByteArray &key, SearchFlags flags = SearchFlags());
+ bool revertEntry(const QByteArray &group, const QByteArray &key, EntryOptions options, SearchFlags flags = SearchFlags());
};
Q_DECLARE_OPERATORS_FOR_FLAGS(KEntryMap::SearchFlags)
Q_DECLARE_OPERATORS_FOR_FLAGS(KEntryMap::EntryOptions)
diff --git a/src/core/kconfiggroup.cpp b/src/core/kconfiggroup.cpp
index cb40b60a..92c58f6e 100644
--- a/src/core/kconfiggroup.cpp
+++ b/src/core/kconfiggroup.cpp
@@ -1164,15 +1164,25 @@ void KConfigGroup::deleteEntry(const QString &key, WriteConfigFlags flags)
void KConfigGroup::revertToDefault(const char *key)
{
+ revertToDefault(key, WriteConfigFlags());
+}
+
+void KConfigGroup::revertToDefault(const char *key, WriteConfigFlags flags)
+{
Q_ASSERT_X(isValid(), "KConfigGroup::revertToDefault", "accessing an invalid group");
Q_ASSERT_X(!d->bConst, "KConfigGroup::revertToDefault", "writing to a read-only group");
- config()->d_func()->revertEntry(d->fullName(), key);
+ config()->d_func()->revertEntry(d->fullName(), key, flags);
}
void KConfigGroup::revertToDefault(const QString &key)
{
- revertToDefault(key.toUtf8().constData());
+ revertToDefault(key, WriteConfigFlags());
+}
+
+void KConfigGroup::revertToDefault(const QString &key, WriteConfigFlags flags)
+{
+ revertToDefault(key.toUtf8().constData(), flags);
}
bool KConfigGroup::hasDefault(const char *key) const
diff --git a/src/core/kconfiggroup.h b/src/core/kconfiggroup.h
index 0cedeaa7..8b0174b1 100644
--- a/src/core/kconfiggroup.h
+++ b/src/core/kconfiggroup.h
@@ -578,9 +578,14 @@ public:
*
* @param key The key of the entry to revert.
*/
+ // TODO KF6 merge with the other one
void revertToDefault(const QString &key);
+ void revertToDefault(const QString &key, WriteConfigFlags pFlag);
+
/** Overload for revertToDefault(const QString&) */
+ // TODO KF6 merge with the other one
void revertToDefault(const char *key);
+ void revertToDefault(const char *key, WriteConfigFlags pFlag);
/**
* Whether a default is specified for an entry in either the