"""Anmeldedialog: E-Mail und Passwort. Die Server-URL ist fest im Client hinterlegt (api_client.DEFAULT_BASE_URL). Die E-Mail-Adresse wird in den QGIS-Einstellungen gemerkt, das Passwort bewusst nicht. """ from qgis.PyQt.QtCore import QSettings from qgis.PyQt.QtWidgets import ( QDialog, QDialogButtonBox, QFormLayout, QLineEdit, ) SETTINGS_GROUP = "vln_karten" class LoginDialog(QDialog): def __init__(self, parent=None): super().__init__(parent) self.setWindowTitle("VLN Karten — Anmeldung") self.setMinimumWidth(380) settings = QSettings() settings.beginGroup(SETTINGS_GROUP) self.mail_edit = QLineEdit(settings.value("mail", "")) settings.endGroup() self.mail_edit.setPlaceholderText("vorname.name@beispiel.de") self.password_edit = QLineEdit() self.password_edit.setEchoMode(QLineEdit.EchoMode.Password) layout = QFormLayout(self) layout.addRow("E-Mail:", self.mail_edit) layout.addRow("Passwort:", self.password_edit) buttons = QDialogButtonBox( QDialogButtonBox.StandardButton.Ok | QDialogButtonBox.StandardButton.Cancel, parent=self, ) buttons.button(QDialogButtonBox.StandardButton.Ok).setText("Anmelden") buttons.accepted.connect(self.accept) buttons.rejected.connect(self.reject) layout.addRow(buttons) def accept(self): settings = QSettings() settings.beginGroup(SETTINGS_GROUP) settings.setValue("mail", self.mail()) settings.endGroup() super().accept() def mail(self): return self.mail_edit.text().strip() def password(self): return self.password_edit.text()