diff --git a/src/ui/mixins/tree_manager.py b/src/ui/mixins/tree_manager.py index 8b10484..b283f15 100644 --- a/src/ui/mixins/tree_manager.py +++ b/src/ui/mixins/tree_manager.py @@ -545,6 +545,20 @@ class TreeManagerMixin: # Dies ermöglicht späteren Zugriff auf alle Node-Eigenschaften item.setData(0, Qt.ItemDataRole.UserRole, node) + # Setze Icon basierend auf Node-Typ + if isinstance(node, TreeNode): + # TreeNode: Ordner-Icon + folder_icon = QIcon.fromTheme(QIcon.ThemeIcon.FolderOpen) + if folder_icon.isNull(): + folder_icon = QIcon.fromTheme("folder") + item.setIcon(0, folder_icon) + elif isinstance(node, XslFile): + # XslFile: Code/Script-Icon für XSL-Dateien + xsl_icon = QIcon.fromTheme("text-x-script") + if xsl_icon.isNull(): + xsl_icon = QIcon.fromTheme("text-x-generic") + item.setIcon(0, xsl_icon) + # Setze zusätzliche Informationen in Spalte 1 if isinstance(node, TreeNode): # TreeNode: Zeige Anzahl der Knoten @@ -584,9 +598,7 @@ class TreeManagerMixin: from conf import app_settings # Hole XSL-Verzeichnis aus Projekt-Konfiguration - xsl_dir = next( - (xd for xd in app_settings.xsl_dirs if xd.id == self.project.xsl_dir_id), None - ) + xsl_dir = next((xd for xd in app_settings.xsl_dirs if xd.id == self.project.xsl_dir_id), None) if xsl_dir: # Konstruiere absoluten Pfad zur XSL-Datei @@ -613,6 +625,14 @@ class TreeManagerMixin: xsl_id_str = "_".join(str(x) for x in node.id) xml_item.setData(1, Qt.ItemDataRole.UserRole, xsl_id_str) + # Setze XML-Icon + xml_icon = QIcon.fromTheme("text-xml") + if xml_icon.isNull(): + xml_icon = QIcon.fromTheme("application-xml") + if xml_icon.isNull(): + xml_icon = QIcon.fromTheme(QIcon.ThemeIcon.TextXGeneric) + xml_item.setIcon(0, xml_icon) + # Prüfe ob XML-Datei existiert und deaktiviere Knoten falls nicht # Wenn XSL-Datei fehlt, deaktiviere auch alle untergeordneten XML-Knoten if xsl_file_missing: