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:
+13
-1
@@ -5,6 +5,7 @@ from PySide6.QtWidgets import QDialog, QFileDialog, QMessageBox
|
||||
|
||||
from conf import app_settings
|
||||
from ui.PdfProject_ui import Ui_projectDlg
|
||||
from ui.ProjectXsltParamsDialog import ProjectXsltParamsDialog
|
||||
|
||||
|
||||
class PdfProjectDlg(QDialog):
|
||||
@@ -26,6 +27,7 @@ class PdfProjectDlg(QDialog):
|
||||
# Projektdaten speichern
|
||||
self.project_data = project_data or {}
|
||||
self.edit_mode = edit_mode
|
||||
self.xslt_params: dict[str, str] = dict(self.project_data.get("xslt_params", {}))
|
||||
|
||||
# Dialog-Eigenschaften setzen
|
||||
self.setModal(True)
|
||||
@@ -53,6 +55,9 @@ class PdfProjectDlg(QDialog):
|
||||
# Browse-Button für FOP-Config-Ordner
|
||||
self.ui.btnBrowseFopConfig.clicked.connect(self.browse_fop_config_dir)
|
||||
|
||||
# XSLT-Parameter bearbeiten
|
||||
self.ui.btnEditXsltParams.clicked.connect(self._edit_xslt_params)
|
||||
|
||||
# OK/Cancel Buttons sind bereits in der UI-Datei verbunden
|
||||
# self.ui.buttonBox.accepted.connect(self.accept)
|
||||
# self.ui.buttonBox.rejected.connect(self.reject)
|
||||
@@ -190,6 +195,12 @@ class PdfProjectDlg(QDialog):
|
||||
if selected_dir:
|
||||
self.ui.lineFopConfigDir.setText(selected_dir)
|
||||
|
||||
def _edit_xslt_params(self):
|
||||
"""Öffnet den Dialog zur Bearbeitung der projektweiten XSLT-Parameter."""
|
||||
dialog = ProjectXsltParamsDialog(self, self.xslt_params)
|
||||
if dialog.exec() == ProjectXsltParamsDialog.DialogCode.Accepted:
|
||||
self.xslt_params = dialog.get_params()
|
||||
|
||||
def validate_and_accept(self):
|
||||
"""Validiert die Eingaben und akzeptiert den Dialog."""
|
||||
# Projekt-Name prüfen
|
||||
@@ -269,7 +280,8 @@ class PdfProjectDlg(QDialog):
|
||||
'apache_fop_id': self.ui.cB_ApacheFop.currentData(),
|
||||
'diff_pdf_id': self.ui.cB_Diff_Pdf.currentData(),
|
||||
'postgre_sql_db_id': self.ui.cB_Postgres.currentData(),
|
||||
'fop_config_dir': fop_config_dir if fop_config_dir else None
|
||||
'fop_config_dir': fop_config_dir if fop_config_dir else None,
|
||||
'xslt_params': self.xslt_params,
|
||||
}
|
||||
|
||||
def _configure_edit_mode(self):
|
||||
|
||||
Reference in New Issue
Block a user