Skip to content

Commit 8c39e6a

Browse files
authored
Don't use private APIs to increment/decrement sliders (#113)
Closes #112
1 parent 178c886 commit 8c39e6a

File tree

1 file changed

+24
-2
lines changed

1 file changed

+24
-2
lines changed

midi_app_controller/actions/napari_actions.py

+24-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from functools import partial
12
from typing import Callable, Optional
23

34
from app_model import Application
@@ -67,6 +68,27 @@ def zoom_in(viewer: Viewer) -> None:
6768
viewer.camera.zoom /= 0.95
6869

6970

71+
def _replace_value_at(seq, pos, new_val):
72+
tmp_seq = list(seq)
73+
tmp_seq[pos] = new_val
74+
return tuple(tmp_seq)
75+
76+
77+
def increment_axis(viewer: Viewer, slider_num=None, inc=1) -> None:
78+
not_disp = viewer.dims.not_displayed
79+
if slider_num is None:
80+
axis = viewer.dims.last_used
81+
elif slider_num < len(not_disp):
82+
axis = not_disp[slider_num]
83+
else:
84+
return
85+
cur = viewer.dims.current_step
86+
next_value = viewer.dims.current_step[axis] + inc
87+
# note: current_step automatically clamps to the correct range, so we
88+
# don't need to do bounds checks below.
89+
viewer.dims.current_step = _replace_value_at(cur, axis, next_value)
90+
91+
7092
def increase_dimensions_left(viewer: Viewer) -> None:
7193
viewer.dims._increment_dims_left()
7294

@@ -175,12 +197,12 @@ def increase_gamma(ll: LayerList) -> None:
175197
Action(
176198
id="napari:viewer:increase_dimensions_left",
177199
title="Increase dimensions to the left",
178-
callback=increase_dimensions_left,
200+
callback=partial(increment_axis, slider_num=None, inc=-1),
179201
),
180202
Action(
181203
id="napari:viewer:increase_dimensions_right",
182204
title="Increase dimensions to the right",
183-
callback=increase_dimensions_right,
205+
callback=partial(increment_axis, slider_num=None, inc=1),
184206
),
185207
Action(
186208
id="napari:layer:decrease_contour",

0 commit comments

Comments
 (0)