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:
+45
-1
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user