refs #644 Move the enable of settings save to the same place as the initial settings load.

This commit is contained in:
Mathew Sutcliffe
2016-04-27 18:35:08 +01:00
parent d7a63c15d4
commit d9d30a339a
4 changed files with 12 additions and 5 deletions

View File

@@ -150,7 +150,7 @@ namespace BlackCore
bool s = this->startHookIn();
// trigger loading of settings in appropriate scenarios
// trigger loading and saving of settings in appropriate scenarios
if (this->m_coreFacadeConfig.getModeApplication() != CCoreFacadeConfig::Remote)
{
CStatusMessage m = CSettingsCache::instance()->loadFromStore();
@@ -159,6 +159,8 @@ namespace BlackCore
m.setCategories(getLogCategories());
CLogMessage::preformatted(m);
}
CSettingsCache::instance()->enableLocalSave();
}
if (waitForStart)

View File

@@ -24,7 +24,6 @@ namespace BlackCore
CContextApplication::CContextApplication(CCoreFacadeConfig::ContextMode mode, CCoreFacade *runtime) :
IContextApplication(mode, runtime)
{
connect(CSettingsCache::instance(), &CSettingsCache::valuesSaveRequested, CSettingsCache::instance(), &CSettingsCache::saveToStoreByPacket);
}
CContextApplication *CContextApplication::registerWithDBus(BlackMisc::CDBusServer *server)

View File

@@ -34,6 +34,11 @@ namespace BlackMisc
return saveToFiles(persistentStore(), keyPrefix);
}
void CSettingsCache::enableLocalSave()
{
connect(CSettingsCache::instance(), &CSettingsCache::valuesSaveRequested, CSettingsCache::instance(), &CSettingsCache::saveToStoreByPacket);
}
void CSettingsCache::saveToStoreByPacket(const CValueCachePacket &values)
{
CStatusMessage status = saveToFiles(persistentStore(), values.toVariantMap());

View File

@@ -34,9 +34,9 @@ namespace BlackMisc
//! Save core settings to disk.
BlackMisc::CStatusMessage saveToStore(const QString &keyPrefix = {});
//! Save individual settings to disk.
//! Core application context connects this slot to the valuesSaveRequested signal.
void saveToStoreByPacket(const CValueCachePacket &values);
//! Connects signal CValueCache::valuesSaveRequested to a private slot that saves the values.
//! In a dbus distributed scenario, only call this method in the core process.
void enableLocalSave();
//! Load core settings from disk.
BlackMisc::CStatusMessage loadFromStore();
@@ -49,6 +49,7 @@ namespace BlackMisc
private:
CSettingsCache();
void saveToStoreByPacket(const CValueCachePacket &values);
};
/*!