- icons.py: _ICON_MAP entfernt (war reine Identitätsabbildung), Pfad
wird direkt aus dem Namen abgeleitet
- icons.py: Render-Cache mit Schlüssel (name, theme-farbe) ergänzt,
vermeidet wiederholtes SVG-Rendering bei Baum-/Kontextmenü-Aufbau
- icons.py: Qt-Ressourcen-Registrierung gekapselt (Import aus main.py
hierher verschoben)
- download_icons.py: toten folder-open-Eintrag entfernt (in Feather
nicht vorhanden, nirgends genutzt)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Der Skill setzt jetzt nach einem erfolgreichen Commit mit Versionserhöhung
automatisch einen passenden annotated Git-Tag (z.B. v1.7.1).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Im PyInstaller-Bundle fehlten .dist-info-Metadaten, wodurch importlib.metadata
keine Paketversionen liefern konnte. Lösung: DocuMentor.spec erzeugt beim Build
einen Versions-Snapshot (versions.json) der ins Bundle eingebettet wird.
license_parser.py liest diesen Snapshot im Bundle-Modus statt importlib.metadata.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Der Menüpunkt 'Bearbeiten' steht nun ganz oben im Kontextmenü aller
Knotentypen (TreeNode, XslFile, XmlFile), wird fett dargestellt und
öffnet sich per Doppelklick auf den jeweiligen Knoten.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
subprocess.CREATE_NO_WINDOW-Flag in transform.py und worker_pool_base.py
gesetzt, damit beim Start aus einer PyInstaller-EXE keine Konsolenfenster
für Saxon, FOP und diff-pdf erscheinen.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Altes elegantes Dunkelmodus-Design durch ein industrielles Beton-Stahl-Theme ersetzt; nicht mehr benötigte Schriftarten-Dateien und alte HTML-Versionen entfernt.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Neuer Dialog ermöglicht es, einem XML-Knoten XSL-Zuordnungen hinzuzufügen
oder zu entfernen. XmlToXslAssignDialog wiederverwendet mit edit_mode,
Vorauswahl per preselected_xsl_ids und get_selection_diff(). Beim Entfernen
werden zugehörige PDF-Dateien gelöscht; bei verbleibend leerer Zuordnung
wird das physische Löschen der XML-Datei angeboten.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Mittlere Spalte (Kontextinfos) aus dem Projekt-Baum entfernt, sodass nur noch
Bezeichnung und Diff-PDF-Anzahl angezeigt werden. XSL-Dateiname wird jetzt als
nur-lese Label oben im XslFileEditDialog angezeigt.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Ermöglicht die Definition von XSLT-Parametern auf Projektebene, die als
Basis für alle Transformationen dienen und von TreeNode- bzw. XslFile-
Parametern überschrieben werden können (Projekt < TreeNode < XslFile).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Neues Suchfeld über dem Baum filtert Knoten und XSL-Dateien per
case-insensitive Textsuche. Übergeordnete Knoten bleiben bei
Kind-Treffern sichtbar und werden automatisch expandiert. Der
gespeicherte Expand-Status wird beim Leeren der Suche wiederhergestellt.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Beim Import aus der PostgreSQL-Datenbank werden nun XSL-Einträge erkannt,
die nicht mehr in der DB vorhanden sind. Ein Dialog zeigt diese gruppiert
in einer Baumansicht an und bietet die Option, sie samt nicht mehr
verwendeter XML-/PDF-Dateien aus dem Projekt zu entfernen.
Leere TreeNodes werden automatisch bereinigt.
Zusätzlich: SQL-Filter `r3.export = 0` in data.sql ergänzt.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
pyproject.toml und THIRD_PARTY_LICENSES.txt werden nun ins PyInstaller-Bundle
eingebunden. Pfadauflösung nutzt sys._MEIPASS im Bundle-Kontext.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Legende von unten links nach oben links verschoben, damit vis.js-Navigationspfeile nicht überdeckt werden
- network.fit() mit Animation bei jeder Suche und Checkbox-Änderung, sodass alle relevanten Knoten im Viewport sichtbar sind
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Knoten im vis.js Netzwerkgraph werden nun farblich nach drei Kategorien
unterschieden: blau (nur im Verzeichnis), grün (im Projekt referenziert),
rot/gestrichelt (im Projekt, aber Datei fehlt). Inkl. Legende und
erweitertem Tooltip mit Projekt-Zugehörigkeit.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
URLs in der Spalte "Webseite" werden als anklickbare Links dargestellt,
die sich im Standardbrowser öffnen.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
vis.js rendert String-Titles als Klartext. Node-Titles werden nun vor der
DataSet-Erstellung in DOM-Elemente konvertiert, damit HTML-Tags (<b>, <br>)
korrekt dargestellt werden.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Layout-Umschaltung zwischen barnesHut, ForceAtlas2, Repulsion und hierarchischem
Layout mit konfigurierbaren Parametern pro Layout. Einstellungen werden persistent
in AppSettings gespeichert und beim Öffnen des Dialogs wiederhergestellt.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Neuer Skill prüft bei jedem Commit automatisch ob THIRD_PARTY_LICENSES.txt
mit pyproject.toml synchron ist. Fehlenden lxml-Eintrag ergänzt und
Kategorie-Spalte im AboutDialog verbreitert.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Neues Menü "Hilfe > Info" zeigt Programmversion, Python-Version und alle
Drittanbieter-Bibliotheken mit installierten Versionen und Lizenzinfos an.
Der license_parser liest THIRD_PARTY_LICENSES.txt als Datenquelle und
ergänzt tatsächlich installierte Versionen via importlib.metadata.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
installer.iss hatte noch Version 0.1.0 statt 1.0.0. Neuer Skill fragt
bei jedem Commit, ob die Programmversion aktualisiert werden soll.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Ein-/ausblendbare Sidebar mit tab-übergreifender Suche hinzugefügt
- Graph-Suchfilter blendet nicht-betroffene XSL-Dateien aus dem Netzwerkgraph aus
- Regex-basierte XSL-Abhängigkeitserkennung durch lxml-Parser ersetzt
- Suchfilter wird beim Tab-Wechsel erneut angewendet
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Gesamte Windows-Distribution-Dokumentation (ZIP, Setup.exe, MSI) in BUILD.md
zusammengeführt. docs/windows_distribution.md entfernt, da redundant.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
XslDependencyDialog mit zwei Tabs: Baumansicht (vorwärts/rückwärts-Abhängigkeiten)
und interaktiver Netzwerkgraph (vis.js in QWebEngineView mit Physics-Simulation,
Hover-Tooltips, Nachbar-Hervorhebung). Graceful Fallback wenn WebEngine fehlt.
THIRD_PARTY_LICENSES um psutil, PyInstaller, Pillow, vis-network ergänzt und
Versionen aktualisiert.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>