UX: Performance-Einstellungen in Programmeinstellungen integriert

Performance-Einstellungen wurden vom separaten Menüeintrag in den
Programmeinstellungen-Dialog als eigener Tab verschoben:

- Neuer "Performance"-Tab in AppSettings.ui mit drei Konfigurationsbereichen:
  • ThreadPoolExecutor: Worker-Anzahl (1-32, Standard: 8)
  • SaxonWorkerPool: Toggle für persistente JVM-Prozesse
  • FopWorkerPool: Toggle für persistente JVM-Prozesse

- AppSettings.py erweitert:
  • _populate_performance_tab(): Lädt aktuelle Performance-Einstellungen
  • accept(): Speichert Performance-Einstellungen in app_settings

- MainWindow.py bereinigt:
  • _setup_performance_menu() entfernt
  • _open_performance_settings() entfernt
  • Separater Menüeintrag im Projekt-Menü entfernt

- AppSettings_ui.py mit pyside6-uic neu generiert

Vorteile: Alle Programmeinstellungen sind nun zentral an einem Ort
verfügbar, bessere Benutzererfahrung durch konsistente UI-Struktur.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-04 19:01:46 +01:00
parent a7a69d27d7
commit 6976d21768
5 changed files with 624 additions and 556 deletions
+23 -4
View File
@@ -46,6 +46,9 @@ class AppSettingsDlg(QDialog):
self._setup_tables()
self._populate_tables()
# Performance-Tab initialisieren
self._populate_performance_tab()
def _connect_signals(self):
"""Verbindet die Signale der UI-Elemente."""
# XSL-Ordner Tab
@@ -253,24 +256,35 @@ class AppSettingsDlg(QDialog):
name_item = QTableWidgetItem(postgresql_db.name)
name_item.setTextAlignment(Qt.AlignmentFlag.AlignCenter)
self.ui.tablePostgreSqlDbs.setItem(row, 0, name_item)
host_item = QTableWidgetItem(postgresql_db.host)
host_item.setTextAlignment(Qt.AlignmentFlag.AlignCenter)
self.ui.tablePostgreSqlDbs.setItem(row, 1, host_item)
port_item = QTableWidgetItem(str(postgresql_db.port))
port_item.setTextAlignment(Qt.AlignmentFlag.AlignCenter)
self.ui.tablePostgreSqlDbs.setItem(row, 2, port_item)
database_item = QTableWidgetItem(postgresql_db.database)
database_item.setTextAlignment(Qt.AlignmentFlag.AlignCenter)
self.ui.tablePostgreSqlDbs.setItem(row, 3, database_item)
username_item = QTableWidgetItem(postgresql_db.username)
username_item.setTextAlignment(Qt.AlignmentFlag.AlignCenter)
self.ui.tablePostgreSqlDbs.setItem(row, 4, username_item)
self.ui.tablePostgreSqlDbs.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.ResizeToContents)
def _populate_performance_tab(self):
"""Initialisiert den Performance-Tab mit den aktuellen Einstellungen."""
# Worker-Anzahl setzen
self.ui.spinBoxWorkerCount.setValue(self.settings.max_workers)
# SaxonWorkerPool-Checkbox setzen
self.ui.checkBoxUseSaxonPool.setChecked(self.settings.use_saxon_worker_pool)
# FopWorkerPool-Checkbox setzen
self.ui.checkBoxUseFopPool.setChecked(self.settings.use_fop_worker_pool)
# XSL-Ordner Methoden
def _add_xsl_dir(self):
"""Fügt einen neuen XSL-Ordner hinzu."""
@@ -723,6 +737,11 @@ class AppSettingsDlg(QDialog):
self.settings.xsl_dirs = self.temp_xsl_dirs.copy()
self.settings.pdf_projects = self.temp_pdf_projects.copy()
# Performance-Einstellungen übernehmen
self.settings.max_workers = self.ui.spinBoxWorkerCount.value()
self.settings.use_saxon_worker_pool = self.ui.checkBoxUseSaxonPool.isChecked()
self.settings.use_fop_worker_pool = self.ui.checkBoxUseFopPool.isChecked()
self.settings.save()
super().accept()