diff --git a/src/conf.py b/src/conf.py
index 0df0c90..306feec 100644
--- a/src/conf.py
+++ b/src/conf.py
@@ -66,6 +66,36 @@ class PdfProject(BaseModel):
xsl_dir_id: int
default_xslt_params: dict[str, str] = {}
+ def getXsl(self) -> str:
+ global app_settings
+ value = [x.name for x in app_settings.xsl_dirs if x.id == self.xsl_dir_id]
+
+ return value[0] if len(value) else ""
+
+ def getJavaVm(self) -> str:
+ global app_settings
+ value = [x.version for x in app_settings.java_vms if x.id == self.java_vm_id]
+
+ return value[0] if len(value) else ""
+
+ def getSaxon(self) -> str:
+ global app_settings
+ value = [x.version for x in app_settings.saxon_jars if x.id == self.saxon_jar_id]
+
+ return value[0] if len(value) else ""
+
+ def getApacheFop(self) -> str:
+ global app_settings
+ value = [x.version for x in app_settings.apache_fops if x.id == self.apache_fop_id]
+
+ return value[0] if len(value) else ""
+
+ def getDiffPdf(self) -> str:
+ global app_settings
+ value = [x.version for x in app_settings.diff_pdfs if x.id == self.diff_pdf_id]
+
+ return value[0] if len(value) else ""
+
class AppSettings(BaseSettings):
java_vms: list[JavaVm] = []
diff --git a/src/ui/AppSettings.py b/src/ui/AppSettings.py
index 8926da3..32e04cd 100644
--- a/src/ui/AppSettings.py
+++ b/src/ui/AppSettings.py
@@ -34,6 +34,7 @@ class AppSettingsDlg(QDialog):
self.temp_saxon_jars = self.settings.saxon_jars.copy()
self.temp_apache_fops = self.settings.apache_fops.copy()
self.temp_xsl_dirs = self.settings.xsl_dirs.copy()
+ self.temp_pdf_projects = self.settings.pdf_projects.copy()
# Signale verbinden
self._connect_signals()
@@ -69,6 +70,11 @@ class AppSettingsDlg(QDialog):
self.ui.removeDiffPdf.clicked.connect(self._remove_diff_pdf)
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.tablePdfProjects.itemSelectionChanged.connect(self._update_pdf_project_buttons)
+
def _setup_tables(self):
"""Richtet die Tabellen-Header ein und macht sie unveränderbar."""
from PySide6.QtWidgets import QAbstractItemView
@@ -98,6 +104,11 @@ class AppSettingsDlg(QDialog):
self.ui.tableDiffPdfs.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers)
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.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers)
+ self.ui.tablePdfProjects.doubleClicked.connect(self._edit_pdf_project)
+
def _populate_tables(self):
"""Füllt alle Tabellen mit den aktuellen Einstellungen."""
self._populate_xsl_table()
@@ -105,6 +116,7 @@ class AppSettingsDlg(QDialog):
self._populate_saxon_table()
self._populate_apache_fop_table()
self._populate_diff_pdf_table()
+ self._populate_pdf_project_table()
def _populate_xsl_table(self):
"""Füllt die XSL-Ordner Tabelle."""
@@ -152,10 +164,16 @@ class AppSettingsDlg(QDialog):
def _populate_pdf_project_table(self):
"""Füllt die PDF-Projekte Tabelle."""
- self.ui.tablePdfProjekts.setRowCount(len(self.temp_pdf_projects))
+ self.ui.tablePdfProjects.setRowCount(len(self.temp_pdf_projects))
for row, pdf_project in enumerate(self.temp_pdf_projects):
- self.ui.tablePdfProjekts.setItem(row, 0, QTableWidgetItem(pdf_project.name))
- self.ui.tablePdfProjekts.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.ResizeToContents)
+ self.ui.tablePdfProjects.setItem(row, 0, QTableWidgetItem(pdf_project.name))
+ self.ui.tablePdfProjects.setItem(row, 1, QTableWidgetItem(str(pdf_project.project_dir)))
+ self.ui.tablePdfProjects.setItem(row, 2, QTableWidgetItem(pdf_project.getXsl()))
+ self.ui.tablePdfProjects.setItem(row, 3, QTableWidgetItem(pdf_project.getJavaVm()))
+ self.ui.tablePdfProjects.setItem(row, 4, QTableWidgetItem(pdf_project.getSaxon()))
+ self.ui.tablePdfProjects.setItem(row, 5, QTableWidgetItem(pdf_project.getApacheFop()))
+ self.ui.tablePdfProjects.setItem(row, 6, QTableWidgetItem(pdf_project.getDiffPdf()))
+ self.ui.tablePdfProjects.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.ResizeToContents)
# XSL-Ordner Methoden
def _add_xsl_dir(self):
@@ -442,7 +460,7 @@ class AppSettingsDlg(QDialog):
def _remove_pdf_project(self):
"""Entfernt das ausgewählte PDF-Projekt."""
- current_row = self.ui.tablePdfProjekts.currentRow()
+ current_row = self.ui.tablePdfProjects.currentRow()
if current_row >= 0:
del self.temp_pdf_projects[current_row]
self._populate_pdf_project_table()
@@ -450,7 +468,7 @@ class AppSettingsDlg(QDialog):
def _update_pdf_project_buttons(self):
"""Aktualisiert den Status der PDF-Projekt-Buttons."""
- has_selection = self.ui.tablePdfProjekts.currentRow() >= 0
+ has_selection = self.ui.tablePdfProjects.currentRow() >= 0
self.ui.removeProject.setEnabled(has_selection)
def _edit_pdf_project(self, index):
diff --git a/src/ui/AppSettings.ui b/src/ui/AppSettings.ui
index 21ba05b..9724fa6 100644
--- a/src/ui/AppSettings.ui
+++ b/src/ui/AppSettings.ui
@@ -22,6 +22,9 @@
0
+
+ Qt::TextElideMode::ElideRight
+
XSL-Ordner
@@ -84,9 +87,6 @@
-
- true
-
@@ -382,9 +382,15 @@
-
- 1
+ 7
+
+
+
+
+
+
-
@@ -396,7 +402,7 @@
- QFrame::Shape::StyledPanel
+ QFrame::Shape::NoFrame
QFrame::Shadow::Raised
diff --git a/src/ui/AppSettings_ui.py b/src/ui/AppSettings_ui.py
index decf755..4074e2c 100644
--- a/src/ui/AppSettings_ui.py
+++ b/src/ui/AppSettings_ui.py
@@ -30,6 +30,7 @@ class Ui_Dialog(object):
self.tabSettings = QTabWidget(Dialog)
self.tabSettings.setObjectName(u"tabSettings")
self.tabSettings.setEnabled(True)
+ self.tabSettings.setElideMode(Qt.TextElideMode.ElideRight)
self.tabXsls = QWidget()
self.tabXsls.setObjectName(u"tabXsls")
self.verticalLayout_5 = QVBoxLayout(self.tabXsls)
@@ -66,7 +67,6 @@ class Ui_Dialog(object):
self.removeXsl.setEnabled(False)
icon1 = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.ListRemove))
self.removeXsl.setIcon(icon1)
- self.removeXsl.setFlat(True)
self.horizontalLayout_2.addWidget(self.removeXsl)
@@ -231,10 +231,10 @@ class Ui_Dialog(object):
self.verticalLayout_7 = QVBoxLayout(self.tabPdfProject)
self.verticalLayout_7.setObjectName(u"verticalLayout_7")
self.tablePdfProjects = QTableWidget(self.tabPdfProject)
- if (self.tablePdfProjects.columnCount() < 1):
- self.tablePdfProjects.setColumnCount(1)
+ if (self.tablePdfProjects.columnCount() < 7):
+ self.tablePdfProjects.setColumnCount(7)
self.tablePdfProjects.setObjectName(u"tablePdfProjects")
- self.tablePdfProjects.setColumnCount(1)
+ self.tablePdfProjects.setColumnCount(7)
self.verticalLayout_7.addWidget(self.tablePdfProjects)
@@ -242,7 +242,7 @@ class Ui_Dialog(object):
self.frame_6.setObjectName(u"frame_6")
sizePolicy.setHeightForWidth(self.frame_6.sizePolicy().hasHeightForWidth())
self.frame_6.setSizePolicy(sizePolicy)
- self.frame_6.setFrameShape(QFrame.Shape.StyledPanel)
+ self.frame_6.setFrameShape(QFrame.Shape.NoFrame)
self.frame_6.setFrameShadow(QFrame.Shadow.Raised)
self.horizontalLayout_6 = QHBoxLayout(self.frame_6)
self.horizontalLayout_6.setObjectName(u"horizontalLayout_6")