Aufgeräumt und Widget fixiert.

This commit is contained in:
Michael Otto
2025-11-17 11:29:04 +01:00
parent a302ce2228
commit f305eaeff8
6 changed files with 85 additions and 88 deletions

View File

@@ -1,40 +1,37 @@
from qgis.core import QgsProject, QgsExpressionContextUtils
class SettingsLogic:
def __init__(self):
self.project = QgsProject.instance()
# 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 Ausdrucksvariablen (nutzerspezifisch, Sitzungsspeicher)
QgsExpressionContextUtils.setGlobalVariable("sn_amt", fields["amt"])
QgsExpressionContextUtils.setGlobalVariable("sn_behoerde", fields["behoerde"])
QgsExpressionContextUtils.setGlobalVariable("sn_landkreis_user", fields["landkreis_user"])
QgsExpressionContextUtils.setGlobalVariable("sn_sachgebiet", fields["sachgebiet"])
# Globale Variablen
for key in self.global_vars:
QgsExpressionContextUtils.setGlobalVariable(f"sn_{key}", fields.get(key, ""))
# 🟨 Projektvariablen (sichtbar in Projekt → Eigenschaften → Variablen)
QgsExpressionContextUtils.setProjectVariable(self.project, "sn_bezeichnung", fields["bezeichnung"])
QgsExpressionContextUtils.setProjectVariable(self.project, "sn_verfahrensnummer", fields["verfahrensnummer"])
QgsExpressionContextUtils.setProjectVariable(self.project, "sn_gemeinden", fields["gemeinden"])
QgsExpressionContextUtils.setProjectVariable(self.project, "sn_landkreise_proj", fields["landkreise_proj"])
# Projektvariablen
for key in self.project_vars:
QgsExpressionContextUtils.setProjectVariable(self.project, f"sn_{key}", fields.get(key, ""))
print("✅ Ausdrucksvariablen gespeichert.")
def load(self) -> dict:
"""Lädt Werte ausschließlich aus Ausdrucksvariablen (global + projektbezogen)."""
return {
# Globale Variablen (nutzerspezifisch)
"amt": QgsExpressionContextUtils.globalScope().variable("sn_amt") or "",
"behoerde": QgsExpressionContextUtils.globalScope().variable("sn_behoerde") or "",
"landkreis_user": QgsExpressionContextUtils.globalScope().variable("sn_landkreis_user") or "",
"sachgebiet": QgsExpressionContextUtils.globalScope().variable("sn_sachgebiet") or "",
data = {}
# Projektvariablen
"bezeichnung": QgsExpressionContextUtils.projectScope(self.project).variable("sn_bezeichnung") or "",
"verfahrensnummer": QgsExpressionContextUtils.projectScope(self.project).variable("sn_verfahrensnummer") or "",
"gemeinden": QgsExpressionContextUtils.projectScope(self.project).variable("sn_gemeinden") or "",
"landkreise_proj": QgsExpressionContextUtils.projectScope(self.project).variable("sn_landkreise_proj") or ""
}
# 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