f59e51c081
RAM-Optimierung (Lazy Loading): - Worker-Pools werden erst bei Transformation gestartet (nicht beim Projekt-Öffnen) - Worker-Pools werden nach Transformation automatisch beendet - RAM im Ruhezustand: 0 MB (vorher: ~1.2 GB) - Temporäre Verzeichnisse werden sauber aufgeräumt XSL-Stylesheet-Caching (Massive Performance-Steigerung): - Saxon s9api: HashMap<String, XsltExecutable> Cache - Saxon JAXP: HashMap<String, Templates> Cache - Kompilierte Stylesheets werden pro Worker wiederverwendet - Bei 82 Transformationen mit 8 XSL-Dateien: * 1. Durchlauf: 8× Kompilierung * Weitere 74×: Cache-Treffer (sehr schnell!) Technische Details: - Worker-Pool-Init verschoben von _on_project_opened zu _start_transformation - Worker-Pool-Shutdown in _on_all_transformations_finished - Java-seitiger HashMap-Cache für beide Saxon-Varianten - Cache-Logging für Debugging Perfekt für Dauerbetrieb im Hintergrund! 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
499 lines
24 KiB
Python
499 lines
24 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
################################################################################
|
|
## Form generated from reading UI file 'AppSettings.ui'
|
|
##
|
|
## Created by: Qt User Interface Compiler version 6.9.2
|
|
##
|
|
## WARNING! All changes made in this file will be lost when recompiling UI file!
|
|
################################################################################
|
|
|
|
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
|
|
QMetaObject, QObject, QPoint, QRect,
|
|
QSize, QTime, QUrl, Qt)
|
|
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
|
|
QFont, QFontDatabase, QGradient, QIcon,
|
|
QImage, QKeySequence, QLinearGradient, QPainter,
|
|
QPalette, QPixmap, QRadialGradient, QTransform)
|
|
from PySide6.QtWidgets import (QAbstractButton, QApplication, QCheckBox, QComboBox,
|
|
QDialog, QDialogButtonBox, QFrame, QGroupBox,
|
|
QHBoxLayout, QHeaderView, QLabel, QPushButton,
|
|
QSizePolicy, QSpacerItem, QSpinBox, QTabWidget,
|
|
QTableWidget, QTableWidgetItem, QVBoxLayout, QWidget)
|
|
|
|
class Ui_Dialog(object):
|
|
def setupUi(self, Dialog):
|
|
if not Dialog.objectName():
|
|
Dialog.setObjectName(u"Dialog")
|
|
Dialog.resize(833, 526)
|
|
self.verticalLayout = QVBoxLayout(Dialog)
|
|
self.verticalLayout.setObjectName(u"verticalLayout")
|
|
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)
|
|
self.verticalLayout_5.setObjectName(u"verticalLayout_5")
|
|
self.tableXsls = QTableWidget(self.tabXsls)
|
|
if (self.tableXsls.columnCount() < 2):
|
|
self.tableXsls.setColumnCount(2)
|
|
self.tableXsls.setObjectName(u"tableXsls")
|
|
self.tableXsls.setColumnCount(2)
|
|
|
|
self.verticalLayout_5.addWidget(self.tableXsls)
|
|
|
|
self.frame_2 = QFrame(self.tabXsls)
|
|
self.frame_2.setObjectName(u"frame_2")
|
|
sizePolicy = QSizePolicy(QSizePolicy.Policy.Maximum, QSizePolicy.Policy.Preferred)
|
|
sizePolicy.setHorizontalStretch(0)
|
|
sizePolicy.setVerticalStretch(0)
|
|
sizePolicy.setHeightForWidth(self.frame_2.sizePolicy().hasHeightForWidth())
|
|
self.frame_2.setSizePolicy(sizePolicy)
|
|
self.frame_2.setFrameShape(QFrame.Shape.NoFrame)
|
|
self.frame_2.setFrameShadow(QFrame.Shadow.Raised)
|
|
self.horizontalLayout_2 = QHBoxLayout(self.frame_2)
|
|
self.horizontalLayout_2.setObjectName(u"horizontalLayout_2")
|
|
self.horizontalLayout_2.setContentsMargins(0, 1, 0, 0)
|
|
self.addXsl = QPushButton(self.frame_2)
|
|
self.addXsl.setObjectName(u"addXsl")
|
|
icon = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.ListAdd))
|
|
self.addXsl.setIcon(icon)
|
|
|
|
self.horizontalLayout_2.addWidget(self.addXsl)
|
|
|
|
self.removeXsl = QPushButton(self.frame_2)
|
|
self.removeXsl.setObjectName(u"removeXsl")
|
|
self.removeXsl.setEnabled(False)
|
|
icon1 = QIcon(QIcon.fromTheme(QIcon.ThemeIcon.ListRemove))
|
|
self.removeXsl.setIcon(icon1)
|
|
|
|
self.horizontalLayout_2.addWidget(self.removeXsl)
|
|
|
|
|
|
self.verticalLayout_5.addWidget(self.frame_2)
|
|
|
|
self.tabSettings.addTab(self.tabXsls, "")
|
|
self.tabJavaVm = QWidget()
|
|
self.tabJavaVm.setObjectName(u"tabJavaVm")
|
|
self.verticalLayout_2 = QVBoxLayout(self.tabJavaVm)
|
|
self.verticalLayout_2.setObjectName(u"verticalLayout_2")
|
|
self.tableJavaVms = QTableWidget(self.tabJavaVm)
|
|
if (self.tableJavaVms.columnCount() < 2):
|
|
self.tableJavaVms.setColumnCount(2)
|
|
self.tableJavaVms.setObjectName(u"tableJavaVms")
|
|
self.tableJavaVms.setColumnCount(2)
|
|
|
|
self.verticalLayout_2.addWidget(self.tableJavaVms)
|
|
|
|
self.frame_3 = QFrame(self.tabJavaVm)
|
|
self.frame_3.setObjectName(u"frame_3")
|
|
sizePolicy.setHeightForWidth(self.frame_3.sizePolicy().hasHeightForWidth())
|
|
self.frame_3.setSizePolicy(sizePolicy)
|
|
self.frame_3.setFrameShape(QFrame.Shape.NoFrame)
|
|
self.frame_3.setFrameShadow(QFrame.Shadow.Raised)
|
|
self.horizontalLayout_3 = QHBoxLayout(self.frame_3)
|
|
self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
|
|
self.horizontalLayout_3.setContentsMargins(0, 0, 0, 0)
|
|
self.addJavaVm = QPushButton(self.frame_3)
|
|
self.addJavaVm.setObjectName(u"addJavaVm")
|
|
self.addJavaVm.setIcon(icon)
|
|
|
|
self.horizontalLayout_3.addWidget(self.addJavaVm)
|
|
|
|
self.removeJavaVm = QPushButton(self.frame_3)
|
|
self.removeJavaVm.setObjectName(u"removeJavaVm")
|
|
self.removeJavaVm.setEnabled(False)
|
|
self.removeJavaVm.setIcon(icon1)
|
|
|
|
self.horizontalLayout_3.addWidget(self.removeJavaVm)
|
|
|
|
|
|
self.verticalLayout_2.addWidget(self.frame_3)
|
|
|
|
self.tabSettings.addTab(self.tabJavaVm, "")
|
|
self.tabSaxon = QWidget()
|
|
self.tabSaxon.setObjectName(u"tabSaxon")
|
|
self.verticalLayout_4 = QVBoxLayout(self.tabSaxon)
|
|
self.verticalLayout_4.setObjectName(u"verticalLayout_4")
|
|
self.tableSaxons = QTableWidget(self.tabSaxon)
|
|
if (self.tableSaxons.columnCount() < 3):
|
|
self.tableSaxons.setColumnCount(3)
|
|
self.tableSaxons.setObjectName(u"tableSaxons")
|
|
self.tableSaxons.setColumnCount(3)
|
|
|
|
self.verticalLayout_4.addWidget(self.tableSaxons)
|
|
|
|
self.frame_4 = QFrame(self.tabSaxon)
|
|
self.frame_4.setObjectName(u"frame_4")
|
|
sizePolicy.setHeightForWidth(self.frame_4.sizePolicy().hasHeightForWidth())
|
|
self.frame_4.setSizePolicy(sizePolicy)
|
|
self.frame_4.setFrameShape(QFrame.Shape.NoFrame)
|
|
self.frame_4.setFrameShadow(QFrame.Shadow.Raised)
|
|
self.horizontalLayout_4 = QHBoxLayout(self.frame_4)
|
|
self.horizontalLayout_4.setObjectName(u"horizontalLayout_4")
|
|
self.horizontalLayout_4.setContentsMargins(0, 0, 0, 0)
|
|
self.addSaxon = QPushButton(self.frame_4)
|
|
self.addSaxon.setObjectName(u"addSaxon")
|
|
self.addSaxon.setIcon(icon)
|
|
|
|
self.horizontalLayout_4.addWidget(self.addSaxon)
|
|
|
|
self.removeSaxon = QPushButton(self.frame_4)
|
|
self.removeSaxon.setObjectName(u"removeSaxon")
|
|
self.removeSaxon.setEnabled(False)
|
|
self.removeSaxon.setIcon(icon1)
|
|
|
|
self.horizontalLayout_4.addWidget(self.removeSaxon)
|
|
|
|
|
|
self.verticalLayout_4.addWidget(self.frame_4)
|
|
|
|
self.tabSettings.addTab(self.tabSaxon, "")
|
|
self.tabApacheFop = QWidget()
|
|
self.tabApacheFop.setObjectName(u"tabApacheFop")
|
|
self.verticalLayout_3 = QVBoxLayout(self.tabApacheFop)
|
|
self.verticalLayout_3.setObjectName(u"verticalLayout_3")
|
|
self.tableApacheFops = QTableWidget(self.tabApacheFop)
|
|
if (self.tableApacheFops.columnCount() < 3):
|
|
self.tableApacheFops.setColumnCount(3)
|
|
self.tableApacheFops.setObjectName(u"tableApacheFops")
|
|
self.tableApacheFops.setColumnCount(3)
|
|
|
|
self.verticalLayout_3.addWidget(self.tableApacheFops)
|
|
|
|
self.frame = QFrame(self.tabApacheFop)
|
|
self.frame.setObjectName(u"frame")
|
|
sizePolicy.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth())
|
|
self.frame.setSizePolicy(sizePolicy)
|
|
self.frame.setFrameShape(QFrame.Shape.NoFrame)
|
|
self.frame.setFrameShadow(QFrame.Shadow.Raised)
|
|
self.horizontalLayout = QHBoxLayout(self.frame)
|
|
self.horizontalLayout.setObjectName(u"horizontalLayout")
|
|
self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
|
|
self.addApacheFop = QPushButton(self.frame)
|
|
self.addApacheFop.setObjectName(u"addApacheFop")
|
|
self.addApacheFop.setIcon(icon)
|
|
|
|
self.horizontalLayout.addWidget(self.addApacheFop)
|
|
|
|
self.removeApacheFop = QPushButton(self.frame)
|
|
self.removeApacheFop.setObjectName(u"removeApacheFop")
|
|
self.removeApacheFop.setEnabled(False)
|
|
self.removeApacheFop.setIcon(icon1)
|
|
|
|
self.horizontalLayout.addWidget(self.removeApacheFop)
|
|
|
|
|
|
self.verticalLayout_3.addWidget(self.frame)
|
|
|
|
self.tabSettings.addTab(self.tabApacheFop, "")
|
|
self.tabDiffPdf = QWidget()
|
|
self.tabDiffPdf.setObjectName(u"tabDiffPdf")
|
|
self.verticalLayout_6 = QVBoxLayout(self.tabDiffPdf)
|
|
self.verticalLayout_6.setObjectName(u"verticalLayout_6")
|
|
self.tableDiffPdfs = QTableWidget(self.tabDiffPdf)
|
|
if (self.tableDiffPdfs.columnCount() < 4):
|
|
self.tableDiffPdfs.setColumnCount(4)
|
|
self.tableDiffPdfs.setObjectName(u"tableDiffPdfs")
|
|
self.tableDiffPdfs.setColumnCount(4)
|
|
|
|
self.verticalLayout_6.addWidget(self.tableDiffPdfs)
|
|
|
|
self.frame_5 = QFrame(self.tabDiffPdf)
|
|
self.frame_5.setObjectName(u"frame_5")
|
|
sizePolicy.setHeightForWidth(self.frame_5.sizePolicy().hasHeightForWidth())
|
|
self.frame_5.setSizePolicy(sizePolicy)
|
|
self.frame_5.setFrameShape(QFrame.Shape.NoFrame)
|
|
self.frame_5.setFrameShadow(QFrame.Shadow.Raised)
|
|
self.horizontalLayout_5 = QHBoxLayout(self.frame_5)
|
|
self.horizontalLayout_5.setObjectName(u"horizontalLayout_5")
|
|
self.horizontalLayout_5.setContentsMargins(0, 0, 0, 0)
|
|
self.addDiffPdf = QPushButton(self.frame_5)
|
|
self.addDiffPdf.setObjectName(u"addDiffPdf")
|
|
self.addDiffPdf.setIcon(icon)
|
|
|
|
self.horizontalLayout_5.addWidget(self.addDiffPdf)
|
|
|
|
self.removeDiffPdf = QPushButton(self.frame_5)
|
|
self.removeDiffPdf.setObjectName(u"removeDiffPdf")
|
|
self.removeDiffPdf.setEnabled(False)
|
|
self.removeDiffPdf.setIcon(icon1)
|
|
|
|
self.horizontalLayout_5.addWidget(self.removeDiffPdf)
|
|
|
|
|
|
self.verticalLayout_6.addWidget(self.frame_5)
|
|
|
|
self.tabSettings.addTab(self.tabDiffPdf, "")
|
|
self.tabPostgreSql = QWidget()
|
|
self.tabPostgreSql.setObjectName(u"tabPostgreSql")
|
|
self.verticalLayout_8 = QVBoxLayout(self.tabPostgreSql)
|
|
self.verticalLayout_8.setObjectName(u"verticalLayout_8")
|
|
self.tablePostgreSqlDbs = QTableWidget(self.tabPostgreSql)
|
|
if (self.tablePostgreSqlDbs.columnCount() < 5):
|
|
self.tablePostgreSqlDbs.setColumnCount(5)
|
|
self.tablePostgreSqlDbs.setObjectName(u"tablePostgreSqlDbs")
|
|
self.tablePostgreSqlDbs.setColumnCount(5)
|
|
|
|
self.verticalLayout_8.addWidget(self.tablePostgreSqlDbs)
|
|
|
|
self.frame_7 = QFrame(self.tabPostgreSql)
|
|
self.frame_7.setObjectName(u"frame_7")
|
|
sizePolicy.setHeightForWidth(self.frame_7.sizePolicy().hasHeightForWidth())
|
|
self.frame_7.setSizePolicy(sizePolicy)
|
|
self.frame_7.setFrameShape(QFrame.Shape.NoFrame)
|
|
self.frame_7.setFrameShadow(QFrame.Shadow.Raised)
|
|
self.horizontalLayout_7 = QHBoxLayout(self.frame_7)
|
|
self.horizontalLayout_7.setObjectName(u"horizontalLayout_7")
|
|
self.horizontalLayout_7.setContentsMargins(0, 0, 0, 0)
|
|
self.addPostgreSql = QPushButton(self.frame_7)
|
|
self.addPostgreSql.setObjectName(u"addPostgreSql")
|
|
self.addPostgreSql.setIcon(icon)
|
|
|
|
self.horizontalLayout_7.addWidget(self.addPostgreSql)
|
|
|
|
self.removePostgreSql = QPushButton(self.frame_7)
|
|
self.removePostgreSql.setObjectName(u"removePostgreSql")
|
|
self.removePostgreSql.setEnabled(False)
|
|
self.removePostgreSql.setIcon(icon1)
|
|
|
|
self.horizontalLayout_7.addWidget(self.removePostgreSql)
|
|
|
|
|
|
self.verticalLayout_8.addWidget(self.frame_7)
|
|
|
|
self.tabSettings.addTab(self.tabPostgreSql, "")
|
|
self.tabPdfProject = QWidget()
|
|
self.tabPdfProject.setObjectName(u"tabPdfProject")
|
|
self.verticalLayout_7 = QVBoxLayout(self.tabPdfProject)
|
|
self.verticalLayout_7.setObjectName(u"verticalLayout_7")
|
|
self.tablePdfProjects = QTableWidget(self.tabPdfProject)
|
|
if (self.tablePdfProjects.columnCount() < 7):
|
|
self.tablePdfProjects.setColumnCount(7)
|
|
self.tablePdfProjects.setObjectName(u"tablePdfProjects")
|
|
self.tablePdfProjects.setColumnCount(7)
|
|
|
|
self.verticalLayout_7.addWidget(self.tablePdfProjects)
|
|
|
|
self.frame_6 = QFrame(self.tabPdfProject)
|
|
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.NoFrame)
|
|
self.frame_6.setFrameShadow(QFrame.Shadow.Raised)
|
|
self.horizontalLayout_6 = QHBoxLayout(self.frame_6)
|
|
self.horizontalLayout_6.setObjectName(u"horizontalLayout_6")
|
|
self.horizontalLayout_6.setContentsMargins(0, 0, 0, 0)
|
|
self.addProject = QPushButton(self.frame_6)
|
|
self.addProject.setObjectName(u"addProject")
|
|
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)
|
|
|
|
self.tabSettings.addTab(self.tabPdfProject, "")
|
|
self.tabPerformance = QWidget()
|
|
self.tabPerformance.setObjectName(u"tabPerformance")
|
|
self.verticalLayout_9 = QVBoxLayout(self.tabPerformance)
|
|
self.verticalLayout_9.setObjectName(u"verticalLayout_9")
|
|
self.groupBoxWorker = QGroupBox(self.tabPerformance)
|
|
self.groupBoxWorker.setObjectName(u"groupBoxWorker")
|
|
self.verticalLayout_10 = QVBoxLayout(self.groupBoxWorker)
|
|
self.verticalLayout_10.setObjectName(u"verticalLayout_10")
|
|
self.labelWorkerCount = QLabel(self.groupBoxWorker)
|
|
self.labelWorkerCount.setObjectName(u"labelWorkerCount")
|
|
|
|
self.verticalLayout_10.addWidget(self.labelWorkerCount)
|
|
|
|
self.spinBoxWorkerCount = QSpinBox(self.groupBoxWorker)
|
|
self.spinBoxWorkerCount.setObjectName(u"spinBoxWorkerCount")
|
|
self.spinBoxWorkerCount.setMinimum(1)
|
|
self.spinBoxWorkerCount.setMaximum(32)
|
|
self.spinBoxWorkerCount.setValue(8)
|
|
|
|
self.verticalLayout_10.addWidget(self.spinBoxWorkerCount)
|
|
|
|
|
|
self.verticalLayout_9.addWidget(self.groupBoxWorker)
|
|
|
|
self.groupBoxSaxonPool = QGroupBox(self.tabPerformance)
|
|
self.groupBoxSaxonPool.setObjectName(u"groupBoxSaxonPool")
|
|
self.verticalLayout_11 = QVBoxLayout(self.groupBoxSaxonPool)
|
|
self.verticalLayout_11.setObjectName(u"verticalLayout_11")
|
|
self.checkBoxUseSaxonPool = QCheckBox(self.groupBoxSaxonPool)
|
|
self.checkBoxUseSaxonPool.setObjectName(u"checkBoxUseSaxonPool")
|
|
|
|
self.verticalLayout_11.addWidget(self.checkBoxUseSaxonPool)
|
|
|
|
self.horizontalLayoutXsltVersion = QHBoxLayout()
|
|
self.horizontalLayoutXsltVersion.setObjectName(u"horizontalLayoutXsltVersion")
|
|
self.labelXsltVersion = QLabel(self.groupBoxSaxonPool)
|
|
self.labelXsltVersion.setObjectName(u"labelXsltVersion")
|
|
|
|
self.horizontalLayoutXsltVersion.addWidget(self.labelXsltVersion)
|
|
|
|
self.comboBoxXsltVersion = QComboBox(self.groupBoxSaxonPool)
|
|
self.comboBoxXsltVersion.addItem("")
|
|
self.comboBoxXsltVersion.addItem("")
|
|
self.comboBoxXsltVersion.setObjectName(u"comboBoxXsltVersion")
|
|
|
|
self.horizontalLayoutXsltVersion.addWidget(self.comboBoxXsltVersion)
|
|
|
|
self.horizontalSpacerXsltVersion = QSpacerItem(40, 20, QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Minimum)
|
|
|
|
self.horizontalLayoutXsltVersion.addItem(self.horizontalSpacerXsltVersion)
|
|
|
|
|
|
self.verticalLayout_11.addLayout(self.horizontalLayoutXsltVersion)
|
|
|
|
self.labelSaxonPoolInfo = QLabel(self.groupBoxSaxonPool)
|
|
self.labelSaxonPoolInfo.setObjectName(u"labelSaxonPoolInfo")
|
|
self.labelSaxonPoolInfo.setWordWrap(True)
|
|
|
|
self.verticalLayout_11.addWidget(self.labelSaxonPoolInfo)
|
|
|
|
|
|
self.verticalLayout_9.addWidget(self.groupBoxSaxonPool)
|
|
|
|
self.groupBoxFopPool = QGroupBox(self.tabPerformance)
|
|
self.groupBoxFopPool.setObjectName(u"groupBoxFopPool")
|
|
self.verticalLayout_12 = QVBoxLayout(self.groupBoxFopPool)
|
|
self.verticalLayout_12.setObjectName(u"verticalLayout_12")
|
|
self.checkBoxUseFopPool = QCheckBox(self.groupBoxFopPool)
|
|
self.checkBoxUseFopPool.setObjectName(u"checkBoxUseFopPool")
|
|
|
|
self.verticalLayout_12.addWidget(self.checkBoxUseFopPool)
|
|
|
|
self.labelFopPoolInfo = QLabel(self.groupBoxFopPool)
|
|
self.labelFopPoolInfo.setObjectName(u"labelFopPoolInfo")
|
|
self.labelFopPoolInfo.setWordWrap(True)
|
|
|
|
self.verticalLayout_12.addWidget(self.labelFopPoolInfo)
|
|
|
|
|
|
self.verticalLayout_9.addWidget(self.groupBoxFopPool)
|
|
|
|
self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
|
|
|
|
self.verticalLayout_9.addItem(self.verticalSpacer)
|
|
|
|
self.label = QLabel(self.tabPerformance)
|
|
self.label.setObjectName(u"label")
|
|
self.label.setMouseTracking(True)
|
|
self.label.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
|
self.label.setWordWrap(True)
|
|
|
|
self.verticalLayout_9.addWidget(self.label)
|
|
|
|
self.verticalSpacerPerformance = QSpacerItem(20, 40, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
|
|
|
|
self.verticalLayout_9.addItem(self.verticalSpacerPerformance)
|
|
|
|
self.tabSettings.addTab(self.tabPerformance, "")
|
|
|
|
self.verticalLayout.addWidget(self.tabSettings)
|
|
|
|
self.buttonBox = QDialogButtonBox(Dialog)
|
|
self.buttonBox.setObjectName(u"buttonBox")
|
|
self.buttonBox.setOrientation(Qt.Orientation.Horizontal)
|
|
self.buttonBox.setStandardButtons(QDialogButtonBox.StandardButton.Cancel|QDialogButtonBox.StandardButton.Ok)
|
|
self.buttonBox.setCenterButtons(True)
|
|
|
|
self.verticalLayout.addWidget(self.buttonBox)
|
|
|
|
|
|
self.retranslateUi(Dialog)
|
|
self.buttonBox.accepted.connect(Dialog.accept)
|
|
self.buttonBox.rejected.connect(Dialog.reject)
|
|
|
|
self.tabSettings.setCurrentIndex(0)
|
|
|
|
|
|
QMetaObject.connectSlotsByName(Dialog)
|
|
# setupUi
|
|
|
|
def retranslateUi(self, Dialog):
|
|
Dialog.setWindowTitle(QCoreApplication.translate("Dialog", u"Programm Einstellungen", None))
|
|
self.addXsl.setText(QCoreApplication.translate("Dialog", u"Hinzuf\u00fcgen", None))
|
|
self.removeXsl.setText(QCoreApplication.translate("Dialog", u"Entfernen", None))
|
|
self.tabSettings.setTabText(self.tabSettings.indexOf(self.tabXsls), QCoreApplication.translate("Dialog", u"XSL-Ordner", None))
|
|
self.addJavaVm.setText(QCoreApplication.translate("Dialog", u"Hinzuf\u00fcgen", None))
|
|
self.removeJavaVm.setText(QCoreApplication.translate("Dialog", u"Entfernen", None))
|
|
self.tabSettings.setTabText(self.tabSettings.indexOf(self.tabJavaVm), QCoreApplication.translate("Dialog", u"Java VM", None))
|
|
self.addSaxon.setText(QCoreApplication.translate("Dialog", u"Hinzuf\u00fcgen", None))
|
|
self.removeSaxon.setText(QCoreApplication.translate("Dialog", u"Entfernen", None))
|
|
self.tabSettings.setTabText(self.tabSettings.indexOf(self.tabSaxon), QCoreApplication.translate("Dialog", u"Saxon", None))
|
|
self.addApacheFop.setText(QCoreApplication.translate("Dialog", u"Hinzuf\u00fcgen", None))
|
|
self.removeApacheFop.setText(QCoreApplication.translate("Dialog", u"Entfernen", None))
|
|
self.tabSettings.setTabText(self.tabSettings.indexOf(self.tabApacheFop), QCoreApplication.translate("Dialog", u"Apache FOP", None))
|
|
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.addPostgreSql.setText(QCoreApplication.translate("Dialog", u"Hinzuf\u00fcgen", None))
|
|
self.removePostgreSql.setText(QCoreApplication.translate("Dialog", u"Entfernen", None))
|
|
self.tabSettings.setTabText(self.tabSettings.indexOf(self.tabPostgreSql), QCoreApplication.translate("Dialog", u"PostgreSQL", 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))
|
|
self.groupBoxWorker.setTitle(QCoreApplication.translate("Dialog", u"ThreadPoolExecutor Einstellungen", None))
|
|
self.labelWorkerCount.setText(QCoreApplication.translate("Dialog", u"Anzahl paralleler Worker f\u00fcr Transformationen:", None))
|
|
#if QT_CONFIG(tooltip)
|
|
self.spinBoxWorkerCount.setToolTip(QCoreApplication.translate("Dialog", u"Anzahl der parallelen Worker-Threads f\u00fcr Transformationen (Standard: 8)", None))
|
|
#endif // QT_CONFIG(tooltip)
|
|
self.groupBoxSaxonPool.setTitle(QCoreApplication.translate("Dialog", u"SaxonWorkerPool Einstellungen", None))
|
|
#if QT_CONFIG(tooltip)
|
|
self.checkBoxUseSaxonPool.setToolTip(QCoreApplication.translate("Dialog", u"Aktiviert persistente JVM-Prozesse f\u00fcr Saxon-Transformationen.\n"
|
|
"Vorteile: Bis zu 10x schneller durch Eliminierung von JVM-Startup-Overhead\n"
|
|
"Nachteile: Ben\u00f6tigt JDK (javac) - funktioniert nicht mit JRE allein\n"
|
|
"\n"
|
|
"Deaktivieren Sie diese Option, wenn:\n"
|
|
"\u2022 Sie nur ein JRE (keine JDK) installiert haben\n"
|
|
"\u2022 Sie Probleme mit dem Worker-Pool haben\n"
|
|
"\u2022 Sie die Funktion testen m\u00f6chten", None))
|
|
#endif // QT_CONFIG(tooltip)
|
|
self.checkBoxUseSaxonPool.setText(QCoreApplication.translate("Dialog", u"SaxonWorkerPool verwenden (empfohlen)", None))
|
|
self.labelXsltVersion.setText(QCoreApplication.translate("Dialog", u"XSLT-Version:", None))
|
|
self.comboBoxXsltVersion.setItemText(0, QCoreApplication.translate("Dialog", u"XSLT 1.0 (JAXP)", None))
|
|
self.comboBoxXsltVersion.setItemText(1, QCoreApplication.translate("Dialog", u"XSLT 2.0/3.0 (s9api) - Empfohlen", None))
|
|
|
|
#if QT_CONFIG(tooltip)
|
|
self.comboBoxXsltVersion.setToolTip(QCoreApplication.translate("Dialog", u"W\u00e4hlen Sie die XSLT-Version f\u00fcr Saxon-Transformationen:\n"
|
|
"\n"
|
|
"XSLT 1.0 (JAXP): Verwendet die JAXP Transformer API\n"
|
|
"\u2022 Nur f\u00fcr XSLT 1.0 vollst\u00e4ndig spezifiziert\n"
|
|
"\u2022 Kann bei XSLT 2.0/3.0 zu fehlerhaften Ausgaben f\u00fchren\n"
|
|
"\n"
|
|
"XSLT 2.0/3.0 (s9api): Verwendet die Saxon s9api\n"
|
|
"\u2022 Vollst\u00e4ndige Unterst\u00fctzung f\u00fcr XSLT 2.0 und 3.0\n"
|
|
"\u2022 Empfohlen f\u00fcr moderne XSLT-Stylesheets", None))
|
|
#endif // QT_CONFIG(tooltip)
|
|
self.labelSaxonPoolInfo.setText(QCoreApplication.translate("Dialog", u"<i>Hinweis: SaxonWorkerPool ben\u00f6tigt ein JDK (Java Development Kit).<br>Mit JRE allein werden Transformationen im Fallback-Modus ausgef\u00fchrt.</i>", None))
|
|
self.groupBoxFopPool.setTitle(QCoreApplication.translate("Dialog", u"FopWorkerPool Einstellungen", None))
|
|
#if QT_CONFIG(tooltip)
|
|
self.checkBoxUseFopPool.setToolTip(QCoreApplication.translate("Dialog", u"Aktiviert persistente JVM-Prozesse f\u00fcr Apache FOP PDF-Generierung.\n"
|
|
"Vorteile: Bis zu 10x schneller durch Eliminierung von JVM-Startup-Overhead\n"
|
|
"Nachteile: Ben\u00f6tigt JDK (javac) - funktioniert nicht mit JRE allein\n"
|
|
"\n"
|
|
"Deaktivieren Sie diese Option, wenn:\n"
|
|
"\u2022 Sie nur ein JRE (keine JDK) installiert haben\n"
|
|
"\u2022 Sie Probleme mit dem Worker-Pool haben\n"
|
|
"\u2022 Sie die Funktion testen m\u00f6chten", None))
|
|
#endif // QT_CONFIG(tooltip)
|
|
self.checkBoxUseFopPool.setText(QCoreApplication.translate("Dialog", u"FopWorkerPool verwenden (empfohlen)", None))
|
|
self.labelFopPoolInfo.setText(QCoreApplication.translate("Dialog", u"<i>Hinweis: FopWorkerPool ben\u00f6tigt ein JDK (Java Development Kit).<br>Mit JRE allein werden PDFs im Fallback-Modus generiert.</i>", None))
|
|
self.label.setText(QCoreApplication.translate("Dialog", u"<html><head/><body><p><span style=\" font-weight:700; font-style:italic;\">Hinweis: \u00c4nderungen in diesem Dialog sind unter Umst\u00e4nden erst nach neu start der Anwendung wirksam.</span></p></body></html>", None))
|
|
self.tabSettings.setTabText(self.tabSettings.indexOf(self.tabPerformance), QCoreApplication.translate("Dialog", u"Performance", None))
|
|
# retranslateUi
|
|
|