Index: leahi.qrc =================================================================== diff -u -rb0ad6789ac542b1c24db1d89af3d4e1411a4d4f1 -rb9739918c71a21c181c8401f17ed05fb14996fec --- leahi.qrc (.../leahi.qrc) (revision b0ad6789ac542b1c24db1d89af3d4e1411a4d4f1) +++ leahi.qrc (.../leahi.qrc) (revision b9739918c71a21c181c8401f17ed05fb14996fec) @@ -43,6 +43,7 @@ sources/gui/qml/dialogs/UfVolumeAdjustment.qml sources/gui/qml/dialogs/HeparinRxAdjustment.qml sources/gui/qml/dialogs/AlarmDialog.qml + sources/gui/qml/dialogs/DryDemoDialog.qml sources/gui/qml/dialogs/diagnostics/DiagnosticsDialog.qml Index: sources/gui/qml/components/HeaderBar.qml =================================================================== diff -u -rc70815ad2b3beadf61832f2e4d12eb90d476e020 -rb9739918c71a21c181c8401f17ed05fb14996fec --- sources/gui/qml/components/HeaderBar.qml (.../HeaderBar.qml) (revision c70815ad2b3beadf61832f2e4d12eb90d476e020) +++ sources/gui/qml/components/HeaderBar.qml (.../HeaderBar.qml) (revision b9739918c71a21c181c8401f17ed05fb14996fec) @@ -60,6 +60,7 @@ vConfirm.id = dryDemoTempID vConfirm.doConfirm( true ) vConfirm.id = id + _dryDemoDialog.open() } else { _diagnosticsDialog.open() Index: sources/gui/qml/dialogs/DryDemoDialog.qml =================================================================== diff -u --- sources/gui/qml/dialogs/DryDemoDialog.qml (revision 0) +++ sources/gui/qml/dialogs/DryDemoDialog.qml (revision b9739918c71a21c181c8401f17ed05fb14996fec) @@ -0,0 +1,82 @@ +// Qt +import QtQuick 2.15 + + +// Qml imports +import "qrc:/globals" +import "qrc:/components" +import "qrc:/compounds" + +/*! + * \brief Dry Demo menu + */ +ModalDialog { id: _root + width : Variables.adjustmentDialogWidth + height : Variables.adjustmentDialogHeight + + enum Menu { + STANDBY , + PRE_TREATMENT , + BLOOD_PRIME , + MAIN_TREATMENT , + RINSEBACK , + RECIRCULATE , + POST_TREATMENT , + DISINFECTION , + COUNT + } + + TitleText { id : _titleText + text: qsTr("Dry Demo") + font { + pixelSize : Fonts.fontPixelTitle + weight : Font.Medium + } + color : Colors.textMain + width : contentWidth + height : contentHeight + anchors { + top : parent.top + horizontalCenter : parent.horizontalCenter + margins : Variables.defaultMargin * 2 + } + } + + TouchGrid { id: _grid + anchors.centerIn : parent + rowCount : itemsText.count / 2 ?? 0 + colCount : 2 + colSpacing : Variables.defaultMargin + itemWidth : _root.width / 2.5 + itemHeight : Variables.createRxLabelUnitContainerHeight + lineThickness : 0 + arrowWidth : Variables.iconButtonSize + arrowHeight : Variables.iconButtonSize + arrowRightMargin : Variables.defaultMargin + delegateColor : Colors.panelBackgroundColor + delegateBorderWidth : 1 + delegateBorderColor : Colors.panelBorderColor + itemsHasIndent : Array(itemsText.length).fill(true) // sets all to true + + onItemClicked : vConfirm.doDryDemo(vIndex) // print(vIndex) //_root.itemClicked(vIndex) + + Component.onCompleted: { + var model = new Array(DryDemoDialog.COUNT).fill("") + model[DryDemoDialog.STANDBY] = qsTr("Standby") + model[DryDemoDialog.PRE_TREATMENT] = qsTr("Pre-Treatment") + model[DryDemoDialog.BLOOD_PRIME] = qsTr("Blood Prime") + model[DryDemoDialog.MAIN_TREATMENT] = qsTr("Main Treatment") + model[DryDemoDialog.RINSEBACK] = qsTr("Rinseback") + model[DryDemoDialog.RECIRCULATE] = qsTr("Recirculate") + model[DryDemoDialog.POST_TREATMENT] = qsTr("Post-Treatment") + model[DryDemoDialog.DISINFECTION] = qsTr("Disinfection") + itemsText = model + } + } + + CloseButton { id : _closeButton + onClicked : { + _root.close() + } + } +} Index: sources/gui/qml/main.qml =================================================================== diff -u -rc70815ad2b3beadf61832f2e4d12eb90d476e020 -rb9739918c71a21c181c8401f17ed05fb14996fec --- sources/gui/qml/main.qml (.../main.qml) (revision c70815ad2b3beadf61832f2e4d12eb90d476e020) +++ sources/gui/qml/main.qml (.../main.qml) (revision b9739918c71a21c181c8401f17ed05fb14996fec) @@ -434,6 +434,7 @@ AlarmItem { id: _alarmItem ; z: 996 } PowerItem { id: _powerItem ; z: 997 } ConfirmDialog { id: _confirmDialog ; z: 998 } + DryDemoDialog { id: _dryDemoDialog; z: 999 } DiagnosticsDialog { id: _diagnosticsDialog; z: 999 } // Note: NotificationBar has to be anchored to the main menu and if it is moved into the AlarmItem Index: sources/view/confirm/VConfirm.cpp =================================================================== diff -u -rbf57221d2e46597ae61607ee90272653c30b9a37 -rb9739918c71a21c181c8401f17ed05fb14996fec --- sources/view/confirm/VConfirm.cpp (.../VConfirm.cpp) (revision bf57221d2e46597ae61607ee90272653c30b9a37) +++ sources/view/confirm/VConfirm.cpp (.../VConfirm.cpp) (revision b9739918c71a21c181c8401f17ed05fb14996fec) @@ -172,6 +172,17 @@ emit didAdjustment(data); } +/*! + * \brief View::VConfirm::doDryDemo + * \details the invocable slot to send user's Confirmation for Dry Demo only + */ +void View::VConfirm::doDryDemo(int vState) { + DuetConfirmUIrData data; + data.mId = dryDemoID; + data.mConfirm = vState; + emit didAdjustment(data); +} + void View::VConfirm::onActionReceive(const SettingsData &) { QStringList mCategorys = _Settings.categorys(); for (const QString &category : mCategorys) { Index: sources/view/confirm/VConfirm.h =================================================================== diff -u -rbf57221d2e46597ae61607ee90272653c30b9a37 -rb9739918c71a21c181c8401f17ed05fb14996fec --- sources/view/confirm/VConfirm.h (.../VConfirm.h) (revision bf57221d2e46597ae61607ee90272653c30b9a37) +++ sources/view/confirm/VConfirm.h (.../VConfirm.h) (revision b9739918c71a21c181c8401f17ed05fb14996fec) @@ -48,6 +48,7 @@ }; QMap _confirms; + const int dryDemoID = 99; // ********** DYNAMIC PROPERTIES: The properties which need to be updated by each confirm message received. ********** // READONLY( bool , needConfirm , false) @@ -87,6 +88,7 @@ public slots: void doConfirm(bool vConfirm); + void doDryDemo(int vState); signals: /*!