Feat: Projektweite XSLT-Parameter mit Vererbungshierarchie (v1.4.0)

Ermöglicht die Definition von XSLT-Parametern auf Projektebene, die als
Basis für alle Transformationen dienen und von TreeNode- bzw. XslFile-
Parametern überschrieben werden können (Projekt < TreeNode < XslFile).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-04 10:57:05 +02:00
parent d1def05607
commit a0626a78a3
16 changed files with 579 additions and 195 deletions
+3
View File
@@ -391,6 +391,7 @@ class AppSettingsDlg(QDialog):
xsl_dir_id=project_data["xsl_dir_id"] if project_data["xsl_dir_id"] != -1 else 1,
postgre_sql_db_id=project_data["postgre_sql_db_id"] if project_data["postgre_sql_db_id"] != -1 else 1,
fop_config_dir=Path(project_data["fop_config_dir"]) if project_data.get("fop_config_dir") else None,
xslt_params=project_data.get("xslt_params", {}),
)
self.temp_pdf_projects.append(new_project)
self._populate_pdf_project_table()
@@ -422,6 +423,7 @@ class AppSettingsDlg(QDialog):
"xsl_dir_id": pdf_project.xsl_dir_id,
"postgre_sql_db_id": pdf_project.postgre_sql_db_id,
"fop_config_dir": str(pdf_project.fop_config_dir) if pdf_project.fop_config_dir else None,
"xslt_params": dict(pdf_project.xslt_params),
}
dialog = PdfProjectDlg(self, project_data, edit_mode=True)
if dialog.exec() == PdfProjectDlg.DialogCode.Accepted:
@@ -450,6 +452,7 @@ class AppSettingsDlg(QDialog):
pdf_project.fop_config_dir = (
Path(new_data["fop_config_dir"]) if new_data.get("fop_config_dir") else None
)
pdf_project.xslt_params = new_data.get("xslt_params", {})
self._populate_pdf_project_table()
self.settings.pdf_projects = self.temp_pdf_projects.copy()
self.settings.save()