From b98752e84e6b6de0b53eac6620918ee9d94c3e99 Mon Sep 17 00:00:00 2001 From: Mathew Sutcliffe Date: Tue, 14 Jun 2016 23:24:16 +0100 Subject: [PATCH] refs #672 setAndSave should still save even if the value is not actually changed. --- src/blackmisc/valuecache.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/blackmisc/valuecache.cpp b/src/blackmisc/valuecache.cpp index a0d7ecde5..878fd3224 100644 --- a/src/blackmisc/valuecache.cpp +++ b/src/blackmisc/valuecache.cpp @@ -525,9 +525,11 @@ namespace BlackMisc Q_ASSERT(QThread::currentThread() == thread()); if (timestamp == 0) { timestamp = QDateTime::currentMSecsSinceEpoch(); } - if (element.m_value.read() == value && element.m_timestamp == timestamp && ! ignoreValue) { return {}; } + bool changed = element.m_value.read() != value || element.m_timestamp != timestamp; + if (! changed && ! save && ! ignoreValue) { return {}; } if (ignoreValue) { value = element.m_value.read(); } + else { ignoreValue = ! changed; } auto status = validate(element, value, CStatusMessage::SeverityError); if (status.isSuccess())