Commit 9f359678 authored by Tiago Sarmento's avatar Tiago Sarmento

ready to merge

parent e64c10e7
Pipeline #1369 failed with stages
...@@ -184,12 +184,3 @@ class confirmPopup(QtWidgets.QWidget): ...@@ -184,12 +184,3 @@ class confirmPopup(QtWidgets.QWidget):
x = screen.width() - screen.width() / 2 x = screen.width() - screen.width() / 2
y = 0 # screen.height() - widget.height() y = 0 # screen.height() - widget.height()
self.move(x, y) self.move(x, y)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
widg = SetConfirmPopup(
None, ["test text", "test", "test", "tregfdgdfgd", "experiment"]
)
widg.show()
sys.exit(app.exec_())
...@@ -83,8 +83,8 @@ class Layout: ...@@ -83,8 +83,8 @@ class Layout:
self.__make_stack( self.__make_stack(
[ [
self.layout_startup_main(), self.layout_startup_main(),
self.layout_mode_startup(modeDict["settings"], 'startup', modeDict['enableDict']['PC/AC'], False ),#self, settings, mode:str, enableList:list, buttons: bool) self.layout_mode_startup( ),#self, settings, mode:str, enableList:list, buttons: bool)
self.layout_personal_startup(), self.layout_mode_personal('startup_', False),
] ]
), ),
...@@ -302,7 +302,7 @@ class Layout: ...@@ -302,7 +302,7 @@ class Layout:
modes_stack = SwitchableStackWidget( modes_stack = SwitchableStackWidget(
self.NativeUI, self.NativeUI,
[self.layout_mode_settings(True), self.layout_mode_personal()],#self.widgets.mode_personal_tab], [self.layout_mode_settings(True), self.layout_mode_personal('', True)],#self.widgets.mode_personal_tab],
["Mode Settings", "Personal Settings"], ["Mode Settings", "Personal Settings"],
) )
modes_stack.setFont(self.NativeUI.text_font) modes_stack.setFont(self.NativeUI.text_font)
...@@ -397,20 +397,19 @@ class Layout: ...@@ -397,20 +397,19 @@ class Layout:
tab_alarm_table.setLayout(tab_alarm_table_layout) tab_alarm_table.setLayout(tab_alarm_table_layout)
return tab_alarm_table return tab_alarm_table
def layout_mode_settings(self, buttons) -> QtWidgets.QWidget: def layout_mode_settings(self, buttons) -> QtWidgets.QWidget:
""" """
Construct the layout for the mode pages Construct the layout for the mode pages
""" """
mode_pages = [] # enableDict may need to go elsewhere mode_pages = [] # enableDict may need to go elsewhere
with open('NativeUI/configs/mode_config.json') as json_file: with open('NativeUI/configs/mode_config.json') as json_file:
modeDict = json.load(json_file) modeDict = json.load(json_file)
enableDict = modeDict["enableDict"] enableDict = modeDict["enableDict"]
#enableDict = {'PC/AC':[1, 0, 1, 1, 0, 1, 0, 1], 'PC/AC-PRVC':[1, 1, 0, 1, 0, 1, 1, 1], 'PC-PSV':[1, 1, 0, 1, 0, 1, 0, 1], 'CPAP':[1, 0, 1, 1, 0, 1, 0, 1]} buttons = True
#buttons = True
for mode in self.NativeUI.modeList: for mode in self.NativeUI.modeList:
mode_pages.append(self.layout_mode_tab(modeDict["settings"], mode, enableDict[mode], buttons)) mode_pages.append(self.layout_mode_tab(modeDict["settings"], mode, '', enableDict[mode], buttons))
page_modes = SwitchableStackWidget( page_modes = SwitchableStackWidget(
self.NativeUI, self.NativeUI,
...@@ -420,34 +419,29 @@ class Layout: ...@@ -420,34 +419,29 @@ class Layout:
page_modes.setFont(self.NativeUI.text_font) page_modes.setFont(self.NativeUI.text_font)
return page_modes return page_modes
def layout_mode_tab(self, settings, mode:str, enableList:list, buttons: bool) -> QtWidgets.QWidget: def layout_mode_tab(self, settings, mode:str, startup:str, enableList:list, buttons: bool) -> QtWidgets.QWidget:
""" """
Construct the layout for an individual mode setting tab Construct the layout for an individual mode setting tab
""" """
spinList = [] spinList = []
for setting in settings: for setting in settings:
attrName = 'spin_' + mode + '_' + setting[2] attrName = 'spin_' + mode + startup + '_' + setting[2]
spinList.append(self.NativeUI.widgets.get_widget(attrName)) spinList.append(self.NativeUI.widgets.get_widget(attrName))
#spinList = [ self.NativeUI.widgets.get_widget(attrName) for attrName in dir(self.NativeUI.widgets) if ('spin_' + mode + '_') in attrName]
# consider subclassing labelledspinbox to have modespinbox with attribute mode
if len(spinList) != len(enableList): if len(spinList) != len(enableList):
print('lengths do not match, error!') print('lengths do not match, error!')
print(spinList) print(spinList)
print(enableList) print(enableList)
radioWidgets = ["Inhale Time", "IE Ratio"] radioWidgets = ["Inhale Time", "IE Ratio"]
buttonGroup = QtWidgets.QButtonGroup()
vLayout = QtWidgets.QVBoxLayout() vLayout = QtWidgets.QVBoxLayout()
for widget, enableBool in zip(spinList,enableList): for widget, enableBool in zip(spinList,enableList):
vLayout.addWidget(widget) vLayout.addWidget(widget)
if widget.label in radioWidgets: if widget.label in radioWidgets:
self.NativeUI.widgets.get_widget('radio_' + mode + '_' +widget.tag).setChecked(bool(enableBool)) self.NativeUI.widgets.get_widget('radio_' + mode + startup + '_' +widget.tag).setChecked(bool(enableBool))
self.NativeUI.widgets.get_widget('spin_' + mode + '_' +widget.tag).insertWidget(self.NativeUI.widgets.get_widget('radio_' + mode + '_' +widget.tag), 1) self.NativeUI.widgets.get_widget('spin_' + mode + startup + '_' +widget.tag).insertWidget(self.NativeUI.widgets.get_widget('radio_' + mode + startup + '_' +widget.tag), 1)
self.NativeUI.widgets.get_widget('spin_' + mode + '_' + widget.tag).setEnabled(bool(enableBool)) self.NativeUI.widgets.get_widget('spin_' + mode + startup + '_' + widget.tag).setEnabled(bool(enableBool))
if buttons == True: if buttons == True:
hButtonLayout = QtWidgets.QHBoxLayout() hButtonLayout = QtWidgets.QHBoxLayout()
...@@ -461,70 +455,28 @@ class Layout: ...@@ -461,70 +455,28 @@ class Layout:
mode_tab.setLayout(vLayout) mode_tab.setLayout(vLayout)
return mode_tab return mode_tab
def layout_mode_startup(self, settings, mode:str, enableList:list, buttons: bool) -> QtWidgets.QWidget: def layout_mode_startup(self) -> QtWidgets.QWidget:
""" """
Construct the layout for an individual mode setting tab Construct the layout for the mode pages
""" """
mode_pages = [] # enableDict may need to go elsewhere
with open('NativeUI/configs/mode_config.json') as json_file:
modeDict = json.load(json_file)
spinList = [] enableDict = modeDict["enableDict"]
for setting in settings: for mode in self.NativeUI.modeList:
attrName = 'spin_' + mode + '_' + setting[2] mode_pages.append(self.layout_mode_tab(modeDict["settings"], mode, '_startup', enableDict[mode], False))
spinList.append(self.NativeUI.widgets.get_widget(attrName))
#spinList = [ self.NativeUI.widgets.get_widget(attrName) for attrName in dir(self.NativeUI.widgets) if ('spin_' + mode + '_') in attrName]
# consider subclassing labelledspinbox to have modespinbox with attribute mode
if len(spinList) != len(enableList):
print('lengths do not match, error!')
print(spinList)
print(enableList)
radioWidgets = ["Inhale Time", "IE Ratio"]
buttonGroup = QtWidgets.QButtonGroup()
vLayout = QtWidgets.QVBoxLayout()
for widget, enableBool in zip(spinList,enableList):
vLayout.addWidget(widget)
if widget.label in radioWidgets:
self.NativeUI.widgets.get_widget('radio_' + mode + '_' +widget.tag).setChecked(bool(enableBool))
self.NativeUI.widgets.get_widget('spin_' + mode + '_' +widget.tag).insertWidget(self.NativeUI.widgets.get_widget('radio_' + mode + '_' +widget.tag), 1)
self.NativeUI.widgets.get_widget('spin_' + mode + '_' + widget.tag).setEnabled(bool(enableBool))
if buttons == True:
hButtonLayout = QtWidgets.QHBoxLayout()
hButtonLayout.addWidget(self.NativeUI.widgets.get_widget('ok_button_' + mode))
hButtonLayout.addWidget(self.NativeUI.widgets.get_widget('ok_send_button_' + mode))
hButtonLayout.addWidget(self.NativeUI.widgets.get_widget('cancel_button_' + mode))
vLayout.addLayout(hButtonLayout)
mode_tab = QtWidgets.QWidget()
mode_tab.setLayout(vLayout)
return mode_tab
def layout_personal_startup(self):
with open('NativeUI/configs/personal_config.json') as json_file:
personalDict = json.load(json_file)
textBoxes = personalDict["textBoxes"]
personalList = []
for setting in personalDict["settings"]:
attrName = 'startup_personal_edit_' + setting[2]
if setting[0] in textBoxes:
personalList.append(self.NativeUI.widgets.get_widget('text_' + attrName))
else:
personalList.append(self.NativeUI.widgets.get_widget('spin_' + attrName))
vLayout = QtWidgets.QVBoxLayout()
for widget in personalList:
vLayout.addWidget(widget)
personal_tab = QtWidgets.QWidget() page_modes = SwitchableStackWidget(
personal_tab.setLayout(vLayout) self.NativeUI,
return personal_tab mode_pages,
self.NativeUI.modeList,
)
page_modes.setFont(self.NativeUI.text_font)
return page_modes
def layout_mode_personal(self): def layout_mode_personal(self, startup:str, buttons:bool):
""" """
Construct the layout for the personal settings page Construct the layout for the personal settings page
""" """
...@@ -535,7 +487,7 @@ class Layout: ...@@ -535,7 +487,7 @@ class Layout:
personalList = [] personalList = []
for setting in personalDict["settings"]: for setting in personalDict["settings"]:
attrName = 'personal_edit_' + setting[2] attrName = startup + 'personal_edit_' + setting[2]
if setting[0] in textBoxes: if setting[0] in textBoxes:
personalList.append(self.NativeUI.widgets.get_widget('text_' + attrName)) personalList.append(self.NativeUI.widgets.get_widget('text_' + attrName))
else: else:
...@@ -546,12 +498,13 @@ class Layout: ...@@ -546,12 +498,13 @@ class Layout:
for widget in personalList: for widget in personalList:
vLayout.addWidget(widget) vLayout.addWidget(widget)
hButtonLayout = QtWidgets.QHBoxLayout() if buttons:
hButtonLayout.addWidget(self.NativeUI.widgets.get_widget('ok_button_personal')) hButtonLayout = QtWidgets.QHBoxLayout()
hButtonLayout.addWidget(self.NativeUI.widgets.get_widget('ok_send_button_personal')) hButtonLayout.addWidget(self.NativeUI.widgets.get_widget('ok_button_personal'))
hButtonLayout.addWidget(self.NativeUI.widgets.get_widget('cancel_button_personal')) hButtonLayout.addWidget(self.NativeUI.widgets.get_widget('ok_send_button_personal'))
hButtonLayout.addWidget(self.NativeUI.widgets.get_widget('cancel_button_personal'))
vLayout.addLayout(hButtonLayout) vLayout.addLayout(hButtonLayout)
personal_tab = QtWidgets.QWidget() personal_tab = QtWidgets.QWidget()
personal_tab.setLayout(vLayout) personal_tab.setLayout(vLayout)
......
...@@ -132,26 +132,27 @@ class Widgets: ...@@ -132,26 +132,27 @@ class Widgets:
#modes.append('startup') #modes.append('startup')
#radioSettings = ['Inhale Time', 'IE Ratio'] #radioSettings = ['Inhale Time', 'IE Ratio']
self.groupDict = {} self.groupDict = {}
for mode in [*modes, 'startup']: for mode in modes:
self.groupDict[mode] = QButtonGroup() for startup in ['', '_startup']:
for setting in modeDict["settings"]: self.groupDict[mode + startup] = QButtonGroup()
attrName = mode + '_' + setting[2] for setting in modeDict["settings"]:
targettedSetting =[ target.replace("SET_TARGET_", "SET_TARGET_" + mode.replace("/", "_").replace("-", "_")) if isinstance(target,str) else target for target in setting ] attrName = mode + startup + '_' + setting[2]
if mode == 'startup': targettedSetting =[ target.replace("SET_TARGET_", "SET_TARGET_" + mode.replace("/", "_").replace("-", "_")) if isinstance(target,str) else target for target in setting ]
self.add_handled_widget(labelledSpin(NativeUI, targettedSetting), 'spin_' + attrName, if startup == '_startup':
self.startup_handler) self.add_handled_widget(labelledSpin(NativeUI, targettedSetting), 'spin_' + attrName,
else: self.startup_handler)
self.add_handled_widget(labelledSpin(NativeUI,targettedSetting),'spin_' + attrName, self.mode_handler) else:
self.add_handled_widget(labelledSpin(NativeUI,targettedSetting),'spin_' + attrName, self.mode_handler)
if setting[0] in radioSettings: if setting[0] in radioSettings:
radioButton = QRadioButton() radioButton = QRadioButton()
self.groupDict[mode].addButton(radioButton) self.groupDict[mode + startup].addButton(radioButton)
self.add_handled_widget(radioButton,'radio_' + attrName, self.mode_handler) self.add_handled_widget(radioButton,'radio_' + attrName, self.mode_handler)
if mode != 'startup': if startup != '_startup':
self.add_handled_widget(OkButtonWidget(NativeUI),'ok_button_' + mode, self.mode_handler) self.add_handled_widget(OkButtonWidget(NativeUI),'ok_button_' + mode, self.mode_handler)
self.add_handled_widget(OkSendButtonWidget(NativeUI),'ok_send_button_' + mode, self.mode_handler) self.add_handled_widget(OkSendButtonWidget(NativeUI),'ok_send_button_' + mode, self.mode_handler)
self.add_handled_widget(CancelButtonWidget(NativeUI),'cancel_button_' + mode, self.mode_handler) self.add_handled_widget(CancelButtonWidget(NativeUI),'cancel_button_' + mode, self.mode_handler)
# Personal tab widgets # Personal tab widgets
......
...@@ -8,16 +8,12 @@ from PySide2 import QtWidgets, QtGui, QtCore ...@@ -8,16 +8,12 @@ from PySide2 import QtWidgets, QtGui, QtCore
class StartupHandler(QtWidgets.QWidget): # chose QWidget over QDialog family because easier to modify class StartupHandler(QtWidgets.QWidget): # chose QWidget over QDialog family because easier to modify
modeSwitched = QtCore.Signal(str)
def __init__(self, NativeUI, confirmPopup, *args, **kwargs): def __init__(self, NativeUI, confirmPopup, *args, **kwargs):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
self.buttonDict = {} self.buttonDict = {}
self.spinDict = {} self.spinDict = {}
self.calibDict = {} self.calibDict = {}
self.popup = confirmPopup self.popup = confirmPopup
#super(TabModes, self).__init__(NativeUI, *args, **kwargs)
def add_widget(self, widget, key: str): def add_widget(self, widget, key: str):
if isinstance(widget, labelledSpin): if isinstance(widget, labelledSpin):
......
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