Kontexrmenü für neues Root-Element im Baum

This commit is contained in:
2025-08-03 17:04:23 +02:00
parent 253e4fa01d
commit 719d4b34e7
+15 -5
View File
@@ -555,12 +555,14 @@ class MainWindow(QMainWindow):
""" """
# Hole das Item an der Position # Hole das Item an der Position
item = self.ui.treeWidget.itemAt(position) item = self.ui.treeWidget.itemAt(position)
if not item:
return
if not 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 # Bestimme den Node-Typ basierend auf dem Item
node_type = self._get_node_type_from_item(item) node_type = self._get_node_type_from_item(item)
# Erstelle das entsprechende Kontextmenü # Erstelle das entsprechende Kontextmenü
context_menu = self._create_context_menu_for_type(node_type, item) context_menu = self._create_context_menu_for_type(node_type, item)
@@ -720,8 +722,10 @@ class MainWindow(QMainWindow):
menu.addAction(action_delete) menu.addAction(action_delete)
else: else:
# Unbekannter Typ - kein Menü # Unbekannter Typ oder leerer Bereich - Menü für Root-Elemente
return None 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 return menu
@@ -1040,6 +1044,12 @@ class MainWindow(QMainWindow):
print(f"XmlFile löschen: {item.text(0)}") print(f"XmlFile löschen: {item.text(0)}")
# TODO: Bestätigungsdialog und Löschung implementieren # 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): def closeEvent(self, event):
"""Wird beim Schließen der Anwendung aufgerufen.""" """Wird beim Schließen der Anwendung aufgerufen."""
# PDF-Dokumente schließen ist bei QtPdf automatisch durch Garbage Collection # PDF-Dokumente schließen ist bei QtPdf automatisch durch Garbage Collection