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 )