Index: simulator/plugins/accelerometer/interface.ui =================================================================== diff -u -rc9c30b825fc1bcc6d3fa3cdd8b825275b9dbb262 -r8bfab5e4d1dd4e3bc638f28e77b4811218b84c39 --- simulator/plugins/accelerometer/interface.ui (.../interface.ui) (revision c9c30b825fc1bcc6d3fa3cdd8b825275b9dbb262) +++ simulator/plugins/accelerometer/interface.ui (.../interface.ui) (revision 8bfab5e4d1dd4e3bc638f28e77b4811218b84c39) @@ -11,7 +11,7 @@ - Accelerometer + &Extra/&Accelerometer Index: simulator/plugins/alarms/interface.ui =================================================================== diff -u -r6f1082f52141e89d2cc6ec99688430897bfb8469 -r8bfab5e4d1dd4e3bc638f28e77b4811218b84c39 --- simulator/plugins/alarms/interface.ui (.../interface.ui) (revision 6f1082f52141e89d2cc6ec99688430897bfb8469) +++ simulator/plugins/alarms/interface.ui (.../interface.ui) (revision 8bfab5e4d1dd4e3bc638f28e77b4811218b84c39) @@ -11,7 +11,7 @@ - &Alarms + &Alarms/&Alarm Index: simulator/plugins/bloodPrime/interface.ui =================================================================== diff -u -r946ef354fad2014bd50283cbb817c17e392760b3 -r8bfab5e4d1dd4e3bc638f28e77b4811218b84c39 --- simulator/plugins/bloodPrime/interface.ui (.../interface.ui) (revision 946ef354fad2014bd50283cbb817c17e392760b3) +++ simulator/plugins/bloodPrime/interface.ui (.../interface.ui) (revision 8bfab5e4d1dd4e3bc638f28e77b4811218b84c39) @@ -23,7 +23,7 @@ - Blood Prime + P&re-Treatment/&Blood Prime Index: simulator/plugins/createtreatment/interface.ui =================================================================== diff -u -rdb5d7914d3c89371d7ce7e79dcd78626d1f06ee8 -r8bfab5e4d1dd4e3bc638f28e77b4811218b84c39 --- simulator/plugins/createtreatment/interface.ui (.../interface.ui) (revision db5d7914d3c89371d7ce7e79dcd78626d1f06ee8) +++ simulator/plugins/createtreatment/interface.ui (.../interface.ui) (revision 8bfab5e4d1dd4e3bc638f28e77b4811218b84c39) @@ -11,7 +11,7 @@ - Create Treatment + P&re-Treatment/&Create Treatment Index: simulator/plugins/heparin/interface.ui =================================================================== diff -u -r15118be5139122e2129f00482d173d58503b338e -r8bfab5e4d1dd4e3bc638f28e77b4811218b84c39 --- simulator/plugins/heparin/interface.ui (.../interface.ui) (revision 15118be5139122e2129f00482d173d58503b338e) +++ simulator/plugins/heparin/interface.ui (.../interface.ui) (revision 8bfab5e4d1dd4e3bc638f28e77b4811218b84c39) @@ -23,7 +23,7 @@ - Heparin + &In-Treatment/&Heparin Index: simulator/plugins/inlinebloodpressures/interface.ui =================================================================== diff -u -r580327d8e14bcef18c52fe6478333360789d8d99 -r8bfab5e4d1dd4e3bc638f28e77b4811218b84c39 --- simulator/plugins/inlinebloodpressures/interface.ui (.../interface.ui) (revision 580327d8e14bcef18c52fe6478333360789d8d99) +++ simulator/plugins/inlinebloodpressures/interface.ui (.../interface.ui) (revision 8bfab5e4d1dd4e3bc638f28e77b4811218b84c39) @@ -11,7 +11,7 @@ - In-Line Blood Pressures + &In-Treatment/In-Line Blood Pressures Index: simulator/plugins/recirculate/interface.ui =================================================================== diff -u -rf4523ffcaff0d27f7392c943f0a487fcb01a7d34 -r8bfab5e4d1dd4e3bc638f28e77b4811218b84c39 --- simulator/plugins/recirculate/interface.ui (.../interface.ui) (revision f4523ffcaff0d27f7392c943f0a487fcb01a7d34) +++ simulator/plugins/recirculate/interface.ui (.../interface.ui) (revision 8bfab5e4d1dd4e3bc638f28e77b4811218b84c39) @@ -11,7 +11,7 @@ - Recirculate + &Treatment/&Recirculate Index: simulator/plugins/rinseback/interface.ui =================================================================== diff -u -r370f52c41992e2fbdc428376efb02b6f61e3b245 -r8bfab5e4d1dd4e3bc638f28e77b4811218b84c39 --- simulator/plugins/rinseback/interface.ui (.../interface.ui) (revision 370f52c41992e2fbdc428376efb02b6f61e3b245) +++ simulator/plugins/rinseback/interface.ui (.../interface.ui) (revision 8bfab5e4d1dd4e3bc638f28e77b4811218b84c39) @@ -23,7 +23,7 @@ - Rinseback + &Treatment/&Rinseback Index: simulator/plugins/salinebolus/interface.ui =================================================================== diff -u -r15118be5139122e2129f00482d173d58503b338e -r8bfab5e4d1dd4e3bc638f28e77b4811218b84c39 --- simulator/plugins/salinebolus/interface.ui (.../interface.ui) (revision 15118be5139122e2129f00482d173d58503b338e) +++ simulator/plugins/salinebolus/interface.ui (.../interface.ui) (revision 8bfab5e4d1dd4e3bc638f28e77b4811218b84c39) @@ -11,7 +11,7 @@ - Saline Bolus + &In-Treatment/&Saline Bolus Index: simulator/plugins/treatmentend/interface.ui =================================================================== diff -u -rf4523ffcaff0d27f7392c943f0a487fcb01a7d34 -r8bfab5e4d1dd4e3bc638f28e77b4811218b84c39 --- simulator/plugins/treatmentend/interface.ui (.../interface.ui) (revision f4523ffcaff0d27f7392c943f0a487fcb01a7d34) +++ simulator/plugins/treatmentend/interface.ui (.../interface.ui) (revision 8bfab5e4d1dd4e3bc638f28e77b4811218b84c39) @@ -11,7 +11,7 @@ - Treatment End + &Treatment/&Treatment End Index: simulator/plugins/treatmentranges/interface.ui =================================================================== diff -u -r1779b6711f3791e8bf570e06ddb4c2e7d2a52e18 -r8bfab5e4d1dd4e3bc638f28e77b4811218b84c39 --- simulator/plugins/treatmentranges/interface.ui (.../interface.ui) (revision 1779b6711f3791e8bf570e06ddb4c2e7d2a52e18) +++ simulator/plugins/treatmentranges/interface.ui (.../interface.ui) (revision 8bfab5e4d1dd4e3bc638f28e77b4811218b84c39) @@ -11,7 +11,7 @@ - Adjustment Ranges + &In-Treatment/&Adjustment Ranges Index: simulator/plugins/treatmentstates/interface.ui =================================================================== diff -u -r370f52c41992e2fbdc428376efb02b6f61e3b245 -r8bfab5e4d1dd4e3bc638f28e77b4811218b84c39 --- simulator/plugins/treatmentstates/interface.ui (.../interface.ui) (revision 370f52c41992e2fbdc428376efb02b6f61e3b245) +++ simulator/plugins/treatmentstates/interface.ui (.../interface.ui) (revision 8bfab5e4d1dd4e3bc638f28e77b4811218b84c39) @@ -11,7 +11,7 @@ - Treatment States + &Treatment/&Treatment States Index: simulator/plugins/ultrafiltration/interface.ui =================================================================== diff -u -r15118be5139122e2129f00482d173d58503b338e -r8bfab5e4d1dd4e3bc638f28e77b4811218b84c39 --- simulator/plugins/ultrafiltration/interface.ui (.../interface.ui) (revision 15118be5139122e2129f00482d173d58503b338e) +++ simulator/plugins/ultrafiltration/interface.ui (.../interface.ui) (revision 8bfab5e4d1dd4e3bc638f28e77b4811218b84c39) @@ -11,7 +11,7 @@ - &Ultrafiltration + &In-Treatment/&Ultrafiltration Index: simulator/plugins/version/interface.ui =================================================================== diff -u -rb84c3a9b1d50790944ee40a68d2013ace7302f82 -r8bfab5e4d1dd4e3bc638f28e77b4811218b84c39 --- simulator/plugins/version/interface.ui (.../interface.ui) (revision b84c3a9b1d50790944ee40a68d2013ace7302f82) +++ simulator/plugins/version/interface.ui (.../interface.ui) (revision 8bfab5e4d1dd4e3bc638f28e77b4811218b84c39) @@ -11,7 +11,7 @@ - Versions + &Extra/&Versions Index: simulator/simulator/interface.ui =================================================================== diff -u -r1779b6711f3791e8bf570e06ddb4c2e7d2a52e18 -r8bfab5e4d1dd4e3bc638f28e77b4811218b84c39 --- simulator/simulator/interface.ui (.../interface.ui) (revision 1779b6711f3791e8bf570e06ddb4c2e7d2a52e18) +++ simulator/simulator/interface.ui (.../interface.ui) (revision 8bfab5e4d1dd4e3bc638f28e77b4811218b84c39) @@ -101,7 +101,7 @@ - + 0 @@ -110,20 +110,13 @@ 22 - - - &View - - - &Windows - Index: simulator/simulator/loader.py =================================================================== diff -u -r0c65b0562c34edf23a06bc224a00a7fbc340e9de -r8bfab5e4d1dd4e3bc638f28e77b4811218b84c39 --- simulator/simulator/loader.py (.../loader.py) (revision 0c65b0562c34edf23a06bc224a00a7fbc340e9de) +++ simulator/simulator/loader.py (.../loader.py) (revision 8bfab5e4d1dd4e3bc638f28e77b4811218b84c39) @@ -24,7 +24,8 @@ Note: this class is growing fast and seems like needs to be multiple classes """ mdiArea: QtWidgets.QMdiArea - menuView: QtWidgets.QMenu + menuBar: QtWidgets.QMenuBar + menuWindows: QtWidgets.QMenu lblStatusCANBus: QtWidgets.QLabel lblStatusMessages: QtWidgets.QLabel @@ -45,7 +46,8 @@ self.lblStatusCANBus = self.find_label('lblStatusCANBus') self.lblStatusMessages = self.find_label('lblStatusMessages') self.mdiArea = self.find_widget(QtWidgets.QMdiArea, 'mdiArea') - self.menuView = self.find_widget(QtWidgets.QMenu, 'menuView') + self.menuBar = self.find_widget(QtWidgets.QMenuBar, 'menuBar') + self.menuWindows = self.find_widget(QtWidgets.QMenu, 'menuWindows') self.action_show_all = self.find_action('actionShowAll') def _init_widgets(self): @@ -83,11 +85,30 @@ if window is None: return False - act = self.menuView.addAction(name) - act.setCheckable(True) - act.toggled.connect(window.setVisible) - self.action_show_all.toggled.connect(act.setChecked) + top_menu_name = "View" + sub_menu_name = name + names = name.split("/") + if len(names) > 1: + top_menu_name = names[0] + sub_menu_name = names[1] + menu = None + if top_menu_name != "": + found = False + for item in self.menuBar.actions(): + if item.text().replace('&', '').strip().lower() == top_menu_name.replace('&', '').strip().lower(): + menu = item.menu() + found = True + break + + if not found: + menu = self.menuBar.addMenu(top_menu_name) + + action = menu.addAction(sub_menu_name) + action.setCheckable(True) + action.toggled.connect(window.setVisible) + self.action_show_all.toggled.connect(action.setChecked) + def __register_plugin(self, obj: DynamicLoader, add_separator: bool = False): """ creates the plugin object and adds it to the mdi and creates an action menu for it