Skip to content

Commit 2005e38

Browse files
authored
Merge pull request #353 from BiAPoL/escape-errors-on-mixed-layer-selection
Escape errors on mixed layer selection
2 parents 23f6574 + f839ecd commit 2005e38

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed

src/napari_clusters_plotter/_new_plotter_widget.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,18 @@ def _on_update_layer_selection(
290290
if self.n_selected_layers == 0:
291291
return
292292

293+
# check if the selected layers are of the correct type
294+
selected_layer_types = [
295+
type(layer) for layer in self.viewer.layers.selection
296+
]
297+
for layer_type in selected_layer_types:
298+
if layer_type not in self.input_layer_types:
299+
return
300+
301+
# check if all selected layers are of the same type
302+
if len(set(selected_layer_types)) > 1:
303+
return
304+
293305
self.layers = list(self.viewer.layers.selection)
294306
self._update_feature_selection(None)
295307

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import numpy as np
2+
3+
4+
def test_mixed_layers(make_napari_viewer):
5+
from napari_clusters_plotter import PlotterWidget
6+
7+
viewer = make_napari_viewer()
8+
widget = PlotterWidget(viewer)
9+
viewer.window.add_dock_widget(widget, area="right")
10+
11+
random_image = np.random.random((5, 5))
12+
sample_labels = np.array(
13+
[
14+
[
15+
[0, 0, 0, 0, 1],
16+
[0, 0, 0, 1, 1],
17+
[0, 0, 1, 1, 1],
18+
[0, 1, 1, 1, 1],
19+
[1, 1, 1, 1, 1],
20+
]
21+
]
22+
)
23+
24+
viewer.add_image(random_image)
25+
viewer.add_labels(sample_labels)
26+
27+
#

0 commit comments

Comments
 (0)