Alphabetische Sortierung des Knotenbaums
This commit is contained in:
+10
-5
@@ -973,6 +973,7 @@ class MainWindow(QMainWindow):
|
||||
def _load_nodes_to_tree(self):
|
||||
"""
|
||||
Lädt die Nodes aus den Projekt-Einstellungen in das TreeWidget.
|
||||
Sortiert die Items alphabetisch nach ihrer ID.
|
||||
"""
|
||||
print("Lade Nodes in TreeWidget...")
|
||||
|
||||
@@ -989,12 +990,15 @@ class MainWindow(QMainWindow):
|
||||
print("Keine Nodes in den Projekt-Einstellungen gefunden")
|
||||
return
|
||||
|
||||
# Lade alle Root-Nodes
|
||||
for node in self.pdf_project.nodes:
|
||||
# Sortiere Root-Nodes alphabetisch nach ID
|
||||
sorted_nodes = sorted(self.pdf_project.nodes, key=lambda node: node.id)
|
||||
|
||||
# Lade alle Root-Nodes (sortiert)
|
||||
for node in sorted_nodes:
|
||||
tree_item = self._create_tree_item_from_node(node)
|
||||
self.ui.treeWidget.addTopLevelItem(tree_item)
|
||||
|
||||
print(f"{len(self.pdf_project.nodes)} Root-Nodes in TreeWidget geladen")
|
||||
print(f"{len(self.pdf_project.nodes)} Root-Nodes in TreeWidget geladen (alphabetisch sortiert)")
|
||||
|
||||
except Exception as e:
|
||||
print(f"Fehler beim Laden der Nodes in TreeWidget: {e}")
|
||||
@@ -1031,9 +1035,10 @@ class MainWindow(QMainWindow):
|
||||
# Speichere zusätzlich die Node-ID in UserRole+1 für Kompatibilität
|
||||
item.setData(0, Qt.ItemDataRole.UserRole + 1, node.id)
|
||||
|
||||
# Lade Knoten rekursiv
|
||||
# Lade Knoten rekursiv (sortiert nach ID)
|
||||
if node.children:
|
||||
for child in node.children:
|
||||
sorted_children = sorted(node.children, key=lambda child: child.id)
|
||||
for child in sorted_children:
|
||||
child_item = self._create_tree_item_from_node(child)
|
||||
item.addChild(child_item)
|
||||
|
||||
|
||||
@@ -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