Feature: XSL-Knoten bei fehlenden Dateien deaktivieren
Beim Laden des Projekts werden nun auch XSL-Knoten automatisch deaktiviert (ausgegraut), wenn die entsprechende XSL-Datei nicht im XSL-Verzeichnis vorhanden ist. Zusätzlich werden alle untergeordneten XML-Knoten ebenfalls deaktiviert, wenn die übergeordnete XSL-Datei fehlt. Dies verhindert, dass Transformationen mit fehlenden XSL-Dateien gestartet werden und gibt sofortige visuelle Rückmeldung. - XSL-Knoten werden mit setDisabled(True) deaktiviert - Tooltip zeigt den vollständigen Pfad der fehlenden XSL-Datei - Alle untergeordneten XML-Knoten werden ebenfalls deaktiviert - Warnung wird ins Log geschrieben Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -578,6 +578,26 @@ class TreeManagerMixin:
|
||||
if diff_count > 0:
|
||||
item.setText(2, str(diff_count))
|
||||
|
||||
# Prüfe ob XSL-Datei existiert
|
||||
xsl_file_missing = False
|
||||
if hasattr(self, "project") and self.project:
|
||||
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
|
||||
)
|
||||
|
||||
if xsl_dir:
|
||||
# Konstruiere absoluten Pfad zur XSL-Datei
|
||||
xsl_file_abs = xsl_dir.path_to_root_dir / node.xsl_file
|
||||
|
||||
if not xsl_file_abs.exists():
|
||||
xsl_file_missing = True
|
||||
item.setDisabled(True)
|
||||
item.setToolTip(0, f"XSL-Datei nicht gefunden: {xsl_file_abs}")
|
||||
logger.warning(f"XSL-Datei nicht vorhanden: {xsl_file_abs}")
|
||||
|
||||
# Lade XML-Dateien als Knoten
|
||||
if node.xmls:
|
||||
for xml in node.xmls:
|
||||
@@ -594,7 +614,11 @@ class TreeManagerMixin:
|
||||
xml_item.setData(1, Qt.ItemDataRole.UserRole, xsl_id_str)
|
||||
|
||||
# Prüfe ob XML-Datei existiert und deaktiviere Knoten falls nicht
|
||||
if hasattr(self, "project") and self.project:
|
||||
# Wenn XSL-Datei fehlt, deaktiviere auch alle untergeordneten XML-Knoten
|
||||
if xsl_file_missing:
|
||||
xml_item.setDisabled(True)
|
||||
xml_item.setToolTip(0, "XML-Knoten deaktiviert: Übergeordnete XSL-Datei fehlt")
|
||||
elif hasattr(self, "project") and self.project:
|
||||
xml_abs_path = self.project.project_dir / xml.xml
|
||||
if not xml_abs_path.exists():
|
||||
xml_item.setDisabled(True)
|
||||
|
||||
Reference in New Issue
Block a user