Index: leahi.qrc =================================================================== diff -u -r78aa5e70b591b3544ff9d9e6b772fe07deaa2f0f -rfb1185f1c17778a9f8b300170d8d635a1532f6b4 --- leahi.qrc (.../leahi.qrc) (revision 78aa5e70b591b3544ff9d9e6b772fe07deaa2f0f) +++ leahi.qrc (.../leahi.qrc) (revision fb1185f1c17778a9f8b300170d8d635a1532f6b4) @@ -133,6 +133,8 @@ resources/images/edit_yellow.png resources/images/moon.png resources/images/sun.png + resources/images/carbon_filter_1.png + resources/images/carbon_filter_2.png sources/gui/qml/components/MainMenu.qml Index: sources/gui/qml/components/HeaderBar.qml =================================================================== diff -u -r0975a67dd4e4673b9a7b226bfea02cbfa489c418 -rfb1185f1c17778a9f8b300170d8d635a1532f6b4 --- sources/gui/qml/components/HeaderBar.qml (.../HeaderBar.qml) (revision 0975a67dd4e4673b9a7b226bfea02cbfa489c418) +++ sources/gui/qml/components/HeaderBar.qml (.../HeaderBar.qml) (revision fb1185f1c17778a9f8b300170d8d635a1532f6b4) @@ -39,7 +39,6 @@ onIsHDFFeaturedChanged : vListModel.setHeaderbarHDFVisible(_root.isHDFFeatured ) onIsHeparinFeaturedChanged : vListModel.setHeaderbarHeparinVisible(_root.isHeparinFeatured ) Component.onCompleted : { - vListModel.setHeaderbarHeparinVisible (_root.isHeparinFeatured ) vListModel.setHeaderbarHDFVisible (_root.isHDFFeatured ) } Index: sources/gui/qml/dialogs/watersample/WaterSampleDialog.qml =================================================================== diff -u -re34703a10dcb558f13948e7d0ac4994f07270239 -rfb1185f1c17778a9f8b300170d8d635a1532f6b4 --- sources/gui/qml/dialogs/watersample/WaterSampleDialog.qml (.../WaterSampleDialog.qml) (revision e34703a10dcb558f13948e7d0ac4994f07270239) +++ sources/gui/qml/dialogs/watersample/WaterSampleDialog.qml (.../WaterSampleDialog.qml) (revision fb1185f1c17778a9f8b300170d8d635a1532f6b4) @@ -26,13 +26,22 @@ height : Variables.dialogHeight clip : true + readonly property bool timeout: vWaterSample.Timeout + + onTimeoutChanged: { + if ( _root.timeout ) { + _menu.index = WaterSampleDialog.WaterSample + _root.open() + } + } + enum Page { WaterSample , Dialysate } - WaterSamplePage { id: _waterSample; visible : _menu.index === WaterSampleDialog.WaterSample; } - WaterSampleDialysatePage { id: _dialysateChecks; visible : _menu.index === WaterSampleDialog.Dialysate; } + WaterSamplePage { id: _waterSample; visible : vSettings.roWaterMode ? _menu.index === WaterSampleDialog.WaterSample : false ; } + WaterSampleDialysatePage { id: _dialysateChecks; visible : vSettings.roWaterMode ? _menu.index === WaterSampleDialog.Dialysate : true ; } MainMenu { id: _menu anchors { @@ -43,13 +52,10 @@ width : _root.width / 2.5 color : Colors.transparent titlePixelSize : 30 - model : _model - - ListModel { id: _model - ListElement { text: qsTr("Water Sample") ; visible: true } - ListElement { text: qsTr("Dialysate Checks") ; visible: true } - } + model : vListModel.waterSampleModel + index : 0 } + Line { anchors { bottom : _menu.bottom Index: sources/gui/qml/dialogs/watersample/WaterSamplePage.qml =================================================================== diff -u -rd00eeb4a8b354eade40a0853c022eb03ea4ae233 -rfb1185f1c17778a9f8b300170d8d635a1532f6b4 --- sources/gui/qml/dialogs/watersample/WaterSamplePage.qml (.../WaterSamplePage.qml) (revision d00eeb4a8b354eade40a0853c022eb03ea4ae233) +++ sources/gui/qml/dialogs/watersample/WaterSamplePage.qml (.../WaterSamplePage.qml) (revision fb1185f1c17778a9f8b300170d8d635a1532f6b4) @@ -6,68 +6,30 @@ // Qml imports import "qrc:/globals" import "qrc:/components" +import "qrc:/compounds" WaterSampleBase { id: _root anchors.fill: parent - property int attempt: 1 - readonly property var instructionsGroup : vSettings.instructions[qsTr("Water Sample")] + readonly property bool isPrimary : vWaterSample.Valve === WaterSamplePage.PRIMARY - component WaterSampleRadioButton: RadioButton { id: _waterSampleRadioButton - property alias imageSource : _resultImage.source - - indicator: Rectangle { id: _indicator - width : 35 - height : 35 - radius : 35 - border.width: 2 - border.color: Colors.backgroundMainMenu - anchors.verticalCenter: parent.verticalCenter - - Rectangle { - anchors.centerIn: parent - width : 25 - height : 25 - radius : 25 - color : _waterSampleRadioButton.checked ? Colors.highlightProgressBar: Colors.backgroundMainMenu - visible : _waterSampleRadioButton.checked - } - } - - contentItem: Row { id: _row - spacing : _waterSampleRadioButton.spacing - leftPadding : 70 - anchors.verticalCenter: parent.verticalCenter - - Image { id: _resultImage } - - Text { id: _text - text : _waterSampleRadioButton.text - font.pixelSize : Fonts.fontPixelInstructionStep - color : Colors.modeTextColor - verticalAlignment : Text.AlignVCenter - height : _row.height - width : _text.implicitWidth - } - } + enum Valve { + PRIMARY , + SECONDARY } - contentItem : Rectangle { id: _content - color : Colors.modeBackgroundColor - radius : Variables.alarmDialogRadius - clip : true - + contentItem : Item { id: _content Text { id: _title anchors { left : parent.left leftMargin : Variables.defaultMargin * 3 // with current resolution this makes the screen look nice top : parent.top - topMargin : Variables.defaultMargin * 2 // with current resolution this makes the screen look nice + topMargin : Variables.defaultMargin // with current resolution this makes the screen look nice } - text : _root.instructionsGroup ? _root.instructionsGroup.title : "" + text : qsTr("Test %1 Carbon Filter").arg(_root.isPrimary ? qsTr("Primary") : qsTr("Secondary") ) height : Variables.contentHeight - color : Colors.modeTextColor - font.pixelSize : Fonts.fontPixelInstructionTitle + color : Colors.offWhite + font.pixelSize : Fonts.fontPixelTextRectLabel font.weight : Font.Medium } @@ -77,126 +39,131 @@ right : undefined left : _title.left top : _title.bottom - topMargin : Variables.defaultMargin * 2 + topMargin : Variables.defaultMargin } width : parent.width / 3 height : Variables.contentHeight color : "transparent" imageSource : "qrc:/images/iHelp" imageVisible : true text : qsTr("Test the carbon filters per your clinic's instructions") - textColor : Colors.modeTextColor + textfontWeight : Font.Medium + textColor : Colors.statusTextPaused imageDiameter : 25 imageTopMargin : 3 } - Item { id: _instructionContainer + Text { id: _message anchors { - right : _content.right - left : _title.left - top : _infoNotificationBar.bottom - bottom : _content.bottom + top : _infoNotificationBar.bottom + topMargin : Variables.defaultMargin * 3 + left : _title.left } - Item { id: _instruction - width : _instructionContainer.width - height : Variables.instructionHeight + text : qsTr("Test the %1 carbon filter and enter the result below").arg( _root.isPrimary ? qsTr("primary") : qsTr("secondary") ) + font.weight : Font.Medium + color : Colors.offWhite + font.pixelSize : Fonts.fontPixelInstructionStep + } - Rectangle { id: _attemptRect - anchors.left : parent.left - anchors.verticalCenter : parent.verticalCenter + LabelUnitValueAdjuster { id: _chlorineLevel + anchors { + top : _message.bottom + topMargin : Variables.defaultMargin * 4 + left : _title.left + } - height : 50 - width : height - radius : height - color : Colors.modeButtonColor + text : qsTr("Chlorine Level") + unitText : Variables.unitTextChlorine + minimum : vTreatmentRanges.chlorineWaterSampleMin + maximum : vTreatmentRanges.chlorineWaterSampleMax + step : vTreatmentRanges.chlorineWaterSampleRes + defaultValue : vTreatmentRanges.chlorineWaterSampleDef + value : vTreatmentRanges.chlorineWaterSampleDef + decimal : Variables.chlorinePrecision + isActive : true - Text { id: _attemptNumberRect - anchors.centerIn: parent - text : _root.attempt - color : Colors.white - font.pixelSize : 28 - font.weight : Font.Medium - } - } + onDidChange : { + value = vValue + } + } - Text { id: _message - anchors { - left : _attemptRect.right - leftMargin : Variables.defaultMargin * 2 // with current resolution this makes the screen look nice - right : parent.right - verticalCenter : parent.verticalCenter - } - text : _root.instructionsGroup ? _root.instructionsGroup.keys[0] : "" //qsTr("Test the primary carbon filter and select the result below") - font.weight : Font.Medium - color : Colors.modeTextColor - wrapMode : Text.WordWrap - font.pixelSize : Fonts.fontPixelInstructionStep - } + Text { id: _lastRecorded + anchors { + top : _chlorineLevel.bottom + topMargin : Variables.defaultMargin * 4 + left : _title.left } + height : 30 + width : _content.width + font.pixelSize : Fonts.fontPixelNotification + font.weight : Font.Normal + verticalAlignment : Text.AlignBottom + color : Colors.offWhite + text : ("%1 %2") .arg(qsTr("Last Tested:")) + .arg(vPreTreatmentAdjustmentWaterSample.resultTime) + visible : _lastValue.visible + } - Column { - anchors { - left : parent.left - leftMargin : Variables.defaultMargin * 6 - top : _instruction.bottom - topMargin : Variables.defaultMargin - } - spacing: Variables.defaultMargin * 3 - - ButtonGroup { id: _radioGroup } - - WaterSampleRadioButton { id: _failContainer - text: ("%1 > %2 %3") .arg(qsTr("Chlorine level")) - .arg(Variables.chlorineLevel) - .arg(Variables.unitTextChlorine) - ButtonGroup.group : _radioGroup - spacing : Variables.defaultMargin - imageSource : "qrc:/images/iWaterSampleFail" - } - - WaterSampleRadioButton { id: _passContainer - text: ("%1 ≤ %2 %3").arg(qsTr("Chlorine level")) - .arg(Variables.chlorineLevel) - .arg(Variables.unitTextChlorine) - ButtonGroup.group: _radioGroup - spacing : Variables.defaultMargin - imageSource : "qrc:/images/iWaterSamplePass" - } + Text { id: _lastValue + anchors { + top : _lastRecorded.bottom + topMargin : Variables.defaultMargin + left : _title.left } + + height : 30 + width : _content.width + font.pixelSize : Fonts.fontPixelNotification + font.weight : Font.Normal + verticalAlignment : Text.AlignBottom + color : Colors.offWhite + text : ("%1 %2 %3") .arg(qsTr("Last Result:")) + .arg(vPreTreatmentAdjustmentWaterSample.resultValue.toFixed(Variables.chlorinePrecision)) + .arg(Variables.unitTextChlorine) + visible : vPreTreatmentAdjustmentWaterSample.resultValue } + Image { id: _image anchors.right : parent.right anchors.top : parent.top - anchors.bottom : parent.bottom - source : _root.instructionsGroup ? _root.instructionsGroup.values[0] : "" //"qrc:/images/iRedCrossWCircle" // TODO get actual image + source : _root.isPrimary ? "qrc:/images/iCarbonFilter1" : + "qrc:/images/iCarbonFilter2" } ConfirmButton { id : _confirmButton objectName : "_confirmButton" anchors { - top : undefined - right : undefined - bottom : parent.bottom + top : undefined + right : undefined + bottom : parent.bottom + bottomMargin : notification.height + Variables.defaultMargin horizontalCenter: parent.horizontalCenter } - enabled : _failContainer.checked || _passContainer.checked + height : Variables.defaultButtonHeight + width : Variables.defaultButtonWidth - onClicked : vPreTreatmentAdjustmentWaterSample.doResult( _passContainer.checked ) + onClicked : vPreTreatmentAdjustmentWaterSample.doResult( _chlorineLevel.value ) } } - // TODO water sample -// Connections { target: vPreTreatmentAdjustmentWaterSample -// function onAdjustmentTriggered ( vValue ) { -// if ( vPreTreatmentAdjustmentWaterSample.adjustment_Accepted ) { -// _pretreatmentWaterSample.reasonText = "" -// page ( _pretreatmentCreate ) -// } else { -// _pretreatmentWaterSample.reasonText = vPreTreatmentAdjustmentWaterSample.text() -// } -// } -// } + // this notification shall not be confused with the _notification in the parent ModalDailog + // this meant to be used specifically as current state notification like paused/off in UF + // it is also available in TreatmentAdjustmentFlow and TreatmentAdjustmentDuration but not used. + NotificationBarSmall { id: _information + anchors.bottom : parent.bottom + imageSource : "" + text : "" + } + Connections { target: vPreTreatmentAdjustmentWaterSample + function onAdjustmentTriggered ( vValue ) { + if ( vPreTreatmentAdjustmentWaterSample.adjustment_Accepted ) { + _information.text = "" + } else { + _information.text = vPreTreatmentAdjustmentWaterSample.text() + } + } + } } Index: sources/gui/qml/globals/Variables.qml =================================================================== diff -u -r0975a67dd4e4673b9a7b226bfea02cbfa489c418 -rfb1185f1c17778a9f8b300170d8d635a1532f6b4 --- sources/gui/qml/globals/Variables.qml (.../Variables.qml) (revision 0975a67dd4e4673b9a7b226bfea02cbfa489c418) +++ sources/gui/qml/globals/Variables.qml (.../Variables.qml) (revision fb1185f1c17778a9f8b300170d8d635a1532f6b4) @@ -270,6 +270,9 @@ // weight readonly property int weightPrecision : 1 + // chlorine + readonly property int chlorinePrecision : 2 + function sizeConverted(vSize, vSizePowers, vRound = 2) { return ( vSize / vSizePowers // convert from byte to Giga byte @@ -301,7 +304,6 @@ readonly property string preTreatmentStepLabelUltrafiltration : qsTr("BEGIN" ) readonly property string unitTextChlorine : qsTr("mg/L") - readonly property real chlorineLevel : 0.1 // Heparin readonly property string unitHeparinType : qsTr("IU/mL") Index: sources/gui/qml/pages/settings/SettingsROInput.qml =================================================================== diff -u -r1f9e84f74ead9e10577c8caa204c6eb911e12ab8 -rfb1185f1c17778a9f8b300170d8d635a1532f6b4 --- sources/gui/qml/pages/settings/SettingsROInput.qml (.../SettingsROInput.qml) (revision 1f9e84f74ead9e10577c8caa204c6eb911e12ab8) +++ sources/gui/qml/pages/settings/SettingsROInput.qml (.../SettingsROInput.qml) (revision fb1185f1c17778a9f8b300170d8d635a1532f6b4) @@ -36,19 +36,22 @@ anchors.horizontalCenter : parent.horizontalCenter width : Variables.adjustmentLabelUnitContainerWidth height : Variables.adjustmentLabelUnitContainerHeight - text : qsTr("Pure Water Mode") + text : qsTr("RO Water Mode") contentArea.anchors.leftMargin : width * 0.75 contentItem: BaseSwitch { id: _settingsRoInputSwitch - checked : vDuetRoWaterDG.status + checked : vSettings.roWaterMode +// checked : vDuetRoWaterDG.status // TODO?? onClicked: { - vDuetRoWaterDG.doAdjustment ( _settingsRoInputSwitch.checked ) + vSettings.roWaterMode = _settingsRoInputSwitch.checked +// vDuetRoWaterDG.doAdjustment ( _settingsRoInputSwitch.checked ) } } } } + // TODO Connections { target: vDuetRoWaterDG function onAdjustmentTriggered(vValue) { if ( vDuetRoWaterDG.adjustment_Accepted ) { Index: sources/gui/qml/pages/settings/SettingsStack.qml =================================================================== diff -u -r39a514158384c0ad4bfcfb90bafbaa4ca8dc5a26 -rfb1185f1c17778a9f8b300170d8d635a1532f6b4 --- sources/gui/qml/pages/settings/SettingsStack.qml (.../SettingsStack.qml) (revision 39a514158384c0ad4bfcfb90bafbaa4ca8dc5a26) +++ sources/gui/qml/pages/settings/SettingsStack.qml (.../SettingsStack.qml) (revision fb1185f1c17778a9f8b300170d8d635a1532f6b4) @@ -62,7 +62,7 @@ // if works it is a better approach better. readonly property bool visibleServicePassword : ( normalMode && ! loggedIn ) // || ( onlyUpdating && ! loggedIn ) readonly property bool visibleDGCleaning : normalMode - readonly property bool visibleRoInput : normalMode + readonly property bool visibleRoInput : onlyManufacturing && loggedIn readonly property bool visibleRootSSHAccess : loggedIn readonly property bool visibleFactoryReset : loggedIn readonly property bool visibleDecommission : false // TODO: Not Yet Defined Index: sources/model/td/data/MWaterSampleData.h =================================================================== diff -u -r9403146058e7c4cef17bd542bbd39bbf032be9f3 -rfb1185f1c17778a9f8b300170d8d635a1532f6b4 --- sources/model/td/data/MWaterSampleData.h (.../MWaterSampleData.h) (revision 9403146058e7c4cef17bd542bbd39bbf032be9f3) +++ sources/model/td/data/MWaterSampleData.h (.../MWaterSampleData.h) (revision fb1185f1c17778a9f8b300170d8d635a1532f6b4) @@ -23,8 +23,8 @@ * * | Payload || * | || - * | #1:(U32) | \ref Data::mValve | - * | #2:(U32) | \ref Data::mTimeout | + * | #1:(U32) | \ref Data::mValve | + * | #2:(U32) | \ref Data::mTimeout | * * \sa Data * \sa MWaterSample : WaterSample Data Index: sources/view/VListModel.cpp =================================================================== diff -u -rdea27f0df1a1de0a618162403df41a9a340d1263 -rfb1185f1c17778a9f8b300170d8d635a1532f6b4 --- sources/view/VListModel.cpp (.../VListModel.cpp) (revision dea27f0df1a1de0a618162403df41a9a340d1263) +++ sources/view/VListModel.cpp (.../VListModel.cpp) (revision fb1185f1c17778a9f8b300170d8d635a1532f6b4) @@ -1,41 +1,63 @@ #include "VListModel.h" +#include "GuiController.h" + + View::VListModel::VListModel(QObject *parent) { Q_UNUSED(parent) + ACTION_VIEW_CONNECTION(SettingsData); - _headerbarModel.setRoleNames({ { eRole_Text , "text" }, + _headerbarModel.setRoleNames({{ eRole_Text , "text" }, { eRole_Visible , "visible" }, { eRole_Screen , "screen" }, { eRole_StatusColor , "statusColor" }, }); + + _waterSampleModel.setRoleNames({ { eRole_Text , "text" }, + { eRole_Visible , "visible" }, + }); initModel(); } void View::VListModel::initModel() { - _headerbarModel.insertRow( Treatment,{{ eRole_Text, tr("Treatment")}, { eRole_Visible, true }, { eRole_Screen, Treatment}, { eRole_StatusColor, "Transparent" }}); - _headerbarModel.insertRow( Trends ,{{ eRole_Text, tr("Trends") }, { eRole_Visible, true }, { eRole_Screen, Trends }, { eRole_StatusColor, "Transparent" }}); - _headerbarModel.insertRow( Heparin ,{{ eRole_Text, tr("Heparin") }, { eRole_Visible, true }, { eRole_Screen, Heparin }, { eRole_StatusColor, "Transparent" }}); - _headerbarModel.insertRow( HDF ,{{ eRole_Text, tr("HDF") }, { eRole_Visible, true }, { eRole_Screen, HDF }, { eRole_StatusColor, "Transparent" }}); + _headerbarModel.clear(); + _headerbarModel.insertRow( eTreatment,{{ eRole_Text, tr("Treatment")}, { eRole_Visible, true }, { eRole_Screen, eTreatment}, { eRole_StatusColor, "Transparent" }}); + _headerbarModel.insertRow( eTrends ,{{ eRole_Text, tr("Trends") }, { eRole_Visible, true }, { eRole_Screen, eTrends }, { eRole_StatusColor, "Transparent" }}); + _headerbarModel.insertRow( eHeparin ,{{ eRole_Text, tr("Heparin") }, { eRole_Visible, _heparinSyringePump }, { eRole_Screen, eHeparin }, { eRole_StatusColor, "Transparent" }}); + _headerbarModel.insertRow( eHDF ,{{ eRole_Text, tr("HDF") }, { eRole_Visible, true }, { eRole_Screen, eHDF }, { eRole_StatusColor, "Transparent" }}); + + _waterSampleModel.clear(); + _waterSampleModel.insertRow( eWaterSample , {{ eRole_Text, tr("Water Sample") }, { eRole_Visible, _roWaterMode }}); + _waterSampleModel.insertRow( eDialysateChecks , {{ eRole_Text, tr("Dialysate Checks")}, { eRole_Visible, true }}); } void View::VListModel::setHeaderbarHeparinStatusColor (QString color) { - _headerbarModel.updateData(Heparin, eRole_StatusColor, color); + _headerbarModel.updateData(eHeparin, eRole_StatusColor, color); } void View::VListModel::setHeaderbarHDFStatusColor (QString color) { - _headerbarModel.updateData(HDF, eRole_StatusColor, color); + _headerbarModel.updateData(eHDF, eRole_StatusColor, color); } void View::VListModel::setHeaderbarHeparinVisible (bool visible) { - _headerbarModel.updateData(Heparin, eRole_Visible, visible); + _headerbarModel.updateData(eHeparin, eRole_Visible, visible); } void View::VListModel::setHeaderbarHDFVisible (bool visible) { - _headerbarModel.updateData(HDF, eRole_Visible, visible); + _headerbarModel.updateData(eHDF, eRole_Visible, visible); } + +void View::VListModel::onActionReceive(const SettingsData &) +{ + QString mCategory = Storage::Settings_Category_SettingsSystem; + FROMVARIANT( roWaterMode , "Feature Configurations", "RoWaterMode" , UInt ); + FROMVARIANT( heparinSyringePump , "Feature Configurations", "HeparinSyringePump", UInt ); + + initModel(); +} Index: sources/view/VListModel.h =================================================================== diff -u -r171387aefe2f3d21245ff32fc9b9656c79bfa406 -rfb1185f1c17778a9f8b300170d8d635a1532f6b4 --- sources/view/VListModel.h (.../VListModel.h) (revision 171387aefe2f3d21245ff32fc9b9656c79bfa406) +++ sources/view/VListModel.h (.../VListModel.h) (revision fb1185f1c17778a9f8b300170d8d635a1532f6b4) @@ -8,6 +8,7 @@ #include "VView.h" #include "MListModel.h" +#include "MSettings.h" // namespace namespace View { @@ -24,21 +25,34 @@ Q_OBJECT enum { - Treatment = 0, - Trends = 1, - Heparin = 2, - HDF = 3 + eTreatment = 0, + eTrends = 1, + eHeparin = 2, + eHDF = 3 } TreatmentScreen; enum { eRole_Text = Qt::UserRole +1 , eRole_Visible , eRole_Screen , eRole_StatusColor - } HeaderbarDataRole; + } DataRole; - Q_PROPERTY(MListModel* headerbarModel READ headerbarModel NOTIFY didHeaderbarModelChange) + enum { + eWaterSample = 0, + eDialysateChecks= 1 + } WaterSample; + + Q_PROPERTY(MListModel* headerbarModel READ headerbarModel NOTIFY didHeaderbarModelChange) + Q_PROPERTY(MListModel* waterSampleModel READ waterSampleModel NOTIFY didWaterSampleModelChange) + + PROPERTY ( int , roWaterMode , 0) + PROPERTY ( int , heparinSyringePump , 0) + + VIEW_DEC_SLOT(SettingsData ) + + public: explicit VListModel(QObject *parent = nullptr); @@ -53,10 +67,14 @@ MListModel* headerbarModel () { return &_headerbarModel; } MListModel _headerbarModel; + MListModel* waterSampleModel () { return &_waterSampleModel; } + MListModel _waterSampleModel; + void initModel(); signals: void didHeaderbarModelChange(); + void didWaterSampleModelChange(); }; } Index: sources/view/settings/VDuetRoWaterDG.cpp =================================================================== diff -u -ra5760947d3ed0d2748ba023a1c25e3c6aa0b1de1 -rfb1185f1c17778a9f8b300170d8d635a1532f6b4 --- sources/view/settings/VDuetRoWaterDG.cpp (.../VDuetRoWaterDG.cpp) (revision a5760947d3ed0d2748ba023a1c25e3c6aa0b1de1) +++ sources/view/settings/VDuetRoWaterDG.cpp (.../VDuetRoWaterDG.cpp) (revision fb1185f1c17778a9f8b300170d8d635a1532f6b4) @@ -77,5 +77,5 @@ void View::VDuetRoWaterDG::onActionReceive(const SettingsData &) { QString mCategory = Storage::Settings_Category_SettingsSystem; - FROMVARIANT( status, "RoWaterMode", "RoWaterMode", UInt ); + FROMVARIANT( status, "Feature Configurations" , "RoWaterMode", UInt ); } Index: sources/view/td/adjustment/pretreatment/VPreTreatmentAdjustmentWaterSample.cpp =================================================================== diff -u -r9403146058e7c4cef17bd542bbd39bbf032be9f3 -rfb1185f1c17778a9f8b300170d8d635a1532f6b4 --- sources/view/td/adjustment/pretreatment/VPreTreatmentAdjustmentWaterSample.cpp (.../VPreTreatmentAdjustmentWaterSample.cpp) (revision 9403146058e7c4cef17bd542bbd39bbf032be9f3) +++ sources/view/td/adjustment/pretreatment/VPreTreatmentAdjustmentWaterSample.cpp (.../VPreTreatmentAdjustmentWaterSample.cpp) (revision fb1185f1c17778a9f8b300170d8d635a1532f6b4) @@ -17,6 +17,9 @@ // Project #include "GuiController.h" +// Qt +#include + VIEW_DEF_CLASS_ADJUSTMENT(VPreTreatmentAdjustmentWaterSample) /*! \brief Connection Initializer @@ -37,7 +40,9 @@ adjustment_Accepted ( vData.mAccepted ); adjustment_Reason ( vData.mReason ); - resultValue (vData.mValue ); + QDateTime currentDateTime = QDateTime::currentDateTime(); + resultValue (vData.mValue ); + resultTime (currentDateTime.toString(_Settings.getDatetimeFormat())); // *** has to be the last to let the information to be set and then emit the signal *** // *** otherwise will use the previous values before being set. *** Index: sources/view/td/adjustment/pretreatment/VPreTreatmentAdjustmentWaterSample.h =================================================================== diff -u -r9403146058e7c4cef17bd542bbd39bbf032be9f3 -rfb1185f1c17778a9f8b300170d8d635a1532f6b4 --- sources/view/td/adjustment/pretreatment/VPreTreatmentAdjustmentWaterSample.h (.../VPreTreatmentAdjustmentWaterSample.h) (revision 9403146058e7c4cef17bd542bbd39bbf032be9f3) +++ sources/view/td/adjustment/pretreatment/VPreTreatmentAdjustmentWaterSample.h (.../VPreTreatmentAdjustmentWaterSample.h) (revision fb1185f1c17778a9f8b300170d8d635a1532f6b4) @@ -41,7 +41,8 @@ // and to always trigger the change event to work as a notifier for GUI TRIGGER ( bool , adjustment , 0) - PROPERTY ( float , resultValue , 0) + PROPERTY ( float , resultValue , 0) + PROPERTY ( QString , resultTime , 0) VIEW_DEC_CLASS_ADJUSTMENT(VPreTreatmentAdjustmentWaterSample, AdjustWaterSampleResultResponseData) Index: sources/view/td/data/VTreatmentRanges.cpp =================================================================== diff -u -raf80aaa1c114eab78444e973c86b3c42dd85ef52 -rfb1185f1c17778a9f8b300170d8d635a1532f6b4 --- sources/view/td/data/VTreatmentRanges.cpp (.../VTreatmentRanges.cpp) (revision af80aaa1c114eab78444e973c86b3c42dd85ef52) +++ sources/view/td/data/VTreatmentRanges.cpp (.../VTreatmentRanges.cpp) (revision fb1185f1c17778a9f8b300170d8d635a1532f6b4) @@ -371,6 +371,11 @@ FROMVARIANT_WITHRETURN ( chlorineWaterSampleCheckMax , "Chlorine Water Sample Check" , "Chlorine_Water_Sample_Check_Max" , Int , isConfigsOk ); FROMVARIANT_WITHRETURN ( chlorineWaterSampleCheckRes , "Chlorine Water Sample Check" , "Chlorine_Water_Sample_Check_Res" , Int , isConfigsOk ); + FROMVARIANT_WITHRETURN ( chlorineWaterSampleDef , "Chlorine Water Sample Value" , "Chlorine_Water_Sample_Def" , Float , isConfigsOk ); + FROMVARIANT_WITHRETURN ( chlorineWaterSampleMin , "Chlorine Water Sample Value" , "Chlorine_Water_Sample_Min" , Float , isConfigsOk ); + FROMVARIANT_WITHRETURN ( chlorineWaterSampleMax , "Chlorine Water Sample Value" , "Chlorine_Water_Sample_Max" , Float , isConfigsOk ); + FROMVARIANT_WITHRETURN ( chlorineWaterSampleRes , "Chlorine Water Sample Value" , "Chlorine_Water_Sample_Res" , Float , isConfigsOk ); + FROMVARIANT_WITHRETURN ( isolatedUFDurationDef , "Isolated UF Duration Ranges" , "Isolated_UF_Duration_Def" , UInt , isConfigsOk ); FROMVARIANT_WITHRETURN ( isolatedUFDurationMin , "Isolated UF Duration Ranges" , "Isolated_UF_Duration_Min" , UInt , isConfigsOk ); FROMVARIANT_WITHRETURN ( isolatedUFDurationMax , "Isolated UF Duration Ranges" , "Isolated_UF_Duration_Max" , UInt , isConfigsOk ); Index: sources/view/td/data/VTreatmentRanges.h =================================================================== diff -u -r1a46e7e1fd9da0fcfa8359a194610c55adfff04f -rfb1185f1c17778a9f8b300170d8d635a1532f6b4 --- sources/view/td/data/VTreatmentRanges.h (.../VTreatmentRanges.h) (revision 1a46e7e1fd9da0fcfa8359a194610c55adfff04f) +++ sources/view/td/data/VTreatmentRanges.h (.../VTreatmentRanges.h) (revision fb1185f1c17778a9f8b300170d8d635a1532f6b4) @@ -109,6 +109,7 @@ RANGESET( quint32 , inletWaterCondHighThreshold , 0) RANGESET( quint32 , chlorineWaterSampleCheck , 0) READONLY( QStringList , waterSampleTestResultRequired ,{}) + RANGESET( float , chlorineWaterSample , 0) // monitoring ranges RANGESET( qint32 , transmembranePressureMonitor , 0) Index: sources/view/td/data/VWaterSampleData.cpp =================================================================== diff -u -rda08f523146f2933343958ec712f4b8637d586be -rfb1185f1c17778a9f8b300170d8d635a1532f6b4 --- sources/view/td/data/VWaterSampleData.cpp (.../VWaterSampleData.cpp) (revision da08f523146f2933343958ec712f4b8637d586be) +++ sources/view/td/data/VWaterSampleData.cpp (.../VWaterSampleData.cpp) (revision fb1185f1c17778a9f8b300170d8d635a1532f6b4) @@ -10,7 +10,4 @@ { Valve (vData.mValve ); Timeout (vData.mTimeout ); - - qDebug() << _Valve; - qDebug() << _Timeout; }