Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@

self.viewer_state.add_callback('x_att', self.sync_sliders_from_state)
self.viewer_state.add_callback('y_att', self.sync_sliders_from_state)
if hasattr(self.viewer_state, 'z_att'):
self.viewer_state.add_callback('z_att', self.sync_sliders_from_state)

Check warning on line 25 in glue_qt/viewers/common/slice_widget.py

View check run for this annotation

Codecov / codecov/patch

glue_qt/viewers/common/slice_widget.py#L25

Added line #L25 was not covered by tests
self.viewer_state.add_callback('slices', self.sync_sliders_from_state)
self.viewer_state.add_callback('reference_data', self.sync_sliders_from_state)

Expand All @@ -29,6 +31,7 @@
self._reference_data = None
self._x_att = None
self._y_att = None
self._z_att = None

self.sync_sliders_from_state()

Expand Down Expand Up @@ -60,27 +63,36 @@
@avoid_circular
def sync_sliders_from_state(self, *args):

if self.data is None or self.viewer_state.x_att is None or self.viewer_state.y_att is None:
if self.data is None or \
self.viewer_state.x_att is None or \
self.viewer_state.y_att is None or \
(hasattr(self.viewer_state, "z_att") and self.viewer_state.z_att is None):
return

if self.viewer_state.x_att is self.viewer_state.y_att:
if any((self.viewer_state.x_att is self.viewer_state.y_att,
self.viewer_state.x_att is getattr(self.viewer_state, "z_att", None),
self.viewer_state.y_att is getattr(self.viewer_state, "z_att", None))):
return

# Update sliders if needed

if (self.viewer_state.reference_data is not self._reference_data or
self.viewer_state.x_att is not self._x_att or
self.viewer_state.y_att is not self._y_att):
self.viewer_state.x_att is not self._x_att or
self.viewer_state.y_att is not self._y_att or
(hasattr(self.viewer_state, "z_att") and self.viewer_state.z_att is not self._z_att)):

self._reference_data = self.viewer_state.reference_data
self._x_att = self.viewer_state.x_att
self._y_att = self.viewer_state.y_att
self._z_att = getattr(self.viewer_state, "z_att", None)

self._clear()

for i in range(self.data.ndim):

if i == self.viewer_state.x_att.axis or i == self.viewer_state.y_att.axis:
if i == self.viewer_state.x_att.axis or \
i == self.viewer_state.y_att.axis or \
(hasattr(self.viewer_state, "z_att") and i == self.viewer_state.z_att.axis):
self._sliders.append(None)
continue

Expand Down
2 changes: 1 addition & 1 deletion glue_qt/viewers/image/options_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

from echo.qt import autoconnect_callbacks_to_qt
from glue_qt.utils import load_ui, fix_tab_widget_fontsize
from glue_qt.viewers.image.slice_widget import MultiSliceWidgetHelper
from glue_qt.viewers.common.slice_widget import MultiSliceWidgetHelper
from glue.viewers.matplotlib.state import MatplotlibDataViewerState

__all__ = ['ImageOptionsWidget']
Expand Down
Loading