diff --git a/b_asic/GUI/main_window.py b/b_asic/GUI/main_window.py index 5daf997f7c5c9ff184a96ef320c9fdcf213a3c0a..88d7b626a75ee5903c00c6da07a74d62bc2049b0 100644 --- a/b_asic/GUI/main_window.py +++ b/b_asic/GUI/main_window.py @@ -212,6 +212,12 @@ class SFGMainWindow(QMainWindow): self._zoom_to_fit_action.triggered.connect(self._zoom_to_fit) self._ui.view_menu.addAction(self._zoom_to_fit_action) + # Toggle full screen + self._fullscreen_action = QAction(get_icon('full-screen'), "Toggle full screen") + self._fullscreen_action.setCheckable(True) + self._fullscreen_action.triggered.connect(self._toggle_fullscreen) + self._ui.view_menu.addAction(self._fullscreen_action) + # Non-modal dialogs self._keybindings_page = None self._about_page = None @@ -384,6 +390,15 @@ class SFGMainWindow(QMainWindow): self._update_recent_file_list() + def _toggle_fullscreen(self, event=None): + """Callback for toggling full screen mode.""" + if self.isFullScreen(): + self.showNormal() + self._fullscreen_action.setIcon(get_icon('full-screen')) + else: + self.showFullScreen() + self._fullscreen_action.setIcon(get_icon('full-screen-exit')) + def _update_recent_file_list(self): settings = QSettings() diff --git a/b_asic/gui_utils/icons.py b/b_asic/gui_utils/icons.py index fb83e1f219b99bf8e4affc6f868ca4adb8c5cc6f..4433c8f3c0c958204a8107bb6d91b4cd9021f6dc 100644 --- a/b_asic/gui_utils/icons.py +++ b/b_asic/gui_utils/icons.py @@ -29,6 +29,8 @@ ICONS = { 'faq': 'mdi6.frequently-asked-questions', 'sim': 'mdi6.chart-line', 'reorder': ('msc.graph-left', {'rotated': -90}), + 'full-screen': 'mdi6.fullscreen', + 'full-screen-exit': 'mdi6.fullscreen-exit', } diff --git a/b_asic/scheduler_gui/main_window.py b/b_asic/scheduler_gui/main_window.py index 5b4d2f591cc7d76c1513b94b2bef9fd6bd3c31f0..b65233d31b2516a48ede6d14f51a6699f0ff1664 100644 --- a/b_asic/scheduler_gui/main_window.py +++ b/b_asic/scheduler_gui/main_window.py @@ -148,10 +148,12 @@ class ScheduleMainWindow(QMainWindow, Ui_MainWindow): self.actionReorder.triggered.connect(self._action_reorder) self.actionReorder.setIcon(get_icon('reorder')) self.actionStatus_bar.triggered.connect(self._toggle_statusbar) - self.actionPlot_schedule.triggered.connect(self._plot_schedule) self.actionPlot_schedule.setIcon(get_icon('plot-schedule')) - self.actionZoom_to_fit.triggered.connect(self._zoom_to_fit) + self.actionPlot_schedule.triggered.connect(self._plot_schedule) self.actionZoom_to_fit.setIcon(get_icon('zoom-to-fit')) + self.actionZoom_to_fit.triggered.connect(self._zoom_to_fit) + self.actionToggle_full_screen.setIcon(get_icon('full-screen')) + self.actionToggle_full_screen.triggered.connect(self._toggle_fullscreen) self.actionUndo.setIcon(get_icon('undo')) self.actionRedo.setIcon(get_icon('redo')) self.splitter.splitterMoved.connect(self._splitter_moved) @@ -756,6 +758,15 @@ class ScheduleMainWindow(QMainWindow, Ui_MainWindow): """Callback for toggling the status bar.""" self.statusbar.setVisible(self.actionStatus_bar.isChecked()) + def _toggle_fullscreen(self, event=None): + """Callback for toggling full screen mode.""" + if self.isFullScreen(): + self.showNormal() + self.actionToggle_full_screen.setIcon(get_icon('full-screen')) + else: + self.showFullScreen() + self.actionToggle_full_screen.setIcon(get_icon('full-screen-exit')) + def start_scheduler(schedule: Optional[Schedule] = None) -> Schedule: """ diff --git a/b_asic/scheduler_gui/main_window.ui b/b_asic/scheduler_gui/main_window.ui index a3ad6f2fa6ab5435d21aa5f3b70d0fb7d5c8b94b..4cd0225e0c344a1bf80f7d1ec90dbc8057dac8d1 100644 --- a/b_asic/scheduler_gui/main_window.ui +++ b/b_asic/scheduler_gui/main_window.ui @@ -211,7 +211,7 @@ </property> <widget class="QMenu" name="menu_Recent_Schedule"> <property name="title"> - <string>&Open recent</string> + <string>Open &recent</string> </property> </widget> <addaction name="menu_open"/> @@ -235,6 +235,7 @@ <addaction name="actionPlot_schedule"/> <addaction name="separator"/> <addaction name="actionZoom_to_fit"/> + <addaction name="actionToggle_full_screen"/> </widget> <widget class="QMenu" name="menu_Edit"> <property name="title"> @@ -502,7 +503,7 @@ </action> <action name="menu_open"> <property name="text"> - <string>Open...</string> + <string>&Open...</string> </property> <property name="toolTip"> <string>Open previously saved schedule</string> @@ -511,6 +512,14 @@ <string>Ctrl+O</string> </property> </action> + <action name="actionToggle_full_screen"> + <property name="checkable"> + <bool>true</bool> + </property> + <property name="text"> + <string>Toggle f&ull screen</string> + </property> + </action> </widget> <resources/> <connections/> diff --git a/b_asic/scheduler_gui/ui_main_window.py b/b_asic/scheduler_gui/ui_main_window.py index d985e9ed6eeb39b63a716254ba268d74ca2838f2..66e5936d7799c78c8680d28d8048aa1b33ff478f 100644 --- a/b_asic/scheduler_gui/ui_main_window.py +++ b/b_asic/scheduler_gui/ui_main_window.py @@ -228,6 +228,9 @@ class Ui_MainWindow(object): self.actionToolbar.setObjectName("actionToolbar") self.menu_open = QtWidgets.QAction(MainWindow) self.menu_open.setObjectName("menu_open") + self.actionToggle_full_screen = QtWidgets.QAction(MainWindow) + self.actionToggle_full_screen.setCheckable(True) + self.actionToggle_full_screen.setObjectName("actionToggle_full_screen") self.menuFile.addAction(self.menu_open) self.menuFile.addAction(self.menu_save) self.menuFile.addAction(self.menu_save_as) @@ -244,6 +247,7 @@ class Ui_MainWindow(object): self.menuView.addAction(self.actionPlot_schedule) self.menuView.addSeparator() self.menuView.addAction(self.actionZoom_to_fit) + self.menuView.addAction(self.actionToggle_full_screen) self.menu_Edit.addAction(self.actionUndo) self.menu_Edit.addAction(self.actionRedo) self.menu_Edit.addSeparator() @@ -290,7 +294,7 @@ class Ui_MainWindow(object): item.setText(_translate("MainWindow", "Operator")) self.info_table.setSortingEnabled(__sortingEnabled) self.menuFile.setTitle(_translate("MainWindow", "&File")) - self.menu_Recent_Schedule.setTitle(_translate("MainWindow", "&Open recent")) + self.menu_Recent_Schedule.setTitle(_translate("MainWindow", "Open &recent")) self.menuView.setTitle(_translate("MainWindow", "&View")) self.menu_Edit.setTitle(_translate("MainWindow", "&Edit")) self.menuWindow.setTitle(_translate("MainWindow", "&Window")) @@ -349,8 +353,11 @@ class Ui_MainWindow(object): ) self.actionToolbar.setText(_translate("MainWindow", "&Toolbar")) self.actionToolbar.setToolTip(_translate("MainWindow", "Show/hide toolbar")) - self.menu_open.setText(_translate("MainWindow", "Open...")) + self.menu_open.setText(_translate("MainWindow", "&Open...")) self.menu_open.setToolTip( _translate("MainWindow", "Open previously saved schedule") ) self.menu_open.setShortcut(_translate("MainWindow", "Ctrl+O")) + self.actionToggle_full_screen.setText( + _translate("MainWindow", "Toggle f&ull screen") + )