""" 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, )