60 lines
1.7 KiB
Python
60 lines
1.7 KiB
Python
|
|
"""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()
|