Index: sources/gui/qml/main.qml =================================================================== diff -u -rd92f6ff5bc93e7043b1a57bb74bc78a959c63f22 -r7710fea4486a639caaa3c510add0eac0bcd4ddcc --- sources/gui/qml/main.qml (.../main.qml) (revision d92f6ff5bc93e7043b1a57bb74bc78a959c63f22) +++ sources/gui/qml/main.qml (.../main.qml) (revision 7710fea4486a639caaa3c510add0eac0bcd4ddcc) @@ -18,8 +18,8 @@ // Project // C++ imports -import Gui.View 0.1; -import Gui.Actions 0.1; +import Gui.View 0.1 +import Gui.Actions 0.1 // TODO : When Testing data on Setting screen is removed // This needs to be moved into the TreatmentFlows.qml @@ -143,73 +143,105 @@ } } - NotificationBar { id: _alarm_bar - - anchors.bottom: _mainMenu.top - level : vAlarmStatus.alarm_Priority - text : vAlarmStatus.text; - isSilenced: vAlarmStatus.alarm_Flag_alarmsSilenced; - - onClickedNotificationBar: { - updateAlarm(); - vAlarmStatus.onSetMinimize(false); - _alarm_bar.visible = false; - _alarm_dialog.visible = true; - } + // Alarms + function alarmMinimize() { + _alarmDialog .visible = false + _alarmListDialog.visible = false + _alarmBar .visible = true } + function alarmMaximize() { + _alarmDialog .visible = true + _alarmListDialog.visible = false + _alarmBar .visible = false + } + function alarmList() { + _alarmDialog .visible = false + _alarmListDialog.visible = true + _alarmBar .visible = false + } + function alarmHide() { + _alarmDialog .visible = false + _alarmListDialog.visible = false + _alarmBar .visible = false + } - function updateAlarm() { - _alarm_dialog.titleText = "Alarm"; - _alarm_dialog.description = vAlarmStatus.text; - _alarm_dialog.alarmID = vAlarmStatus.alarm_AlarmID; - [_alarm_dialog.backgroundColor, _alarm_dialog.textColor] = getRootTextFromAlarmLevel(vAlarmStatus.alarm_Priority); - [_alarm_dialog.titleBarBackground, _alarm_dialog.titleBarForeground] = getAlarmTopBarColors(vAlarmStatus.alarm_Priority); - _alarm_bar.backgroundColor = _alarm_dialog.titleBarBackground; + NotificationBar { id : _alarmBar + backgroundColor : _alarmDialog.backgroundColor + textColor : _alarmDialog.textColor + anchors.bottom : _mainMenu.top + text : vAlarmStatus.text; + isSilenced : vAlarmStatus.alarm_Flag_alarmsSilenced + timeout : vAlarmStatus.alarm_MuteTimeout - _alarm_dialog.isSilenced = vAlarmStatus.alarm_Flag_alarmsSilenced; - _alarm_bar.toggleSilence(vAlarmStatus.alarm_Flag_alarmsSilenced, vAlarmStatus.alarm_MuteTimeout); - _alarm_dialog.silenceBtn.visible = !vAlarmStatus.alarm_Flag_alarmsSilenced; + onMuteClicked : vAlarmStatus.doSilence() + onListClicked : alarmList() + onMaximizeClicked : alarmMaximize() + onClicked : alarmMaximize() } - NotificationDialog { id: _alarm_dialog - alarmID: -1 + // 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 + NotificationDialog { id : _alarmDialog + // this will change later to the actual message text + // and the instruction would be in the dialog content + titleText : "Alarm" + description : vAlarmStatus.text + alarmID : vAlarmStatus.alarm_AlarmID + isSilenced : vAlarmStatus.alarm_Flag_alarmsSilenced + timeout : vAlarmStatus.alarm_MuteTimeout + okVisible : vAlarmStatus.alarm_Flag_UserMustAck + resumeVisible : ! vAlarmStatus.alarm_Flag_noResume + rinsebackVisible : ! vAlarmStatus.alarm_Flag_noRinseback + endVisible : ! vAlarmStatus.alarm_Flag_noEndTreatment - onClickedOkay: { - _alarm_dialog.visible = false; - _alarm_bar.visible = true; - vAlarmStatus.onRequestOkay(alarmID) + 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 + // DEBUG: vAlarmStatus.doClearCondition() } + } - onClickedSilence: { - _alarm_dialog.visible = false; - _alarm_bar.visible = true; - vAlarmStatus.onRequestSilence(); - } + AlarmListDialog { id : _alarmListDialog + isSilenced : vAlarmStatus.alarm_Flag_alarmsSilenced + timeout : vAlarmStatus.alarm_MuteTimeout + onMuteClicked : vAlarmStatus.doSilence() + onMinimizeClicked : alarmMinimize() } // 9 - Others Text { // TEST : Application version should be moved into the information screen later. - color: Colors.textMain + color : Colors.textMain anchors { - right: parent.right - margins: 5 - bottom: parent.bottom + top : parent.top + left : parent.left + leftMargin : 10 } - horizontalAlignment: Text.AlignRight - verticalAlignment: Text.AlignBottom + horizontalAlignment : Text.AlignRight + verticalAlignment : Text.AlignBottom - height: Variables.mainMenuHeight - text: Qt.application.version + height : 15 + text : Qt.application.version font.pixelSize: 14 } Rectangle { // TEST : SD-Card not present should be handled with better indication(s). color : ! _GuiView.sdIsReady ? "red" : _GuiView.sdIsReadOnly ? "gray" : "green" anchors { - right : parent.right - bottom : parent.bottom - bottomMargin: 35 - rightMargin: 10 + top : parent.top + right : parent.right + topMargin : 5 + rightMargin : 5 } width : 25 height: 25 @@ -221,52 +253,6 @@ visible: true // ! _GuiView.sdIsReady || _GuiView.sdIsReadOnly } - function getRootTextFromAlarmLevel(level) { - let root_color = ""; - let text_color = ""; - switch (level) { - case GuiActions.ALARM_PRIORITY_HIGH: - root_color = Colors.textNotificationHighBg; - text_color = Colors.textNotificationHighFg; - break; - case GuiActions.ALARM_PRIORITY_MEDIUM: - root_color = Colors.textNotificationMedBg; - text_color = Colors.textNotificationMedFg; - break; - case GuiActions.ALARM_PRIORITY_LOW: - root_color = Colors.textNotificationLowBg; - text_color = Colors.textNotificationLowFg; - break; - default : // GuiActions.ALARM_PRIORITY_NONE - root_color = Colors.textNotificationNoneBg; - text_color = Colors.textNotificationNoneFg; - } - return [root_color, text_color]; - } - - function getAlarmTopBarColors(level) { - let background = ""; - let foreground = ""; - switch (level) { - case GuiActions.ALARM_PRIORITY_HIGH: - background = Colors.alarmTopBarHighBg; - foreground = Colors.alarmTopBarHighFg; - break; - case GuiActions.ALARM_PRIORITY_MEDIUM: - background = Colors.alarmTopBarMedBg; - foreground = Colors.alarmTopBarMedFg; - break; - case GuiActions.ALARM_PRIORITY_LOW: - background = Colors.alarmTopBarLowBg; - foreground = Colors.alarmTopBarLowFg; - break; - default : // GuiActions.ALARM_PRIORITY_NONE - background = Colors.alarmTopBarLowBg; - foreground = Colors.alarmTopBarLowFg; - } - return [background, foreground]; - } - Connections { target: vPowerOff onPoweroffTriggered: { switch (vpoweroff) { @@ -289,21 +275,37 @@ } Connections { target: vAlarmStatus - onRaiseAlarm: { - updateAlarm(); + 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) + } - if (vAlarmStatus.minimizeAlarm) { - _alarm_dialog.visible = false; - _alarm_bar.visible = true; - } else { - _alarm_dialog.visible = true; - _alarm_bar.visible = false; + 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() + } + } } - onNoAlarm: { - _alarm_bar.visible = false; - _alarm_dialog.visible = false; - } + onDidAlarmEmpty: alarmHide() } }