Die Inhalte der Tabellen in der Datei „AppSettings.py” können nun nur noch über die entsprechenden Dialoge verändert werden
This commit is contained in:
@@ -28,6 +28,7 @@ def main():
|
|||||||
or len(app_settings.diff_pdfs) == 0
|
or len(app_settings.diff_pdfs) == 0
|
||||||
or len(app_settings.java_vms) == 0
|
or len(app_settings.java_vms) == 0
|
||||||
or len(app_settings.saxon_jars) == 0
|
or len(app_settings.saxon_jars) == 0
|
||||||
|
or len(app_settings.xsl_dirs) == 0
|
||||||
):
|
):
|
||||||
# Als Modal Dialog öffnen!
|
# Als Modal Dialog öffnen!
|
||||||
dlg = AppSettingsDlg(window, app_settings)
|
dlg = AppSettingsDlg(window, app_settings)
|
||||||
|
|||||||
+166
-1
@@ -33,6 +33,12 @@ class JavaVmConfigDialog(QDialog):
|
|||||||
if file_path:
|
if file_path:
|
||||||
self.ui.pathEdit.setText(file_path)
|
self.ui.pathEdit.setText(file_path)
|
||||||
|
|
||||||
|
def set_data(self, data):
|
||||||
|
"""Setzt die Daten in den Dialog."""
|
||||||
|
if data:
|
||||||
|
self.ui.versionEdit.setText(data.get('version', ''))
|
||||||
|
self.ui.pathEdit.setText(str(data.get('path_to_binary_file', '')))
|
||||||
|
|
||||||
def get_data(self):
|
def get_data(self):
|
||||||
"""Gibt die eingegebenen Daten zurück."""
|
"""Gibt die eingegebenen Daten zurück."""
|
||||||
if not self.ui.versionEdit.text().strip() or not self.ui.pathEdit.text().strip():
|
if not self.ui.versionEdit.text().strip() or not self.ui.pathEdit.text().strip():
|
||||||
@@ -66,6 +72,14 @@ class DiffPdfConfigDialog(QDialog):
|
|||||||
if file_path:
|
if file_path:
|
||||||
self.ui.pathEdit.setText(file_path)
|
self.ui.pathEdit.setText(file_path)
|
||||||
|
|
||||||
|
def set_data(self, data):
|
||||||
|
"""Setzt die Daten in den Dialog."""
|
||||||
|
if data:
|
||||||
|
self.ui.versionEdit.setText(data.get('version', ''))
|
||||||
|
self.ui.pathEdit.setText(str(data.get('path_to_binary_file', '')))
|
||||||
|
self.ui.paramsEdit.setPlainText('\n'.join(data.get('default_params', [])))
|
||||||
|
self.ui.extensionEdit.setText(data.get('output_file_extension', 'pdf'))
|
||||||
|
|
||||||
def get_data(self):
|
def get_data(self):
|
||||||
"""Gibt die eingegebenen Daten zurück."""
|
"""Gibt die eingegebenen Daten zurück."""
|
||||||
if not self.ui.versionEdit.text().strip() or not self.ui.pathEdit.text().strip():
|
if not self.ui.versionEdit.text().strip() or not self.ui.pathEdit.text().strip():
|
||||||
@@ -105,6 +119,13 @@ class SaxonJarConfigDialog(QDialog):
|
|||||||
if file_path:
|
if file_path:
|
||||||
self.ui.pathEdit.setText(file_path)
|
self.ui.pathEdit.setText(file_path)
|
||||||
|
|
||||||
|
def set_data(self, data):
|
||||||
|
"""Setzt die Daten in den Dialog."""
|
||||||
|
if data:
|
||||||
|
self.ui.versionEdit.setText(data.get('version', ''))
|
||||||
|
self.ui.pathEdit.setText(str(data.get('path_to_jar_file', '')))
|
||||||
|
self.ui.extensionEdit.setText(data.get('output_file_extension', 'fo'))
|
||||||
|
|
||||||
def get_data(self):
|
def get_data(self):
|
||||||
"""Gibt die eingegebenen Daten zurück."""
|
"""Gibt die eingegebenen Daten zurück."""
|
||||||
if not self.ui.versionEdit.text().strip() or not self.ui.pathEdit.text().strip():
|
if not self.ui.versionEdit.text().strip() or not self.ui.pathEdit.text().strip():
|
||||||
@@ -138,6 +159,13 @@ class ApacheFopConfigDialog(QDialog):
|
|||||||
if dir_path:
|
if dir_path:
|
||||||
self.ui.pathEdit.setText(dir_path)
|
self.ui.pathEdit.setText(dir_path)
|
||||||
|
|
||||||
|
def set_data(self, data):
|
||||||
|
"""Setzt die Daten in den Dialog."""
|
||||||
|
if data:
|
||||||
|
self.ui.versionEdit.setText(data.get('version', ''))
|
||||||
|
self.ui.pathEdit.setText(str(data.get('path_to_dir', '')))
|
||||||
|
self.ui.extensionEdit.setText(data.get('output_file_extension', 'pdf'))
|
||||||
|
|
||||||
def get_data(self):
|
def get_data(self):
|
||||||
"""Gibt die eingegebenen Daten zurück."""
|
"""Gibt die eingegebenen Daten zurück."""
|
||||||
if not self.ui.versionEdit.text().strip() or not self.ui.pathEdit.text().strip():
|
if not self.ui.versionEdit.text().strip() or not self.ui.pathEdit.text().strip():
|
||||||
@@ -171,6 +199,12 @@ class XslDirConfigDialog(QDialog):
|
|||||||
if dir_path:
|
if dir_path:
|
||||||
self.ui.pathEdit.setText(dir_path)
|
self.ui.pathEdit.setText(dir_path)
|
||||||
|
|
||||||
|
def set_data(self, data):
|
||||||
|
"""Setzt die Daten in den Dialog."""
|
||||||
|
if data:
|
||||||
|
self.ui.nameEdit.setText(data.get('name', ''))
|
||||||
|
self.ui.pathEdit.setText(str(data.get('path_to_root_dir', '')))
|
||||||
|
|
||||||
def get_data(self):
|
def get_data(self):
|
||||||
"""Gibt die eingegebenen Daten zurück."""
|
"""Gibt die eingegebenen Daten zurück."""
|
||||||
if not self.ui.nameEdit.text().strip() or not self.ui.pathEdit.text().strip():
|
if not self.ui.nameEdit.text().strip() or not self.ui.pathEdit.text().strip():
|
||||||
@@ -239,21 +273,33 @@ class AppSettingsDlg(QDialog):
|
|||||||
self.ui.tableDiffPdfs.itemSelectionChanged.connect(self._update_diff_pdf_buttons)
|
self.ui.tableDiffPdfs.itemSelectionChanged.connect(self._update_diff_pdf_buttons)
|
||||||
|
|
||||||
def _setup_tables(self):
|
def _setup_tables(self):
|
||||||
"""Richtet die Tabellen-Header ein."""
|
"""Richtet die Tabellen-Header ein und macht sie unveränderbar."""
|
||||||
|
from PySide6.QtWidgets import QAbstractItemView
|
||||||
|
|
||||||
# XSL-Ordner Tabelle
|
# XSL-Ordner Tabelle
|
||||||
self.ui.tableXsls.setHorizontalHeaderLabels(["Name", "Pfad"])
|
self.ui.tableXsls.setHorizontalHeaderLabels(["Name", "Pfad"])
|
||||||
|
self.ui.tableXsls.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers)
|
||||||
|
self.ui.tableXsls.doubleClicked.connect(self._edit_xsl_dir)
|
||||||
|
|
||||||
# Java VM Tabelle
|
# Java VM Tabelle
|
||||||
self.ui.tableJavaVms.setHorizontalHeaderLabels(["Version", "Pfad"])
|
self.ui.tableJavaVms.setHorizontalHeaderLabels(["Version", "Pfad"])
|
||||||
|
self.ui.tableJavaVms.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers)
|
||||||
|
self.ui.tableJavaVms.doubleClicked.connect(self._edit_java_vm)
|
||||||
|
|
||||||
# Saxon Tabelle
|
# Saxon Tabelle
|
||||||
self.ui.tableSaxons.setHorizontalHeaderLabels(["Version", "JAR-Pfad", "Extension"])
|
self.ui.tableSaxons.setHorizontalHeaderLabels(["Version", "JAR-Pfad", "Extension"])
|
||||||
|
self.ui.tableSaxons.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers)
|
||||||
|
self.ui.tableSaxons.doubleClicked.connect(self._edit_saxon)
|
||||||
|
|
||||||
# Apache FOP Tabelle
|
# Apache FOP Tabelle
|
||||||
self.ui.tableApacheFops.setHorizontalHeaderLabels(["Version", "Verzeichnis", "Extension"])
|
self.ui.tableApacheFops.setHorizontalHeaderLabels(["Version", "Verzeichnis", "Extension"])
|
||||||
|
self.ui.tableApacheFops.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers)
|
||||||
|
self.ui.tableApacheFops.doubleClicked.connect(self._edit_apache_fop)
|
||||||
|
|
||||||
# Diff PDF Tabelle
|
# Diff PDF Tabelle
|
||||||
self.ui.tableDiffPdfs.setHorizontalHeaderLabels(["Version", "Binary-Pfad", "Parameter", "Extension"])
|
self.ui.tableDiffPdfs.setHorizontalHeaderLabels(["Version", "Binary-Pfad", "Parameter", "Extension"])
|
||||||
|
self.ui.tableDiffPdfs.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers)
|
||||||
|
self.ui.tableDiffPdfs.doubleClicked.connect(self._edit_diff_pdf)
|
||||||
|
|
||||||
def _populate_tables(self):
|
def _populate_tables(self):
|
||||||
"""Füllt alle Tabellen mit den aktuellen Einstellungen."""
|
"""Füllt alle Tabellen mit den aktuellen Einstellungen."""
|
||||||
@@ -441,6 +487,125 @@ class AppSettingsDlg(QDialog):
|
|||||||
has_selection = self.ui.tableDiffPdfs.currentRow() >= 0
|
has_selection = self.ui.tableDiffPdfs.currentRow() >= 0
|
||||||
self.ui.removeDiffPdf.setEnabled(has_selection)
|
self.ui.removeDiffPdf.setEnabled(has_selection)
|
||||||
|
|
||||||
|
# Bearbeitungsmethoden für Doppelklick-Events
|
||||||
|
def _edit_xsl_dir(self, index):
|
||||||
|
"""Bearbeitet einen XSL-Ordner per Doppelklick."""
|
||||||
|
row = index.row()
|
||||||
|
if 0 <= row < len(self.temp_xsl_dirs):
|
||||||
|
xsl_dir = self.temp_xsl_dirs[row]
|
||||||
|
dialog = XslDirConfigDialog(self)
|
||||||
|
|
||||||
|
# Vorhandene Daten setzen
|
||||||
|
data = {
|
||||||
|
'name': xsl_dir.name,
|
||||||
|
'path_to_root_dir': xsl_dir.path_to_root_dir
|
||||||
|
}
|
||||||
|
dialog.set_data(data)
|
||||||
|
|
||||||
|
if dialog.exec() == QDialog.DialogCode.Accepted:
|
||||||
|
new_data = dialog.get_data()
|
||||||
|
if new_data:
|
||||||
|
# Daten aktualisieren
|
||||||
|
xsl_dir.name = new_data['name']
|
||||||
|
xsl_dir.path_to_root_dir = new_data['path_to_root_dir']
|
||||||
|
self._populate_xsl_table()
|
||||||
|
|
||||||
|
def _edit_java_vm(self, index):
|
||||||
|
"""Bearbeitet eine Java VM per Doppelklick."""
|
||||||
|
row = index.row()
|
||||||
|
if 0 <= row < len(self.temp_java_vms):
|
||||||
|
java_vm = self.temp_java_vms[row]
|
||||||
|
dialog = JavaVmConfigDialog(self)
|
||||||
|
|
||||||
|
# Vorhandene Daten setzen
|
||||||
|
data = {
|
||||||
|
'version': java_vm.version,
|
||||||
|
'path_to_binary_file': java_vm.path_to_binary_file
|
||||||
|
}
|
||||||
|
dialog.set_data(data)
|
||||||
|
|
||||||
|
if dialog.exec() == QDialog.DialogCode.Accepted:
|
||||||
|
new_data = dialog.get_data()
|
||||||
|
if new_data:
|
||||||
|
# Daten aktualisieren
|
||||||
|
java_vm.version = new_data['version']
|
||||||
|
java_vm.path_to_binary_file = new_data['path_to_binary_file']
|
||||||
|
self._populate_java_vm_table()
|
||||||
|
|
||||||
|
def _edit_saxon(self, index):
|
||||||
|
"""Bearbeitet eine Saxon JAR per Doppelklick."""
|
||||||
|
row = index.row()
|
||||||
|
if 0 <= row < len(self.temp_saxon_jars):
|
||||||
|
saxon = self.temp_saxon_jars[row]
|
||||||
|
dialog = SaxonJarConfigDialog(self)
|
||||||
|
|
||||||
|
# Vorhandene Daten setzen
|
||||||
|
data = {
|
||||||
|
'version': saxon.version,
|
||||||
|
'path_to_jar_file': saxon.path_to_jar_file,
|
||||||
|
'output_file_extension': saxon.output_file_extension
|
||||||
|
}
|
||||||
|
dialog.set_data(data)
|
||||||
|
|
||||||
|
if dialog.exec() == QDialog.DialogCode.Accepted:
|
||||||
|
new_data = dialog.get_data()
|
||||||
|
if new_data:
|
||||||
|
# Daten aktualisieren
|
||||||
|
saxon.version = new_data['version']
|
||||||
|
saxon.path_to_jar_file = new_data['path_to_jar_file']
|
||||||
|
saxon.output_file_extension = new_data['output_file_extension']
|
||||||
|
self._populate_saxon_table()
|
||||||
|
|
||||||
|
def _edit_apache_fop(self, index):
|
||||||
|
"""Bearbeitet eine Apache FOP Konfiguration per Doppelklick."""
|
||||||
|
row = index.row()
|
||||||
|
if 0 <= row < len(self.temp_apache_fops):
|
||||||
|
fop = self.temp_apache_fops[row]
|
||||||
|
dialog = ApacheFopConfigDialog(self)
|
||||||
|
|
||||||
|
# Vorhandene Daten setzen
|
||||||
|
data = {
|
||||||
|
'version': fop.version,
|
||||||
|
'path_to_dir': fop.path_to_dir,
|
||||||
|
'output_file_extension': fop.output_file_extension
|
||||||
|
}
|
||||||
|
dialog.set_data(data)
|
||||||
|
|
||||||
|
if dialog.exec() == QDialog.DialogCode.Accepted:
|
||||||
|
new_data = dialog.get_data()
|
||||||
|
if new_data:
|
||||||
|
# Daten aktualisieren
|
||||||
|
fop.version = new_data['version']
|
||||||
|
fop.path_to_dir = new_data['path_to_dir']
|
||||||
|
fop.output_file_extension = new_data['output_file_extension']
|
||||||
|
self._populate_apache_fop_table()
|
||||||
|
|
||||||
|
def _edit_diff_pdf(self, index):
|
||||||
|
"""Bearbeitet eine Diff PDF Konfiguration per Doppelklick."""
|
||||||
|
row = index.row()
|
||||||
|
if 0 <= row < len(self.temp_diff_pdfs):
|
||||||
|
diff_pdf = self.temp_diff_pdfs[row]
|
||||||
|
dialog = DiffPdfConfigDialog(self)
|
||||||
|
|
||||||
|
# Vorhandene Daten setzen
|
||||||
|
data = {
|
||||||
|
'version': diff_pdf.version,
|
||||||
|
'path_to_binary_file': diff_pdf.path_to_binary_file,
|
||||||
|
'default_params': diff_pdf.default_params,
|
||||||
|
'output_file_extension': diff_pdf.output_file_extension
|
||||||
|
}
|
||||||
|
dialog.set_data(data)
|
||||||
|
|
||||||
|
if dialog.exec() == QDialog.DialogCode.Accepted:
|
||||||
|
new_data = dialog.get_data()
|
||||||
|
if new_data:
|
||||||
|
# Daten aktualisieren
|
||||||
|
diff_pdf.version = new_data['version']
|
||||||
|
diff_pdf.path_to_binary_file = new_data['path_to_binary_file']
|
||||||
|
diff_pdf.default_params = new_data['default_params']
|
||||||
|
diff_pdf.output_file_extension = new_data['output_file_extension']
|
||||||
|
self._populate_diff_pdf_table()
|
||||||
|
|
||||||
def accept(self):
|
def accept(self):
|
||||||
"""Übernimmt die Änderungen und schließt den Dialog."""
|
"""Übernimmt die Änderungen und schließt den Dialog."""
|
||||||
# Aktualisiere die ursprünglichen Einstellungen
|
# Aktualisiere die ursprünglichen Einstellungen
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>5</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="tabXsls">
|
<widget class="QWidget" name="tabXsls">
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
|
|||||||
@@ -280,7 +280,7 @@ class Ui_Dialog(object):
|
|||||||
self.buttonBox.accepted.connect(Dialog.accept)
|
self.buttonBox.accepted.connect(Dialog.accept)
|
||||||
self.buttonBox.rejected.connect(Dialog.reject)
|
self.buttonBox.rejected.connect(Dialog.reject)
|
||||||
|
|
||||||
self.tabSettings.setCurrentIndex(5)
|
self.tabSettings.setCurrentIndex(0)
|
||||||
|
|
||||||
|
|
||||||
QMetaObject.connectSlotsByName(Dialog)
|
QMetaObject.connectSlotsByName(Dialog)
|
||||||
|
|||||||
Reference in New Issue
Block a user