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
9f359678
Commit
9f359678
authored
Apr 22, 2021
by
Tiago Sarmento
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ready to merge
parent
e64c10e7
Pipeline
#1369
failed with stages
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
53 additions
and
112 deletions
+53
-112
global_send_popup.py
NativeUI/global_widgets/global_send_popup.py
+0
-9
ui_layout.py
NativeUI/ui_layout.py
+34
-81
ui_widgets.py
NativeUI/ui_widgets.py
+19
-18
startup_handler.py
NativeUI/widget_library/startup_handler.py
+0
-4
No files found.
NativeUI/global_widgets/global_send_popup.py
View file @
9f359678
...
@@ -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_
())
NativeUI/ui_layout.py
View file @
9f359678
...
@@ -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
)
...
...
NativeUI/ui_widgets.py
View file @
9f359678
...
@@ -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
...
...
NativeUI/widget_library/startup_handler.py
View file @
9f359678
...
@@ -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
):
...
...
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