from PyQt5.QtWidgets import QMessageBox, QFileDialog from Dateipruefer import DateiEntscheidung class PruefManager: def __init__(self, iface=None, plugin_pfad=None): self.iface = iface self.plugin_pfad = plugin_pfad def frage_datei_ersetzen_oder_anhaengen(self, pfad: str) -> DateiEntscheidung: """Fragt den Nutzer, ob die vorhandene Datei ersetzt, angehängt oder abgebrochen werden soll.""" msg = QMessageBox() msg.setIcon(QMessageBox.Question) msg.setWindowTitle("Datei existiert") msg.setText(f"Die Datei '{pfad}' existiert bereits.\nWas möchtest du tun?") msg.setStandardButtons(QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel) msg.setDefaultButton(QMessageBox.Yes) msg.button(QMessageBox.Yes).setText("Ersetzen") msg.button(QMessageBox.No).setText("Anhängen") msg.button(QMessageBox.Cancel).setText("Abbrechen") result = msg.exec_() if result == QMessageBox.Yes: return DateiEntscheidung.ERSETZEN elif result == QMessageBox.No: return DateiEntscheidung.ANHAENGEN else: return DateiEntscheidung.ABBRECHEN def frage_temporär_verwenden(self) -> bool: """Fragt den Nutzer, ob mit temporären Layern gearbeitet werden soll.""" msg = QMessageBox() msg.setIcon(QMessageBox.Question) msg.setWindowTitle("Temporäre Layer") msg.setText("Kein Speicherpfad wurde angegeben.\nMit temporären Layern fortfahren?") msg.setStandardButtons(QMessageBox.Yes | QMessageBox.No) msg.setDefaultButton(QMessageBox.Yes) result = msg.exec_() return result == QMessageBox.Yes def waehle_dateipfad(self, titel="Speicherort wählen", filter="GeoPackage (*.gpkg)") -> str: """Öffnet einen QFileDialog zur Dateiauswahl.""" pfad, _ = QFileDialog.getSaveFileName( parent=None, caption=titel, directory=self.plugin_pfad or "", filter=filter ) return pfad