Feature: Expand-Status von Tree-Knoten bei jedem Speichern persistent sichern

- ProjectData um optionales Feld 'expanded_nodes' erweitert (abwärtskompatibel)
- _save_project_settings() speichert nun automatisch den Expand-Status
- Expand-Status wird bei allen Speicheroperationen gesichert:
  * Beim Bearbeiten von TreeNodes und XslFiles
  * Bei Drag&Drop-Operationen im Tree
  * Bei Hash-Berechnungen für XML-Dateien
  * Beim Laden von Daten aus der Datenbank
  * Beim Beenden der Anwendung
- Beim Laden eines Projekts werden aufgeklappte Knoten wiederhergestellt
- Rekursive Speicherung und Wiederherstellung für TreeNode und XslFile
- Umfassendes Logging für Debugging und Fehlerbehandlung
This commit is contained in:
2026-02-01 15:44:55 +01:00
parent 0f14418749
commit e6b2743677
3 changed files with 113 additions and 0 deletions
+2
View File
@@ -75,6 +75,7 @@ class SSLMode(str, Enum):
class XsltVersion(str, Enum):
"""XSLT-Version für Saxon-Transformationen."""
XSLT_1_0 = "1.0" # JAXP API (nur XSLT 1.0)
XSLT_2_0_3_0 = "2.0/3.0" # s9api (XSLT 2.0 und 3.0)
@@ -216,6 +217,7 @@ class ProjectData(BaseModel):
"""
nodes: list[TreeNode] = []
expanded_nodes: list[tuple] | None = None # Optional: IDs der aufgeklappten Knoten (TreeNode und XslFile)
@classmethod
def readSettings(cls, project_dir: Path):