mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Improve the email known relay setup dialog
This commit is contained in:
parent
cdecdaf519
commit
55f6b4ee2c
@ -99,14 +99,13 @@ class RelaySetup(QDialog):
|
|||||||
self.tl = QLabel(('<p>'+_('Setup sending email using') +
|
self.tl = QLabel(('<p>'+_('Setup sending email using') +
|
||||||
' <b>{name}</b><p>' +
|
' <b>{name}</b><p>' +
|
||||||
_('If you don\'t have an account, you can sign up for a free {name} email '
|
_('If you don\'t have an account, you can sign up for a free {name} email '
|
||||||
'account at <a href="https://{url}">https://{url}</a>. {extra}')).format(
|
'account at <a href="https://{url}">{url}</a>. {extra}')).format(
|
||||||
**service))
|
**service))
|
||||||
l.addWidget(self.tl, 0, 0, 3, 0)
|
l.addWidget(self.tl, 0, 0, 3, 0)
|
||||||
self.tl.setWordWrap(True)
|
self.tl.setWordWrap(True)
|
||||||
self.tl.setOpenExternalLinks(True)
|
self.tl.setOpenExternalLinks(True)
|
||||||
for name, label in (
|
for name, label in (
|
||||||
['from_', _('Your %s &email address:')],
|
['from_', _('Your %s &email address:')],
|
||||||
['username', _('Your %s &username:')],
|
|
||||||
['password', _('Your %s &password:')],
|
['password', _('Your %s &password:')],
|
||||||
):
|
):
|
||||||
la = QLabel(label%service['name'])
|
la = QLabel(label%service['name'])
|
||||||
@ -122,7 +121,6 @@ class RelaySetup(QDialog):
|
|||||||
l.addWidget(self.ptoggle, r, 2)
|
l.addWidget(self.ptoggle, r, 2)
|
||||||
self.ptoggle.stateChanged.connect(
|
self.ptoggle.stateChanged.connect(
|
||||||
lambda s: self.password.setEchoMode(QLineEdit.EchoMode.Normal if s == Qt.CheckState.Checked else QLineEdit.EchoMode.Password))
|
lambda s: self.password.setEchoMode(QLineEdit.EchoMode.Normal if s == Qt.CheckState.Checked else QLineEdit.EchoMode.Password))
|
||||||
self.username.setText(service['username'])
|
|
||||||
self.password.setEchoMode(QLineEdit.EchoMode.Password)
|
self.password.setEchoMode(QLineEdit.EchoMode.Password)
|
||||||
self.bl = QLabel('<p>' + _(
|
self.bl = QLabel('<p>' + _(
|
||||||
'If you plan to use email to send books to your Kindle, remember to'
|
'If you plan to use email to send books to your Kindle, remember to'
|
||||||
@ -135,12 +133,28 @@ class RelaySetup(QDialog):
|
|||||||
self.resize(self.sizeHint())
|
self.resize(self.sizeHint())
|
||||||
self.service = service
|
self.service = service
|
||||||
|
|
||||||
|
@property
|
||||||
|
def service_username(self):
|
||||||
|
na = self.from_.text()
|
||||||
|
from email.utils import parseaddr
|
||||||
|
addr = parseaddr(na)[-1]
|
||||||
|
if not addr or '@' not in na:
|
||||||
|
return ''
|
||||||
|
return addr
|
||||||
|
|
||||||
def accept(self):
|
def accept(self):
|
||||||
un = str(self.username.text())
|
pw = self.password.text()
|
||||||
if self.service.get('at_in_username', False) and '@' not in un:
|
if not pw:
|
||||||
return error_dialog(self, _('Incorrect username'),
|
return error_dialog(self, _('No password'), _(
|
||||||
_('%s needs the full email address as your username') %
|
'You must specify a password'), show=True)
|
||||||
self.service['name'], show=True)
|
fr = self.from_.text().strip()
|
||||||
|
if not fr:
|
||||||
|
return error_dialog(self, _('No email address'), _(
|
||||||
|
'You must specify an email address'), show=True)
|
||||||
|
un = self.service_username
|
||||||
|
if not un:
|
||||||
|
return error_dialog(self, _('Incorrect email address'), _(
|
||||||
|
'The email address "{}" is not valid').format(self.from_.text()), show=True)
|
||||||
QDialog.accept(self)
|
QDialog.accept(self)
|
||||||
|
|
||||||
|
|
||||||
@ -263,7 +277,7 @@ class SendEmail(QWidget, Ui_Form):
|
|||||||
d = RelaySetup(service, self)
|
d = RelaySetup(service, self)
|
||||||
if d.exec() != QDialog.DialogCode.Accepted:
|
if d.exec() != QDialog.DialogCode.Accepted:
|
||||||
return
|
return
|
||||||
self.relay_username.setText(d.username.text())
|
self.relay_username.setText(d.service_username)
|
||||||
self.relay_password.setText(d.password.text())
|
self.relay_password.setText(d.password.text())
|
||||||
self.email_from.setText(d.from_.text())
|
self.email_from.setText(d.from_.text())
|
||||||
self.relay_host.setText(service['relay'])
|
self.relay_host.setText(service['relay'])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user