9
9
from ndv .controllers ._channel_controller import ChannelController
10
10
from ndv .models import ArrayDisplayModel , ChannelMode , DataWrapper , LUTModel
11
11
from ndv .models ._data_display_model import DataResponse , _ArrayDataDisplayModel
12
- from ndv .models ._roi_model import RectangularROIModel
13
12
from ndv .models ._viewer_model import ArrayViewerModel , InteractionMode
14
13
from ndv .views import _app
15
- from ndv .views .bases ._graphics ._canvas_elements import RectangularROI
16
14
17
15
if TYPE_CHECKING :
18
16
from concurrent .futures import Future
22
20
23
21
from ndv ._types import MouseMoveEvent
24
22
from ndv .models ._array_display_model import ArrayDisplayModelKwargs
23
+ from ndv .models ._roi_model import RectangularROIModel
25
24
from ndv .views .bases import HistogramCanvas
25
+ from ndv .views .bases ._graphics ._canvas_elements import RectangularROI
26
26
27
27
LutKey : TypeAlias = int | None
28
28
@@ -72,7 +72,9 @@ def __init__(
72
72
data_wrapper = data , display = display_model or ArrayDisplayModel (** kwargs )
73
73
)
74
74
self ._viewer_model = ArrayViewerModel ()
75
- self ._viewer_model .events .interaction_mode .connect (self ._on_interaction_mode_changed )
75
+ self ._viewer_model .events .interaction_mode .connect (
76
+ self ._on_interaction_mode_changed
77
+ )
76
78
self ._roi_model : RectangularROIModel | None = None
77
79
78
80
app = _app .gui_frontend ()
@@ -96,7 +98,9 @@ def __init__(
96
98
self ._canvas = canvas_cls (self ._viewer_model )
97
99
98
100
self ._histogram : HistogramCanvas | None = None
99
- self ._view = frontend_cls (self ._canvas .frontend_widget (), self ._data_model , self ._viewer_model )
101
+ self ._view = frontend_cls (
102
+ self ._canvas .frontend_widget (), self ._data_model , self ._viewer_model
103
+ )
100
104
101
105
self ._roi_view : RectangularROI | None = None
102
106
@@ -169,7 +173,7 @@ def data(self, data: Any) -> None:
169
173
else :
170
174
self ._data_model .data_wrapper = DataWrapper .create (data )
171
175
self ._fully_synchronize_view ()
172
-
176
+
173
177
@property
174
178
def roi (self ) -> RectangularROIModel | None :
175
179
return self ._roi_model
@@ -327,31 +331,39 @@ def _on_model_channel_mode_changed(self, mode: ChannelMode) -> None:
327
331
# redraw
328
332
self ._clear_canvas ()
329
333
self ._request_data ()
330
-
331
- def _on_roi_model_bounding_box_changed (self , bb : tuple [tuple [float , float ], tuple [float , float ]]) -> None :
334
+
335
+ def _on_roi_model_bounding_box_changed (
336
+ self , bb : tuple [tuple [float , float ], tuple [float , float ]]
337
+ ) -> None :
332
338
if self ._roi_view is None :
333
339
self ._roi_view = self ._canvas .add_bounding_box ()
334
340
# HACK
335
341
self ._roi_view .set_visible (True )
336
- self ._roi_view .boundingBoxChanged .connect (self ._on_roi_view_bounding_box_changed )
342
+ self ._roi_view .boundingBoxChanged .connect (
343
+ self ._on_roi_view_bounding_box_changed
344
+ )
337
345
self ._roi_view .set_bounding_box (* bb )
338
346
339
347
def _on_roi_model_visible_changed (self , visible : bool ) -> None :
340
348
if self ._roi_view is None :
341
349
self ._roi_view = self ._canvas .add_bounding_box ()
342
350
# HACK
343
351
self ._roi_view .set_visible (True )
344
- self ._roi_view .boundingBoxChanged .connect (self ._on_roi_view_bounding_box_changed )
352
+ self ._roi_view .boundingBoxChanged .connect (
353
+ self ._on_roi_view_bounding_box_changed
354
+ )
345
355
self ._roi_view .set_visible (visible )
346
-
356
+
347
357
def _on_interaction_mode_changed (self , mode : InteractionMode ) -> None :
348
358
# TODO: Unify with _on_roi_model_bounding_box_changed
349
359
if mode == InteractionMode .CREATE_ROI :
350
360
if self ._roi_view :
351
361
self ._roi_view .remove ()
352
362
self ._roi_view = self ._canvas .add_bounding_box ()
353
363
# HACK
354
- self ._roi_view .boundingBoxChanged .connect (self ._on_roi_view_bounding_box_changed )
364
+ self ._roi_view .boundingBoxChanged .connect (
365
+ self ._on_roi_view_bounding_box_changed
366
+ )
355
367
356
368
def _clear_canvas (self ) -> None :
357
369
for lut_ctrl in self ._lut_controllers .values ():
@@ -373,8 +385,10 @@ def _on_view_visible_axes_changed(self) -> None:
373
385
def _on_view_reset_zoom_clicked (self ) -> None :
374
386
"""Reset the zoom level of the canvas."""
375
387
self ._canvas .set_range ()
376
-
377
- def _on_roi_view_bounding_box_changed (self , bb : tuple [tuple [float , float ], tuple [float , float ]]) -> None :
388
+
389
+ def _on_roi_view_bounding_box_changed (
390
+ self , bb : tuple [tuple [float , float ], tuple [float , float ]]
391
+ ) -> None :
378
392
if self ._roi_model :
379
393
self ._roi_model .bounding_box = bb
380
394
0 commit comments