Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit0501fab

Browse files
authored
Merge pull request#260 from dstansby/valid-layer-selection
Only update layers when selection is valid
2 parentsa70cd37 +25b9b0e commit0501fab

File tree

3 files changed

+27
-9
lines changed

3 files changed

+27
-9
lines changed

‎docs/changelog.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
Changelog
22
=========
33

4+
2.0.3
5+
-----
6+
Bug fixes
7+
~~~~~~~~~
8+
- Fix an error that happened when the histogram widget was open, but a layer that doesn't support
9+
histogramming (e.g., a labels layer) was selected.
10+
411
2.0.2
512
-----
613
Dependencies

‎src/napari_matplotlib/base.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -224,14 +224,24 @@ def _setup_callbacks(self) -> None:
224224
self._update_layers
225225
)
226226

227+
@property
228+
def_valid_layer_selection(self)->bool:
229+
"""
230+
Return `True` if layer selection is valid.
231+
"""
232+
returnself.n_selected_layersinself.n_layers_inputandall(
233+
isinstance(layer,self.input_layer_types)forlayerinself.layers
234+
)
235+
227236
def_update_layers(self,event:napari.utils.events.Event)->None:
228237
"""
229238
Update the ``layers`` attribute with currently selected layers and re-draw.
230239
"""
231240
self.layers=list(self.viewer.layers.selection)
232241
self.layers=sorted(self.layers,key=lambdalayer:layer.name)
233242
self.on_update_layers()
234-
self._draw()
243+
ifself._valid_layer_selection:
244+
self._draw()
235245

236246
def_draw(self)->None:
237247
"""
@@ -243,10 +253,7 @@ def _draw(self) -> None:
243253
withmplstyle.context(self.napari_theme_style_sheet):
244254
# everything should be done in the style context
245255
self.clear()
246-
ifself.n_selected_layersinself.n_layers_inputandall(
247-
isinstance(layer,self.input_layer_types)
248-
forlayerinself.layers
249-
):
256+
ifself._valid_layer_selection:
250257
self.draw()
251258
self.canvas.draw()# type: ignore[no-untyped-call]
252259

‎src/napari_matplotlib/histogram.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,10 @@ def on_update_layers(self) -> None:
5555
Called when the selected layers are updated.
5656
"""
5757
super().on_update_layers()
58-
forlayerinself.viewer.layers:
59-
layer.events.contrast_limits.connect(self._update_contrast_lims)
58+
ifself._valid_layer_selection:
59+
self.layers[0].events.contrast_limits.connect(
60+
self._update_contrast_lims
61+
)
6062

6163
def_update_contrast_lims(self)->None:
6264
forlim,lineinzip(
@@ -209,10 +211,12 @@ def draw(self) -> None:
209211
# get the colormap from the layer depending on its type
210212
ifisinstance(self.layers[0],napari.layers.Points):
211213
colormap=self.layers[0].face_colormap
212-
self.layers[0].face_color=self.x_axis_key
214+
ifself.x_axis_key:
215+
self.layers[0].face_color=self.x_axis_key
213216
elifisinstance(self.layers[0],napari.layers.Vectors):
214217
colormap=self.layers[0].edge_colormap
215-
self.layers[0].edge_color=self.x_axis_key
218+
ifself.x_axis_key:
219+
self.layers[0].edge_color=self.x_axis_key
216220
else:
217221
colormap=None
218222

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp