From 018b35e2c30cf558fa3b2135e6a9a5ca393c96a1 Mon Sep 17 00:00:00 2001 From: Grzegorz Bokota Date: Thu, 11 Jul 2024 16:05:12 +0200 Subject: [PATCH 1/2] fix: fix selection of label colors for napari 0.5.0 --- package/PartSeg/common_gui/napari_image_view.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/package/PartSeg/common_gui/napari_image_view.py b/package/PartSeg/common_gui/napari_image_view.py index 8bc54ca45..3e9cfa8a7 100644 --- a/package/PartSeg/common_gui/napari_image_view.py +++ b/package/PartSeg/common_gui/napari_image_view.py @@ -482,6 +482,9 @@ def get_roi_view_parameters(self, image_info: ImageInfo) -> ColorInfo: return res def set_roi_colormap(self, image_info) -> None: + if _napari_ge_5: + image_info.roi.colormap = self.get_roi_view_parameters(image_info) + return if _napari_ge_4_13: image_info.roi.color = self.get_roi_view_parameters(image_info) return @@ -583,7 +586,10 @@ def set_mask(self, mask: Optional[np.ndarray] = None, image: Optional[Image] = N else: image_info.mask.data = mask_marker image_info.mask.metadata["valid"] = True - image_info.mask.color = self.mask_color() + if _napari_ge_5: + image_info.mask.colormap = self.mask_color() + else: + image_info.mask.color = self.mask_color() image_info.mask.opacity = self.mask_opacity() image_info.mask.visible = self.mask_chk.isChecked() self._toggle_mask_chk_visibility() @@ -602,7 +608,10 @@ def update_mask_parameters(self): for image_info in self.image_info.values(): if image_info.mask is not None: image_info.mask.opacity = opacity - image_info.mask.color = colormap + if _napari_ge_5: + image_info.mask.colormap = colormap + else: + image_info.mask.color = colormap def set_image(self, image: Optional[Image] = None): self.image_info = {} From 1534d1a9d38b62a03d64e184decc041aa2a6ee84 Mon Sep 17 00:00:00 2001 From: Grzegorz Bokota Date: Fri, 12 Jul 2024 11:47:07 +0200 Subject: [PATCH 2/2] fix test for napari 0.5.0 --- .../tests/test_PartSeg/test_napari_image_view.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/package/tests/test_PartSeg/test_napari_image_view.py b/package/tests/test_PartSeg/test_napari_image_view.py index d10798300..d7eebcb63 100644 --- a/package/tests/test_PartSeg/test_napari_image_view.py +++ b/package/tests/test_PartSeg/test_napari_image_view.py @@ -32,9 +32,16 @@ if NAPARI_GE_5_0: EXPECTED_RANGE = (0, 0, 1) + + def get_color_dict(layer): + return layer.colormap.color_dict + else: EXPECTED_RANGE = (0, 1, 1) + def get_color_dict(layer): + return layer.color + def test_image_info(): image_info = ImageInfo(Image(np.zeros((10, 10)), image_spacing=(1, 1), axes_order="XY"), []) @@ -159,9 +166,11 @@ def test_mask_rendering(self, base_settings, image_view, qtbot, tmp_path): base_settings.set_in_profile("mask_presentation_opacity", 0.5) assert image_view.image_info[str(tmp_path / "test2.tiff")].mask.opacity == 0.5 base_settings.set_in_profile("mask_presentation_color", (255, 0, 0)) - assert np.all(image_view.image_info[str(tmp_path / "test2.tiff")].mask.color[1] == (1, 0, 0, 1)) + assert np.all(get_color_dict(image_view.image_info[str(tmp_path / "test2.tiff")].mask)[1] == (1, 0, 0, 1)) base_settings.set_in_profile("mask_presentation_color", (128, 0, 0)) - assert np.allclose(image_view.image_info[str(tmp_path / "test2.tiff")].mask.color[1], (128 / 255, 0, 0, 1)) + assert np.allclose( + get_color_dict(image_view.image_info[str(tmp_path / "test2.tiff")].mask)[1], (128 / 255, 0, 0, 1) + ) assert not image_view.image_info[str(tmp_path / "test2.tiff")].mask.visible with qtbot.waitSignal(image_view.mask_chk.stateChanged):