In jedem TreeItem werden Daten des Nodes komplett gespeichert.
This commit is contained in:
+15
-5
@@ -964,12 +964,13 @@ class MainWindow(QMainWindow):
|
|||||||
def _create_tree_item_from_node(self, node):
|
def _create_tree_item_from_node(self, node):
|
||||||
"""
|
"""
|
||||||
Erstellt ein QTreeWidgetItem aus einem TreeNode oder XslFile.
|
Erstellt ein QTreeWidgetItem aus einem TreeNode oder XslFile.
|
||||||
|
Speichert die vollständigen Node-Daten für spätere Verwendung.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
node: TreeNode oder XslFile Objekt
|
node: TreeNode oder XslFile Objekt
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
QTreeWidgetItem: Das erstellte Tree-Item
|
QTreeWidgetItem: Das erstellte Tree-Item mit vollständigen Node-Daten
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
# Erstelle Tree-Item
|
# Erstelle Tree-Item
|
||||||
@@ -979,14 +980,18 @@ class MainWindow(QMainWindow):
|
|||||||
bez_text = str(node.bez) if node.bez else ""
|
bez_text = str(node.bez) if node.bez else ""
|
||||||
item.setText(0, bez_text)
|
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
|
# Setze zusätzliche Informationen in Spalte 1
|
||||||
if isinstance(node, TreeNode):
|
if isinstance(node, TreeNode):
|
||||||
# TreeNode: Zeige Anzahl der Kinder
|
# TreeNode: Zeige Anzahl der Kinder
|
||||||
child_count = len(node.children) if node.children else 0
|
child_count = len(node.children) if node.children else 0
|
||||||
item.setText(1, f"({child_count} Kinder)")
|
item.setText(1, f"({child_count} Kinder)")
|
||||||
|
|
||||||
# Speichere Node-ID als Data
|
# Speichere zusätzlich die Node-ID in UserRole+1 für Kompatibilität
|
||||||
item.setData(0, Qt.ItemDataRole.UserRole, node.id)
|
item.setData(0, Qt.ItemDataRole.UserRole + 1, node.id)
|
||||||
|
|
||||||
# Lade Kinder rekursiv
|
# Lade Kinder rekursiv
|
||||||
if node.children:
|
if node.children:
|
||||||
@@ -998,8 +1003,8 @@ class MainWindow(QMainWindow):
|
|||||||
# XslFile: Zeige XSL-Datei-Pfad
|
# XslFile: Zeige XSL-Datei-Pfad
|
||||||
item.setText(1, str(node.xsl_file))
|
item.setText(1, str(node.xsl_file))
|
||||||
|
|
||||||
# Speichere XslFile-ID als Data
|
# Speichere zusätzlich die Node-ID in UserRole+1 für Kompatibilität
|
||||||
item.setData(0, Qt.ItemDataRole.UserRole, node.id)
|
item.setData(0, Qt.ItemDataRole.UserRole + 1, node.id)
|
||||||
|
|
||||||
# Lade XML-Dateien als Kinder
|
# Lade XML-Dateien als Kinder
|
||||||
if node.xmls:
|
if node.xmls:
|
||||||
@@ -1007,6 +1012,11 @@ class MainWindow(QMainWindow):
|
|||||||
xml_item = QTreeWidgetItem()
|
xml_item = QTreeWidgetItem()
|
||||||
xml_item.setText(0, f"XML: {xml.xml.name}")
|
xml_item.setText(0, f"XML: {xml.xml.name}")
|
||||||
xml_item.setText(1, str(xml.xml))
|
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)
|
item.addChild(xml_item)
|
||||||
|
|
||||||
return item
|
return item
|
||||||
|
|||||||
Reference in New Issue
Block a user