Index: leahi.qrc =================================================================== diff -u -rbce1e6f584c921c9fa6945204ed1e1d38021fbc8 -r1f9e84f74ead9e10577c8caa204c6eb911e12ab8 --- leahi.qrc (.../leahi.qrc) (revision bce1e6f584c921c9fa6945204ed1e1d38021fbc8) +++ leahi.qrc (.../leahi.qrc) (revision 1f9e84f74ead9e10577c8caa204c6eb911e12ab8) @@ -15,7 +15,6 @@ sources/gui/qml/pages/settings/SettingsDGCleaning.qml sources/gui/qml/pages/settings/SettingsDGScheduling.qml sources/gui/qml/pages/settings/SettingsVolumeBrightness.qml - sources/gui/qml/pages/settings/SettingsBluetoothCuff.qml sources/gui/qml/pages/settings/SettingsExportLogs.qml sources/gui/qml/pages/settings/SettingsDeviceRegistration.qml sources/gui/qml/pages/settings/SettingsInformation.qml @@ -27,6 +26,7 @@ sources/gui/qml/pages/settings/SettingsDecommission.qml sources/gui/qml/pages/settings/SettingsInstitutionalRecord.qml sources/gui/qml/pages/settings/SettingsLocalization.qml + sources/gui/qml/pages/settings/SettingsUserMode.qml sources/gui/qml/dialogs/ConfirmDialog.qml @@ -80,7 +80,6 @@ resources/images/EjectEnabled.png resources/images/EjectDisabled.png resources/images/eye.png - resources/images/Omron-bp7000.png resources/images/chevron-left.png resources/images/chevron-right.png resources/images/DenaliDevice.png @@ -104,6 +103,8 @@ resources/images/backspace.png resources/images/Vitals.png resources/images/Vitals_Red.png + resources/images/check_green.png + resources/images/eye_closed.png sources/gui/qml/components/MainMenu.qml @@ -164,6 +165,8 @@ sources/gui/qml/components/AlarmButtonRow.qml sources/gui/qml/components/BaseComboBox.qml sources/gui/qml/components/VitalsButton.qml + sources/gui/qml/components/PasswordRequirements.qml + sources/gui/qml/components/BaseSwitch.qml sources/gui/qml/components/IdleTimer.qml Index: sources/gui/GuiGlobals.h =================================================================== diff -u -r08ffb068817ab0bb1c7f2fe2705986142ac68601 -r1f9e84f74ead9e10577c8caa204c6eb911e12ab8 --- sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision 08ffb068817ab0bb1c7f2fe2705986142ac68601) +++ sources/gui/GuiGlobals.h (.../GuiGlobals.h) (revision 1f9e84f74ead9e10577c8caa204c6eb911e12ab8) @@ -106,12 +106,12 @@ // Service Information ID_AdjustServiceDatesReq = 0x8900, // 137 - ID_AdjustServiceDatesHDRsp = 0x8A00, // 138 - ID_AdjustServiceDatesDGRsp = 0x8C00, // 140 + ID_AdjustServiceDatesHDRsp = 0x8A0F, // 138 //// ----- @CRAPIZED: had to change to avoid duplication + ID_AdjustServiceDatesDGRsp = 0x8C0F, // 140 //// ----- @CRAPIZED: had to change to avoid duplication // HD/DG Usage Counter ID_HDUsageInfoReq = 0xA000, // 160 - ID_HDUsageInfoRsp = 0x8B00, // 139 + ID_HDUsageInfoRsp = 0x8B0F, // 139 //// ----- @CRAPIZED: had to change to avoid duplication // RTC ID_AdjustTDDateTimeReq = 0x6C00, // 108 @@ -136,7 +136,7 @@ ID_PressureOcclusion = 0x2400, // 36 //// ----- @LEAHIZED ID_Saline = 0x3D00, // 61 //// ----- @LEAHIZED ID_Ultrafiltration = 0x3E00, // 62 //// ----- @LEAHIZED - ID_Heparin = 0x4D00, // 77 + ID_Heparin = 0x8C00, // 140 ID_Rinseback = 0x5600, // 86 ID_Recirculate = 0x5A00, // 90 ID_BloodPrime = 0x5900, // 89 @@ -252,8 +252,8 @@ ID_AdjustVitalsReq = 0x6300, // 99 ID_AdjustVitalsRsp = 0x6400, // 100 - ID_AdjustHeparinReq = 0x4B00, // 75 - ID_AdjustHeparinRsp = 0x4C00, // 76 + ID_AdjustHeparinReq = 0x8A00, // 138 + ID_AdjustHeparinRsp = 0x8B00, // 139 // Ultrafiltration ID_AdjustUltrafiltrationStateReq = 0x4700, // 71 //// ----- @LEAHIZED Index: sources/gui/qml/components/HeaderBar.qml =================================================================== diff -u -r6e18f1d24b8cc3d84d26f46f36f73deb34e54371 -r1f9e84f74ead9e10577c8caa204c6eb911e12ab8 --- sources/gui/qml/components/HeaderBar.qml (.../HeaderBar.qml) (revision 6e18f1d24b8cc3d84d26f46f36f73deb34e54371) +++ sources/gui/qml/components/HeaderBar.qml (.../HeaderBar.qml) (revision 1f9e84f74ead9e10577c8caa204c6eb911e12ab8) @@ -9,6 +9,8 @@ property alias headerMenuIndex : _headerMenu.index property alias titleText : _title.text property alias loggedUser : _loggedInUser.text + readonly property int currentScreen : _headerMenu.currentScreen + property alias statusColor : _headerMenu.statusColor width : Variables.applicationWidth height : Variables.headerHeight @@ -115,13 +117,12 @@ bottomMargin: hidden || disable ? height * -1 : 0 } height : parent.height - width : parent.width / 3 + width : parent.width / 2 // gives the width of the headerbar menu hidden : true titlePixelSize : 32 backgroundColor : Colors.transparent highlightHeight : 15 isMainTreatment : true - onHiddenChanged: { if (hidden) { index = 0 } } } Index: sources/gui/qml/compounds/LabelUnitContainer.qml =================================================================== diff -u -r93b7d7da5dea9e0392e139b59117eb0315d6c343 -r1f9e84f74ead9e10577c8caa204c6eb911e12ab8 --- sources/gui/qml/compounds/LabelUnitContainer.qml (.../LabelUnitContainer.qml) (revision 93b7d7da5dea9e0392e139b59117eb0315d6c343) +++ sources/gui/qml/compounds/LabelUnitContainer.qml (.../LabelUnitContainer.qml) (revision 1f9e84f74ead9e10577c8caa204c6eb911e12ab8) @@ -48,7 +48,7 @@ anchors { verticalCenter : parent.verticalCenter left : parent.left - leftMargin : Variables.defaultMargin + leftMargin : Variables.minVGap + Variables.defaultMargin } spacing : 10 Index: sources/gui/qml/globals/Fonts.qml =================================================================== diff -u -r93b7d7da5dea9e0392e139b59117eb0315d6c343 -r1f9e84f74ead9e10577c8caa204c6eb911e12ab8 --- sources/gui/qml/globals/Fonts.qml (.../Fonts.qml) (revision 93b7d7da5dea9e0392e139b59117eb0315d6c343) +++ sources/gui/qml/globals/Fonts.qml (.../Fonts.qml) (revision 1f9e84f74ead9e10577c8caa204c6eb911e12ab8) @@ -57,6 +57,14 @@ readonly property int fontPixelFluidUnit : 22 readonly property int fontPixelFluidVolume : 16 + readonly property int fontHeaderbarUser : 18 + readonly property int fontHeaderbarTitle : 35 + readonly property int fontHeaderbarTime : 40 + readonly property int fontHeaderbarDate : 22 + readonly property int fontHeaderbarTimezone : 14 + + readonly property int fontUnit : 18 + readonly property int fontPixelConfirm : 21 readonly property int fontPixelBack : 17 Index: sources/gui/qml/globals/Variables.qml =================================================================== diff -u -rbce1e6f584c921c9fa6945204ed1e1d38021fbc8 -r1f9e84f74ead9e10577c8caa204c6eb911e12ab8 --- sources/gui/qml/globals/Variables.qml (.../Variables.qml) (revision bce1e6f584c921c9fa6945204ed1e1d38021fbc8) +++ sources/gui/qml/globals/Variables.qml (.../Variables.qml) (revision 1f9e84f74ead9e10577c8caa204c6eb911e12ab8) @@ -155,7 +155,6 @@ readonly property int settingsInputWidth : 225 readonly property int settingsNotificationMargin : 10 - readonly property int settingsContentSidesMargin : headerButtonsMargin readonly property int settingsContentBottomMargin : mainMenuHeight + // Alarm Bar height notificationHeight + // notification Bar height minVGap // Min Gap to give content the min border @@ -212,6 +211,9 @@ readonly property int defaultButtonHeight : 60 readonly property int defaultButtonWidth : 244 + readonly property int smallDialogHeight : numPadHeight + readonly property int smallDialogWidth : 1000 + // ---------- < PRS > Related Section ---------- // blood flow rate readonly property int bloodFlowMin : 100 // PRS 30 Index: sources/gui/qml/pages/settings/SettingsLocalization.qml =================================================================== diff -u -ra5760947d3ed0d2748ba023a1c25e3c6aa0b1de1 -r1f9e84f74ead9e10577c8caa204c6eb911e12ab8 --- sources/gui/qml/pages/settings/SettingsLocalization.qml (.../SettingsLocalization.qml) (revision a5760947d3ed0d2748ba023a1c25e3c6aa0b1de1) +++ sources/gui/qml/pages/settings/SettingsLocalization.qml (.../SettingsLocalization.qml) (revision 1f9e84f74ead9e10577c8caa204c6eb911e12ab8) @@ -15,11 +15,11 @@ // Qt import QtQuick 2.12 -import QtQuick.Controls 2.12 // Switch - // Qml imports import "qrc:/globals" +import "qrc:/components" +import "qrc:/compounds" /*! * \brief SettingsROInput is the screen @@ -30,90 +30,40 @@ confirmVisible : true notificationText: vLocalization.notification + contentArea.anchors.topMargin: Variables.defaultMargin * 10 - Row { id: _settingsRoInputRow - anchors.centerIn: parent + contentItem: Item { + LabelUnitContainer { id: _settingsLanguageItem + anchors.horizontalCenter : parent.horizontalCenter + width : Variables.adjustmentLabelUnitContainerWidth + height : Variables.adjustmentLabelUnitContainerHeight + text : qsTr("Language") - Text { id : _settingsLanguageLabel - text : qsTr("Language") - width : 150 - height : _settingsLanguageCombo.height - color : Colors.white - font.pixelSize : Fonts.fontPixelTextRectTitle - verticalAlignment : Text.AlignVCenter - horizontalAlignment : Text.AlignLeft - } - - // FIXME: This combobox needs to be a global Component - ComboBox { id : _settingsLanguageCombo - currentIndex : vLocalization.languageIndex - displayText : currentText - font.pixelSize : Fonts.fontPixelTextRectTitle - width : 300 - height : 55 - padding : 10 - model : vLocalization.languageList - - background : Rectangle { - color : Colors.transparent - border.color : enabled ? Colors.borderButton : Colors.borderDisableButton - radius : Variables.dialogRadius + contentItem: BaseComboBox { id: _settingsLanguageCombo + anchors.rightMargin : Variables.defaultMargin * 2 + anchors.leftMargin : anchors.rightMargin + anchors.topMargin : Variables.defaultMargin / 2 + anchors.bottomMargin: anchors.topMargin + currentIndex : vLocalization.languageIndex + model : vLocalization.languageList } - - delegate: ItemDelegate { id : _settingsLanguageDelegate - width : _settingsLanguageCombo.width // + anchors.margins - 2 // 2 is the border width - height : 50 - contentItem: Text { - text : modelData - color : Colors.textMain - font : _settingsLanguageCombo.font - padding : 10 - verticalAlignment : Text.AlignVCenter - } - background : Rectangle { - anchors.fill : parent - anchors.margins : 10 / 2 - visible : _settingsLanguageDelegate.down || _settingsLanguageDelegate.highlighted || _settingsLanguageDelegate.visualFocus - color : _settingsLanguageDelegate.down ? Colors.backgroundButtonSelect : - Colors.backgroundButtonSelectDark - } - highlighted : _settingsLanguageCombo.highlightedIndex === index - } - popup: Popup { - y : _settingsLanguageCombo.height - x : - _settingsLanguageCombo.anchors.leftMargin - width : _settingsLanguageCombo.width + _settingsLanguageCombo.anchors.leftMargin - implicitHeight : contentItem.implicitHeight - contentItem : ListView { - clip : true - implicitHeight : contentHeight - currentIndex : _settingsLanguageCombo.highlightedIndex - model : _settingsLanguageCombo.popup.visible ? _settingsLanguageCombo.delegateModel : null - } - background: Rectangle { - color : Colors.backgroundMain - border.color : Colors.borderButton - radius : Variables.dialogRadius - } - } } } onConfirmClicked : { - _confirmDialog.titleText = _root.title + _confirmDialog.titleText = _headerBar.titleText _confirmDialog.open() } Connections { target: _confirmDialog function onAccepted() { - if ( _confirmDialog.titleText == _root.title ) { // use the title as the indication of what has been confirmed and if that is related to this function. + if ( _confirmDialog.titleText === _headerBar.titleText ) { // use the title as the indication of what has been confirmed and if that is related to this function. vLocalization.doAdjustment(_settingsLanguageCombo.currentIndex) } } } Connections { target: _settingsLanguageCombo - function onCurrentIndexChanged() { vLocalization.notification = "" } Index: sources/gui/qml/pages/settings/SettingsROInput.qml =================================================================== diff -u -ra5760947d3ed0d2748ba023a1c25e3c6aa0b1de1 -r1f9e84f74ead9e10577c8caa204c6eb911e12ab8 --- sources/gui/qml/pages/settings/SettingsROInput.qml (.../SettingsROInput.qml) (revision a5760947d3ed0d2748ba023a1c25e3c6aa0b1de1) +++ sources/gui/qml/pages/settings/SettingsROInput.qml (.../SettingsROInput.qml) (revision 1f9e84f74ead9e10577c8caa204c6eb911e12ab8) @@ -15,11 +15,11 @@ // Qt import QtQuick 2.12 -import QtQuick.Controls 2.12 // Switch - // Qml imports import "qrc:/globals" +import "qrc:/components" +import "qrc:/compounds" /*! * \brief SettingsROInput is the screen @@ -30,66 +30,25 @@ confirmVisible : false - Row { id: _settingsRoInputRow - anchors.centerIn: parent + contentItem: Item { - Text { id : _settingsRoInputLabel - text : qsTr("Pure Water Mode") - width : 300 - height : _settingsRoInputSwitch.height - color : Colors.white - font.pixelSize: Fonts.fontPixelButton - verticalAlignment : Text.AlignVCenter - horizontalAlignment : Text.AlignLeft - } + LabelUnitContainer { id: _settingsRoInputItem + anchors.horizontalCenter : parent.horizontalCenter + width : Variables.adjustmentLabelUnitContainerWidth + height : Variables.adjustmentLabelUnitContainerHeight + text : qsTr("Pure Water Mode") + contentArea.anchors.leftMargin : width * 0.75 - Switch { id: _settingsRoInputSwitch - property bool active: true + contentItem: BaseSwitch { id: _settingsRoInputSwitch + checked : vDuetRoWaterDG.status - checked : vDuetRoWaterDG.status - - width : 85 - height : 85 - - indicator: Rectangle { - implicitWidth : Variables.sliderCircleDiameter * 1.7 - implicitHeight : Variables.sliderCircleDiameter - ( Variables.progressbarHandlerBorderWidth * 2 ) - radius : implicitHeight - anchors.centerIn: parent - color : _settingsRoInputSwitch.checked ? Colors.backgroundButtonSelect : Colors.createTreatmentInactive - border.color : _settingsRoInputSwitch.checked ? Colors.borderButton : Colors.createTreatmentInactive - Rectangle { - property real diameter : Variables.sliderCircleDiameter - x: _settingsRoInputSwitch.checked ? parent.width - width : 0 - anchors.verticalCenter: parent.verticalCenter - width : diameter - height : diameter - radius : diameter - color : _settingsRoInputSwitch.active ? Colors.highlightProgressBar : Colors.createTreatmentInactive - border { - width: Variables.progressbarHandlerBorderWidth - color: Colors.textMain - } + onClicked: { + vDuetRoWaterDG.doAdjustment ( _settingsRoInputSwitch.checked ) } } - - contentItem: Text { - width : parent.width - height : parent.height - text : _settingsRoInputSwitch.checked ? qsTr("ON") : qsTr("OFF") - font.pixelSize: Fonts.fontPixelButton - color : _settingsRoInputSwitch.active ? Colors.textMain : Colors.textDisableButton - verticalAlignment : Text.AlignTop - horizontalAlignment : Text.AlignHCenter - } } } - Connections { target: _settingsRoInputSwitch - function onClicked() { - vDuetRoWaterDG.doAdjustment ( _settingsRoInputSwitch.checked ) - } - } Connections { target: vDuetRoWaterDG function onAdjustmentTriggered(vValue) { if ( vDuetRoWaterDG.adjustment_Accepted ) { Index: sources/gui/qml/pages/settings/SettingsRootSSHAccess.qml =================================================================== diff -u -ra5760947d3ed0d2748ba023a1c25e3c6aa0b1de1 -r1f9e84f74ead9e10577c8caa204c6eb911e12ab8 --- sources/gui/qml/pages/settings/SettingsRootSSHAccess.qml (.../SettingsRootSSHAccess.qml) (revision a5760947d3ed0d2748ba023a1c25e3c6aa0b1de1) +++ sources/gui/qml/pages/settings/SettingsRootSSHAccess.qml (.../SettingsRootSSHAccess.qml) (revision 1f9e84f74ead9e10577c8caa204c6eb911e12ab8) @@ -15,11 +15,12 @@ // Qt import QtQuick 2.12 -import QtQuick.Controls 2.12 // Switch // Qml imports import "qrc:/globals" +import "qrc:/components" +import "qrc:/compounds" /*! * \brief SettingsRootSSHAccess is the screen @@ -32,105 +33,36 @@ confirmVisible : false - Column { - anchors.centerIn: parent - Row { id: _settingsRootSSHAccess_SSHDRow - Text { id: _settingsRootSSHAccess_SSHDLabel - text : qsTr("Enable SSH Login") - width : 300 - height : _settingsRootSSHAccess_SSHDSwitch.height - color : Colors.white - font.pixelSize : Fonts.fontPixelButton - verticalAlignment : Text.AlignVCenter - horizontalAlignment : Text.AlignLeft - } + contentItem: Column { + spacing : 25 - Switch { id: _settingsRootSSHAccess_SSHDSwitch - property bool active : true + LabelUnitContainer { id: _settingsRootSSHAccess_SSHDRow + anchors.horizontalCenter : parent.horizontalCenter + width : Variables.adjustmentLabelUnitContainerWidth + height : Variables.adjustmentLabelUnitContainerHeight + text : qsTr("Enable SSH Login") + contentArea.anchors.leftMargin : width * 0.75 - width : _root.diameter - height : _root.diameter - - indicator : Rectangle { - implicitWidth : Variables.sliderCircleDiameter * 1.7 - implicitHeight : Variables.sliderCircleDiameter - ( Variables.progressbarHandlerBorderWidth * 2 ) - radius : implicitHeight - anchors.centerIn : parent - color : _settingsRootSSHAccess_SSHDSwitch.checked ? Colors.backgroundButtonSelect : Colors.createTreatmentInactive - border.color : _settingsRootSSHAccess_SSHDSwitch.checked ? Colors.borderButton : Colors.createTreatmentInactive - Rectangle { - property real diameter : Variables.sliderCircleDiameter - x : _settingsRootSSHAccess_SSHDSwitch.checked ? parent.width - width : 0 - anchors.verticalCenter : parent.verticalCenter - width : diameter - height : diameter - radius : diameter - color : _settingsRootSSHAccess_SSHDSwitch.active ? Colors.highlightProgressBar : Colors.createTreatmentInactive - border { - width : Variables.progressbarHandlerBorderWidth - color : Colors.textMain - } - } + contentItem: BaseSwitch { id: _settingsRootSSHAccess_SSHDSwitch + onClicked: { + vDevice.rootSSHAccess = toCheckState() } - - contentItem : Text { - width : parent.width - height : parent.height - font.pixelSize : Fonts.fontPixelButton - color : _settingsRootSSHAccess_SSHDSwitch.active ? Colors.textMain : Colors.textDisableButton - verticalAlignment : Text.AlignTop - horizontalAlignment : Text.AlignHCenter - } } } - Row { id: _settingsRootSSHAccess_RootRow - Text { id: _settingsRootSSHAccess_RootLabel - text : qsTr("Enable Root Login") - width : 300 - height : _settingsRootSSHAccess_RootSwitch.height - color : Colors.white - font.pixelSize : Fonts.fontPixelButton - verticalAlignment : Text.AlignVCenter - horizontalAlignment : Text.AlignLeft - } + LabelUnitContainer { id: _settingsRootSSHAccess_RootRow + anchors.horizontalCenter : parent.horizontalCenter + width : Variables.adjustmentLabelUnitContainerWidth + height : Variables.adjustmentLabelUnitContainerHeight + text : qsTr("Enable Root Login") + contentArea.anchors.leftMargin : width * 0.75 - Switch { id: _settingsRootSSHAccess_RootSwitch - property bool active : _settingsRootSSHAccess_SSHDSwitch.checked - enabled : _settingsRootSSHAccess_RootSwitch.active - width : _root.diameter - height : _root.diameter - - indicator : Rectangle { - implicitWidth : Variables.sliderCircleDiameter * 1.7 - implicitHeight : Variables.sliderCircleDiameter - ( Variables.progressbarHandlerBorderWidth * 2 ) - radius : implicitHeight - anchors.centerIn : parent - color : _settingsRootSSHAccess_RootSwitch.checked ? Colors.backgroundButtonSelect : Colors.createTreatmentInactive - border.color : _settingsRootSSHAccess_RootSwitch.checked ? Colors.borderButton : Colors.createTreatmentInactive - Rectangle { - property real diameter : Variables.sliderCircleDiameter - x : _settingsRootSSHAccess_RootSwitch.checked ? parent.width - width : 0 - anchors.verticalCenter : parent.verticalCenter - width : diameter - height : diameter - radius : diameter - color : _settingsRootSSHAccess_RootSwitch.active ? Colors.highlightProgressBar : Colors.createTreatmentInactive - border { - width : Variables.progressbarHandlerBorderWidth - color : Colors.textMain - } - } + contentItem: BaseSwitch { id: _settingsRootSSHAccess_RootSwitch + active : _settingsRootSSHAccess_SSHDSwitch.checked + enabled : _settingsRootSSHAccess_RootSwitch.active + onClicked: { + vDevice.rootSSHAccess = toCheckState() } - - contentItem : Text { - width : parent.width - height : parent.height - font.pixelSize : Fonts.fontPixelButton - color : _settingsRootSSHAccess_RootSwitch.active ? Colors.textMain : Colors.textDisableButton - verticalAlignment : Text.AlignTop - horizontalAlignment : Text.AlignHCenter - } } } } @@ -162,16 +94,6 @@ _settingsRootSSHAccess_RootSwitch.checked = root } - Connections { target: _settingsRootSSHAccess_SSHDSwitch - function onClicked() { - vDevice.rootSSHAccess = toCheckState() - } - } - Connections { target: _settingsRootSSHAccess_RootSwitch - function onClicked() { - vDevice.rootSSHAccess = toCheckState() - } - } Connections { target: vDevice // in case the value is rejecte it will be set to the previous value // also the init value shall be set when navigate to the screen Index: sources/gui/qml/pages/settings/SettingsUserMode.qml =================================================================== diff -u -r46c55a9eeb75ac84fbcd6160a2318c459672936a -r1f9e84f74ead9e10577c8caa204c6eb911e12ab8 --- sources/gui/qml/pages/settings/SettingsUserMode.qml (.../SettingsUserMode.qml) (revision 46c55a9eeb75ac84fbcd6160a2318c459672936a) +++ sources/gui/qml/pages/settings/SettingsUserMode.qml (.../SettingsUserMode.qml) (revision 1f9e84f74ead9e10577c8caa204c6eb911e12ab8) @@ -35,7 +35,6 @@ anchors.horizontalCenter : parent.horizontalCenter width : Variables.adjustmentLabelUnitContainerWidth height : Variables.adjustmentLabelUnitContainerHeight - showUnit : false text : qsTr("Professional Mode") contentArea.anchors.leftMargin : width * 0.75