diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-01-25 13:41:28 +0100 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-01-25 13:41:28 +0100 |
commit | 561dbfed6e139d2c07f607f652f2f7a42e73dcae (patch) | |
tree | 6d564270b5e1e38e453db35788e3bd5d5d9bad90 | |
parent | ca2b2e46333181cff8f20125454470a954d9fbc1 (diff) | |
download | sink-561dbfed6e139d2c07f607f652f2f7a42e73dcae.tar.gz sink-561dbfed6e139d2c07f607f652f2f7a42e73dcae.zip |
During modifications only modify what we really need to modify.
We used to delete all non-modified properties...
-rw-r--r-- | common/configstore.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/common/configstore.cpp b/common/configstore.cpp index ff5ba3d..1ae9da8 100644 --- a/common/configstore.cpp +++ b/common/configstore.cpp | |||
@@ -80,9 +80,13 @@ void ConfigStore::modify(const QByteArray &identifier, const QMap<QByteArray, QV | |||
80 | { | 80 | { |
81 | SinkTrace() << "Modifying " << identifier; | 81 | SinkTrace() << "Modifying " << identifier; |
82 | auto config = getConfig(identifier); | 82 | auto config = getConfig(identifier); |
83 | config->clear(); | ||
84 | for (const auto &key : configuration.keys()) { | 83 | for (const auto &key : configuration.keys()) { |
85 | config->setValue(key, configuration.value(key)); | 84 | auto value = configuration.value(key); |
85 | if (value.isValid()) { | ||
86 | config->setValue(key, configuration.value(key)); | ||
87 | } else { | ||
88 | config->remove(key); | ||
89 | } | ||
86 | } | 90 | } |
87 | config->sync(); | 91 | config->sync(); |
88 | } | 92 | } |