/*! * * Copyright (c) 2021-2022 Diality Inc. - All Rights Reserved. * \copyright * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * \file VSettings.cpp * \author (last) Behrouz NematiPour * \date (last) 22-May-2021 * \author (original) Behrouz NematiPour * \date (original) 29-Mar-2021 * */ #include "VSettings.h" // Qt // Project #include "GuiController.h" #include "MSettings.h" #include "Settings.h" 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(); for (const auto &category : mCategorys) { QStringList groups = _Settings.groups(category); for (const auto &group : groups) { QVariantMap details; QStringList keys = _Settings.keys (group); QVariantList values = _Settings.values (group); QString location = _Settings.location (group); // DEBUG : // qDebug() << " ##### " // << group // << keys // << values // << location ; details["location"] = location; details["keys" ] = keys ; details["values" ] = values ; mSettings[group] = details; for (const auto &key : keys) { QVariantMap keyValue; 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; } } } categorys(mCategorys); 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); }