Alphabetische Sortierung des Knotenbaums
This commit is contained in:
+10
-5
@@ -973,6 +973,7 @@ class MainWindow(QMainWindow):
|
|||||||
def _load_nodes_to_tree(self):
|
def _load_nodes_to_tree(self):
|
||||||
"""
|
"""
|
||||||
Lädt die Nodes aus den Projekt-Einstellungen in das TreeWidget.
|
Lädt die Nodes aus den Projekt-Einstellungen in das TreeWidget.
|
||||||
|
Sortiert die Items alphabetisch nach ihrer ID.
|
||||||
"""
|
"""
|
||||||
print("Lade Nodes in TreeWidget...")
|
print("Lade Nodes in TreeWidget...")
|
||||||
|
|
||||||
@@ -989,12 +990,15 @@ class MainWindow(QMainWindow):
|
|||||||
print("Keine Nodes in den Projekt-Einstellungen gefunden")
|
print("Keine Nodes in den Projekt-Einstellungen gefunden")
|
||||||
return
|
return
|
||||||
|
|
||||||
# Lade alle Root-Nodes
|
# Sortiere Root-Nodes alphabetisch nach ID
|
||||||
for node in self.pdf_project.nodes:
|
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)
|
tree_item = self._create_tree_item_from_node(node)
|
||||||
self.ui.treeWidget.addTopLevelItem(tree_item)
|
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:
|
except Exception as e:
|
||||||
print(f"Fehler beim Laden der Nodes in TreeWidget: {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
|
# Speichere zusätzlich die Node-ID in UserRole+1 für Kompatibilität
|
||||||
item.setData(0, Qt.ItemDataRole.UserRole + 1, node.id)
|
item.setData(0, Qt.ItemDataRole.UserRole + 1, node.id)
|
||||||
|
|
||||||
# Lade Knoten rekursiv
|
# Lade Knoten rekursiv (sortiert nach ID)
|
||||||
if node.children:
|
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)
|
child_item = self._create_tree_item_from_node(child)
|
||||||
item.addChild(child_item)
|
item.addChild(child_item)
|
||||||
|
|
||||||
|
|||||||
@@ -129,7 +129,8 @@ class XmlToXslAssignDialog(QDialog):
|
|||||||
self._load_project_nodes()
|
self._load_project_nodes()
|
||||||
|
|
||||||
def _load_project_nodes(self):
|
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:
|
if not self.project_nodes:
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -137,8 +138,11 @@ class XmlToXslAssignDialog(QDialog):
|
|||||||
self.ui.xslNodesTree.clear()
|
self.ui.xslNodesTree.clear()
|
||||||
self.xsl_checkboxes.clear()
|
self.xsl_checkboxes.clear()
|
||||||
|
|
||||||
# Alle Root-Nodes laden
|
# Sortiere Root-Nodes alphabetisch nach ID
|
||||||
for node in self.project_nodes:
|
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)
|
tree_item = self._create_tree_item_from_node(node)
|
||||||
if tree_item: # Nur hinzufügen wenn Item erstellt wurde
|
if tree_item: # Nur hinzufügen wenn Item erstellt wurde
|
||||||
self.ui.xslNodesTree.addTopLevelItem(tree_item)
|
self.ui.xslNodesTree.addTopLevelItem(tree_item)
|
||||||
@@ -176,11 +180,13 @@ class XmlToXslAssignDialog(QDialog):
|
|||||||
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} Knoten")
|
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:
|
if node.children:
|
||||||
for child in node.children:
|
# Filtere und sortiere Kinder
|
||||||
# Nur TreeNode und XslFile hinzufügen, keine XmlFile
|
valid_children = [child for child in node.children if isinstance(child, (TreeNode, XslFile))]
|
||||||
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)
|
child_item = self._create_tree_item_from_node(child)
|
||||||
if child_item:
|
if child_item:
|
||||||
item.addChild(child_item)
|
item.addChild(child_item)
|
||||||
|
|||||||
Reference in New Issue
Block a user