Performance-Optimierung bei Duplikat-Dateinamengenerierung

Sammelt alle verwendeten XML-Dateinamen einmalig in ein Set für schnelleren Lookup beim Generieren alternativer Dateinamen. Ersetzt wiederholte Funktionsaufrufe durch effizienten Set-Lookup.

🤖 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-07 20:04:37 +01:00
parent 2e69c5b3d1
commit 104698ab0f
+6 -3
View File
@@ -2294,13 +2294,17 @@ class MainWindow(QMainWindow):
base_name = original_path.stem # "datei"
extension = original_path.suffix # ".xml"
# Sammle einmalig alle verwendeten Dateinamen (Performance-Optimierung)
all_xml_files = self._get_all_project_xml_files()
used_names = {xml_file.xml.name for xml_file in all_xml_files}
counter = 1
while True:
new_name = f"{base_name}_{counter}{extension}"
new_path = xml_dir / new_name
# Prüfe sowohl physische Existenz als auch Verwendung im Projekt
if not new_path.exists() and not self._is_filename_used_in_project(Path("xml") / new_name):
# Prüfe sowohl physische Existenz als auch Verwendung im Projekt (optimierter Set-Lookup)
if not new_path.exists() and new_name not in used_names:
logger.debug(f"Alternativer Dateiname generiert: {new_name}")
return new_path
@@ -2313,7 +2317,6 @@ class MainWindow(QMainWindow):
except Exception as e:
logger.error(f"Fehler beim Generieren alternativer Dateinamen für {original_path}: {e}")
# Fallback: Zeitstempel verwenden
import time
timestamp = int(time.time())
fallback_name = f"{original_path.stem}_{timestamp}{original_path.suffix}"
return xml_dir / fallback_name