diff --git a/doc/changelog.d/362.miscellaneous.md b/doc/changelog.d/362.miscellaneous.md new file mode 100644 index 00000000..911d9e72 --- /dev/null +++ b/doc/changelog.d/362.miscellaneous.md @@ -0,0 +1 @@ +Fix: Mesh slider unclick makes buttons disappear diff --git a/src/ansys/tools/visualization_interface/backends/pyvista/widgets/mesh_slider.py b/src/ansys/tools/visualization_interface/backends/pyvista/widgets/mesh_slider.py index ba652eaa..ed8c79c1 100644 --- a/src/ansys/tools/visualization_interface/backends/pyvista/widgets/mesh_slider.py +++ b/src/ansys/tools/visualization_interface/backends/pyvista/widgets/mesh_slider.py @@ -85,6 +85,14 @@ def callback(self, state: bool) -> None: self.plotter_helper._pl.scene.clear_plane_widgets() for actor in self._mesh_actor_list: self.plotter_helper._pl.scene.add_actor(actor) + + # Reset all buttons because the slicer removes all actors for some reason + for widget in self.plotter_helper._widgets: + widget._button.Off() + widget._button.GetRepresentation().SetVisibility(0) + widget._button.On() + widget._button.GetRepresentation().SetVisibility(1) + else: self._mb = pv.MultiBlock(self.plotter_helper._pl.scene.meshes).combine() self._widget_actor = self.plotter_helper._pl.scene.add_mesh_clip_plane( @@ -99,7 +107,8 @@ def callback(self, state: bool) -> None: mesh_id = "MultiBlock(" + mesh.memory_address + ")" elif isinstance(mesh, pv.StructuredGrid): mesh_id = "StructuredGrid(" + mesh.memory_address + ")" - self._mesh_actor_list.append(self.plotter_helper._pl.scene.actors[mesh_id]) + if mesh_id in self.plotter_helper._pl.scene.actors: + self._mesh_actor_list.append(self.plotter_helper._pl.scene.actors[mesh_id]) self.plotter_helper._pl.scene.remove_actor(mesh_id) def update(self) -> None: