Index: sources/view/settings/VSettings.cpp =================================================================== diff -u -r77e7c1e746bba703ab3aee61f8e19f398fd9ac00 -r0dfba44fb7172b9458d161b3ed5f54527f93b698 --- sources/view/settings/VSettings.cpp (.../VSettings.cpp) (revision 77e7c1e746bba703ab3aee61f8e19f398fd9ac00) +++ sources/view/settings/VSettings.cpp (.../VSettings.cpp) (revision 0dfba44fb7172b9458d161b3ed5f54527f93b698) @@ -40,10 +40,10 @@ PROPERTY_POST_CONNECTION(VSettings, servicePass ); PROPERTY_POST_CONNECTION(VSettings, alarmVolume ); PROPERTY_POST_CONNECTION(VSettings, roWaterMode ); - PROPERTY_POST_CONNECTION(VSettings, userMode ); PROPERTY_POST_CONNECTION(VSettings, integratedBPCuff ); PROPERTY_POST_CONNECTION(VSettings, heparinSyringePump ); PROPERTY_POST_CONNECTION(VSettings, chemicalDisinfection); + PROPERTY_POST_CONNECTION(VSettings, advancedMode); init = true; } @@ -63,10 +63,11 @@ } } -void VSettings::userMode_post(const bool &vuserMode_post) { +void VSettings::advancedMode_post(const bool &vadvancedMode_post) { //TODO The Settings shall be the Singleton SettingsController and modify the MSettings like the others. - if ( Storage::Settings::save(userModeGroup(), userModeKey(), QString::number(vuserMode_post)) != 0 ) { - userMode(false); + advancedMode(false); + if ( Storage::Settings::save(advancedModeGroup(), advancedModeKey(), QString::number(vadvancedMode_post)) != 0 ) { + advancedMode(false); } } void VSettings::integratedBPCuff_post(const bool &vintegratedBPCuff_post) { @@ -106,12 +107,27 @@ for (const auto &category : mCategorys) { QStringList groups = _Settings.groups(category); for (const auto &group : groups) { - QStringList keys = _Settings.keys (category, group); - QVariantList values = _Settings.values (category, group); + QStringList keys ; + QVariantList values ; + QString title = ""; + for (const QString &key : _Settings.keys(category, group)) { + if (Storage::Settings::isKeyTitle ( key ) ) { + title = _Settings.value(category, group, key).toString(); + } else { + const QString imagePath = QStringLiteral("%1%2").arg(_location) + .arg(_Settings.value(category, group, key).toString()); + QFileInfo fileInfo(imagePath); + values.append(fileInfo.exists() && fileInfo.isFile() ? "file:" + imagePath : ""); + keys.append(key); + } + } + if ( Storage::Settings::isCategoryInstructions( category ) ) { - TKeysList keysList = updateReplacements(group, keys ); - updateInstructions(group, keysList, values ); - updateInstructions(group ); + TKeysList keysList = updateReplacements(group, keys ); + updateInstructions(group, keysList, values, title ); + updateInstructions(group ); + + } else { //TODO: Since it is global system settings, move this to the settings controller so the C++ backend can also use it. like Date/Time formats. for (const auto &key : qAsConst(keys)) { @@ -129,11 +145,11 @@ keyValue[key] = mRoWaterMode ; roWaterMode ( mRoWaterMode); } - else if ( isuserMode (category, group, key) ) { - bool mUserMode; - mUserMode = _Settings.value(category, group, key).toBool (); - keyValue[key] = mUserMode ; - userMode ( mUserMode); + else if ( isadvancedMode(category, group, key) ) { + bool mAdvancedMode; + mAdvancedMode = _Settings.value(category, group, key).toBool (); + keyValue[key] = mAdvancedMode ; + advancedMode ( mAdvancedMode ); } else if ( isintegratedBPCuff (category, group, key) ) { bool mIntegratedBPCuff; @@ -175,7 +191,7 @@ servicePass ( _servicePass ); alarmVolume ( _alarmVolume ); roWaterMode ( _roWaterMode ); - userMode ( _userMode ); + advancedMode( _advancedMode ); //DEBUG qDebug() << servicePass() << roWaterMode() << alarmVolume(); adjustment(true); @@ -219,10 +235,10 @@ return keysList; } -void VSettings::updateInstructions(const QString &vGroup, const TKeysList &vKeysList, const QVariantList &vValues) +void VSettings::updateInstructions(const QString &vGroup, const TKeysList &vKeysList, const QVariantList &vValues, const QString &vTitle) { TInstruction mInstruction; - mInstruction.location = _location; + mInstruction.title = vTitle; mInstruction.keys = vKeysList; mInstruction.values = vValues ; _instructionMap[vGroup] = mInstruction; @@ -233,12 +249,13 @@ //TODO: this function or even the structure may need to update to send less data to qml and only the updated part. TKeysList keysList = _instructionMap[vGroup].keys ; QVariantList values = _instructionMap[vGroup].values; + QString title = _instructionMap[vGroup].title; QStringList keyList; for ( const auto &keys : keysList) { keyList += keys.join(""); } QVariantMap details; - details["location"] = _location ; + details["title"] = title ; details["keys" ] = keyList ; details["values" ] = values ; _instructions[vGroup] = details ;