From b69b8755a8cfef96f7a2c0f0806cbdd4fff2bb06 Mon Sep 17 00:00:00 2001 From: Vitali Graf Date: Tue, 12 Aug 2025 20:08:26 +0200 Subject: [PATCH] In jedem TreeItem werden Daten des Nodes komplett gespeichert. --- src/ui/MainWindow.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/ui/MainWindow.py b/src/ui/MainWindow.py index d75d4a9..2700531 100644 --- a/src/ui/MainWindow.py +++ b/src/ui/MainWindow.py @@ -964,12 +964,13 @@ class MainWindow(QMainWindow): def _create_tree_item_from_node(self, node): """ Erstellt ein QTreeWidgetItem aus einem TreeNode oder XslFile. + Speichert die vollständigen Node-Daten für spätere Verwendung. Args: node: TreeNode oder XslFile Objekt Returns: - QTreeWidgetItem: Das erstellte Tree-Item + QTreeWidgetItem: Das erstellte Tree-Item mit vollständigen Node-Daten """ try: # Erstelle Tree-Item @@ -979,14 +980,18 @@ class MainWindow(QMainWindow): bez_text = str(node.bez) if node.bez else "" item.setText(0, bez_text) + # Speichere das komplette Node-Objekt als UserRole-Daten + # Dies ermöglicht späteren Zugriff auf alle Node-Eigenschaften + item.setData(0, Qt.ItemDataRole.UserRole, node) + # Setze zusätzliche Informationen in Spalte 1 if isinstance(node, TreeNode): # TreeNode: Zeige Anzahl der Kinder child_count = len(node.children) if node.children else 0 item.setText(1, f"({child_count} Kinder)") - # Speichere Node-ID als Data - item.setData(0, Qt.ItemDataRole.UserRole, node.id) + # Speichere zusätzlich die Node-ID in UserRole+1 für Kompatibilität + item.setData(0, Qt.ItemDataRole.UserRole + 1, node.id) # Lade Kinder rekursiv if node.children: @@ -998,8 +1003,8 @@ class MainWindow(QMainWindow): # XslFile: Zeige XSL-Datei-Pfad item.setText(1, str(node.xsl_file)) - # Speichere XslFile-ID als Data - item.setData(0, Qt.ItemDataRole.UserRole, node.id) + # Speichere zusätzlich die Node-ID in UserRole+1 für Kompatibilität + item.setData(0, Qt.ItemDataRole.UserRole + 1, node.id) # Lade XML-Dateien als Kinder if node.xmls: @@ -1007,6 +1012,11 @@ class MainWindow(QMainWindow): xml_item = QTreeWidgetItem() xml_item.setText(0, f"XML: {xml.xml.name}") xml_item.setText(1, str(xml.xml)) + + # Speichere auch das XmlFile-Objekt für XML-Items + xml_item.setData(0, Qt.ItemDataRole.UserRole, xml) + xml_item.setData(0, Qt.ItemDataRole.UserRole + 1, f"xml_{xml.xml.name}") + item.addChild(xml_item) return item