Files
Plugin_SN_Basis/modules/stilpruefer.py

60 lines
1.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""
sn_basis/modules/stilpruefer.py Prüfung und Anwendung von Layerstilen.
Verwendet ausschließlich qgisqt_wrapper und gibt pruef_ergebnis zurück.
"""
from sn_basis.functions.qgisqt_wrapper import (
apply_style,
)
from sn_basis.modules.pruef_ergebnis import pruef_ergebnis
class Stilpruefer:
"""
Prüft, ob ein Stil auf einen Layer angewendet werden kann.
Die eigentliche Nutzerinteraktion übernimmt der Pruefmanager.
"""
def __init__(self, layer, stil_pfad: str):
"""
layer: QGIS-Layer oder Mock-Layer
stil_pfad: relativer oder absoluter Pfad zum .qml-Stil
"""
self.layer = layer
self.stil_pfad = stil_pfad
# ---------------------------------------------------------
# Hauptfunktion
# ---------------------------------------------------------
def pruefe(self) -> pruef_ergebnis:
"""
Versucht, den Stil anzuwenden.
Rückgabe: pruef_ergebnis
"""
# Wrapper übernimmt:
# - Pfadberechnung
# - Existenzprüfung
# - loadNamedStyle
# - Fehlerbehandlung
# - Mock-Modus
erfolg, meldung = apply_style(self.layer, self.stil_pfad)
if erfolg:
return pruef_ergebnis(
ok=True,
meldung=f"Stil erfolgreich angewendet: {self.stil_pfad}",
aktion="ok",
pfad=self.stil_pfad,
)
# Fehlerfall → Nutzerinteraktion nötig
return pruef_ergebnis(
ok=False,
meldung=meldung,
aktion="stil_nicht_anwendbar",
pfad=self.stil_pfad,
)