diff --git a/sohstationviewer/view/main_window.py b/sohstationviewer/view/main_window.py index 971838508c337a2913852090c9747c74971db27e..b58473088914d6260acfaf6ff348ecd9b1aab4bc 100755 --- a/sohstationviewer/view/main_window.py +++ b/sohstationviewer/view/main_window.py @@ -1220,19 +1220,17 @@ class MainWindow(QtWidgets.QMainWindow, UIMainWindow): self.forms_menu.addAction(action) action.triggered.connect(lambda: self.raise_form(form)) self.forms_in_forms_menu.append(form) - self.forms_menu.removeAction(self.no_forms_action) def clear_actions_from_forms_menu(self) -> None: """ - Remove all actions from forms_menu. + Remove all actions from forms_menu aside from the main window action. Close all forms related to forms_menu. - Add no_forms_action to let user know that there are no forms available. """ self.forms_menu.clear() # remove all actions + self.forms_menu.addAction(self.main_window_action) for i in range(len(self.forms_in_forms_menu) - 1, -1, -1): form = self.forms_in_forms_menu.pop(i) form.close() - self.forms_menu.addAction(self.no_forms_action) @QtCore.Slot(QtWidgets.QWidget) def raise_form(self, form: QtWidgets.QWidget) -> None: diff --git a/sohstationviewer/view/ui/main_ui.py b/sohstationviewer/view/ui/main_ui.py index 7e2f1cb3272064960cbc8762a8de197c5904f5f5..d0ed6e746a20ea490ae9705d9151f5d17fbefd3c 100755 --- a/sohstationviewer/view/ui/main_ui.py +++ b/sohstationviewer/view/ui/main_ui.py @@ -202,11 +202,6 @@ class UIMainWindow(object): """ self.forms_menu: Union[QMenu, None] = None """ - no_forms_action: to show in forms_menu when there are no - dialogs available to let user know about that - """ - self.no_forms_action: Union[QAction, None] = None - """ exit_action: to exit SOHView """ self.exit_action: Union[QAction, None] = None @@ -248,6 +243,7 @@ class UIMainWindow(object): self.yyyy_doy_action: Union[QAction, None] = None self.yyyy_mm_dd_action: Union[QAction, None] = None self.yyyymmmdd_action: Union[QAction, None] = None + # ======================== Database Menu ========================== """ add_edit_data_type_action: open DataTypes table to add/edit @@ -261,6 +257,15 @@ class UIMainWindow(object): self.add_edit_channel_action: Union[QAction, None] = None self.add_edit_channel_action: Union[QAction, None] = None self.view_plot_type_action: Union[QAction, None] = None + + # ========================= Forms Menu ============================ + """ + main_window_action: Show the main window over other windows. Primarily + intended for MacOS, which has the menu bar always show up as long as + the program has focus. + """ + self.main_window_action: Union[QAction, None] = None + # ========================= Help Menu ============================= """ calendar_action: Open Calendar Dialog as a helpful tool @@ -742,10 +747,8 @@ class UIMainWindow(object): menu.addAction(self.doc_action) def create_forms_menu(self, main_window, menu): - self.no_forms_action = QAction( - "No Forms Are Open", main_window) - menu.addAction(self.no_forms_action) - self.no_forms_action.setEnabled(False) + self.main_window_action = QAction("Main Window", main_window) + menu.addAction(self.main_window_action) def connect_signals(self, main_window): """ @@ -792,6 +795,9 @@ class UIMainWindow(object): main_window.open_plot_type) # Form + self.main_window_action.triggered.connect( + lambda: main_window.raise_form(main_window) + ) # Help self.calendar_action.triggered.connect(main_window.open_calendar)