Commit 7da49a5e authored by Benjamin Mummery's avatar Benjamin Mummery 💻

Localisation for switchablestackwidget

parent 20205701
......@@ -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,
]:
......
{"calibration": {"label": "calibration", "last_performed": 1621426912, "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": 1621526657, "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"}}
......@@ -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",
......
......@@ -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>",
......
......@@ -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:
......
......@@ -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
......@@ -7,23 +7,22 @@ from PySide2.QtGui import QFont
class SwitchableStackWidget(QtWidgets.QWidget):
def __init__(
self, NativeUI, widget_list: list, button_labels: list, *args, **kwargs
self, colors, text, widget_list: list, button_label_keys: list, *args, **kwargs
):
super().__init__(*args, **kwargs)
self.NativeUI = NativeUI
self.widget_list = widget_list
self.button_list = self.__make_buttons(button_labels)
self.button_list = self.__make_buttons(colors, text, button_label_keys)
self.__build()
if len(self.button_list) > 0:
self.setTab(self.button_list[0])
def rebuild(self, widget_list, button_labels):
def rebuild(self, colors, text, widget_list, button_label_keys):
"""
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_labels)
self.button_list = self.__make_buttons(colors, text, button_label_keys)
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_labels: list) -> list:
def __make_buttons(self, colors, text, button_label_keys: 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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment