forked from AG_QGIS/Plugin_SN_Basis
Imports für sn_Verfahrensgebiet ergänzt, Stilprüfer wird jetzt auch für apply_style verwendet
This commit is contained in:
@@ -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)
|
||||
# ------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user