refs #450 When GUI connects to core, it needs to have all current core settings inserted into its core settings cache.

This commit is contained in:
Mathew Sutcliffe
2015-09-05 16:52:13 +01:00
parent af3775c8ea
commit e457e088a7
6 changed files with 42 additions and 0 deletions

View File

@@ -104,6 +104,12 @@ namespace BlackCore
//! \note This is the function which relays cache changes via DBus.
virtual void changeSettings(const BlackMisc::CVariantMap &settings, const BlackMisc::CIdentifier &origin);
//! Get all settings currently in core settings cache
virtual BlackMisc::CVariantMap getAllSettings() const = 0;
//! Update local settings with settings from core
virtual void synchronizeLocalSettings() = 0;
//! Save core settings to disk
virtual BlackMisc::CStatusMessage saveSettings(const QString &keyPrefix = {}) = 0;

View File

@@ -47,6 +47,17 @@ namespace BlackCore
emit this->settingsChanged(settings, origin);
}
BlackMisc::CVariantMap CContextApplication::getAllSettings() const
{
if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO; }
return CSettingsCache::instance()->getAllValues();
}
void CContextApplication::synchronizeLocalSettings()
{
// no-op: proxy implements this method by calling getAllSettings
}
BlackMisc::CStatusMessage CContextApplication::saveSettings(const QString &keyPrefix)
{
if (m_debugEnabled) { CLogMessage(this, CLogCategory::contextSlot()).debug() << Q_FUNC_INFO << keyPrefix; }

View File

@@ -35,6 +35,12 @@ namespace BlackCore
//! \copydoc IContextApplication::changeSettings
virtual void changeSettings(const BlackMisc::CVariantMap &settings, const BlackMisc::CIdentifier &origin) override;
//! \copydoc IContextApplication::getAllSettings
virtual BlackMisc::CVariantMap getAllSettings() const override;
//! \copydoc IContextApplication::synchronizeLocalSettings
virtual void synchronizeLocalSettings() override;
//! \copydoc IContextApplication::saveSettings
virtual BlackMisc::CStatusMessage saveSettings(const QString &keyPrefix = {}) override;

View File

@@ -67,6 +67,17 @@ namespace BlackCore
this->m_dBusInterface->callDBus(QLatin1Literal("changeSettings"), settings, origin);
}
BlackMisc::CVariantMap CContextApplicationProxy::getAllSettings() const
{
return this->m_dBusInterface->callDBusRet<BlackMisc::CVariantMap>(QLatin1Literal("getAllSettings"));
}
void CContextApplicationProxy::synchronizeLocalSettings()
{
// note this proxy method does not call synchronizeLocalSettings in core
CSettingsCache::instance()->insertValues(this->getAllSettings());
}
BlackMisc::CStatusMessage CContextApplicationProxy::saveSettings(const QString &keyPrefix)
{
return this->m_dBusInterface->callDBusRet<BlackMisc::CStatusMessage>(QLatin1Literal("saveSettings"), keyPrefix);

View File

@@ -31,6 +31,12 @@ namespace BlackCore
//! \copydoc IContextApplication::changeSettings
virtual void changeSettings(const BlackMisc::CVariantMap &settings, const BlackMisc::CIdentifier &origin) override;
//! \copydoc IContextApplication::getAllSettings
virtual BlackMisc::CVariantMap getAllSettings() const override;
//! \copydoc IContextApplication::synchronizeLocalSettings
virtual void synchronizeLocalSettings() override;
//! \copydoc IContextApplication::saveSettings
virtual BlackMisc::CStatusMessage saveSettings(const QString &keyPrefix = {}) override;

View File

@@ -211,6 +211,8 @@ void SwiftGuiStd::initGuiSignals()
void SwiftGuiStd::initialDataReads()
{
this->getIContextApplication()->synchronizeLocalSettings();
this->setContextAvailability();
if (!this->m_coreAvailable)
{