From 5f10803f502acaa595ebb4db21a3d099ec22c206 Mon Sep 17 00:00:00 2001 From: Razin Shaikh Date: Thu, 25 Jul 2024 13:46:25 -0300 Subject: [PATCH 1/4] preserve undo selection on deleting selection --- zxlive/editor_base_panel.py | 1 - 1 file changed, 1 deletion(-) diff --git a/zxlive/editor_base_panel.py b/zxlive/editor_base_panel.py index 6d1c218..82627a1 100644 --- a/zxlive/editor_base_panel.py +++ b/zxlive/editor_base_panel.py @@ -137,7 +137,6 @@ def delete_selection(self) -> None: rem_vertices.append(get_w_partner(self.graph_scene.g, v)) if not rem_vertices and not selected_edges: return new_g = copy.deepcopy(self.graph_scene.g) - self.graph_scene.clearSelection() new_g.remove_edges(selected_edges) new_g.remove_vertices(list(set(rem_vertices))) cmd = SetGraph(self.graph_view,new_g) if len(set(rem_vertices)) > 128 \ From 6c4848f6edd95635eaf2165765b46e1f30ff7356 Mon Sep 17 00:00:00 2001 From: Razin Shaikh Date: Thu, 25 Jul 2024 14:04:35 -0300 Subject: [PATCH 2/4] UpdateGraph instead of SetGraph to preserve selection during rewrite --- zxlive/commands.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zxlive/commands.py b/zxlive/commands.py index 6865971..180aa8b 100644 --- a/zxlive/commands.py +++ b/zxlive/commands.py @@ -382,7 +382,7 @@ def toggle(self) -> None: @dataclass -class AddRewriteStep(SetGraph): +class AddRewriteStep(UpdateGraph): """Adds a new rewrite to the proof. The rewrite is inserted after the currently selected step. In particular, it From 860e61298654ff1c3fabbf929b67817e821dd394 Mon Sep 17 00:00:00 2001 From: Razin Shaikh Date: Thu, 25 Jul 2024 15:11:47 -0300 Subject: [PATCH 3/4] UpdateGraph command should only store the selection once --- zxlive/commands.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/zxlive/commands.py b/zxlive/commands.py index 180aa8b..d8b7663 100644 --- a/zxlive/commands.py +++ b/zxlive/commands.py @@ -93,7 +93,8 @@ def undo(self) -> None: def redo(self) -> None: self.old_g = self.graph_view.graph_scene.g - self.old_selected = set(self.graph_view.graph_scene.selected_vertices) + if not self.old_selected: + self.old_selected = set(self.graph_view.graph_scene.selected_vertices) self.g = self.new_g self.update_graph_view(True) From 3dad9046ee5fcf2f196023e535035fc375f2b5e4 Mon Sep 17 00:00:00 2001 From: Razin Shaikh Date: Mon, 29 Jul 2024 17:31:45 +0100 Subject: [PATCH 4/4] the merge removed this change --- zxlive/commands.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zxlive/commands.py b/zxlive/commands.py index 7039177..54fa04e 100644 --- a/zxlive/commands.py +++ b/zxlive/commands.py @@ -334,7 +334,7 @@ def redo(self) -> None: @dataclass -class AddRewriteStep(SetGraph): +class AddRewriteStep(UpdateGraph): """Adds a new rewrite to the proof. The rewrite is inserted after the currently selected step. In particular, it