2025-12-18 22:00:31 +01:00
|
|
|
|
"""
|
|
|
|
|
|
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
|
2025-12-02 20:55:51 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Stilpruefer:
|
|
|
|
|
|
"""
|
2025-12-18 22:00:31 +01:00
|
|
|
|
Prüft, ob ein Stil auf einen Layer angewendet werden kann.
|
|
|
|
|
|
Die eigentliche Nutzerinteraktion übernimmt der Pruefmanager.
|
2025-12-02 20:55:51 +01:00
|
|
|
|
"""
|
|
|
|
|
|
|
2025-12-18 22:00:31 +01:00
|
|
|
|
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)
|
2025-12-02 20:55:51 +01:00
|
|
|
|
|
2025-12-18 22:00:31 +01:00
|
|
|
|
if erfolg:
|
|
|
|
|
|
return pruef_ergebnis(
|
|
|
|
|
|
ok=True,
|
|
|
|
|
|
meldung=f"Stil erfolgreich angewendet: {self.stil_pfad}",
|
|
|
|
|
|
aktion="ok",
|
|
|
|
|
|
pfad=self.stil_pfad,
|
2025-12-02 20:55:51 +01:00
|
|
|
|
)
|
|
|
|
|
|
|
2025-12-18 22:00:31 +01:00
|
|
|
|
# Fehlerfall → Nutzerinteraktion nötig
|
|
|
|
|
|
return pruef_ergebnis(
|
|
|
|
|
|
ok=False,
|
|
|
|
|
|
meldung=meldung,
|
|
|
|
|
|
aktion="stil_nicht_anwendbar",
|
|
|
|
|
|
pfad=self.stil_pfad,
|
2025-12-02 20:55:51 +01:00
|
|
|
|
)
|