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 0000000..351659b Binary files /dev/null and b/src/bedit_gui/resources/icons/edit-delete.png differ 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 + +