Commit Graph

34 Commits

Author SHA1 Message Date
info fd38eb426f Erweiterte Validierung der Tool-Konfigurationspfade mit hasattr-Checks
Zusätzliche Sicherheitsprüfungen für path_to_binary_file, path_to_jar_file,
path_to_dir und path_to_root_dir Attribute, um NoneType-Fehler zu vermeiden.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-14 15:09:52 +01:00
info dd20067d42 PDF-Vergleich in integrierten Viewer umgeleitet und Alpha-Blending verbessert
Das Diff-PDF-Icon lädt nun alle drei PDFs (diff, ref, new) direkt in den eingebauten Vergleichs-Viewer, statt ein externes Programm zu öffnen. Zusätzlich wurde die Alpha-Blending-Logik für sanftere Übergänge zwischen den Ansichten korrigiert.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-14 13:45:20 +01:00
info 629485f5e4 Progress Bar und Diff-PDF-Icon im TreeWidget implementiert
Neue Features:
- Progress Bar in Spalte 2 während XML-Transformationen
- Diff-PDF-Icon erscheint nach Transformation bei vorhandener Diff-PDF
- Doppelklick auf Icon öffnet Diff-PDF mit System-Viewer
- Initial-Laden von Icons für existierende Diff-PDFs beim Projektstart

Technische Implementierung:
- XML-Item-Mapping mit eindeutigem Key-Format: "xml_path|xsl_id"
- Unterstützt mehrfache Verwendung derselben XML bei verschiedenen XSL-Dateien
- TransformationThread-Signale erweitert um XSL-ID-Parameter
- Widget-Factory-Methoden für zentrierte Progress Bar und klickbare Icons
- Result-Dictionary in transform.py enthält jetzt xsl_id

UI-Anpassungen:
- TreeWidget Spaltenanzahl von 2 auf 3 erhöht
- setItemWidget() für dynamische Widget-Verwaltung in Spalte 2

Dateien:
- src/ui/MainWindow.py: Hauptimplementierung mit Signal-Handlern
- src/transform.py: xsl_id im Result-Dictionary
- src/ui/MainWinddow.ui: Spalte 3 hinzugefügt
- src/ui/MainWinddow_ui.py: Auto-generiert aus UI-Datei

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-13 21:06:40 +01:00
info c699c53a14 PDF-Ordnerstruktur auf 'new', 'ref' und 'diff' umgestellt
Die PDF-Generierung verwendet nun die Ordner 'new', 'ref' und 'diff'
anstelle von 'output', 'valide' und 'diff'. Dies ermöglicht die
Integration mit MainWindow._load_images(), die PDFs in den Ordnern
'new', 'ref' und 'diff' sucht.

Änderungen:
- output_dir → new_dir (für neu generierte PDFs)
- valide_dir → ref_dir (für Referenz-PDFs)
- Alle Variablen und Log-Meldungen entsprechend angepasst
- Unused import entfernt (typing.Optional)

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-12 21:38:24 +01:00
info ee6ded95ab PDF-Dateinamen enthalten nun XSL-ID zur Vermeidung von Überschreibungen
Wenn eine XML-Datei mehreren XSL-Dateien zugeordnet ist, wurden die
generierten PDFs bisher überschrieben. Jetzt wird die XSL-ID in den
Dateinamen integriert (z.B. rechnung_xsl_1.pdf, rechnung_xsl_2.pdf),
sodass jede Transformation ihre eigene PDF-Datei erhält.

Änderungen:
- TransformationJob: xsl_id Parameter hinzugefügt
- Dateinamen-Generierung berücksichtigt XSL-ID (Tuple → String)
- MainWindow: XSL-ID wird an TransformationJob übergeben

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-12 21:24:54 +01:00
info c593ff145b XSL-Transformations-Engine mit Saxon, Apache FOP und diff-pdf implementiert
Fügt die komplette Transformations-Pipeline hinzu:
- Saxon XSLT-Transformation (XML → FO) mit vollständigem Classpath-Support
- Apache FOP PDF-Generierung (FO → PDF) mit plattformübergreifender Unterstützung
- Automatische diff-pdf Vergleichs- und Diff-Generierung
- Valide-PDF-Verwaltung (Referenz-PDFs beim ersten erfolgreichen Build)
- Up-to-Date-Prüfung basierend auf Datei-Zeitstempeln
- Asynchrone Ausführung via TransformationThread (QThread)
- Kontextmenü-Integration für XML- und XSL-Dateien
- Detailliertes Fehler-Reporting und Fortschritts-Feedback

Neue Dateien:
- src/transform.py: TransformationJob-Klasse mit vollständiger Pipeline

Erweiterte Dateien:
- src/ui/MainWindow.py: TransformationThread und Transformations-Methoden

Technische Details:
- Löst Saxon ClassNotFoundException durch Verwendung aller JARs im Saxon-Verzeichnis
- Verwendet -cp statt -jar für vollständigen Classpath-Zugriff
- Automatisches Cleanup temporärer FO-Dateien
- Thread-sicheres Shutdown-Handling

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-11 21:26:13 +01:00
info 6e4d28d3a8 Defensive Null-Checks in MainWindow hinzugefügt
Ergänzt umfassende Existenzprüfungen für pdf_project, project und nodes-Attribute
vor dem Zugriff, um NoneType-Fehler zu vermeiden. Verbessert die Robustheit der
Anwendung bei nicht initialisierten Projekten.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-07 20:34:29 +01:00
info d314cf5612 Hash-basierte XML-Duplikatserkennung und intelligente Dateinamen-Verwaltung
Implementiert automatische Erkennung von XML-Datei-Duplikaten basierend auf blake2b-Hashes. Bei Hash-Match wird die vorhandene Datei automatisch zugeordnet statt sie zu kopieren. Bei Dateinamen-Konflikten werden alternative Namen (datei_1.xml, datei_2.xml, etc.) mit Auswahl-Dialog angeboten.

Neue Features:
- Projekt-weite Hash-Duplikatserkennung
- Automatische Zuordnung vorhandener Dateien bei Hash-Match
- Alternative Dateinamen-Generierung mit Benutzer-Dialog
- Performance-Optimierung durch Set-basierte Dateinamen-Prüfung
- Umfassende Dokumentation und Test-Suite

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-07 20:15:38 +01:00
info f2491c5478 Die XML-Dateien haben nun hashsummen in Projekt-Datei 2025-09-20 17:22:09 +02:00
info 98cc8b26f6 Alphabetische Sortierung des Knotenbaums 2025-09-19 20:29:56 +02:00
info 7c2e687522 Löscheen der XML-Dateien aus dem Projekt implementiert 2025-08-31 17:50:06 +02:00
info 916c29f235 Unnötige Imports entfernt 2025-08-31 17:06:24 +02:00
info c82f9dccbd Die Drag&Drop-Funktionalität für XML-Dateien 2025-08-31 17:04:22 +02:00
info 7ab22dacc3 Einige Erfolgs-Meldungen weren nun unterdrückt 2025-08-14 20:47:48 +02:00
info 203edf3ad1 Kinder in Knoten umbenannt 2025-08-14 20:37:03 +02:00
info db230494a2 Abstand im Baul zwieschen Items angepasst 2025-08-14 20:32:29 +02:00
info 2e977f68c4 Merge branch 'bearbeiten_der_nodes' 2025-08-12 21:15:14 +02:00
info 47f361e3ba Kontextmenü ist repariert 2025-08-12 21:13:00 +02:00
info 21547003f9 Nodes sollen bearbeitbar sein 2025-08-12 20:56:26 +02:00
info b69b8755a8 In jedem TreeItem werden Daten des Nodes komplett gespeichert. 2025-08-12 20:08:26 +02:00
info 8b576b3fa7 Hinzufügen der XML-Dateien
Klassen zur besseren Unterscheidung umbenant
2025-08-10 17:32:22 +02:00
info 690f8bd34d Laden der Daten aus Datenbank. 2025-08-10 14:03:15 +02:00
info feb37ae8ab Icons für Kontextmeanü 2025-08-03 20:31:32 +02:00
info 719d4b34e7 Kontexrmenü für neues Root-Element im Baum 2025-08-03 17:04:23 +02:00
info 253e4fa01d Kontextmenü für Baum erstellt 2025-08-03 16:31:38 +02:00
info d91c19fe8c Der Projekt-Baum wird beim Öffnen des Projektes gefüllt 2025-07-27 18:33:14 +02:00
info 91ae941d03 Config aangepasst
Project-Dialog um Postgres DB erweitert
2025-07-14 21:00:06 +02:00
info b8441d1ab4 Laden der Project.yaml aus dem Projekt-Verzeichnis 2025-06-22 14:47:17 +02:00
info 51e3453f92 Neue Menü mit eingerichteten Projekten 2025-06-22 11:58:57 +02:00
info 02d1d4ada4 Fusion als Standard-Thema gesetzt. Thema wird in config.json gespeichert 2025-06-17 19:11:08 +02:00
info 7145176bfc Dialog für PDF-Projekte 2025-06-16 20:30:56 +02:00
info ae09775c58 Alpha-Übergang optimiert 2025-06-15 19:52:24 +02:00
info 9046dc9174 Über Menü "Einstellungen ..." wird der AppSettings-Dialog eröffnet 2025-06-14 12:30:39 +02:00
info 499f5fc53b MainWindow.py verschoben 2025-06-09 17:17:53 +02:00