summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2017-01-25 13:41:28 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2017-01-25 13:41:28 +0100
commit561dbfed6e139d2c07f607f652f2f7a42e73dcae (patch)
tree6d564270b5e1e38e453db35788e3bd5d5d9bad90
parentca2b2e46333181cff8f20125454470a954d9fbc1 (diff)
downloadsink-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.cpp8
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}