Index: sources/view/settings/VSettings.cpp =================================================================== diff -u -ra82ee4f326b26c4369f1306f867edc1bca6dabbe -ra04fd119778f0483cba5139a11e3c6bad7f2324a --- sources/view/settings/VSettings.cpp (.../VSettings.cpp) (revision a82ee4f326b26c4369f1306f867edc1bca6dabbe) +++ sources/view/settings/VSettings.cpp (.../VSettings.cpp) (revision a04fd119778f0483cba5139a11e3c6bad7f2324a) @@ -21,10 +21,28 @@ #include "MSettings.h" #include "Settings.h" -VIEW_DEF(VSettings, SettingsData) +VIEW_DEF_CLASS(VSettings) +void VSettings::initConnections() { + ACTION_RECEIVE_BRIDGE_CONNECTION(Gui::_GuiController, SettingsData); + PROPERTY_POST_CONNECTION(VSettings, servicePass); + PROPERTY_POST_CONNECTION(VSettings, alarmVolume); +} + +void VSettings::servicePass_post(const QString &vservicePass) { + Storage::Settings settings; + settings.save(servicePassCategory(), servicePassGroup(), servicePassKey(), vservicePass); +} + +void VSettings::alarmVolume_post(const quint8 &valarmVolume) { + Storage::Settings settings; + settings.save(alarmVolumeCategory(), alarmVolumeGroup(), alarmVolumeKey(), QString::number(valarmVolume)); +} + void VSettings::onActionReceive(const SettingsData &) { + // TODO: this function needs to be moved to the controller, to execute in settings thread not the main thread. + // it should then send the output here to update the specific properties defined. QVariantMap mSettings; QVariantMap mData; QStringList mCategorys = _Settings.categorys(); @@ -47,10 +65,22 @@ mSettings[group] = details; for (const auto &key : keys) { - QVariantMap keyValue; - keyValue[key] = _Settings.value(group, key); - + if ( isservicePass(category, group, key) ) { + QString mServicePass; + mServicePass = _Settings.value(group, key).toString(); + keyValue[key] = mServicePass ; + servicePass (mServicePass); + } + else if ( isalarmVolume(category, group, key) ) { + quint8 mAlarmVolume; + mAlarmVolume = _Settings.value(group, key).toInt(); // returns 0 if fails, so no error checking needed. + keyValue[key] = mAlarmVolume ; + alarmVolume (mAlarmVolume); + } + else { + keyValue[key] = _Settings.value(group, key); + } QVariantMap groups; groups [group] = keyValue; mData [category] = groups; @@ -62,12 +92,10 @@ settings(mSettings); data(mData); + // If the configuration exits, then it has been set, and this call internally will be neutral, + // otherwise will use the default value and will notify the update. + servicePass( _servicePass ); + alarmVolume( _alarmVolume ); + adjustment(true); } - - -void VSettings::doSave(const QString &vCategory, const QString &vGroup, const QString &vKey, const QString &vValue) -{ - Storage::Settings settings; - settings.save(vCategory, vGroup, vKey, vValue); -}