diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-07-27 15:45:12 -0600 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-07-27 15:54:32 -0600 |
commit | 63290ccce102495427a26e689725e565a03ae77a (patch) | |
tree | c54f3b0c7d7bffa811a0e65abebddcc35a77de83 /common/domain/applicationdomaintype.cpp | |
parent | 5d197dec9dc8f5c8ef4acd72555c32108404c4ae (diff) | |
download | sink-63290ccce102495427a26e689725e565a03ae77a.tar.gz sink-63290ccce102495427a26e689725e565a03ae77a.zip |
Skip modifications that do nothing.
This allows us to i.e. blindly mark mails as read in kube, with the
modification automatically being dropped if it doesn't do anything
useful.
Diffstat (limited to 'common/domain/applicationdomaintype.cpp')
-rw-r--r-- | common/domain/applicationdomaintype.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/common/domain/applicationdomaintype.cpp b/common/domain/applicationdomaintype.cpp index 2050fac..ee70c35 100644 --- a/common/domain/applicationdomaintype.cpp +++ b/common/domain/applicationdomaintype.cpp | |||
@@ -222,8 +222,13 @@ QVariant ApplicationDomainType::getProperty(const QByteArray &key) const | |||
222 | void ApplicationDomainType::setProperty(const QByteArray &key, const QVariant &value) | 222 | void ApplicationDomainType::setProperty(const QByteArray &key, const QVariant &value) |
223 | { | 223 | { |
224 | Q_ASSERT(mAdaptor); | 224 | Q_ASSERT(mAdaptor); |
225 | mChangeSet->insert(key); | 225 | auto existing = mAdaptor->getProperty(key); |
226 | mAdaptor->setProperty(key, value); | 226 | if (existing.isValid() && existing == value) { |
227 | SinkTrace() << "Tried to set property that is still the same: " << key << value; | ||
228 | } else { | ||
229 | mChangeSet->insert(key); | ||
230 | mAdaptor->setProperty(key, value); | ||
231 | } | ||
227 | } | 232 | } |
228 | 233 | ||
229 | void ApplicationDomainType::setResource(const QByteArray &identifier) | 234 | void ApplicationDomainType::setResource(const QByteArray &identifier) |