From 5df9e53d5852a7fab42ee9c27a84354857cc963e Mon Sep 17 00:00:00 2001 From: Joppe Blondel Date: Mon, 27 Jul 2026 15:55:38 +0200 Subject: [PATCH] Delete components in tree --- .vscode/tasks.json | 2 +- .../controllers/document_tree_controller.py | 16 +++++++++ src/bedit_gui/resources/icons/edit-delete.png | Bin 0 -> 1333 bytes src/bedit_gui/resources/resources.qrc | 1 + src/bedit_gui/ui/forms/main_window.ui | 31 ++++++++++++++++++ 5 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 src/bedit_gui/resources/icons/edit-delete.png diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 81356ee..f1f1c8b 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -41,7 +41,7 @@ "reveal": "always", "panel": "dedicated" }, - "problemMatcher": [] + "problemMatcher": [], } ] } diff --git a/src/bedit_gui/controllers/document_tree_controller.py b/src/bedit_gui/controllers/document_tree_controller.py index 1059c24..5f4088e 100644 --- a/src/bedit_gui/controllers/document_tree_controller.py +++ b/src/bedit_gui/controllers/document_tree_controller.py @@ -61,6 +61,12 @@ class DocumentTreeController(QObject): document.icon_changed.connect(self._on_icon_changed) self.model.rename_document_requested.connect(self.document.rename) self.model.rename_component_requested.connect(self.document.rename_component) + window.ui.actionDelete.triggered.connect(self.delete_selected_component) + + # Add deselection with esc to this widget + window.ui.actionEscape.setShortcutContext(Qt.ShortcutContext.WidgetWithChildrenShortcut) + window.ui.documentTree.addAction(window.ui.actionEscape) + window.ui.actionEscape.triggered.connect(self.deselect) window.ui.documentTree.setHeaderHidden(True) window.ui.documentTree.setIconSize(QSize(48, 48)) @@ -167,5 +173,15 @@ class DocumentTreeController(QObject): def _add_equation_component(self, component: Component) -> None: self.document.add_empty_equation_component(component) + def deselect(self) -> None: + self.window.ui.documentTree.selectionModel().clear() + + def delete_selected_component(self) -> None: + index = self.window.ui.documentTree.currentIndex() + component = self.model.value(index) + focused = self.window.ui.documentTree.hasFocus() + if focused and isinstance(component, Component): + self._delete_component(component) + def _delete_component(self, component: Component) -> None: self.document.delete_component(component) diff --git a/src/bedit_gui/resources/icons/edit-delete.png b/src/bedit_gui/resources/icons/edit-delete.png new file mode 100644 index 0000000000000000000000000000000000000000..351659ba4b5edf19d2d46ca0c4ed7ca507ba6777 GIT binary patch literal 1333 zcmV-51q?g~GXWD-rVdtQ- z)eByHw%>lw^Zh>G|M{K&|9=hv_)nP&@c#~QlF0D1rDelefBzfR1_sVEH9bw_^nj334Uwb1;nE|$4J((T-rE!6AzsfEKm<(lDT9|V zR-ndYO%=|)<_O*!Vw`k@c9Nc-7CYlX**Ca<>RX7%NgW}k9e$hzRV*A;@4#eM7K8^? z6*%K*53UWB6HPgeqeLzhTs!0CfO|(Yn9R(?-~0Aq;zS9=OFYF}Z-8S&^_46b`1C!D zr*FsY?T<-M$3%H4zV}dpdxmA;znUT#A|mY$3#3 zZ-7!F#}cB!YCBW>xgj1siHX`ICu8K$S19CxJ9zL0qVe5M*67dQi|(YPDgA#PIlzIf zA)ex`H-J#Yjm3PPCu|p?XMHp-M{Cm=6NA3IY-BoGAl<Eb0N|2F>4e2v2GRGmM>Shz%&H~p^<5Qymuub0llARU{Iq*1%EoC6^|Es z6z8+SL86;wR>tUxeI2d7zK;kDL}yeKx>HhdZPR9SZQO`oSFAu&up5qA8bLIoot1Y1 zo4Mq(VX1_8HykZ|wJm(*=Ts`x&YOo?A_%RkJW#^JrB^hw_A<(4vphB}wlqdtuqVzE zO$XP!AU)EXJ6i#Ah@AJc;bAKibcA}Ni6ufK(;z%rEBhT`J~(W>2%^b((IXH8wS1A- zuq)gT9Yhe?nTyN?LDrA5S0NtEv)zW-M2>q{s9}TN$Ytm!(xQ)PjSND7jT!uz^K0I~4XHgv zZ_Jy}s4O8~;yI%LyNu_%v0zYy{cLcHNQ+UXGbRKp?X0kp=w1-f{S~~vv^HF7Q~LYk zBB8OjMUJ82P?4XXyWRj<<|e&)OT2M&T@>ySX)(cEi+u}WDjTdOy1SLgQwZiD;ky!xwreA>ig?w`?I0A2h8NhAKH((YXL00000NkvXXu0mjfs{d(= literal 0 HcmV?d00001 diff --git a/src/bedit_gui/resources/resources.qrc b/src/bedit_gui/resources/resources.qrc index 268087a..d29af27 100644 --- a/src/bedit_gui/resources/resources.qrc +++ b/src/bedit_gui/resources/resources.qrc @@ -1,5 +1,6 @@ + icons/edit-delete.png icons/dialog-close.png icons/list-remove.png icons/list-add.png diff --git a/src/bedit_gui/ui/forms/main_window.ui b/src/bedit_gui/ui/forms/main_window.ui index 9b7f3e7..96e7077 100644 --- a/src/bedit_gui/ui/forms/main_window.ui +++ b/src/bedit_gui/ui/forms/main_window.ui @@ -52,6 +52,8 @@ + + @@ -294,6 +296,35 @@ Settings + + + + :/icons/icons/edit-delete.png:/icons/icons/edit-delete.png + + + Delete + + + Delete selected + + + Del + + + QAction::MenuRole::NoRole + + + + + Escape + + + Esc + + + QAction::MenuRole::NoRole + +