Index: leahi.qrc =================================================================== diff -u -r8457901952a1d732c4688da471ae98e1d4f3024f -r0dfba44fb7172b9458d161b3ed5f54527f93b698 --- leahi.qrc (.../leahi.qrc) (revision 8457901952a1d732c4688da471ae98e1d4f3024f) +++ leahi.qrc (.../leahi.qrc) (revision 0dfba44fb7172b9458d161b3ed5f54527f93b698) @@ -27,6 +27,8 @@ sources/gui/qml/pages/settings/SettingsInstitutionalRecord.qml sources/gui/qml/pages/settings/SettingsLocalization.qml sources/gui/qml/pages/settings/SettingsAdvancedMode.qml + sources/gui/qml/pages/settings/SettingsFeatureConfigurations.qml + sources/gui/qml/pages/settings/SettingsAdvancedInstitutional.qml sources/gui/qml/dialogs/ConfirmDialog.qml @@ -35,6 +37,7 @@ sources/gui/qml/dialogs/AlarmListDialog.qml sources/gui/qml/dialogs/LockDialog.qml sources/gui/qml/dialogs/AcidConcentrateAdjustment.qml + sources/gui/qml/dialogs/EndTreatmentDialog.qml sources/gui/qml/dialogs/diagnostics/DiagnosticsDialog.qml @@ -106,6 +109,7 @@ resources/images/check_green.png resources/images/eye_closed.png resources/images/stepCheck.png + resources/images/complete_check.png sources/gui/qml/components/MainMenu.qml @@ -169,6 +173,8 @@ sources/gui/qml/components/PasswordRequirements.qml sources/gui/qml/components/BaseSwitch.qml sources/gui/qml/components/IdleTimer.qml + sources/gui/qml/components/TreatmentCompleteButton.qml + sources/gui/qml/components/RangedValue.qml sources/gui/qml/compounds/PressureRangeSlider.qml @@ -179,8 +185,12 @@ sources/gui/qml/compounds/BPHREntry.qml sources/gui/qml/compounds/NumPad.qml sources/gui/qml/compounds/LabelUnitContainer.qml + sources/gui/qml/compounds/LabelUnitText.qml sources/gui/qml/compounds/ValueAdjuster.qml sources/gui/qml/compounds/TreatmentAdjustmentUltrafiltrationMetrics.qml + sources/gui/qml/compounds/InstitutionalContainer.qml + sources/gui/qml/compounds/ValueAdjusterCustom.qml + sources/gui/qml/compounds/LabelUnitValueAdjuster.qml qtquickcontrols2.conf @@ -268,14 +278,17 @@ sources/gui/qml/pages/treatment/sections/TreatmentFlowsComponent.qml - sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentFlow.qml sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentBase.qml + sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentBolusVolume.qml sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentDuration.qml + sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentDurationEdit.qml + sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentDurationConfirm.qml + sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentPressuresLimits.qml + sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentSetPoints.qml sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltration.qml sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationStart.qml sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationEdit.qml sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentUltrafiltrationConfirm.qml - sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentPressuresLimits.qml sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentVitals.qml sources/gui/qml/pages/treatment/adjustments/TreatmentAdjustmentVitalsInterval.qml Index: sources/gui/GuiGlobals.h =================================================================== diff -u -r41ba9331e6a540df0c8eced0c4d3b8684afa9afa -r0dfba44fb7172b9458d161b3ed5f54527f93b698 --- sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision 41ba9331e6a540df0c8eced0c4d3b8684afa9afa) +++ sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision 0dfba44fb7172b9458d161b3ed5f54527f93b698) @@ -82,7 +82,7 @@ ID_DuetConfirmUIr = 0xBB00, // 187 // POST - ID_HDPostSingleResultData = 0x8E00, // 142 + ID_HDPostSingleResultData = 0x8E0F, // 142 //// ----- @CRAPIZED: had to change to avoid duplication ID_HDPostFinalResultData = 0x8F00, // 143 ID_DGPostSingleResultData = 0x9000, // 144 ID_DGPostFinalResultData = 0x9100, // 145 @@ -105,7 +105,7 @@ ID_AdjustSerialDDRsp = 0x5200, // 82 //// ----- @LEAHIZED // Service Information - ID_AdjustServiceDatesReq = 0x8900, // 137 + ID_AdjustServiceDatesReq = 0x890F, // 137 //// ----- @CRAPIZED: had to change to avoid duplication ID_AdjustServiceDatesHDRsp = 0x8A0F, // 138 //// ----- @CRAPIZED: had to change to avoid duplication ID_AdjustServiceDatesDGRsp = 0x8C0F, // 140 //// ----- @CRAPIZED: had to change to avoid duplication @@ -124,7 +124,7 @@ ID_TDOpModeData = 0x1200, // 18 //// ----- @LEAHIZED ID_PreTreatmentStates = 0x5C00, // 92 ID_TreatmentStates = 0x3C00, // 60 //// ----- @LEAHIZED - ID_PostTreatmentStates = 0x7700, // 119 + ID_PostTreatmentStates = 0x770F, // 119 //// ----- @CRAPIZED: had to change to avoid duplication // ----- ID_PowerOff = 0x010F, // 010F //// ----- @CRAPIZED @@ -191,8 +191,8 @@ ID_AdjustPatientConnectionConfirmRsp = 0x670F, // 103 //// ----- @CRAPIZED: had to change to avoid duplication // Pre-Treatment Start Treatment ID_AdjustStartTreatmentReq = 0x7100, // 113 - ID_AdjustStartTreatmentRsp = 0x7200, // 114 - + ID_AdjustStartTreatmentRsp = 0x720F, // 114 //// ----- @CRAPIZED: had to change to avoid duplication + // DG Data Messages ID_DGROPumpData = 0x1F0F, // 31 //// ----- @CRAPIZED: had to change to avoid duplication ID_DGDrainPumpData = 0x240F, // ?? //// ----- @CRAPIZED: had to change to avoid duplication @@ -212,7 +212,7 @@ ID_DDBloodLeakData = 0x6000, // 96 //// ----- TODO: Payload subject to change given FW implementation // FP Data Messages - ID_FPValvesStatesData = 0x3100, // 49 //// ----- @LEAHIZED + ID_FPValvesStatesData = 0x310F, // 49 //// ----- @OBSOLETE. REMOVE? ID_FPROPumpData = 0x3200, // 50 //// ----- @LEAHIZED ID_FPPressuresData = 0x3400, // 52 //// ----- @LEAHIZED ID_FPLevelData = 0x3500, // 53 //// ----- @LEAHIZED @@ -237,15 +237,32 @@ ID_TreatmentParametersSetPointData = 0x4F00, // 79 //// ----- @LEAHIZED // In-Treatment Adjustables - ID_AdjustDurationReq = 0x160F, // 22 //// ----- @CRAPIZED: had to change to avoid duplication - ID_AdjustDurationRsp = 0x1B00, // 27 + ID_AdjustPressuresLimitsReq = 0x7200, // 114 //// ----- @LEAHIZED + ID_AdjustPressuresLimitsRsp = 0x7300, // 115 //// ----- @LEAHIZED + ID_AdjustBolusVolumeReq = 0x7400, // 116 //// ----- @LEAHIZED + ID_AdjustBolusVolumeRsp = 0x7500, // 117 //// ----- @LEAHIZED + + ID_AdjustDurationEditReq = 0x7600, // 118 //// ----- @LEAHIZED + ID_AdjustDurationEditRsp = 0x7700, // 119 //// ----- @LEAHIZED + ID_AdjustDurationConfirmReq = 0x7800, // 120 //// ----- @LEAHIZED + ID_AdjustDurationConfirmRsp = 0x7900, // 121 //// ----- @LEAHIZED + + ID_AdjustSetPointsReq = 0x7A00, // 122 //// ----- @LEAHIZED + ID_AdjustSetPointsRsp = 0x7B00, // 123 //// ----- @LEAHIZED + + ID_AdjustBloodFlowRateReq = 0x7C00, // 124 //// ----- @LEAHIZED + ID_AdjustBloodFlowRateRsp = 0x7D00, // 125 //// ----- @LEAHIZED + + ID_AdjustDialysateFlowRateReq = 0x7E00, // 126 //// ----- @LEAHIZED + ID_AdjustDialysateFlowRateRsp = 0x7F00, // 127 //// ----- @LEAHIZED + + ID_AdjustDialysateTemperatureReq = 0x8000, // 128 //// ----- @LEAHIZED + ID_AdjustDialysateTemperatureRsp = 0x8100, // 129 //// ----- @LEAHIZED + ID_AdjustBloodDialysateReq = 0x1700, // 23 ID_AdjustBloodDialysateRsp = 0x1800, // 24 - ID_AdjustPressuresLimitsReq = 0x470F, // 70 //// ----- @CRAPIZED: had to change to avoid duplication - ID_AdjustPressuresLimitsRsp = 0x480F, // 71 //// ----- @CRAPIZED: had to change to avoid duplication - ID_AdjustSalineReq = 0x5F00, // 95 ID_AdjustSalineRsp = 0x6000, // 96 @@ -275,22 +292,22 @@ ID_AdjustRecirculateRsp = 0x5500, // 85 // Treatment End - ID_AdjustTreatmentEndReq = 0x5700, // 87 - ID_AdjustTreatmentEndRsp = 0x5800, // 88 + ID_AdjustTreatmentEndReq = 0x8D00, // 141 + ID_AdjustTreatmentEndRsp = 0x8E00, // 142 // Post-Treatment // Patient Disconnect ID_AdjustPatientDisconnectNotifyReq = 0x4A00, // 74 // there is no specific response message for this request and changing of the state in Pre_Treatment_States is used as the response ID_AdjustPatientDisconnectConfirmReq = 0x060F, // 060f //// ----- @CRAPIZED - ID_AdjustPatientDisconnectConfirmRsp = 0x7E00, // 126 + ID_AdjustPatientDisconnectConfirmRsp = 0x7E0F, // 126 //// ----- @CRAPIZED: had to change to avoid duplication // Disposables Removal ID_AdjustDisposablesRemovalConfirmReq = 0x9400, // 148 ID_AdjustDisposablesRemovalConfirmRsp = 0x9500, // 149 // Treatment Log Adjs - ID_AdjustTreatmentLogReq = 0x7500, // 117 - ID_AdjustTreatmentLogRsp = 0x7600, // 118 + ID_AdjustTreatmentLogReq = 0x750F, // 117 //// ----- @CRAPIZED: had to change to avoid duplication + ID_AdjustTreatmentLogRsp = 0x760F, // 118 //// ----- @CRAPIZED: had to change to avoid duplication // Treatment Log Data ID_TreatmentLogAvrgeData = 0x940F, // 148 //// ----- @CRAPIZED: had to change to avoid duplication ID_TreatmentLogAlarmData = 0x950F, // 149 //// ----- @CRAPIZED: had to change to avoid duplication @@ -299,21 +316,29 @@ // Disinfect ID_AdjustDisinfectModeReq = 0x9A00, // 154 ID_AdjustDisinfectModeRsp = 0x9B00, // 155 - ID_AdjustDisinfectStartReq = 0x7F00, // 127 - ID_AdjustDisinfectStartRsp = 0x8000, // 128 + ID_AdjustDisinfectStartReq = 0x7F0F, // 127 //// ----- @CRAPIZED: had to change to avoid duplication + ID_AdjustDisinfectStartRsp = 0x800F, // 128 //// ----- @CRAPIZED: had to change to avoid duplication ID_AdjustDGCleaningUsageReq = 0xB800, // 184 - ID_AdjustDGCleaningUsageRsp = 0x8D00, // 141 + ID_AdjustDGCleaningUsageRsp = 0x8D0F, // 141 //// ----- @CRAPIZED: had to change to avoid duplication // RO Water Input Mode ID_DuetRoWaterStatDGq = 0xC300, // 195 DG -> UI // DG initiates Status query ID_DuetRoWaterModeUIi = 0xBC00, // 188 UI -> DG // UI initiates Mode Set || responses to status query ID_DuetRoWaterModeDGr = 0xC400, // 196 UI <- DG // DG responses Mode Set // Institutional record request and response - ID_AdjustInstitutionalRecordReq = 0xCF00, // 207 UI -> HD request institutional record - ID_AdjustInstitutionalRecordRsp = 0xD000, // 208 HD -> UI response institutional record + ID_InstitutionalRecordReq = 0x8200, // 130 UI -> TD request institutional record + ID_InstitutionalRecordRsp = 0x8300, // 131 TD -> UI response institutional record + ID_AdjustInstitutionalRecordReq = 0x8400, // 132 UI -> TD request institutional record + ID_AdjustInstitutionalRecordRsp = 0x8500, // 133 TD -> UI response institutional record + // Advanced Institutional record request and response + ID_AdvancedInstitutionalRecordReq = 0x8600, // 134 UI -> TD request institutional record + ID_AdvancedInstitutionalRecordRsp = 0x8700, // 135 TD -> UI response institutional record + ID_AdjustAdvancedInstitutionalRecordReq = 0x8800, // 136 UI -> TD request institutional record + ID_AdjustAdvancedInstitutionalRecordRsp = 0x8900, // 137 TD -> UI response institutional record + // HD reset request in service mode ID_ResetHDInServiceModeReq = 0xB900, // 185 UI -> HD reset in service mode }; @@ -406,7 +431,6 @@ Q_ENUM(DD_Valves) #include "FPDefs.h" - Q_ENUM(FP_Valves) }; // to be able to use the enum as signal/slot parameter @@ -482,9 +506,6 @@ // DD Valves typedef GuiActions::DD_Valves GuiDDValves; - // FP Valves - typedef GuiActions::FP_Valves GuiFPValves; - typedef QMap GuiStringIndexMap; typedef QPair GuiStringIndexMapItem; typedef QMapIterator GuiStringIndexMapIterator; @@ -525,4 +546,4 @@ void registerQmlTypes(); bool startGui(); -} + } Index: sources/gui/qml/components/HeaderBar.qml =================================================================== diff -u -reb3bbd3e203463dc3634ecb009b8a1390bb87012 -r0dfba44fb7172b9458d161b3ed5f54527f93b698 --- sources/gui/qml/components/HeaderBar.qml (.../HeaderBar.qml) (revision eb3bbd3e203463dc3634ecb009b8a1390bb87012) +++ sources/gui/qml/components/HeaderBar.qml (.../HeaderBar.qml) (revision 0dfba44fb7172b9458d161b3ed5f54527f93b698) @@ -134,6 +134,13 @@ rightMargin : _headerButtonRow.spacing } + TreatmentCompleteButton { id : _treatmentCompleteButton + extraSpace : _headerButtonRow.spacing + visible : vTDTreatmentStates.txEnd + + onPressed : _endTreatmentDialog.open() + } + VitalsButton { id : _vitalsButton extraSpace : _headerButtonRow.spacing visible : vTDOpMode.preTreatment || Index: sources/gui/qml/globals/Variables.qml =================================================================== diff -u -r41ba9331e6a540df0c8eced0c4d3b8684afa9afa -r0dfba44fb7172b9458d161b3ed5f54527f93b698 --- sources/gui/qml/globals/Variables.qml (.../Variables.qml) (revision 41ba9331e6a540df0c8eced0c4d3b8684afa9afa) +++ sources/gui/qml/globals/Variables.qml (.../Variables.qml) (revision 0dfba44fb7172b9458d161b3ed5f54527f93b698) @@ -158,7 +158,6 @@ readonly property int settingsNotificationMargin : 10 readonly property int settingsContentBottomMargin : mainMenuHeight + // Alarm Bar height - notificationHeight + // notification Bar height minVGap // Min Gap to give content the min border readonly property int settingsOptionWidth : 550 @@ -193,6 +192,7 @@ readonly property int adjustmentLabelUnitContainerHeight : 75 readonly property int adjustmentLabelUnitContainerWidth : 720 + readonly property int institutionaltContainerHeight : 69 readonly property real sliderDefaultRoundTickMarkDiameter : 5 readonly property int sliderDefaultBodyHeight : 15 @@ -254,6 +254,9 @@ // Calcium readonly property int calciumPrecision : 2 + // Calcium + readonly property int substitutionPrecision : 1 + function sizeConverted(vSize, vSizePowers, vRound = 2) { return ( vSize / vSizePowers // convert from byte to Giga byte @@ -310,6 +313,8 @@ readonly property string unitTextFluid : qsTr("mL") readonly property string unitTextSaline : unitTextFluid readonly property string unitTextHeparin : unitTextFluid + // - Pressure + readonly property string unitTextPressure : qsTr("mmHg") // - Temperature readonly property string unitTextTemperature : qsTr("°C") // Concentration Index: sources/gui/qml/pages/MainStack.qml =================================================================== diff -u -r56b0b13aa9f9e7ae201bce1843015fe5b4b43d2c -r0dfba44fb7172b9458d161b3ed5f54527f93b698 --- sources/gui/qml/pages/MainStack.qml (.../MainStack.qml) (revision 56b0b13aa9f9e7ae201bce1843015fe5b4b43d2c) +++ sources/gui/qml/pages/MainStack.qml (.../MainStack.qml) (revision 0dfba44fb7172b9458d161b3ed5f54527f93b698) @@ -46,7 +46,6 @@ // Standby / Disinfection DisinfectStack { id: _disinfectStack } // Pre Treatment - PreTreatmentCreateStack { id: _preTreatmentCreateStack } PreTreatmentStack { id: _preTreatmentStack } // In TreatmentStack TreatmentStack { id: _treatmentStack } @@ -135,12 +134,11 @@ } function onHomeChanged ( vValue ) { page( _startupScreen , vValue )} - function onStandbyChanged ( vValue ) { if ( vTDOpMode.standby ) _preTreatmentCreateStack.clear(vValue) } + function onStandbyChanged ( vValue ) { if ( vTDOpMode.standby ) _preTreatmentStack.clear(vValue) } function onStandbyStartChanged ( vValue ) { /* It depends on the subModes of the standBy. Handled by onHome. */ } function onStandbyWaitTreatmentChanged ( vValue ) { if ( vValue ) vDisinfectAdjustDisinfect.hasCancel = false } function onStandbyWaitDisinfectChanged ( vValue ) { page( _disinfectStack , vValue )} - function onValidateParametersChanged ( vValue ) { page( _preTreatmentCreateStack , vValue )} function onPreTreatmentChanged ( vValue ) { page( _preTreatmentStack , vValue )} function onInTreatmentChanged ( vValue ) { page( _treatmentStack , vValue )} function onPostTreatmentChanged ( vValue ) { page( _postTreatmentStack , vValue )} Index: sources/gui/qml/pages/endtreatment/EndTreatmentEndStack.qml =================================================================== diff -u -rca05e940ea4a0c567acb05c4c8777dea079b0f08 -r0dfba44fb7172b9458d161b3ed5f54527f93b698 --- sources/gui/qml/pages/endtreatment/EndTreatmentEndStack.qml (.../EndTreatmentEndStack.qml) (revision ca05e940ea4a0c567acb05c4c8777dea079b0f08) +++ sources/gui/qml/pages/endtreatment/EndTreatmentEndStack.qml (.../EndTreatmentEndStack.qml) (revision 0dfba44fb7172b9458d161b3ed5f54527f93b698) @@ -41,7 +41,6 @@ footer { childrenWidth : 300 children: TouchRect { - enabled : _endTreatmentEnd.instructionIsLast text.text : qsTr("START RINSEBACK") isDefault : true onClicked : rinsebackClicked() Index: sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateContent.qml =================================================================== diff -u -r4f5932840bc0a47ffe863cbf9f38dd4b41e1e72a -r0dfba44fb7172b9458d161b3ed5f54527f93b698 --- sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateContent.qml (.../PreTreatmentCreateContent.qml) (revision 4f5932840bc0a47ffe863cbf9f38dd4b41e1e72a) +++ sources/gui/qml/pages/pretreatment/create/PreTreatmentCreateContent.qml (.../PreTreatmentCreateContent.qml) (revision 0dfba44fb7172b9458d161b3ed5f54527f93b698) @@ -526,7 +526,7 @@ } LabelUnitContainer { id: _heparinStopTime - text : qsTr("Heparin Stop Time") + text : qsTr("Heparin Delivery Duration") unitText : Variables.unitTextDuration valid : ! vTreatmentCreate.heparinStopTimeRejectReason visible : _root.heparinFeatured Index: sources/gui/qml/pages/settings/SettingsStack.qml =================================================================== diff -u -r8457901952a1d732c4688da471ae98e1d4f3024f -r0dfba44fb7172b9458d161b3ed5f54527f93b698 --- sources/gui/qml/pages/settings/SettingsStack.qml (.../SettingsStack.qml) (revision 8457901952a1d732c4688da471ae98e1d4f3024f) +++ sources/gui/qml/pages/settings/SettingsStack.qml (.../SettingsStack.qml) (revision 0dfba44fb7172b9458d161b3ed5f54527f93b698) @@ -70,6 +70,8 @@ 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 visibleAdvancedInstitutional : loggedIn readonly property bool visibleLocalization : loggedIn readonly property bool visibleAdvancedModes : loggedIn @@ -95,6 +97,8 @@ FactoryReset , Decommission , InstitutionalRecord , + AdvancedInstitutional , + FeatureConfigurations , AdvancedMode } property var itemsText : [ @@ -116,6 +120,8 @@ qsTr("Factory Reset" ), // FactoryReset qsTr("Decommissioning" ), // Decommission qsTr("Institutional Configurations" ), // Institutional Configurations + qsTr("Advanced Institutional Settings" ), // AdvancedInstitutional + qsTr("Feature Configurations" ), // FeatureConfigurations qsTr("Advanced Mode" ), // Advanced Modes ] @@ -138,6 +144,8 @@ visibleFactoryReset , // FactoryReset visibleDecommission , // Decommission visibleInstitutionalRecord , // Institutional Record + visibleAdvancedInstitutional , // AdvancedInstitutional + visibleFeatureConfigurations , // FeatureConfigurations visibleAdvancedModes , // Advanced Modes ] @@ -232,10 +240,19 @@ break case SettingsStack.InstitutionalRecord: - vAdjustmentInstitutionalRecord.doAdjustment() + vInstitutionalRecord.doAdjustment() push( _settingsInstitutionalRecord ) break + case SettingsStack.AdvancedInstitutional: + vAdvancedInstitutionalRecord.doAdjustment() + push( _settingsAdvancedInstitutional ) + break + + case SettingsStack.FeatureConfigurations: + push( _settingsFeatureConfigurations ) + break + case SettingsStack.Localization: push( _settingLocalization ) break @@ -251,22 +268,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 } + 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 } + SettingsAdvancedInstitutional { id: _settingsAdvancedInstitutional} + SettingsLocalization { id: _settingLocalization } + SettingsFeatureConfigurations { id: _settingsFeatureConfigurations} SettingsAdvancedMode { id: _settingAdvancedMode } function gotoServiceMode( vservice ) { @@ -288,17 +307,6 @@ } } - Connections { target: vAdjustmentInstitutionalRecord - function onAdjustmentTriggered ( vValue ) { - if ( vAdjustmentInstitutionalRecord.adjustment_Accepted ) { - _settingsHome.notificationText = "" - } - else { - _settingsHome.notificationText = vAdjustmentInstitutionalRecord.text() - } - } - } - Connections { target: vTDOpMode function onServiceChanged ( vValue ) { gotoServiceMode( vValue )} function onStandbyWaitDisinfectChanged ( vValue ) { page( _settingsHome , vValue )} 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 ; Index: sources/view/settings/VSettings.h =================================================================== diff -u -rcbf070d3a5b274700f8831ab50dd95986a533477 -r0dfba44fb7172b9458d161b3ed5f54527f93b698 --- sources/view/settings/VSettings.h (.../VSettings.h) (revision cbf070d3a5b274700f8831ab50dd95986a533477) +++ sources/view/settings/VSettings.h (.../VSettings.h) (revision 0dfba44fb7172b9458d161b3ed5f54527f93b698) @@ -34,7 +34,7 @@ QString _location = QString(Storage::Settings_Category_InstructionsImagesLoc).arg(Storage::Settings_Path()); typedef QList TKeysList; typedef struct { - QString location; + QString title ; TKeysList keys ; QVariantList values ; } TInstruction ; @@ -68,10 +68,10 @@ 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 , "Feature Configurations" , "RoWaterMode" ) - SETTINGS(bool , userMode , false , Storage::Settings_Category_SettingsSystem , "UserMode" , "UserMode" ) SETTINGS(bool , integratedBPCuff , false , Storage::Settings_Category_SettingsSystem , "Feature Configurations" , "IntegratedBPCuff" ) SETTINGS(bool , heparinSyringePump , false , Storage::Settings_Category_SettingsSystem , "Feature Configurations" , "HeparinSyringePump" ) SETTINGS(bool , chemicalDisinfection , false , Storage::Settings_Category_SettingsSystem , "Feature Configurations" , "ChemicalDisinfection" ) + SETTINGS(bool , advancedMode , false , Storage::Settings_Category_SettingsSystem , "AdvancedMode", "AdvancedMode" ) TRIGGER (bool , encryptionPass, false ) @@ -80,8 +80,8 @@ private: void initConnectionsSettings(); - TKeysList updateReplacements ( const QString &vGroup, const QStringList &vKeys ); - void updateInstructions ( const QString &vGroup, const TKeysList &vKeysList, const QVariantList &vValues ); + TKeysList updateReplacements ( const QString &vGroup, const QStringList &vKeys ); + void updateInstructions ( const QString &vGroup, const TKeysList &vKeysList, const QVariantList &vValues, const QString &vTitle ); void updateInstructions ( const QString &vGroup ); QString defaultPassword ();