Auf Wrapper umgestellt, Prüfarchitektur QT6-kompatibel gemacht (Nicht lauffähig)

This commit is contained in:
2025-12-18 22:00:31 +01:00
parent f64d56d4bc
commit e8fea163b5
31 changed files with 2791 additions and 889 deletions

View File

@@ -1,37 +1,47 @@
from qgis.core import QgsProject, QgsExpressionContextUtils
"""
sn_basis/funktions/settings_logic.py Logik zum Lesen und Schreiben der Plugin-Einstellungen
über den zentralen qgisqt_wrapper.
"""
from sn_basis.functions.qgisqt_wrapper import (
get_variable,
set_variable,
)
class SettingsLogic:
def __init__(self):
self.project = QgsProject.instance()
"""
Verwaltet das Laden und Speichern der Plugin-Einstellungen.
Alle Variablen werden als sn_* Projektvariablen gespeichert.
"""
# Definition der Variablen-Namen
self.global_vars = ["amt", "behoerde", "landkreis_user", "sachgebiet"]
self.project_vars = ["bezeichnung", "verfahrensnummer", "gemeinden", "landkreise_proj"]
def save(self, fields: dict):
"""Speichert Felder als globale und projektbezogene Ausdrucksvariablen."""
# Globale Variablen
for key in self.global_vars:
QgsExpressionContextUtils.setGlobalVariable(f"sn_{key}", fields.get(key, ""))
# Projektvariablen
for key in self.project_vars:
QgsExpressionContextUtils.setProjectVariable(self.project, f"sn_{key}", fields.get(key, ""))
print("✅ Ausdrucksvariablen gespeichert.")
# Alle Variablen, die gespeichert werden sollen
VARIABLEN = [
"amt",
"behoerde",
"landkreis_user",
"sachgebiet",
"bezeichnung",
"verfahrensnummer",
"gemeinden",
"landkreise_proj",
]
def load(self) -> dict:
"""Lädt Werte ausschließlich aus Ausdrucksvariablen (global + projektbezogen)."""
"""
Lädt alle Variablen aus dem Projekt.
Rückgabe: dict mit allen Werten (leere Strings, wenn nicht gesetzt).
"""
daten = {}
for key in self.VARIABLEN:
daten[key] = get_variable(key, scope="project")
return daten
data = {}
# Globale Variablen
for key in self.global_vars:
data[key] = QgsExpressionContextUtils.globalScope().variable(f"sn_{key}") or ""
# Projektvariablen
for key in self.project_vars:
data[key] = QgsExpressionContextUtils.projectScope(self.project).variable(f"sn_{key}") or ""
return data
def save(self, daten: dict):
"""
Speichert alle übergebenen Variablen im Projekt.
daten: dict mit key → value
"""
for key, value in daten.items():
if key in self.VARIABLEN:
set_variable(key, value, scope="project")