Feature: Konfigurierbare Worker-Anzahl für parallele Transformationen

Fügt UI-Element und Einstellung für max_workers hinzu:

Änderungen:
- AppSettings.max_workers Feld hinzugefügt (Standard: 8 Worker)
- Menü-Item "Performance-Einstellungen..." im Projekt-Menü
- QInputDialog zum einfachen Ändern der Worker-Anzahl (1-32)
- TransformationThread verwendet jetzt app_settings.max_workers
- Tooltip zeigt aktuelle Worker-Anzahl an

Benutzung:
1. Projekt-Menü → Performance-Einstellungen...
2. Worker-Anzahl eingeben (empfohlen: 8-12 für 16-Kern-System)
3. Einstellung wird sofort gespeichert
4. Beim nächsten Transformation aktiv

Alternative: max_workers direkt in config.json ändern

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-28 13:19:47 +01:00
parent 2daa77e85d
commit 5ecad6ce89
2 changed files with 54 additions and 8 deletions
+45 -1
View File
@@ -549,6 +549,9 @@ class MainWindow(QMainWindow):
# Vorhandene Projekte-Menü initialisieren
self._setup_projects_menu()
# Performance-Einstellungen-Menü initialisieren
self._setup_performance_menu()
#
if theme := app_settings.theme:
self.change_theme(theme)
@@ -644,6 +647,47 @@ class MainWindow(QMainWindow):
logger.info(f"Projekte-Menü initialisiert mit {len(app_settings.pdf_projects)} Projekten")
def _setup_performance_menu(self):
"""Fügt ein Menü-Item für Performance-Einstellungen hinzu."""
# Füge Separator vor der Performance-Einstellung hinzu
self.ui.menuProjekt.addSeparator()
# Erstelle Aktion für Performance-Einstellungen
performance_action = QAction("Performance-Einstellungen...", self)
performance_action.setToolTip(f"Parallele Worker: {app_settings.max_workers}")
performance_action.triggered.connect(self._open_performance_settings)
# Füge die Aktion zum Projekt-Menü hinzu
self.ui.menuProjekt.addAction(performance_action)
logger.debug(f"Performance-Menü initialisiert (max_workers={app_settings.max_workers})")
def _open_performance_settings(self):
"""Öffnet einen Dialog für Performance-Einstellungen."""
from PySide6.QtWidgets import QInputDialog
current_workers = app_settings.max_workers
new_workers, ok = QInputDialog.getInt(
self,
"Performance-Einstellungen",
"Anzahl paralleler Worker für Transformationen:",
current_workers, # value
1, # minValue
32, # maxValue
1, # step
)
if ok and new_workers != current_workers:
app_settings.max_workers = new_workers
app_settings.save()
logger.info(f"max_workers geändert: {current_workers}{new_workers}")
QMessageBox.information(
self,
"Einstellungen gespeichert",
f"Anzahl paralleler Worker wurde auf {new_workers} gesetzt.\n\n"
f"Die Änderung wird bei der nächsten Transformation wirksam.",
)
def open_existing_project(self, project: Project):
"""
Öffnet ein vorhandenes Projekt.
@@ -3970,7 +4014,7 @@ class MainWindow(QMainWindow):
return
# Erstelle und konfiguriere Thread
self.transformation_thread = TransformationThread(jobs, force=force)
self.transformation_thread = TransformationThread(jobs, force=force, max_workers=app_settings.max_workers)
# Verbinde Signale
self.transformation_thread.job_started.connect(self._on_transformation_job_started)