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:
|
if diff_count > 0:
|
||||||
item.setText(2, str(diff_count))
|
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
|
# Lade XML-Dateien als Knoten
|
||||||
if node.xmls:
|
if node.xmls:
|
||||||
for xml in node.xmls:
|
for xml in node.xmls:
|
||||||
@@ -594,7 +614,11 @@ class TreeManagerMixin:
|
|||||||
xml_item.setData(1, Qt.ItemDataRole.UserRole, xsl_id_str)
|
xml_item.setData(1, Qt.ItemDataRole.UserRole, xsl_id_str)
|
||||||
|
|
||||||
# Prüfe ob XML-Datei existiert und deaktiviere Knoten falls nicht
|
# 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
|
xml_abs_path = self.project.project_dir / xml.xml
|
||||||
if not xml_abs_path.exists():
|
if not xml_abs_path.exists():
|
||||||
xml_item.setDisabled(True)
|
xml_item.setDisabled(True)
|
||||||
|
|||||||
Reference in New Issue
Block a user