Files

60 lines
1.7 KiB
Python
Raw Permalink Normal View History

"""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()