forked from AG_QGIS/Plugin_SN_Basis
Fix: beim Plugin-Reload werden neue Toolbars hinzugefügt aber keine gelöscht
Fix: Settings-Tab ist leer Dokumentation begonnen Pluginkonzept.md überarbeitet
This commit is contained in:
@@ -1,9 +1,16 @@
|
||||
"""
|
||||
sn_basis/functions/dialog_wrapper.py – Benutzer-Dialoge
|
||||
|
||||
Dieser Wrapper kapselt alle Benutzer-Dialoge (z. B. Ja/Nein-Abfragen)
|
||||
und sorgt dafür, dass sie sowohl in QGIS als auch im Mock-/Testmodus
|
||||
einheitlich funktionieren.
|
||||
"""
|
||||
|
||||
from typing import Any
|
||||
|
||||
# Import der abstrahierten Qt-Klassen aus dem qt_wrapper.
|
||||
# QMessageBox, YES und NO sind bereits kompatibel zu Qt5/Qt6
|
||||
# und im Mock-Modus durch Dummy-Objekte ersetzt.
|
||||
from sn_basis.functions.qt_wrapper import (
|
||||
QMessageBox,
|
||||
YES,
|
||||
@@ -22,20 +29,34 @@ def ask_yes_no(
|
||||
parent: Any = None,
|
||||
) -> bool:
|
||||
"""
|
||||
Fragt den Benutzer eine Ja/Nein-Frage.
|
||||
Stellt dem Benutzer eine Ja/Nein-Frage.
|
||||
|
||||
- In Qt: zeigt einen QMessageBox-Dialog
|
||||
- Im Mock-Modus: gibt den Default-Wert zurück
|
||||
- In einer echten QGIS-Umgebung wird ein QMessageBox-Dialog angezeigt.
|
||||
- Im Mock-/Testmodus wird kein Dialog geöffnet, sondern der Default-Wert
|
||||
zurückgegeben, damit Tests ohne UI laufen können.
|
||||
|
||||
:param title: Titel des Dialogs
|
||||
:param message: Nachrichtentext
|
||||
:param default: Rückgabewert im Fehler- oder Mock-Fall
|
||||
:param parent: Optionales Parent-Widget
|
||||
:return: True bei "Ja", False bei "Nein"
|
||||
"""
|
||||
try:
|
||||
# Definiert die beiden Buttons, die angezeigt werden sollen.
|
||||
buttons = QMessageBox.Yes | QMessageBox.No
|
||||
|
||||
# Öffnet den Dialog (oder im Mock-Modus: simuliert ihn).
|
||||
result = QMessageBox.question(
|
||||
parent,
|
||||
title,
|
||||
message,
|
||||
buttons,
|
||||
YES if default else NO,
|
||||
YES if default else NO, # Vorauswahl abhängig vom Default
|
||||
)
|
||||
|
||||
# Gibt True zurück, wenn der Benutzer "Ja" gewählt hat.
|
||||
return result == YES
|
||||
|
||||
except Exception:
|
||||
# Falls Qt nicht verfügbar ist (Mock/CI), wird der Default-Wert genutzt.
|
||||
return default
|
||||
|
||||
Reference in New Issue
Block a user