Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
H
HEV - High Energy Ventilator
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
5
Issues
5
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
HEV - High Energy Ventilator
Commits
7da49a5e
Commit
7da49a5e
authored
May 20, 2021
by
Benjamin Mummery
💻
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Localisation for switchablestackwidget
parent
20205701
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
103 additions
and
46 deletions
+103
-46
NativeUI.py
NativeUI/NativeUI.py
+10
-1
startup_config.json
NativeUI/configs/startup_config.json
+1
-1
text_english.json
NativeUI/configs/text_english.json
+13
-0
text_portuguese.json
NativeUI/configs/text_portuguese.json
+13
-0
ui_layout.py
NativeUI/ui_layout.py
+32
-15
plot_widget.py
NativeUI/widget_library/plot_widget.py
+8
-12
switchable_stack_widget.py
NativeUI/widget_library/switchable_stack_widget.py
+26
-17
No files found.
NativeUI/NativeUI.py
View file @
7da49a5e
...
...
@@ -509,7 +509,16 @@ class NativeUI(HEVClient, QMainWindow):
self
.
widgets
.
detailed_plots
,
self
.
widgets
.
circle_plots
,
self
.
widgets
.
ventilator_start_stop_buttons_widget
,
# self.widgets.charts_widget,
self
.
widgets
.
charts_widget
,
self
.
widgets
.
plot_stack
,
self
.
widgets
.
alarms_page
,
self
.
widgets
.
settings_page
,
self
.
widgets
.
modes_page
,
self
.
widgets
.
modes_stack
,
self
.
widgets
.
startup_stack
,
self
.
widgets
.
mode_settings_stack
,
self
.
widgets
.
mode_settings_stack_startup
,
self
.
widgets
.
personal_display
,
# self.widgets.spin_buttons,
# self.widgets.mode_personal_tab,
]:
...
...
NativeUI/configs/startup_config.json
View file @
7da49a5e
{
"calibration"
:
{
"label"
:
"calibration"
,
"last_performed"
:
1621
426912
,
"cmd_code"
:
"calib_rate"
},
"leak_test"
:
{
"label"
:
"Leak Test"
,
"last_performed"
:
1621426913
,
"cmd_code"
:
"leak_test"
},
"maintenance"
:
{
"label"
:
"maintenance"
,
"last_performed"
:
1621426914
,
"cmd_code"
:
"main_tenance"
}}
{
"calibration"
:
{
"label"
:
"calibration"
,
"last_performed"
:
1621
526657
,
"cmd_code"
:
"calib_rate"
},
"leak_test"
:
{
"label"
:
"Leak Test"
,
"last_performed"
:
1621526657
,
"cmd_code"
:
"leak_test"
},
"maintenance"
:
{
"label"
:
"maintenance"
,
"last_performed"
:
1621526658
,
"cmd_code"
:
"main_tenance"
}}
NativeUI/configs/text_english.json
View file @
7da49a5e
...
...
@@ -3,6 +3,10 @@
"start_button"
:
"START"
,
"stop_button"
:
"STOP"
,
"standby_button"
:
"STANDBY"
,
"PC/AC"
:
"PC/AC"
,
"PC/AC-PRVC"
:
"PC/AC-PRVC"
,
"PC-PSV"
:
"PC-PSV"
,
"CPAP"
:
"CPAP"
,
"plot_axis_label_pressure"
:
"Pressure [cmH<sub>2</sub>O]"
,
"plot_axis_label_flow"
:
"Flow [L/min]"
,
"plot_axis_label_volume"
:
"Volume [mL]"
,
...
...
@@ -16,6 +20,15 @@
"layout_label_measurements"
:
"Measurements"
,
"button_label_main_normal"
:
"Normal"
,
"button_label_main_detailed"
:
"Detailed"
,
"button_label_alarms_list"
:
"List of Alarms"
,
"button_label_alarms_table"
:
"Alarm Table"
,
"button_label_alarms_clinical"
:
"Clinical Limits"
,
"button_label_settings_expert"
:
"Expert"
,
"button_label_settings_charts"
:
"Charts"
,
"button_label_settings_info"
:
"System Info"
,
"button_label_modes_mode"
:
"Mode Settings"
,
"button_label_modes_personal"
:
"Personal Settings"
,
"button_label_modes_summary"
:
"Summary"
,
"ui_window_title"
:
"HEV NativeUI v{version}"
,
"measurement_label_plateau_pressure"
:
"P<sub>PLATEAU</sub> [cmH<sub>2</sub>O]"
,
"measurement_label_respiratory_rate"
:
"RR"
,
...
...
NativeUI/configs/text_portuguese.json
View file @
7da49a5e
...
...
@@ -3,6 +3,10 @@
"start_button"
:
"INICIAR"
,
"stop_button"
:
"PARAR"
,
"standby_button"
:
"ESPERAR"
,
"PC/AC"
:
"PC/AC"
,
"PC/AC-PRVC"
:
"PC/AC-PRVC"
,
"PC-PSV"
:
"PC-PSV"
,
"CPAP"
:
"CPAP"
,
"plot_axis_label_pressure"
:
"Pressao [cmH<sub>2</sub>O]"
,
"plot_axis_label_flow"
:
"Fluxo [L/min]"
,
"plot_axis_label_volume"
:
"Volume [mL]"
,
...
...
@@ -16,6 +20,15 @@
"layout_label_measurements"
:
"Medicoes"
,
"button_label_main_normal"
:
"Normal"
,
"button_label_main_detailed"
:
"Detalhado"
,
"button_label_alarms_list"
:
"-"
,
"button_label_alarms_table"
:
"-"
,
"button_label_alarms_clinical"
:
"-"
,
"button_label_settings_expert"
:
"-"
,
"button_label_settings_charts"
:
"-"
,
"button_label_settings_info"
:
"-"
,
"button_label_modes_mode"
:
"-"
,
"button_label_modes_personal"
:
"-"
,
"button_label_modes_summary"
:
"-"
,
"ui_window_title"
:
"HEV NativeUI v{version}"
,
"measurement_label_plateau_pressure"
:
"P<sub>Plato</sub> [cmH<sub>2</sub>O]"
,
"measurement_label_respiratory_rate"
:
"FREQ<sub>RESP</sub>"
,
...
...
NativeUI/ui_layout.py
View file @
7da49a5e
...
...
@@ -83,13 +83,18 @@ class Layout:
# Stack the data collection pages.
self
.
widgets
.
add_widget
(
SwitchableStackWidget
(
self
.
NativeUI
,
self
.
NativeUI
.
colors
,
self
.
NativeUI
.
text
,
[
self
.
layout_mode_startup
(),
self
.
layout_mode_personal
(
"startup_"
,
False
),
self
.
layout_startup_confirmation
(),
],
[
"Mode Settings"
,
"Personal Settings"
,
"Summary"
],
[
"button_label_modes_mode"
,
"button_label_modes_personal"
,
"button_label_modes_summary"
,
],
),
"startup_stack"
,
)
...
...
@@ -245,12 +250,10 @@ class Layout:
# Put the normal and detailed views into a switchable stack
self
.
widgets
.
add_widget
(
SwitchableStackWidget
(
self
.
NativeUI
,
self
.
NativeUI
.
colors
,
self
.
NativeUI
.
text
,
[
tab_main_normal
,
tab_main_detailed
],
[
self
.
NativeUI
.
text
[
"button_label_main_normal"
],
self
.
NativeUI
.
text
[
"button_label_main_detailed"
],
],
[
"button_label_main_normal"
,
"button_label_main_detailed"
],
),
"plot_stack"
,
)
...
...
@@ -289,13 +292,18 @@ class Layout:
alarm_table_tab_widgets
=
[
self
.
widgets
.
alarm_table
]
page_alarms
=
SwitchableStackWidget
(
self
.
NativeUI
,
self
.
NativeUI
.
colors
,
self
.
NativeUI
.
text
,
[
self
.
layout_tab_alarm_list
(
alarm_tab_widgets
),
self
.
layout_tab_alarm_table
(
alarm_table_tab_widgets
),
self
.
layout_tab_clinical_limits
(),
],
[
"List of Alarms"
,
"Alarm Table"
,
"Clinical Limits"
],
[
"button_label_alarms_list"
,
"button_label_alarms_table"
,
"button_label_alarms_clinical"
,
],
)
page_alarms
.
setFont
(
self
.
NativeUI
.
text_font
)
return
page_alarms
...
...
@@ -325,9 +333,14 @@ class Layout:
# Create the stack
page_settings
=
SwitchableStackWidget
(
self
.
NativeUI
,
self
.
NativeUI
.
colors
,
self
.
NativeUI
.
text
,
[
self
.
layout_settings_expert
(),
tab_charts
,
tab_info
],
[
"Expert"
,
"Charts"
,
"Info"
],
[
"button_label_settings_expert"
,
"button_label_settings_charts"
,
"button_label_settings_info"
,
],
)
page_settings
.
setFont
(
self
.
NativeUI
.
text_font
)
self
.
widgets
.
add_widget
(
page_settings
,
"setting_stack"
)
...
...
@@ -347,12 +360,13 @@ class Layout:
# )
modes_stack
=
SwitchableStackWidget
(
self
.
NativeUI
,
self
.
NativeUI
.
colors
,
self
.
NativeUI
.
text
,
[
self
.
layout_mode_settings
(
True
),
self
.
layout_mode_personal
(
""
,
True
),
],
# self.widgets.mode_personal_tab],
[
"
Mode Settings"
,
"Personal Settings
"
],
[
"
button_label_modes_mode"
,
"button_label_modes_personal
"
],
)
modes_stack
.
setFont
(
self
.
NativeUI
.
text_font
)
self
.
widgets
.
add_widget
(
modes_stack
,
"modes_stack"
)
...
...
@@ -477,8 +491,10 @@ class Layout:
)
page_modes
=
SwitchableStackWidget
(
self
.
NativeUI
,
mode_pages
,
self
.
NativeUI
.
modeList
self
.
NativeUI
.
colors
,
self
.
NativeUI
.
text
,
mode_pages
,
self
.
NativeUI
.
modeList
)
self
.
widgets
.
add_widget
(
page_modes
,
"mode_settings_stack"
)
page_modes
.
setFont
(
self
.
NativeUI
.
text_font
)
return
page_modes
...
...
@@ -555,9 +571,10 @@ class Layout:
)
mode_stack
=
SwitchableStackWidget
(
self
.
NativeUI
,
mode_pages
,
self
.
NativeUI
.
modeList
self
.
NativeUI
.
colors
,
self
.
NativeUI
.
text
,
mode_pages
,
self
.
NativeUI
.
modeList
)
mode_stack
.
setFont
(
self
.
NativeUI
.
text_font
)
self
.
widgets
.
add_widget
(
mode_stack
,
"mode_settings_stack_startup"
)
hRadioLayout
=
QtWidgets
.
QHBoxLayout
()
for
mode
in
self
.
NativeUI
.
modeList
:
...
...
NativeUI/widget_library/plot_widget.py
View file @
7da49a5e
...
...
@@ -308,13 +308,7 @@ class ChartsPlotWidget(QtWidgets.QWidget):
# Add the plot axes to the graph widget
self
.
display_plot
=
self
.
graph_widget
.
addPlot
()
self
.
display_plot
.
setLabel
(
"left"
,
"????"
,
**
labelStyle
)
self
.
display_plot
.
setLabel
(
"bottom"
,
"????"
,
**
labelStyle
# labels={"left": "????", "bottom": "????"}
)
self
.
display_plot
.
setLabel
(
"bottom"
,
"????"
,
**
labelStyle
)
self
.
display_plot
.
getAxis
(
"left"
)
.
setTextPen
(
"w"
)
self
.
display_plot
.
getAxis
(
"bottom"
)
.
setTextPen
(
"w"
)
...
...
@@ -392,11 +386,13 @@ class ChartsPlotWidget(QtWidgets.QWidget):
def
localise_text
(
self
,
text
:
dict
)
->
int
:
"""
Update the text displayed on the axis' and legend of time plots.
Currently a placeholder.
"""
self
.
pressure
_plot
.
setLabel
(
"left"
,
text
[
"plot_axis_label_pressure"
])
self
.
pressure
_plot
.
legend
.
clear
()
self
.
pressure
_plot
.
legend
.
addItem
(
self
.
pressure_line
,
text
[
"plot_line_label_pressure"
]
)
self
.
display
_plot
.
setLabel
(
"left"
,
text
[
"plot_axis_label_pressure"
])
# self.display
_plot.legend.clear()
# self.display
_plot.legend.addItem(
#
self.pressure_line, text["plot_line_label_pressure"]
#
)
return
0
NativeUI/widget_library/switchable_stack_widget.py
View file @
7da49a5e
...
...
@@ -7,23 +7,22 @@ from PySide2.QtGui import QFont
class
SwitchableStackWidget
(
QtWidgets
.
QWidget
):
def
__init__
(
self
,
NativeUI
,
widget_list
:
list
,
button_label
s
:
list
,
*
args
,
**
kwargs
self
,
colors
,
text
,
widget_list
:
list
,
button_label_key
s
:
list
,
*
args
,
**
kwargs
):
super
()
.
__init__
(
*
args
,
**
kwargs
)
self
.
NativeUI
=
NativeUI
self
.
widget_list
=
widget_list
self
.
button_list
=
self
.
__make_buttons
(
button_label
s
)
self
.
button_list
=
self
.
__make_buttons
(
colors
,
text
,
button_label_key
s
)
self
.
__build
()
if
len
(
self
.
button_list
)
>
0
:
self
.
setTab
(
self
.
button_list
[
0
])
def
rebuild
(
self
,
widget_list
,
button_label
s
):
def
rebuild
(
self
,
colors
,
text
,
widget_list
,
button_label_key
s
):
"""
For an already created SwitchableStackWidget, change the tabs in the stack.
"""
self
.
__clear
()
self
.
widget_list
=
widget_list
self
.
button_list
=
self
.
__make_buttons
(
button_label
s
)
self
.
button_list
=
self
.
__make_buttons
(
colors
,
text
,
button_label_key
s
)
self
.
__build
()
self
.
setTab
(
self
.
button_list
[
0
])
return
0
...
...
@@ -55,11 +54,14 @@ class SwitchableStackWidget(QtWidgets.QWidget):
vlayout
.
addWidget
(
self
.
stack
)
self
.
setLayout
(
vlayout
)
def
__make_buttons
(
self
,
button_label
s
:
list
)
->
list
:
def
__make_buttons
(
self
,
colors
,
text
,
button_label_key
s
:
list
)
->
list
:
"""
Make the selector buttons
"""
return
[
SelectorButtonWidget
(
self
.
NativeUI
,
label
)
for
label
in
button_labels
]
return
[
SelectorButtonWidget
(
colors
,
text
,
label_key
)
for
label_key
in
button_label_keys
]
def
setTab
(
self
,
button_pressed
)
->
int
:
"""
...
...
@@ -104,27 +106,34 @@ class SwitchableStackWidget(QtWidgets.QWidget):
raise
AttributeError
(
"setButtonSize called without usable size information"
)
return
0
def
localise_text
(
self
,
text
:
dict
)
->
int
:
for
button
in
self
.
button_list
:
button
.
localise_text
(
text
)
return
0
class
SelectorButtonWidget
(
QtWidgets
.
QPushButton
):
def
__init__
(
self
,
NativeUI
,
*
args
,
**
kwargs
):
super
()
.
__init__
(
*
args
,
**
kwargs
)
def
__init__
(
self
,
colors
:
dict
,
text
:
dict
,
label_key
:
str
,
*
args
,
**
kwargs
):
super
()
.
__init__
(
text
[
label_key
],
*
args
,
**
kwargs
)
self
.
__label_key
=
label_key
style
=
(
"QPushButton[selected='0']{"
" color: "
+
NativeUI
.
colors
[
"button_foreground_enabled"
]
.
name
()
+
";"
" background-color: "
+
NativeUI
.
colors
[
"button_background_enabled"
]
.
name
()
+
";"
" color: "
+
colors
[
"button_foreground_enabled"
]
.
name
()
+
";"
" background-color: "
+
colors
[
"button_background_enabled"
]
.
name
()
+
";"
" border:none"
"}"
"QPushButton[selected='1']{"
" color: "
+
NativeUI
.
colors
[
"button_foreground_disabled"
]
.
name
()
+
";"
" background-color:"
+
NativeUI
.
colors
[
"button_background_disabled"
]
.
name
()
+
";"
" color: "
+
colors
[
"button_foreground_disabled"
]
.
name
()
+
";"
" background-color:"
+
colors
[
"button_background_disabled"
]
.
name
()
+
";"
" border:none"
"}"
)
self
.
setStyleSheet
(
style
)
self
.
setProperty
(
"selected"
,
"0"
)
def
localise_text
(
self
,
text
:
dict
)
->
int
:
self
.
setText
(
text
[
self
.
__label_key
])
return
0
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment