Skip to content

Commit 0ffadff

Browse files
authored
Remove dead code from GUI base (#14081)
1 parent ab0b718 commit 0ffadff

3 files changed

Lines changed: 17 additions & 166 deletions

File tree

mne/viz/backends/_abstract.py

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -738,14 +738,6 @@ def _update(self, repaint=True):
738738
def _set_style(self, style):
739739
pass
740740

741-
@abstractmethod
742-
def _get_tooltip(self):
743-
pass
744-
745-
@abstractmethod
746-
def _set_tooltip(self, tooltip: str):
747-
pass
748-
749741
@abstractmethod
750742
def _add_keypress(self, callback):
751743
pass
@@ -758,10 +750,6 @@ def _trigger_keypress(self, key):
758750
def _set_focus(self):
759751
pass
760752

761-
@abstractmethod
762-
def _set_layout(self, layout):
763-
pass
764-
765753
@abstractmethod
766754
def _set_theme(self, theme):
767755
pass
@@ -799,10 +787,6 @@ def __init__(self, value, callback, icon=None):
799787
def _click(self):
800788
pass
801789

802-
@abstractmethod
803-
def _set_icon(self, icon):
804-
pass
805-
806790

807791
class _AbstractSlider(_AbstractWidget):
808792
@classmethod
@@ -818,10 +802,6 @@ def _set_value(self, value):
818802
def _get_value(self):
819803
pass
820804

821-
@abstractmethod
822-
def _set_range(self, rng):
823-
pass
824-
825805

826806
class _AbstractProgressBar(_AbstractWidget):
827807
@classmethod
@@ -985,10 +965,6 @@ class _AbstractBoxLayout(ABC):
985965
def _add_widget(self, widget):
986966
pass
987967

988-
@abstractmethod
989-
def _add_stretch(self, amount=1):
990-
pass
991-
992968

993969
class _AbstractHBoxLayout(_AbstractBoxLayout):
994970
@abstractmethod
@@ -1020,34 +996,10 @@ def __init__(self, size=None, fullscreen=False):
1020996
def _set_central_layout(self, central_layout):
1021997
pass
1022998

1023-
@abstractmethod
1024-
def _get_dpi(self):
1025-
pass
1026-
1027999
@abstractmethod
10281000
def _get_size(self):
10291001
pass
10301002

1031-
@abstractmethod
1032-
def _get_cursor(self):
1033-
pass
1034-
1035-
@abstractmethod
1036-
def _set_cursor(self, cursor):
1037-
pass
1038-
1039-
@abstractmethod
1040-
def _new_cursor(self, name):
1041-
pass
1042-
1043-
@abstractmethod
1044-
def _close_connect(self, func, *, after=True):
1045-
pass
1046-
1047-
@abstractmethod
1048-
def _close_disconnect(self, after=True):
1049-
pass
1050-
10511003
@abstractmethod
10521004
def _clean(self):
10531005
pass

mne/viz/backends/_notebook.py

Lines changed: 14 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -121,26 +121,33 @@ class _NotebookPlotter(Plotter):
121121
when the trame Jupyter backend cannot be loaded.
122122
"""
123123

124-
def show(self, *args, **kwargs):
124+
def show(
125+
self, *args, jupyter_backend=_JUPYTER_BACKEND, return_viewer=False, **kwargs
126+
):
125127
with warnings.catch_warnings(record=True) as caught:
126128
warnings.simplefilter("always")
127-
viewer = super().show(*args, **kwargs)
129+
viewer = super().show(
130+
*args,
131+
jupyter_backend=jupyter_backend,
132+
return_viewer=return_viewer,
133+
**kwargs,
134+
)
128135
if not isinstance(viewer, Widget):
129136
reasons = "\n".join(
130137
f"- {w.message}"
131138
for w in caught
132139
if any(key in str(w.message) for key in ("backend", "trame", "static"))
133140
)
134141
raise RuntimeError(
135-
f'The notebook 3D backend is not functional: the "{_JUPYTER_BACKEND}" '
142+
f'The notebook 3D backend is not functional: the "{jupyter_backend}" '
136143
"PyVista Jupyter backend returned a "
137144
f"{type(viewer).__module__}.{type(viewer).__qualname__} instead of an "
138145
"interactive widget. This usually means the installed trame packages "
139146
"(trame, trame-vtk, trame-vuetify, trame-pyvista) are missing or "
140147
"mutually incompatible."
141148
+ (f"\n\nPyVista reported:\n{reasons}" if reasons else "")
142149
)
143-
if kwargs["return_viewer"]:
150+
if return_viewer:
144151
return viewer
145152

146153

@@ -166,10 +173,6 @@ def __init__(self):
166173
# issue since each subclass __init__s it's own (e.g. Label)
167174
# Widget.__init__(self)
168175

169-
def _set_range(self, rng):
170-
self.min = rng[0]
171-
self.max = rng[1]
172-
173176
def _show(self):
174177
self.layout.visibility = "visible"
175178

@@ -185,12 +188,6 @@ def _is_enabled(self):
185188
def _update(self, repaint=True):
186189
pass
187190

188-
def _get_tooltip(self):
189-
return self.tooltip
190-
191-
def _set_tooltip(self, tooltip):
192-
self.tooltip = tooltip
193-
194191
def _set_style(self, style):
195192
for key, val in style.items():
196193
setattr(self.layout, key, val)
@@ -211,9 +208,6 @@ def _set_focus(self):
211208
if hasattr(self, "focus"): # added in ipywidgets 8.0
212209
self.focus()
213210

214-
def _set_layout(self, layout):
215-
self.children = (layout,)
216-
217211
def _set_theme(self, theme):
218212
pass
219213

@@ -258,9 +252,6 @@ def __init__(self, value, callback, icon=None):
258252
def _click(self):
259253
self.click()
260254

261-
def _set_icon(self, icon):
262-
self.icon = _ICON_LUT[icon]
263-
264255

265256
class _Slider(_Widget, _AbstractSlider, IntSlider, metaclass=_BaseWidget):
266257
def __init__(self, value, rng, callback, horizontal=True):
@@ -680,7 +671,7 @@ def _handle_scroll(self, scroll=None):
680671
def _add_widget(self, widget):
681672
# if pyvista plotter, needs to be shown
682673
if isinstance(widget, Plotter):
683-
widget = widget.show(jupyter_backend=_JUPYTER_BACKEND, return_viewer=True)
674+
widget = widget.show(return_viewer=True)
684675
if hasattr(widget, "layout"):
685676
widget.layout.width = None # unlock the fixed layout
686677
widget.layout.margin = "2px 0px 2px 0px"
@@ -705,12 +696,6 @@ def _add_widget(self, widget):
705696
for child in self.children:
706697
child.layout.height = f"{int(self._height / len(self.children))}px"
707698

708-
def _add_stretch(self, amount=1):
709-
self.children += (
710-
self,
711-
_Label(" " * 4),
712-
)
713-
714699

715700
class _VBoxLayout(
716701
_AbstractVBoxLayout, _BoxLayout, _Widget, VBox, metaclass=_BaseWidget
@@ -728,12 +713,6 @@ def _add_widget(self, widget):
728713
for child in self.children:
729714
child.layout.width = f"{int(self._width / len(self.children))}px"
730715

731-
def _add_stretch(self, amount=1):
732-
self.children += (
733-
self,
734-
_Label(" " * 4),
735-
)
736-
737716

738717
class _GridLayout(_AbstractGridLayout, _Widget, GridBox, metaclass=_BaseWidget):
739718
def __init__(self, height=None, width=None):
@@ -772,32 +751,14 @@ def __init__(self, size=None, fullscreen=False):
772751
def _set_central_layout(self, central_layout):
773752
self.children = (central_layout,)
774753

775-
def _close_connect(self, func, *, after=True):
776-
pass
777-
778-
def _close_disconnect(self, after=True):
779-
pass
780-
781754
def _clean(self):
782755
pass
783756

784-
def _get_dpi(self):
785-
return 96
786-
787757
def _get_size(self):
788758
# CSS objects don't have explicit widths and heights
789759
# https://github.com/jupyter-widgets/ipywidgets/issues/1639
790760
return (256, 256)
791761

792-
def _get_cursor(self):
793-
pass
794-
795-
def _set_cursor(self, cursor):
796-
pass
797-
798-
def _new_cursor(self, name):
799-
pass
800-
801762
def _show(self, block=False):
802763
display(self)
803764

@@ -819,7 +780,7 @@ def _ensure_minimum_sizes(self):
819780
yield
820781

821782
def show(self):
822-
viewer = self.plotter.show(jupyter_backend=_JUPYTER_BACKEND, return_viewer=True)
783+
viewer = self.plotter.show(return_viewer=True)
823784
viewer.layout.width = None # unlock the fixed layout
824785
display(viewer)
825786

@@ -1617,7 +1578,7 @@ def show(self):
16171578
else:
16181579
self._display_default_tool_bar()
16191580
# viewer
1620-
viewer = self.plotter.show(jupyter_backend=_JUPYTER_BACKEND, return_viewer=True)
1581+
viewer = self.plotter.show(return_viewer=True)
16211582
rendering_row = list()
16221583
if self._docks is not None and "left" in self._docks:
16231584
rendering_row.append(self._docks["left"][0])

mne/viz/backends/_qt.py

Lines changed: 3 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -186,12 +186,6 @@ def _update(self, repaint=True):
186186
if repaint:
187187
self.repaint()
188188

189-
def _get_tooltip(self):
190-
return self.toolTip()
191-
192-
def _set_tooltip(self, tooltip):
193-
self.setToolTip(tooltip)
194-
195189
def _set_style(self, style):
196190
stylesheet = ""
197191
for key, val in style.items():
@@ -215,9 +209,6 @@ def _trigger_keypress(self, key):
215209
def _set_focus(self):
216210
self.setFocus()
217211

218-
def _set_layout(self, layout):
219-
self.setLayout(_get_layout(layout))
220-
221212
def _set_theme(self, theme=None):
222213
if theme is None:
223214
default_theme = _qt_detect_theme()
@@ -280,9 +271,6 @@ def __init__(self, value, callback, icon=None):
280271
def _click(self):
281272
self.click()
282273

283-
def _set_icon(self, icon):
284-
self.setIcon(_qicon(icon))
285-
286274

287275
class _Slider(QSlider, _AbstractSlider, _Widget, metaclass=_BaseWidget):
288276
def __init__(self, value, rng, callback, horizontal=True):
@@ -303,9 +291,6 @@ def _set_value(self, value):
303291
def _get_value(self):
304292
return self.value()
305293

306-
def _set_range(self, rng):
307-
self.setRange(int(rng[0]), int(rng[1]))
308-
309294

310295
class _ProgressBar(QProgressBar, _AbstractProgressBar, _Widget, metaclass=_BaseWidget):
311296
def __init__(self, count):
@@ -615,9 +600,6 @@ def _add_widget(self, widget):
615600
widget.setMaximumHeight(self._height)
616601
self.addWidget(widget)
617602

618-
def _add_stretch(self, amount=1):
619-
self.addStretch(amount)
620-
621603

622604
class _VBoxLayout(QVBoxLayout, _AbstractVBoxLayout, _Widget, metaclass=_BaseWidget):
623605
def __init__(self, width=None, scroll=None):
@@ -645,9 +627,6 @@ def _add_widget(self, widget):
645627
widget.setMaximumWidth(self._width)
646628
self.addWidget(widget)
647629

648-
def _add_stretch(self, amount=1):
649-
self.addStretch(amount)
650-
651630

652631
class _GridLayout(QGridLayout, _AbstractGridLayout, _Widget, metaclass=_BaseWidget):
653632
def __init__(self, height=None, width=None):
@@ -740,29 +719,12 @@ def __init__(self, size=None, fullscreen=False):
740719
self._set_theme()
741720
self.setLocale(QLocale(QLocale.Language.English))
742721
self.signal_close.connect(self._clean)
743-
self._before_close_callbacks = list()
744-
self._after_close_callbacks = list()
745722

746723
# patch closeEvent
747724
def closeEvent(event):
748-
# functions to call before closing
749-
accept_close_event = True
750-
for callback in self._before_close_callbacks:
751-
ret = callback()
752-
# check if one of the callbacks ignores the close event
753-
if isinstance(ret, bool) and not ret:
754-
accept_close_event = False
755-
756-
if accept_close_event:
757-
self.signal_close.emit()
758-
self._clean()
759-
event.accept()
760-
else:
761-
event.ignore()
762-
763-
# functions to call after closing
764-
for callback in self._after_close_callbacks:
765-
callback()
725+
self.signal_close.emit()
726+
self._clean()
727+
event.accept()
766728

767729
self.closeEvent = closeEvent
768730

@@ -771,33 +733,9 @@ def _set_central_layout(self, central_layout):
771733
central_widget.setLayout(_get_layout(central_layout))
772734
self.setCentralWidget(central_widget)
773735

774-
def _get_dpi(self):
775-
return self.windowHandle().screen().logicalDotsPerInch()
776-
777736
def _get_size(self):
778737
return (self.width(), self.height())
779738

780-
def _get_cursor(self):
781-
return self.cursor()
782-
783-
def _set_cursor(self, cursor):
784-
self.setCursor(cursor)
785-
786-
def _new_cursor(self, name):
787-
return QCursor(getattr(Qt, name))
788-
789-
def _close_connect(self, callback, *, after=True):
790-
if after:
791-
self._after_close_callbacks.append(callback)
792-
else:
793-
self._before_close_callbacks.append(callback)
794-
795-
def _close_disconnect(self, after=True):
796-
if after:
797-
self._after_close_callbacks.clear()
798-
else:
799-
self._before_close_callbacks.clear()
800-
801739
def _clean(self):
802740
self._app = None
803741

0 commit comments

Comments
 (0)