Fehler in der Variablennamen behoben
Es wird unmittelbar beim löschen und entfernen der Einstellungen gespeichert
This commit is contained in:
+78
-42
@@ -72,8 +72,8 @@ class AppSettingsDlg(QDialog):
|
||||
self.ui.tableDiffPdfs.itemSelectionChanged.connect(self._update_diff_pdf_buttons)
|
||||
|
||||
# PDF-Projekte Tab
|
||||
self.ui.removeProject.clicked.connect(self._add_pdf_project)
|
||||
self.ui.addProject.clicked.connect(self._remove_pdf_project)
|
||||
self.ui.removeProject.clicked.connect(self._remove_pdf_project)
|
||||
self.ui.addProject.clicked.connect(self._add_pdf_project)
|
||||
self.ui.tablePdfProjects.itemSelectionChanged.connect(self._update_pdf_project_buttons)
|
||||
|
||||
def _setup_tables(self):
|
||||
@@ -106,7 +106,7 @@ class AppSettingsDlg(QDialog):
|
||||
self.ui.tableDiffPdfs.doubleClicked.connect(self._edit_diff_pdf)
|
||||
|
||||
# PDF-Projekte Tabelle
|
||||
self.ui.tablePdfProjects.setHorizontalHeaderLabels(["Name", "Projekt-Ordner", "XSL-Ordner", "Java-VM", "Saxon", "Apache FOP", "Diff-PDF", ""])
|
||||
self.ui.tablePdfProjects.setHorizontalHeaderLabels(["Name", "Projekt-Ordner", "XSL-Ordner", "Java-VM", "Saxon", "Apache FOP", "Diff-PDF"])
|
||||
self.ui.tablePdfProjects.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers)
|
||||
self.ui.tablePdfProjects.doubleClicked.connect(self._edit_pdf_project)
|
||||
|
||||
@@ -246,6 +246,9 @@ class AppSettingsDlg(QDialog):
|
||||
self.temp_xsl_dirs.append(new_xsl_dir)
|
||||
self._populate_xsl_table()
|
||||
|
||||
self.settings.xsl_dirs = self.temp_xsl_dirs.copy()
|
||||
self.settings.save()
|
||||
|
||||
def _remove_xsl_dir(self):
|
||||
"""Entfernt den ausgewählten XSL-Ordner."""
|
||||
current_row = self.ui.tableXsls.currentRow()
|
||||
@@ -254,6 +257,9 @@ class AppSettingsDlg(QDialog):
|
||||
self._populate_xsl_table()
|
||||
self._update_xsl_buttons()
|
||||
|
||||
self.settings.xsl_dirs = self.temp_xsl_dirs.copy()
|
||||
self.settings.save()
|
||||
|
||||
def _update_xsl_buttons(self):
|
||||
"""Aktualisiert den Status der XSL-Buttons."""
|
||||
has_selection = self.ui.tableXsls.currentRow() >= 0
|
||||
@@ -273,6 +279,9 @@ class AppSettingsDlg(QDialog):
|
||||
self.temp_java_vms.append(new_java_vm)
|
||||
self._populate_java_vm_table()
|
||||
|
||||
self.settings.java_vms = self.temp_java_vms.copy()
|
||||
self.settings.save()
|
||||
|
||||
def _remove_java_vm(self):
|
||||
"""Entfernt die ausgewählte Java VM."""
|
||||
current_row = self.ui.tableJavaVms.currentRow()
|
||||
@@ -281,6 +290,9 @@ class AppSettingsDlg(QDialog):
|
||||
self._populate_java_vm_table()
|
||||
self._update_java_vm_buttons()
|
||||
|
||||
self.settings.java_vms = self.temp_java_vms.copy()
|
||||
self.settings.save()
|
||||
|
||||
def _update_java_vm_buttons(self):
|
||||
"""Aktualisiert den Status der Java VM-Buttons."""
|
||||
has_selection = self.ui.tableJavaVms.currentRow() >= 0
|
||||
@@ -303,6 +315,9 @@ class AppSettingsDlg(QDialog):
|
||||
self.temp_saxon_jars.append(new_saxon)
|
||||
self._populate_saxon_table()
|
||||
|
||||
self.settings.saxon_jars = self.temp_saxon_jars.copy()
|
||||
self.settings.save()
|
||||
|
||||
def _remove_saxon(self):
|
||||
"""Entfernt die ausgewählte Saxon JAR."""
|
||||
current_row = self.ui.tableSaxons.currentRow()
|
||||
@@ -311,6 +326,9 @@ class AppSettingsDlg(QDialog):
|
||||
self._populate_saxon_table()
|
||||
self._update_saxon_buttons()
|
||||
|
||||
self.settings.saxon_jars = self.temp_saxon_jars.copy()
|
||||
self.settings.save()
|
||||
|
||||
def _update_saxon_buttons(self):
|
||||
"""Aktualisiert den Status der Saxon-Buttons."""
|
||||
has_selection = self.ui.tableSaxons.currentRow() >= 0
|
||||
@@ -333,6 +351,9 @@ class AppSettingsDlg(QDialog):
|
||||
self.temp_apache_fops.append(new_fop)
|
||||
self._populate_apache_fop_table()
|
||||
|
||||
self.settings.apache_fops = self.temp_apache_fops.copy()
|
||||
self.settings.save()
|
||||
|
||||
def _remove_apache_fop(self):
|
||||
"""Entfernt die ausgewählte Apache FOP Konfiguration."""
|
||||
current_row = self.ui.tableApacheFops.currentRow()
|
||||
@@ -341,6 +362,9 @@ class AppSettingsDlg(QDialog):
|
||||
self._populate_apache_fop_table()
|
||||
self._update_apache_fop_buttons()
|
||||
|
||||
self.settings.apache_fops = self.temp_apache_fops.copy()
|
||||
self.settings.save()
|
||||
|
||||
def _update_apache_fop_buttons(self):
|
||||
"""Aktualisiert den Status der Apache FOP-Buttons."""
|
||||
has_selection = self.ui.tableApacheFops.currentRow() >= 0
|
||||
@@ -364,6 +388,9 @@ class AppSettingsDlg(QDialog):
|
||||
self.temp_diff_pdfs.append(new_diff_pdf)
|
||||
self._populate_diff_pdf_table()
|
||||
|
||||
self.settings.diff_pdfs = self.temp_diff_pdfs.copy()
|
||||
self.settings.save()
|
||||
|
||||
def _remove_diff_pdf(self):
|
||||
"""Entfernt die ausgewählte Diff PDF Konfiguration."""
|
||||
current_row = self.ui.tableDiffPdfs.currentRow()
|
||||
@@ -372,11 +399,59 @@ class AppSettingsDlg(QDialog):
|
||||
self._populate_diff_pdf_table()
|
||||
self._update_diff_pdf_buttons()
|
||||
|
||||
self.settings.diff_pdfs = self.temp_diff_pdfs.copy()
|
||||
self.settings.save()
|
||||
|
||||
def _update_diff_pdf_buttons(self):
|
||||
"""Aktualisiert den Status der Diff PDF-Buttons."""
|
||||
has_selection = self.ui.tableDiffPdfs.currentRow() >= 0
|
||||
self.ui.removeDiffPdf.setEnabled(has_selection)
|
||||
|
||||
# PDF-Projekt Methoden
|
||||
def _add_pdf_project(self):
|
||||
"""Fügt ein neues PDF-Projekt hinzu."""
|
||||
dialog = PdfProjectDlg(self)
|
||||
if dialog.exec() == PdfProjectDlg.DialogCode.Accepted:
|
||||
project_data = dialog.get_project_data()
|
||||
|
||||
# Neue ID generieren
|
||||
new_id = max([p.id for p in self.temp_pdf_projects], default=0) + 1
|
||||
|
||||
# Erstelle PdfProject-Objekt
|
||||
new_project = PdfProject(
|
||||
id=new_id,
|
||||
name=project_data['name'],
|
||||
project_dir=Path(project_data['project_dir']),
|
||||
java_vm_id=project_data['java_vm_id'] if project_data['java_vm_id'] != -1 else 1,
|
||||
diff_pdf_id=project_data['diff_pdf_id'] if project_data['diff_pdf_id'] != -1 else 1,
|
||||
saxon_jar_id=project_data['saxon_jar_id'] if project_data['saxon_jar_id'] != -1 else 1,
|
||||
apache_fop_id=project_data['apache_fop_id'] if project_data['apache_fop_id'] != -1 else 1,
|
||||
xsl_dir_id=project_data['xsl_dir_id'] if project_data['xsl_dir_id'] != -1 else 1,
|
||||
default_xslt_params={}
|
||||
)
|
||||
|
||||
self.temp_pdf_projects.append(new_project)
|
||||
self._populate_pdf_project_table()
|
||||
|
||||
self.settings.pdf_projects = self.temp_pdf_projects.copy()
|
||||
self.settings.save()
|
||||
|
||||
def _remove_pdf_project(self):
|
||||
"""Entfernt das ausgewählte PDF-Projekt."""
|
||||
current_row = self.ui.tablePdfProjects.currentRow()
|
||||
if current_row >= 0:
|
||||
del self.temp_pdf_projects[current_row]
|
||||
self._populate_pdf_project_table()
|
||||
self._update_pdf_project_buttons()
|
||||
|
||||
self.settings.pdf_projects = self.temp_pdf_projects.copy()
|
||||
self.settings.save()
|
||||
|
||||
def _update_pdf_project_buttons(self):
|
||||
"""Aktualisiert den Status der PDF-Projekt-Buttons."""
|
||||
has_selection = self.ui.tablePdfProjects.currentRow() >= 0
|
||||
self.ui.removeProject.setEnabled(has_selection)
|
||||
|
||||
# Bearbeitungsmethoden für Doppelklick-Events
|
||||
def _edit_xsl_dir(self, index):
|
||||
"""Bearbeitet einen XSL-Ordner per Doppelklick."""
|
||||
@@ -490,45 +565,6 @@ class AppSettingsDlg(QDialog):
|
||||
diff_pdf.output_file_extension = new_data["output_file_extension"]
|
||||
self._populate_diff_pdf_table()
|
||||
|
||||
# PDF-Projekt Methoden
|
||||
def _add_pdf_project(self):
|
||||
"""Fügt ein neues PDF-Projekt hinzu."""
|
||||
dialog = PdfProjectDlg(self)
|
||||
if dialog.exec() == PdfProjectDlg.DialogCode.Accepted:
|
||||
project_data = dialog.get_project_data()
|
||||
|
||||
# Neue ID generieren
|
||||
new_id = max([p.id for p in self.temp_pdf_projects], default=0) + 1
|
||||
|
||||
# Erstelle PdfProject-Objekt
|
||||
new_project = PdfProject(
|
||||
id=new_id,
|
||||
name=project_data['name'],
|
||||
project_dir=Path(project_data['project_dir']),
|
||||
java_vm_id=project_data['java_vm_id'] if project_data['java_vm_id'] != -1 else 1,
|
||||
diff_pdf_id=project_data['diff_pdf_id'] if project_data['diff_pdf_id'] != -1 else 1,
|
||||
saxon_jar_id=project_data['saxon_jar_id'] if project_data['saxon_jar_id'] != -1 else 1,
|
||||
apache_fop_id=project_data['apache_fop_id'] if project_data['apache_fop_id'] != -1 else 1,
|
||||
xsl_dir_id=project_data['xsl_dir_id'] if project_data['xsl_dir_id'] != -1 else 1,
|
||||
default_xslt_params={}
|
||||
)
|
||||
|
||||
self.temp_pdf_projects.append(new_project)
|
||||
self._populate_pdf_project_table()
|
||||
|
||||
def _remove_pdf_project(self):
|
||||
"""Entfernt das ausgewählte PDF-Projekt."""
|
||||
current_row = self.ui.tablePdfProjects.currentRow()
|
||||
if current_row >= 0:
|
||||
del self.temp_pdf_projects[current_row]
|
||||
self._populate_pdf_project_table()
|
||||
self._update_pdf_project_buttons()
|
||||
|
||||
def _update_pdf_project_buttons(self):
|
||||
"""Aktualisiert den Status der PDF-Projekt-Buttons."""
|
||||
has_selection = self.ui.tablePdfProjects.currentRow() >= 0
|
||||
self.ui.removeProject.setEnabled(has_selection)
|
||||
|
||||
def _edit_pdf_project(self, index):
|
||||
"""Bearbeitet ein PDF-Projekt per Doppelklick (nur Einstellungen)."""
|
||||
row = index.row()
|
||||
|
||||
@@ -421,7 +421,7 @@
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QPushButton" name="removeProject">
|
||||
<widget class="QPushButton" name="addProject">
|
||||
<property name="text">
|
||||
<string>Hinzufügen</string>
|
||||
</property>
|
||||
@@ -431,7 +431,7 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="addProject">
|
||||
<widget class="QPushButton" name="removeProject">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
|
||||
+10
-10
@@ -247,19 +247,19 @@ class Ui_Dialog(object):
|
||||
self.horizontalLayout_6 = QHBoxLayout(self.frame_6)
|
||||
self.horizontalLayout_6.setObjectName(u"horizontalLayout_6")
|
||||
self.horizontalLayout_6.setContentsMargins(0, 0, 0, 0)
|
||||
self.removeProject = QPushButton(self.frame_6)
|
||||
self.removeProject.setObjectName(u"removeProject")
|
||||
self.removeProject.setIcon(icon)
|
||||
|
||||
self.horizontalLayout_6.addWidget(self.removeProject)
|
||||
|
||||
self.addProject = QPushButton(self.frame_6)
|
||||
self.addProject.setObjectName(u"addProject")
|
||||
self.addProject.setEnabled(False)
|
||||
self.addProject.setIcon(icon1)
|
||||
self.addProject.setIcon(icon)
|
||||
|
||||
self.horizontalLayout_6.addWidget(self.addProject)
|
||||
|
||||
self.removeProject = QPushButton(self.frame_6)
|
||||
self.removeProject.setObjectName(u"removeProject")
|
||||
self.removeProject.setEnabled(False)
|
||||
self.removeProject.setIcon(icon1)
|
||||
|
||||
self.horizontalLayout_6.addWidget(self.removeProject)
|
||||
|
||||
|
||||
self.verticalLayout_7.addWidget(self.frame_6)
|
||||
|
||||
@@ -303,8 +303,8 @@ class Ui_Dialog(object):
|
||||
self.addDiffPdf.setText(QCoreApplication.translate("Dialog", u"Hinzuf\u00fcgen", None))
|
||||
self.removeDiffPdf.setText(QCoreApplication.translate("Dialog", u"Entfernen", None))
|
||||
self.tabSettings.setTabText(self.tabSettings.indexOf(self.tabDiffPdf), QCoreApplication.translate("Dialog", u"Diff-PDF", None))
|
||||
self.removeProject.setText(QCoreApplication.translate("Dialog", u"Hinzuf\u00fcgen", None))
|
||||
self.addProject.setText(QCoreApplication.translate("Dialog", u"Entfernen", None))
|
||||
self.addProject.setText(QCoreApplication.translate("Dialog", u"Hinzuf\u00fcgen", None))
|
||||
self.removeProject.setText(QCoreApplication.translate("Dialog", u"Entfernen", None))
|
||||
self.tabSettings.setTabText(self.tabSettings.indexOf(self.tabPdfProject), QCoreApplication.translate("Dialog", u"PDF-Projekte", None))
|
||||
# retranslateUi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user