Index: leahi.qrc =================================================================== diff -u -r1f9e84f74ead9e10577c8caa204c6eb911e12ab8 -rd2c4e611703fcb97794975dbc28f9a030b84bbf0 --- leahi.qrc (.../leahi.qrc) (revision 1f9e84f74ead9e10577c8caa204c6eb911e12ab8) +++ leahi.qrc (.../leahi.qrc) (revision d2c4e611703fcb97794975dbc28f9a030b84bbf0) @@ -27,6 +27,7 @@ sources/gui/qml/pages/settings/SettingsInstitutionalRecord.qml sources/gui/qml/pages/settings/SettingsLocalization.qml sources/gui/qml/pages/settings/SettingsUserMode.qml + sources/gui/qml/pages/settings/SettingsFeatureConfigurations.qml sources/gui/qml/dialogs/ConfirmDialog.qml Index: sources/gui/qml/pages/settings/SettingsFeatureConfigurations.qml =================================================================== diff -u --- sources/gui/qml/pages/settings/SettingsFeatureConfigurations.qml (revision 0) +++ sources/gui/qml/pages/settings/SettingsFeatureConfigurations.qml (revision d2c4e611703fcb97794975dbc28f9a030b84bbf0) @@ -0,0 +1,88 @@ +/*! + * + * Copyright (c) 2025 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 SettingsFeatureConfigurations.qml + * \author (last) Nico Ramirez + * \date (last) 10-Nov-2025 + * \author (original) Nico Ramirez + * \date (original) 10-Nov-2025 + * + */ + +// Qt +import QtQuick 2.12 + + +// Qml imports +import "qrc:/globals" +import "qrc:/components" +import "qrc:/compounds" + +/*! + * \brief SettingsFeatureConfigurations is the screen + * which enables the Ro Water Input + */ +SettingsBase { id: _root + itemIndex : SettingsStack.FeatureConfigurations + + readonly property int diameter : 85 + + confirmVisible : false + + /*contentItem: */Column { + spacing : 25 + + LabelUnitContainer { id: _integratedBPCuff + anchors.horizontalCenter : parent.horizontalCenter + width : Variables.adjustmentLabelUnitContainerWidth + height : Variables.adjustmentLabelUnitContainerHeight + text : qsTr("Integrated BP Cuff") + contentArea.anchors.leftMargin : width * 0.75 + + contentItem: BaseSwitch { id: _integratedBPCuffSwitch + checked : vSettings.integratedBPCuff + + onClicked: { + vSettings.integratedBPCuff = _integratedBPCuffSwitch.checked + } + } + } + + LabelUnitContainer { id: _heparinSyringePump + anchors.horizontalCenter : parent.horizontalCenter + width : Variables.adjustmentLabelUnitContainerWidth + height : Variables.adjustmentLabelUnitContainerHeight + text : qsTr("Heparin Syringe Pump") + contentArea.anchors.leftMargin : width * 0.75 + + contentItem: BaseSwitch { id: _heparinSyringePumpSwitch + checked : vSettings.heparinSyringePump + + onClicked: { + vSettings.heparinSyringePump = _heparinSyringePumpSwitch.checked + } + } + } + + LabelUnitContainer { id: _chemicalDisinfection + anchors.horizontalCenter : parent.horizontalCenter + width : Variables.adjustmentLabelUnitContainerWidth + height : Variables.adjustmentLabelUnitContainerHeight + text : qsTr("Chemical Disinfection") + contentArea.anchors.leftMargin : width * 0.75 + + contentItem: BaseSwitch { id: _chemicalDisinfectionSwitch + checked : vSettings.chemicalDisinfection + + onClicked: { + vSettings.chemicalDisinfection = _chemicalDisinfectionSwitch.checked + } + } + } + } +} + Index: sources/gui/qml/pages/settings/SettingsStack.qml =================================================================== diff -u -r1bc34c23575fe101b85c851cff245436394d7123 -rd2c4e611703fcb97794975dbc28f9a030b84bbf0 --- sources/gui/qml/pages/settings/SettingsStack.qml (.../SettingsStack.qml) (revision 1bc34c23575fe101b85c851cff245436394d7123) +++ sources/gui/qml/pages/settings/SettingsStack.qml (.../SettingsStack.qml) (revision d2c4e611703fcb97794975dbc28f9a030b84bbf0) @@ -70,32 +70,34 @@ readonly property bool visibleDeviceConfiguration : onlyManufacturing && loggedIn readonly property bool visibleDeviceRegistration : onlyManufacturing && loggedIn readonly property bool visibleInstitutionalRecord : true + readonly property bool visibleFeatureConfigurations : loggedIn readonly property bool visibleLocalization : loggedIn readonly property bool visibleUserModes : loggedIn readonly property string settingsTitle : _GuiView.manufactSetup ? qsTr("Manufacturing Setup") : _GuiView.updateSetup ? qsTr("Software Update") : qsTr("Device Settings") enum ItemsIndex { - Information , - VolumeBrightness , - WiFi , - DGCleaning , - DGScheduling , - ServicePassword , - SetDateTime , - ExportLogs , - Localization , - RoInput , - Calibration , - DeviceConfiguration , - DeviceRegistration , - SWUpdate , - RootSSHAccess , - FactoryReset , - Decommission , - InstitutionalRecord , - UserMode + Information , + VolumeBrightness , + WiFi , + DGCleaning , + DGScheduling , + ServicePassword , + SetDateTime , + ExportLogs , + Localization , + RoInput , + Calibration , + DeviceConfiguration , + DeviceRegistration , + SWUpdate , + RootSSHAccess , + FactoryReset , + Decommission , + InstitutionalRecord , + UserMode , + FeatureConfigurations } property var itemsText : [ qsTr("Device Information" ), // Device Information @@ -117,6 +119,7 @@ qsTr("Decommissioning" ), // Decommission qsTr("Institutional Configurations" ), // Institutional Configurations qsTr("User Modes" ), // User Modes + qsTr("Feature Configurations" ), // FeatureConfigurations ] property var itemsVisible : [ @@ -139,6 +142,7 @@ visibleDecommission , // Decommission visibleInstitutionalRecord , // Institutional Record visibleUserModes , // User Modes + visibleFeatureConfigurations , // FeatureConfigurations ] // TODO: SRS 405/406 Test Mode instead add Q_PROPERTY to monitor state??? @@ -236,6 +240,10 @@ push( _settingsInstitutionalRecord ) break + case SettingsStack.FeatureConfigurations: + push( _settingsFeatureConfigurations ) + break + case SettingsStack.Localization: push( _settingLocalization ) break @@ -251,23 +259,24 @@ } } - SettingsInformation { id: _settingsInformation } - SettingsVolumeBrightness { id: _settingsVolumeBrightness } - SettingsWiFi { id: _settingsWiFi } - SettingsDGCleaning { id: _settingsDGCleaning } - SettingsDGScheduling { id: _settingsDGScheduling } - SettingsServicePassword { id: _servicePassword } - SettingsDateTime { id: _settingsDateTime } - SettingsExportLogs { id: _settingsExportLogs } - SettingsROInput { id: _settingsRoInput } - SettingsManufacturingSetup { id: _settingsDeviceConfiguration } - SettingsDeviceRegistration { id: _settingsDeviceRegistration } - SettingsRootSSHAccess { id: _SettingsRootSSHAccess } - SettingsFactoryReset { id: _serviceFactoryReset } - SettingsDecommission { id: _serviceDecommission } - SettingsInstitutionalRecord { id: _settingsInstitutionalRecord } - SettingsLocalization { id: _settingLocalization } - SettingsUserMode { id: _settingUserMode } + SettingsInformation { id: _settingsInformation } + SettingsVolumeBrightness { id: _settingsVolumeBrightness } + SettingsWiFi { id: _settingsWiFi } + SettingsDGCleaning { id: _settingsDGCleaning } + SettingsDGScheduling { id: _settingsDGScheduling } + SettingsServicePassword { id: _servicePassword } + SettingsDateTime { id: _settingsDateTime } + SettingsExportLogs { id: _settingsExportLogs } + SettingsROInput { id: _settingsRoInput } + SettingsManufacturingSetup { id: _settingsDeviceConfiguration } + SettingsDeviceRegistration { id: _settingsDeviceRegistration } + SettingsRootSSHAccess { id: _SettingsRootSSHAccess } + SettingsFactoryReset { id: _serviceFactoryReset } + SettingsDecommission { id: _serviceDecommission } + SettingsInstitutionalRecord { id: _settingsInstitutionalRecord } + SettingsFeatureConfigurations { id: _settingsFeatureConfigurations} + SettingsLocalization { id: _settingLocalization } + SettingsUserMode { id: _settingUserMode } function gotoServiceMode( vservice ) { //DEBUG console.log (" 0 ---------- ", _GuiView.manufactMode, _GuiView.manufactSetup, vservice, stackView.initialItem, stackView.currentItem, stackView.depth) Index: sources/view/settings/VSettings.cpp =================================================================== diff -u -redb8ee3edc41b1d324cd8a53e8e27a2a58289563 -rd2c4e611703fcb97794975dbc28f9a030b84bbf0 --- sources/view/settings/VSettings.cpp (.../VSettings.cpp) (revision edb8ee3edc41b1d324cd8a53e8e27a2a58289563) +++ sources/view/settings/VSettings.cpp (.../VSettings.cpp) (revision d2c4e611703fcb97794975dbc28f9a030b84bbf0) @@ -37,11 +37,14 @@ { static bool init = false; if ( init ) return; - PROPERTY_POST_CONNECTION(VSettings, servicePass ); - PROPERTY_POST_CONNECTION(VSettings, alarmVolume ); - PROPERTY_POST_CONNECTION(VSettings, roWaterMode ); - PROPERTY_POST_CONNECTION(VSettings, userMode ); - + 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); +>>>>>>> Stashed changes init = true; } @@ -65,10 +68,32 @@ //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); + } +} +void VSettings::integratedBPCuff_post(const bool &vintegratedBPCuff_post) { + //TODO The Settings shall be the Singleton SettingsController and modify the MSettings like the others. + if ( Storage::Settings::save(integratedBPCuffGroup(), integratedBPCuffKey(), QString::number(vintegratedBPCuff_post)) != 0 ) { + integratedBPCuff(false); // FIXME: Notify UI with a message } } +void VSettings::heparinSyringePump_post(const bool &vheparinSyringePump_post) { + //TODO The Settings shall be the Singleton SettingsController and modify the MSettings like the others. + if ( Storage::Settings::save(heparinSyringePumpGroup(), heparinSyringePumpKey(), QString::number(vheparinSyringePump_post)) != 0 ) { + heparinSyringePump(false); + // FIXME: Notify UI with a message + } +} + +void VSettings::chemicalDisinfection_post(const bool &vchemicalDisinfection_post) { + //TODO The Settings shall be the Singleton SettingsController and modify the MSettings like the others. + if ( Storage::Settings::save(chemicalDisinfectionGroup(), chemicalDisinfectionKey(), QString::number(vchemicalDisinfection_post)) != 0 ) { + chemicalDisinfection(false); + // FIXME: Notify UI with a message + } +} + void VSettings::alarmVolume_post(const quint8 &valarmVolume) { //TODO The Settings shall be the Singleton SettingsController and modify the MSettings like the others. Storage::Settings::save(alarmVolumeGroup(), alarmVolumeKey(), QString::number(valarmVolume)); @@ -110,7 +135,24 @@ mUserMode = _Settings.value(category, group, key).toBool (); keyValue[key] = mUserMode ; userMode ( mUserMode); + else if ( isintegratedBPCuff (category, group, key) ) { + bool mIntegratedBPCuff; + mIntegratedBPCuff = _Settings.value(category, group, key).toBool (); + keyValue[key] = mIntegratedBPCuff ; + integratedBPCuff ( mIntegratedBPCuff ); } + else if ( isheparinSyringePump (category, group, key) ) { + bool mHeparinSyringePump; + mHeparinSyringePump = _Settings.value(category, group, key).toBool (); + keyValue[key] = mHeparinSyringePump ; + heparinSyringePump ( mHeparinSyringePump ); + } + else if ( ischemicalDisinfection (category, group, key) ) { + bool mChemicalDisinfection; + mChemicalDisinfection = _Settings.value(category, group, key).toBool (); + keyValue[key] = mChemicalDisinfection ; + chemicalDisinfection ( mChemicalDisinfection ); + } else if ( isalarmVolume (category, group, key) ) { quint8 mAlarmVolume; mAlarmVolume = _Settings.value(category, group, key).toInt (); // returns 0 if fails, so no error checking needed. Index: sources/view/settings/VSettings.h =================================================================== diff -u -redb8ee3edc41b1d324cd8a53e8e27a2a58289563 -rd2c4e611703fcb97794975dbc28f9a030b84bbf0 --- sources/view/settings/VSettings.h (.../VSettings.h) (revision edb8ee3edc41b1d324cd8a53e8e27a2a58289563) +++ sources/view/settings/VSettings.h (.../VSettings.h) (revision d2c4e611703fcb97794975dbc28f9a030b84bbf0) @@ -65,10 +65,13 @@ PROPERTY(bool , isDefaultServicePassword , false ) - SETTINGS(QString , servicePass , "" , Storage::Settings_Category_SettingsSystem , "Service" , "Password" ) - SETTINGS(quint8 , alarmVolume , 5 , Storage::Settings_Category_SettingsSystem , "Alarm" , "Volume" ) - SETTINGS(bool , roWaterMode , false , Storage::Settings_Category_SettingsSystem , "RoWaterMode" , "RoWaterMode" ) - SETTINGS(bool , userMode , false , Storage::Settings_Category_SettingsSystem , "UserMode" , "UserMode" ) + SETTINGS(QString , servicePass , "" , Storage::Settings_Category_SettingsSystem , "Service" , "Password" ) + SETTINGS(quint8 , alarmVolume , 5 , Storage::Settings_Category_SettingsSystem , "Alarm" , "Volume" ) + SETTINGS(bool , roWaterMode , false , Storage::Settings_Category_SettingsSystem , "RoWaterMode" , "RoWaterMode" ) + SETTINGS(bool , userMode , false , Storage::Settings_Category_SettingsSystem , "UserMode" , "UserMode" ) + SETTINGS(bool , integratedBPCuff , false , Storage::Settings_Category_SettingsSystem , "IntegratedBPCuff" , "IntegratedBPCuff" ) + SETTINGS(bool , heparinSyringePump , false , Storage::Settings_Category_SettingsSystem , "HeparinSyringePump" , "HeparinSyringePump" ) + SETTINGS(bool , chemicalDisinfection , false , Storage::Settings_Category_SettingsSystem , "ChemicalDisinfection", "ChemicalDisinfection" ) TRIGGER (bool , encryptionPass, false )