summaryrefslogtreecommitdiffstats
path: root/common/domain/applicationdomaintype.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2017-07-27 15:45:12 -0600
committerChristian Mollekopf <chrigi_1@fastmail.fm>2017-07-27 15:54:32 -0600
commit63290ccce102495427a26e689725e565a03ae77a (patch)
treec54f3b0c7d7bffa811a0e65abebddcc35a77de83 /common/domain/applicationdomaintype.cpp
parent5d197dec9dc8f5c8ef4acd72555c32108404c4ae (diff)
downloadsink-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.cpp9
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
222void ApplicationDomainType::setProperty(const QByteArray &key, const QVariant &value) 222void 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
229void ApplicationDomainType::setResource(const QByteArray &identifier) 234void ApplicationDomainType::setResource(const QByteArray &identifier)