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