Alphabetische Sortierung des Knotenbaums
This commit is contained in:
@@ -129,7 +129,8 @@ class XmlToXslAssignDialog(QDialog):
|
||||
self._load_project_nodes()
|
||||
|
||||
def _load_project_nodes(self):
|
||||
"""Lädt die Projekt-Knoten in das TreeWidget (ohne XML-Knoten)."""
|
||||
"""Lädt die Projekt-Knoten in das TreeWidget (ohne XML-Knoten).
|
||||
Sortiert die Items alphabetisch nach ihrer ID."""
|
||||
if not self.project_nodes:
|
||||
return
|
||||
|
||||
@@ -137,8 +138,11 @@ class XmlToXslAssignDialog(QDialog):
|
||||
self.ui.xslNodesTree.clear()
|
||||
self.xsl_checkboxes.clear()
|
||||
|
||||
# Alle Root-Nodes laden
|
||||
for node in self.project_nodes:
|
||||
# Sortiere Root-Nodes alphabetisch nach ID
|
||||
sorted_nodes = sorted(self.project_nodes, key=lambda node: node.id)
|
||||
|
||||
# Alle Root-Nodes laden (sortiert)
|
||||
for node in sorted_nodes:
|
||||
tree_item = self._create_tree_item_from_node(node)
|
||||
if tree_item: # Nur hinzufügen wenn Item erstellt wurde
|
||||
self.ui.xslNodesTree.addTopLevelItem(tree_item)
|
||||
@@ -176,14 +180,16 @@ class XmlToXslAssignDialog(QDialog):
|
||||
child_count = len(node.children) if node.children else 0
|
||||
item.setText(1, f"{child_count} Knoten")
|
||||
|
||||
# Lade Knoten rekursiv (nur TreeNode und XslFile, keine XML)
|
||||
# Lade Knoten rekursiv (sortiert nach ID, nur TreeNode und XslFile, keine XML)
|
||||
if node.children:
|
||||
for child in node.children:
|
||||
# Nur TreeNode und XslFile hinzufügen, keine XmlFile
|
||||
if isinstance(child, (TreeNode, XslFile)):
|
||||
child_item = self._create_tree_item_from_node(child)
|
||||
if child_item:
|
||||
item.addChild(child_item)
|
||||
# Filtere und sortiere Kinder
|
||||
valid_children = [child for child in node.children if isinstance(child, (TreeNode, XslFile))]
|
||||
sorted_children = sorted(valid_children, key=lambda child: child.id)
|
||||
|
||||
for child in sorted_children:
|
||||
child_item = self._create_tree_item_from_node(child)
|
||||
if child_item:
|
||||
item.addChild(child_item)
|
||||
|
||||
elif isinstance(node, XslFile):
|
||||
# XslFile: Zeige XSL-Datei-Pfad
|
||||
|
||||
Reference in New Issue
Block a user