2025-12-18 22:00:31 +01:00
|
|
|
|
"""
|
2025-12-19 14:29:52 +01:00
|
|
|
|
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.
|
2025-12-18 22:00:31 +01:00
|
|
|
|
"""
|
|
|
|
|
|
|
2025-12-19 14:29:52 +01:00
|
|
|
|
from pathlib import Path
|
2025-12-18 22:00:31 +01:00
|
|
|
|
|
2025-12-19 14:29:52 +01:00
|
|
|
|
from sn_basis.functions import file_exists
|
2025-12-18 22:00:31 +01:00
|
|
|
|
from sn_basis.modules.pruef_ergebnis import pruef_ergebnis
|
2025-12-02 20:55:51 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Stilpruefer:
|
|
|
|
|
|
"""
|
2025-12-19 14:29:52 +01:00
|
|
|
|
Prüft, ob ein Stilpfad gültig ist und angewendet werden kann.
|
|
|
|
|
|
Keine Seiteneffekte, keine QGIS-Aufrufe.
|
2025-12-02 20:55:51 +01:00
|
|
|
|
"""
|
|
|
|
|
|
|
2025-12-19 14:29:52 +01:00
|
|
|
|
def __init__(self):
|
|
|
|
|
|
pass
|
2025-12-18 22:00:31 +01:00
|
|
|
|
|
|
|
|
|
|
# ---------------------------------------------------------
|
|
|
|
|
|
# Hauptfunktion
|
|
|
|
|
|
# ---------------------------------------------------------
|
|
|
|
|
|
|
2025-12-19 14:29:52 +01:00
|
|
|
|
def pruefe(self, stil_pfad: str) -> pruef_ergebnis:
|
2025-12-18 22:00:31 +01:00
|
|
|
|
"""
|
2025-12-19 14:29:52 +01:00
|
|
|
|
Prüft einen Stilpfad.
|
2025-12-18 22:00:31 +01:00
|
|
|
|
Rückgabe: pruef_ergebnis
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
2025-12-19 14:29:52 +01:00
|
|
|
|
# -----------------------------------------------------
|
|
|
|
|
|
# 1. Kein Stil angegeben → OK
|
|
|
|
|
|
# -----------------------------------------------------
|
|
|
|
|
|
if not stil_pfad:
|
2025-12-18 22:00:31 +01:00
|
|
|
|
return pruef_ergebnis(
|
|
|
|
|
|
ok=True,
|
2025-12-19 14:29:52 +01:00
|
|
|
|
meldung="Kein Stil angegeben.",
|
2025-12-18 22:00:31 +01:00
|
|
|
|
aktion="ok",
|
2025-12-19 14:29:52 +01:00
|
|
|
|
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,
|
2025-12-02 20:55:51 +01:00
|
|
|
|
)
|
|
|
|
|
|
|
2025-12-19 14:29:52 +01:00
|
|
|
|
# -----------------------------------------------------
|
|
|
|
|
|
# 4. Stil ist gültig → Anwendung später
|
|
|
|
|
|
# -----------------------------------------------------
|
2025-12-18 22:00:31 +01:00
|
|
|
|
return pruef_ergebnis(
|
2025-12-19 14:29:52 +01:00
|
|
|
|
ok=True,
|
|
|
|
|
|
meldung="Stil-Datei ist gültig.",
|
|
|
|
|
|
aktion="stil_anwendbar",
|
|
|
|
|
|
kontext=pfad,
|
2025-12-02 20:55:51 +01:00
|
|
|
|
)
|