Index: sources/gui/qml/AlarmItem.qml =================================================================== diff -u -r376859852f4d1a07263c44524aec347db29e0133 -r13e65c3d271d503c2e2e2f1f20736652c470f8cc --- sources/gui/qml/AlarmItem.qml (.../AlarmItem.qml) (revision 376859852f4d1a07263c44524aec347db29e0133) +++ sources/gui/qml/AlarmItem.qml (.../AlarmItem.qml) (revision 13e65c3d271d503c2e2e2f1f20736652c470f8cc) @@ -1,15 +1,15 @@ /*! * - * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. + * Copyright (c) 2021-2022 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 AlarmItem.qml * \author (last) Behrouz NematiPour - * \date (last) 28-Feb-2021 + * \date (last) 18-Mar-2022 * \author (original) Behrouz NematiPour - * \date (original) 28-Feb-2021 + * \date (original) 01-Mar-2021 * */ @@ -31,6 +31,9 @@ * This item needs to work with the NotificationBar component. */ Item { id : _root + + readonly property bool _DEBUG_DISABLE_MAXIMIZE_: false // due to touch screen issue on some devices, the maximized alarm can't be minimized to see the screen underneath. + anchors.fill: parent VAlarmStatus { id: vAlarmStatus } @@ -41,21 +44,37 @@ readonly property alias text : vAlarmStatus.text readonly property alias isSilenced : vAlarmStatus.alarm_Flag_alarmsSilenced readonly property alias timeout : vAlarmStatus.alarm_MuteTimeout + readonly property alias alarm_AlarmID : vAlarmStatus.alarm_AlarmID function clearAlarm() { vAlarmStatus.doClearCondition() } - // Alarms + // Alarms dialog/bar navigation handling ----- vvvvv ----- function alarmMinimize() { + // The has alarm check has been added here to let other components call this function, + // without worrying about the alarmDialog popoing up without an alarm present. + // Look at the PowerItem as an example. + if ( ! vAlarmStatus.hasAlarm ) return + + _alarmDialog .visible = false _alarmListDialog.visible = false _alarmBar .visible = true } function alarmMaximize() { - _alarmDialog .visible = true - _alarmListDialog.visible = false - _alarmBar .visible = false + // The has alarm check has been added here to let other components call this function, + // without worrying about the alarmDialog popoing up without an alarm present. + // Look at the PowerItem as an example. + if ( ! vAlarmStatus.hasAlarm ) return + + if ( _root._DEBUG_DISABLE_MAXIMIZE_ ) { + alarmMinimize() + } else { + _alarmDialog .visible = true + _alarmListDialog.visible = false + _alarmBar .visible = false + } } function alarmList() { vAlarmActiveList.doRequest() @@ -69,22 +88,36 @@ _alarmBar .visible = false } + Connections { target: _alarmDialog + onMinimizeClicked : vAlarmStatus.alarm_Flag_noMinimize ? alarmList() : alarmMinimize() + } + Connections { target: _alarmListDialog + onMinimizeClicked : vAlarmStatus.alarm_Flag_noMinimize ? alarmMaximize() : alarmMinimize() + } Connections { target: _alarmBar - onMuteClicked : vAlarmStatus.doSilence() onListClicked : alarmList() onMaximizeClicked : alarmMaximize() onClicked : alarmMaximize() } + Connections { target: vAlarmStatus + onDidAlarmRaise: alarmMaximize() + onDidAlarmEmpty: alarmHide() + } + // ----- ^^^^^ ----- + Connections { target: _alarmBar + onMuteClicked : vAlarmStatus.doSilence() + } + // TODO : Later need to create a base Notification dialog class // and inherit NotificationDialog and AlarmListDialog from that - // Beter be the NotificationDialog defined as parent - // and two separate dialogs by the names of AlarmDialog , AlarmListDlialog creatd. - // Same for the Notification Bar + // Better be the NotificationDialog defined as parent + // and create two separate dialogs by the names of AlarmDialog , AlarmListDlialog. + // Same for the NotificationBar NotificationDialog { id : _alarmDialog // this will change later to the actual message text // and the instruction would be in the dialog content - titleText : qsTr("Alarm") + titleText : qsTr("Alarm") + " " + "[" + vAlarmStatus.alarm_AlarmID + "]" description : vAlarmStatus.text alarmID : vAlarmStatus.alarm_AlarmID isSilenced : vAlarmStatus.alarm_Flag_alarmsSilenced @@ -95,60 +128,30 @@ endVisible : ! vAlarmStatus.alarm_Flag_noEndTreatment minVisible : ! vAlarmStatus.alarm_Flag_noMinimize titleFading : vHDOperationMode.fault + countDown : vTreatmentStop.countDown + countDownVisible : vHDOperationMode.inTreatment && vHDTreatmentStates.txStop && vTreatmentStop.total onMuteClicked : vAlarmStatus.doSilence () onResumeClicked : vAlarmStatus.doUserActionResume () onRinsebackClicked : vAlarmStatus.doUserActionRinseback() onEndClicked : vAlarmStatus.doUserActionEnd () onOkClicked : vAlarmStatus.doUserActionOk () - onMinimizeClicked : { - alarmMinimize() - // when user minimizes the alarm it can stay minimized until otherwize is set - // by the next alarm status received. - // see also the "Connections { target: vAlarmStatus" implementation - vAlarmStatus.alarm_KeepMinimized = true - } } AlarmListDialog { id : _alarmListDialog - isSilenced : vAlarmStatus.alarm_Flag_alarmsSilenced - timeout : vAlarmStatus.alarm_MuteTimeout - onMuteClicked : vAlarmStatus.doSilence() - onMinimizeClicked : alarmMinimize() + isSilenced : vAlarmStatus.alarm_Flag_alarmsSilenced + timeout : vAlarmStatus.alarm_MuteTimeout + minVisible : ! vAlarmStatus.alarm_Flag_noMinimize + onMuteClicked : vAlarmStatus.doSilence() titleFading : vHDOperationMode.fault } Connections { target: vAlarmStatus - onAlarm_Flag_noResumeChanged : vAlarmStatus.alarm_KeepMinimized = false - onAlarm_Flag_noRinsebackChanged : vAlarmStatus.alarm_KeepMinimized = false - onAlarm_Flag_noEndTreatmentChanged : vAlarmStatus.alarm_KeepMinimized = false - onAlarm_Flag_UserMustAckChanged : vAlarmStatus.alarm_KeepMinimized = false - onAlarm_AlarmIDChanged : vAlarmStatus.alarm_KeepMinimized = false - onAlarm_Flag_alarmsSilencedChanged : vAlarmStatus.alarm_KeepMinimized = vAlarmStatus.alarm_Flag_alarmsSilenced onAlarm_PriorityChanged: [ _alarmDialog.titleBarBackground, _alarmDialog.titleBarForeground, _alarmDialog.backgroundColor , _alarmDialog.textColor , ] = Colors.alarmPriorityColors(vAlarmStatus.alarm_Priority) - - - onDidAlarmRaise: { - let silenceMinimize = false - if (vAlarmStatus.alarm_Flag_alarmsSilenced && silenceMinimize) { - // this is the response to the silence request - // so the dialog should be closed when the request accepted - // if not then if can stay minimized nothing happens - // if can't stay minimized then it has to be shown - alarmMinimize() - } - else { - if (! vAlarmStatus.alarm_KeepMinimized) { - alarmMaximize() - } - } - } - - onDidAlarmEmpty: alarmHide() } }