refs #679 CApplication shall ensure CSettingsCache relay signal is connected when context is not available.

This commit is contained in:
Mathew Sutcliffe
2016-06-28 19:57:17 +01:00
parent 6f97e7290b
commit 903abcf514
2 changed files with 13 additions and 0 deletions

View File

@@ -207,6 +207,15 @@ namespace BlackCore
bool s = this->startHookIn();
// enable local relay of settings changes in case there is no context
if (!this->supportsContexts())
{
connect(CSettingsCache::instance(), &CSettingsCache::valuesChangedByLocal, CSettingsCache::instance(), [](const CValueCachePacket & values)
{
CSettingsCache::instance()->changeValuesFromRemote(values, CIdentifier());
});
}
// trigger loading and saving of settings in appropriate scenarios
if (this->m_coreFacadeConfig.getModeApplication() != CCoreFacadeConfig::Remote)
{

View File

@@ -26,6 +26,7 @@
#include <QIODevice>
#include <QJsonDocument>
#include <QList>
#include <QMetaMethod>
#include <QMutexLocker>
#include <QThread>
#include <Qt>
@@ -240,6 +241,9 @@ namespace BlackMisc
}
if (values.valuesChanged()) { emit valuesChanged(values, sender()); }
emit valuesChangedByLocal(values);
Q_ASSERT_X(isSignalConnected(QMetaMethod::fromSignal(&CValueCache::valuesChangedByLocal)), Q_FUNC_INFO,
"signal must be connected for cache to function properly");
}
void CValueCache::changeValuesFromRemote(const CValueCachePacket &values, const CIdentifier &originator)