forked from AG_QGIS/Plugin_SN_Basis
Auf Wrapper umgestellt, Prüfarchitektur QT6-kompatibel gemacht (Nicht lauffähig)
This commit is contained in:
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user