forked from AG_QGIS/Plugin_SN_Basis
42 lines
880 B
Python
42 lines
880 B
Python
|
|
"""
|
|||
|
|
sn_basis/functions/dialog_wrapper.py – Benutzer-Dialoge
|
|||
|
|
"""
|
|||
|
|
|
|||
|
|
from typing import Any
|
|||
|
|
|
|||
|
|
from sn_basis.functions.qt_wrapper import (
|
|||
|
|
QMessageBox,
|
|||
|
|
YES,
|
|||
|
|
NO,
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
|
|||
|
|
# ---------------------------------------------------------
|
|||
|
|
# Öffentliche API
|
|||
|
|
# ---------------------------------------------------------
|
|||
|
|
|
|||
|
|
def ask_yes_no(
|
|||
|
|
title: str,
|
|||
|
|
message: str,
|
|||
|
|
default: bool = False,
|
|||
|
|
parent: Any = None,
|
|||
|
|
) -> bool:
|
|||
|
|
"""
|
|||
|
|
Fragt den Benutzer eine Ja/Nein-Frage.
|
|||
|
|
|
|||
|
|
- In Qt: zeigt einen QMessageBox-Dialog
|
|||
|
|
- Im Mock-Modus: gibt den Default-Wert zurück
|
|||
|
|
"""
|
|||
|
|
try:
|
|||
|
|
buttons = QMessageBox.Yes | QMessageBox.No
|
|||
|
|
result = QMessageBox.question(
|
|||
|
|
parent,
|
|||
|
|
title,
|
|||
|
|
message,
|
|||
|
|
buttons,
|
|||
|
|
YES if default else NO,
|
|||
|
|
)
|
|||
|
|
return result == YES
|
|||
|
|
except Exception:
|
|||
|
|
return default
|