c27c649142
Neue Kontextmenü-Funktionalität zum Batch-Akzeptieren von Diff-PDFs: - Neue Aktion "Alle Änderungen übernehmen" für TreeNode und XslFile - Wird nur aktiviert, wenn mindestens eine Diff-PDF unter dem Knoten existiert - Akzeptiert alle Diff-PDFs unter dem ausgewählten Knoten mit einem Klick Verhalten: - Verschiebt alle new-PDFs nach ref (alte ref-PDFs werden gelöscht) - Löscht alle diff-PDFs - Entfernt Diff-Icons bei allen betroffenen XML-Knoten - Aktualisiert Diff-PDF-Zähler auf allen übergeordneten Ebenen - Zeigt Bestätigungsdialog mit Anzahl der zu akzeptierenden Änderungen - Zeigt Erfolgsmeldung nach Abschluss Viewer-Behandlung: - KEINE Diff-PDF wird in den Viewer geladen - Falls eine akzeptierte Diff-PDF gerade im Viewer angezeigt wird, wird der Viewer geleert - Kein XML-Knoten wird im TreeWidget ausgewählt Bugfixes: - XSL-ID wird korrekt als "2002_1_128" statt "(2002, 1, 128)" formatiert - Relative Pfade werden für xml_item_map verwendet (statt absolute Pfade) - Diff-Icons werden jetzt korrekt entfernt Implementierungsdetails: - _collect_all_diff_pdfs_under_node(): Sammelt alle Diff-PDFs unter TreeNode oder XslFile - _accept_single_diff_pdf(): Akzeptiert eine einzelne Diff-PDF ohne Viewer-Update - _accept_all_changes_under_node(): Handler für Batch-Accept-Operation - Kontextmenü-Integration in _create_context_menu_for_type() - Logging-Konfiguration in main.py hinzugefügt (DEBUG-Level) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
47 lines
1.1 KiB
Python
47 lines
1.1 KiB
Python
import sys
|
|
import logging
|
|
|
|
from PySide6.QtWidgets import QApplication
|
|
|
|
from ui.MainWindow import MainWindow
|
|
from ui.AppSettings import AppSettingsDlg
|
|
from conf import app_settings
|
|
|
|
|
|
def main():
|
|
"""Haupteinstiegspunkt der Anwendung."""
|
|
# Logging konfigurieren
|
|
logging.basicConfig(
|
|
level=logging.DEBUG,
|
|
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
|
datefmt='%H:%M:%S'
|
|
)
|
|
|
|
# QApplication-Instanz erstellen
|
|
app = QApplication(sys.argv)
|
|
|
|
# Hauptfenster erstellen
|
|
window = MainWindow()
|
|
|
|
# Hauptfenster anzeigen
|
|
window.show()
|
|
|
|
if (
|
|
len(app_settings.apache_fops) == 0
|
|
or len(app_settings.diff_pdfs) == 0
|
|
or len(app_settings.java_vms) == 0
|
|
or len(app_settings.saxon_jars) == 0
|
|
or len(app_settings.xsl_dirs) == 0
|
|
or len(app_settings.pdf_projects) == 0
|
|
):
|
|
# Als Modal Dialog öffnen!
|
|
dlg = AppSettingsDlg(window, app_settings)
|
|
dlg.exec()
|
|
|
|
# Anwendung ausführen und Rückgabewert zurückgeben
|
|
return app.exec()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main())
|