forked from AG_QGIS/Plugin_SN_Basis
76 lines
2.3 KiB
Python
76 lines
2.3 KiB
Python
"""
|
||
sn_basis/modules/stilpruefer.py – Prüfung von Layerstilen.
|
||
Prüft ausschließlich, ob ein Stilpfad gültig ist.
|
||
Die Anwendung erfolgt später über eine Aktion.
|
||
"""
|
||
|
||
from pathlib import Path
|
||
|
||
from sn_basis.functions import file_exists
|
||
from sn_basis.modules.pruef_ergebnis import pruef_ergebnis
|
||
|
||
|
||
class Stilpruefer:
|
||
"""
|
||
Prüft, ob ein Stilpfad gültig ist und angewendet werden kann.
|
||
Keine Seiteneffekte, keine QGIS-Aufrufe.
|
||
"""
|
||
|
||
def __init__(self):
|
||
pass
|
||
|
||
# ---------------------------------------------------------
|
||
# Hauptfunktion
|
||
# ---------------------------------------------------------
|
||
|
||
def pruefe(self, stil_pfad: str) -> pruef_ergebnis:
|
||
"""
|
||
Prüft einen Stilpfad.
|
||
Rückgabe: pruef_ergebnis
|
||
"""
|
||
|
||
# -----------------------------------------------------
|
||
# 1. Kein Stil angegeben → OK
|
||
# -----------------------------------------------------
|
||
if not stil_pfad:
|
||
return pruef_ergebnis(
|
||
ok=True,
|
||
meldung="Kein Stil angegeben.",
|
||
aktion="ok",
|
||
kontext=None,
|
||
)
|
||
|
||
pfad = Path(stil_pfad)
|
||
|
||
# -----------------------------------------------------
|
||
# 2. Datei existiert nicht
|
||
# -----------------------------------------------------
|
||
if not file_exists(pfad):
|
||
return pruef_ergebnis(
|
||
ok=False,
|
||
meldung=f"Die Stil-Datei '{stil_pfad}' wurde nicht gefunden.",
|
||
aktion="datei_nicht_gefunden",
|
||
kontext=pfad,
|
||
)
|
||
|
||
# -----------------------------------------------------
|
||
# 3. Falsche Endung
|
||
# -----------------------------------------------------
|
||
if pfad.suffix.lower() != ".qml":
|
||
return pruef_ergebnis(
|
||
ok=False,
|
||
meldung="Die Stil-Datei muss die Endung '.qml' haben.",
|
||
aktion="falsche_endung",
|
||
kontext=pfad,
|
||
)
|
||
|
||
# -----------------------------------------------------
|
||
# 4. Stil ist gültig → Anwendung später
|
||
# -----------------------------------------------------
|
||
return pruef_ergebnis(
|
||
ok=True,
|
||
meldung="Stil-Datei ist gültig.",
|
||
aktion="stil_anwendbar",
|
||
kontext=pfad,
|
||
)
|