From 164da92efaa961cccfb5d3a90ca17ad40b6f9d4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20H=C3=B6chenberger?= Date: Sat, 18 Jun 2022 15:34:22 +0200 Subject: [PATCH 1/3] WIP: Add a menu --- .gitignore | 1 + mne_qt_browser/_pg_figure.py | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 7339aae0..722183a2 100644 --- a/.gitignore +++ b/.gitignore @@ -133,3 +133,4 @@ dmypy.json *.orig junit-results.xml +.vscode/ diff --git a/mne_qt_browser/_pg_figure.py b/mne_qt_browser/_pg_figure.py index c47cfa4e..8bb82607 100644 --- a/mne_qt_browser/_pg_figure.py +++ b/mne_qt_browser/_pg_figure.py @@ -4698,10 +4698,25 @@ def _init_browser(**kwargs): if kwargs.get('splash', False): app_kwargs['splash'] = 'Initializing mne-qt-browser...' out = _init_mne_qtapp(pg_app=True, **app_kwargs) + if 'splash' in app_kwargs: - kwargs['splash'] = out[1] # returned as second element + app, kwargs['splash'] = out + else: + app = out + del out + browser = MNEQtBrowser(**kwargs) + # Add a menu + menu_bar = browser.menuBar() + + file_menu = menu_bar.addMenu('&File') + file_menu.addAction('&About', lambda: print('about')) + file_menu.addAction('&Preferences', lambda: print('prefs')) + + view_menu = menu_bar.addMenu('&View') + view_menu.addAction('Print', lambda: print('hi')) + return browser From 05af2143301ea685d021c0ff34785ea57e67d43c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20H=C3=B6chenberger?= Date: Sat, 18 Jun 2022 15:42:29 +0200 Subject: [PATCH 2/3] Add Help menu --- mne_qt_browser/_pg_figure.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mne_qt_browser/_pg_figure.py b/mne_qt_browser/_pg_figure.py index 8bb82607..bb4b194a 100644 --- a/mne_qt_browser/_pg_figure.py +++ b/mne_qt_browser/_pg_figure.py @@ -4711,11 +4711,15 @@ def _init_browser(**kwargs): menu_bar = browser.menuBar() file_menu = menu_bar.addMenu('&File') - file_menu.addAction('&About', lambda: print('about')) file_menu.addAction('&Preferences', lambda: print('prefs')) view_menu = menu_bar.addMenu('&View') - view_menu.addAction('Print', lambda: print('hi')) + view_menu.addAction('Zoom in', lambda: print('zoom in')) + view_menu.addAction('Zoom out', lambda: print('zoom out')) + + help_menu = menu_bar.addMenu('&Help') + help_menu.addAction('&About', lambda: print('about')) + help_menu.addAction('Help', lambda: print('help')) return browser From d0d1b5aebcf29965e94ec284f247d954b7c06981 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20H=C3=B6chenberger?= Date: Sun, 19 Jun 2022 16:01:04 +0200 Subject: [PATCH 3/3] Add a few more menu entries and nix Settings & Help buttons --- mne_qt_browser/_pg_figure.py | 62 ++++++++++++++++++++++++++---------- 1 file changed, 45 insertions(+), 17 deletions(-) diff --git a/mne_qt_browser/_pg_figure.py b/mne_qt_browser/_pg_figure.py index bb4b194a..6fde9391 100644 --- a/mne_qt_browser/_pg_figure.py +++ b/mne_qt_browser/_pg_figure.py @@ -2889,7 +2889,7 @@ def _hidpi_mkPen(*args, **kwargs): if self.mne.use_opengl is None: # default: opt-in # OpenGL needs to be enabled on macOS # (https://github.com/mne-tools/mne-qt-browser/issues/53) - default = 'true' if sys.platform == 'darwin' else '' + default = 'true' if platform.system() == 'Darwin' else '' config_val = get_config(opengl_key, default).lower() self.mne.use_opengl = (config_val == 'true') @@ -2901,7 +2901,7 @@ def _hidpi_mkPen(*args, **kwargs): # it can lead to segfaults. If a user really knows what they # are doing, they can pass use_opengl=False (or set # MNE_BROWSER_USE_OPENGL=false) - if sys.platform == 'darwin': + if platform.system() == 'Darwin': raise RuntimeError( 'Plotting on macOS without OpenGL may be unstable! ' 'We recommend installing PyOpenGL, but it could not ' @@ -3062,17 +3062,6 @@ def _hidpi_mkPen(*args, **kwargs): button.setPopupMode(QToolButton.InstantPopup) self.mne.toolbar.addWidget(button) - self.mne.toolbar.addSeparator() - - asettings = QAction(QIcon.fromTheme("settings"), 'Settings', - parent=self) - asettings.triggered.connect(self._toggle_settings_fig) - self.mne.toolbar.addAction(asettings) - - ahelp = QAction(QIcon.fromTheme("help"), 'Help', parent=self) - ahelp.triggered.connect(self._toggle_help_fig) - self.mne.toolbar.addAction(ahelp) - # Set Start-Range (after all necessary elements are initialized) self.mne.plt.setXRange(self.mne.t_start, self.mne.t_start + self.mne.duration, @@ -4711,15 +4700,54 @@ def _init_browser(**kwargs): menu_bar = browser.menuBar() file_menu = menu_bar.addMenu('&File') - file_menu.addAction('&Preferences', lambda: print('prefs')) + file_menu.addAction( + '&Preferences' if platform.system() == 'Darwin' else '&Settings', + browser._toggle_settings_fig + ) view_menu = menu_bar.addMenu('&View') - view_menu.addAction('Zoom in', lambda: print('zoom in')) - view_menu.addAction('Zoom out', lambda: print('zoom out')) + # view_menu.addAction('Zoom in', lambda: print('zoom in')) + # view_menu.addAction('Zoom out', lambda: print('zoom out')) + view_menu.addAction( + 'Toggle butterfly mode', + browser._toggle_butterfly, + shortcut=browser.mne.keyboard_shortcuts['b']['qt_key'] + ) + view_menu.addSeparator() + view_menu.addAction( + 'Show fewer time points', + partial(browser.change_duration, -0.2), + shortcut=browser.mne.keyboard_shortcuts['home']['qt_key'] + ) + view_menu.addAction( + 'Show more time points', + partial(browser.change_duration, +0.2), + shortcut=browser.mne.keyboard_shortcuts['end']['qt_key'] + ) + view_menu.addSeparator() + view_menu.addAction( + 'Show fewer channels', + partial(browser.change_nchan, -10), + shortcut=browser.mne.keyboard_shortcuts['pageup']['qt_key'] + ) + view_menu.addAction( + 'Show more channels', + partial(browser.change_nchan, +10), + shortcut=browser.mne.keyboard_shortcuts['pagedown']['qt_key'] + ) + if platform.system() == 'Darwin': + # insert before auto-added fullscreen toggle + # XXX doesn't seem to work + view_menu.addSeparator() + help_menu = menu_bar.addMenu('&Help') help_menu.addAction('&About', lambda: print('about')) - help_menu.addAction('Help', lambda: print('help')) + help_menu.addAction( + 'Show keyboard shortcuts', + browser._toggle_help_fig, + shortcut=browser.mne.keyboard_shortcuts['?']['qt_key'] + ) return browser