From 08716705cabfb1f5e7effdb0bca16c3c629b7e5f Mon Sep 17 00:00:00 2001 From: Mathew Sutcliffe Date: Sat, 12 Sep 2015 13:03:26 +0100 Subject: [PATCH] refs #450 Last-minute fix for settings synchronization logic. --- src/blackcore/context_application_proxy.cpp | 2 +- src/blackmisc/identifier.cpp | 13 +++++++++++++ src/blackmisc/identifier.h | 3 +++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/blackcore/context_application_proxy.cpp b/src/blackcore/context_application_proxy.cpp index fc1d8f384..3714a357d 100644 --- a/src/blackcore/context_application_proxy.cpp +++ b/src/blackcore/context_application_proxy.cpp @@ -75,7 +75,7 @@ namespace BlackCore void CContextApplicationProxy::synchronizeLocalSettings() { // note this proxy method does not call synchronizeLocalSettings in core - CSettingsCache::instance()->insertValues(this->getAllSettings()); + CSettingsCache::instance()->changeValuesFromRemote(this->getAllSettings(), CIdentifier::anonymous()); } BlackMisc::CStatusMessage CContextApplicationProxy::saveSettings(const QString &keyPrefix) diff --git a/src/blackmisc/identifier.cpp b/src/blackmisc/identifier.cpp index 67c75fc75..97fa9d452 100644 --- a/src/blackmisc/identifier.cpp +++ b/src/blackmisc/identifier.cpp @@ -22,6 +22,19 @@ namespace BlackMisc m_processId(QCoreApplication::applicationPid()) { } + CIdentifier CIdentifier::anonymous() + { + static CIdentifier id; + if (id.m_processId) + { + id.m_processId = 0; + id.m_processName = ""; + id.m_machineName = ""; + id.m_machineIdBase64 = ""; + } + return id; + } + QByteArray CIdentifier::getMachineId() const { return QByteArray::fromBase64(m_machineIdBase64.toLocal8Bit()); diff --git a/src/blackmisc/identifier.h b/src/blackmisc/identifier.h index 1e054a6b1..03dd07d81 100644 --- a/src/blackmisc/identifier.h +++ b/src/blackmisc/identifier.h @@ -46,6 +46,9 @@ namespace BlackMisc //! Constructor. CIdentifier(const QString &name = QString()); + //! Returns an anonymous identifier. + static CIdentifier anonymous(); + //! Name QString getName() const { return m_name; }