From 719d4b34e73b154a142588b76d70955f819cf58a Mon Sep 17 00:00:00 2001 From: Vitali Graf Date: Sun, 3 Aug 2025 17:04:23 +0200 Subject: [PATCH] =?UTF-8?q?Kontexrmen=C3=BC=20f=C3=BCr=20neues=20Root-Elem?= =?UTF-8?q?ent=20im=20Baum?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ui/MainWindow.py | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/ui/MainWindow.py b/src/ui/MainWindow.py index 5007822..b74121f 100644 --- a/src/ui/MainWindow.py +++ b/src/ui/MainWindow.py @@ -555,14 +555,16 @@ class MainWindow(QMainWindow): """ # Hole das Item an der Position item = self.ui.treeWidget.itemAt(position) + if not item: - return - - # Bestimme den Node-Typ basierend auf dem Item - node_type = self._get_node_type_from_item(item) - - # Erstelle das entsprechende Kontextmenü - context_menu = self._create_context_menu_for_type(node_type, item) + # Kein Item gefunden - zeige Kontextmenü für Root-Elemente + node_type = "Unknown" + context_menu = self._create_context_menu_for_type(node_type, None) + else: + # Bestimme den Node-Typ basierend auf dem Item + node_type = self._get_node_type_from_item(item) + # Erstelle das entsprechende Kontextmenü + context_menu = self._create_context_menu_for_type(node_type, item) if context_menu: # Zeige das Kontextmenü an der globalen Position @@ -720,8 +722,10 @@ class MainWindow(QMainWindow): menu.addAction(action_delete) else: - # Unbekannter Typ - kein Menü - return None + # Unbekannter Typ oder leerer Bereich - Menü für Root-Elemente + action_add_tree_node = QAction("Unterknoten hinzufügen", self) + action_add_tree_node.triggered.connect(lambda: self._add_root_tree_node()) + menu.addAction(action_add_tree_node) return menu @@ -1040,6 +1044,12 @@ class MainWindow(QMainWindow): print(f"XmlFile löschen: {item.text(0)}") # TODO: Bestätigungsdialog und Löschung implementieren + # Kontextmenü-Aktionen für Root-Elemente (Unbekannter Typ) + def _add_root_tree_node(self): + """Fügt einen neuen TreeNode als Root-Element hinzu.""" + print("Neuen TreeNode als Root-Element hinzufügen") + # TODO: Dialog zum Eingeben der TreeNode-Daten öffnen + def closeEvent(self, event): """Wird beim Schließen der Anwendung aufgerufen.""" # PDF-Dokumente schließen ist bei QtPdf automatisch durch Garbage Collection