Imports für sn_Verfahrensgebiet ergänzt, Stilprüfer wird jetzt auch für apply_style verwendet

This commit is contained in:
2026-03-06 10:20:40 +01:00
parent 3b56725e4f
commit 5dc8412a6a
7 changed files with 203 additions and 40 deletions

View File

@@ -5,7 +5,7 @@ sn_basis/modules/Pruefmanager.py
from __future__ import annotations
from typing import Optional, Any
from sn_basis.functions import ask_yes_no, info, warning, error
from sn_basis.functions import ask_yes_no, info, warning, error, ask_overwrite_append_cancel_custom
from sn_basis.modules.pruef_ergebnis import pruef_ergebnis, PruefAktion
print("DEBUG: Pruefmanager DATEI GELADEN:", __file__)
@@ -60,6 +60,26 @@ class Pruefmanager:
# VERFAHRENS-DB-spezifische Entscheidungen
# ------------------------------------------------------------------
def _handle_datei_existiert(self, ergebnis: pruef_ergebnis) -> pruef_ergebnis:
"""Handhabt das Szenario, dass die Ziel-Verfahrens-DB bereits existiert.
Zeigt einen einzigen Dialog mit drei Optionen an:
- **Überschreiben**: Bestehende Layer ersetzen (entspricht YES)
- **Anhängen**: Neue Layer zur Datei hinzufügen (entspricht NO)
- **Abbrechen**: Vorgang beenden (entspricht CANCEL)
Parameters
----------
ergebnis : pruef_ergebnis
Eingabe-Ergebnis mit Dateipfad im ``kontext``-Attribut.
Returns
-------
pruef_ergebnis
Ergebnis mit Aktion:
- ``datei_existiert_ueberschreiben``
- ``datei_existiert_anhaengen``
- ``datei_existiert_ueberspringen`` (für Cancel-Fall)
"""
if self.ui_modus != "qgis":
return ergebnis
@@ -72,48 +92,34 @@ class Pruefmanager:
"Was soll geschehen?\n\n"
"• **Überschreiben**: Bestehende Layer ersetzen\n"
"• **Anhängen**: Neue Layer hinzufügen\n"
"• **Überspringen**: Nur temporäre Layer erzeugen"
"• **Abbrechen**: Vorgang beenden"
)
# Vereinfacht: Erst Überschreiben? → Dann Anhängen? → Überspringen
if ask_yes_no(
titel,
f"{meldung}\n\n**Überschreiben** (alle Layer ersetzen)?",
default=False,
parent=self.parent
):
# Einzelner Dialog mit drei Optionen
entscheidung = ask_overwrite_append_cancel_custom(
parent=self.parent,
title=titel,
message=meldung
)
if entscheidung == "overwrite":
return pruef_ergebnis(
ok=True,
aktion="datei_existiert_ueberschreiben",
kontext=ergebnis.kontext,
)
if ask_yes_no(
titel,
f"{meldung}\n\n**Anhängen** (neue Layer hinzufügen)?",
default=False,
parent=self.parent
):
elif entscheidung == "append":
return pruef_ergebnis(
ok=True,
aktion="datei_existiert_anhaengen",
kontext=ergebnis.kontext,
)
if ask_yes_no(
titel,
f"{meldung}\n\n**Überspringen** (nur temporäre Layer)?",
default=True,
parent=self.parent
):
else: # cancel
return pruef_ergebnis(
ok=True,
aktion="datei_existiert_ueberspringen",
kontext=ergebnis.kontext,
)
return ergebnis
# ------------------------------------------------------------------
# Basis-Entscheidungen (KORREKT: → pruef_ergebnis)
# ------------------------------------------------------------------