Handle cancelling of authentication

This commit is contained in:
Florian Bruhin 2014-05-19 17:57:58 +02:00
parent 9ffc8d74c4
commit 77eb7d621a
3 changed files with 11 additions and 5 deletions

View File

@ -698,8 +698,8 @@ DATA = OrderedDict([
('keybind.prompt', sect.ValueList(
types.KeyBindingName(), types.KeyBinding(),
#('<Escape>', 'leave-mode'),
#('<Ctrl-N>', 'leave-mode'),
('<Escape>', 'leave-mode'),
('<Ctrl-N>', 'leave-mode'),
('<Return>', 'prompt-accept'),
)),

View File

@ -54,6 +54,7 @@ class Prompt(TextBase):
show_prompt = pyqtSignal()
hide_prompt = pyqtSignal()
cancelled = pyqtSignal()
def __init__(self, parent=None):
super().__init__(parent)
@ -77,6 +78,8 @@ class Prompt(TextBase):
self._input.clear()
self._input.setEchoMode(QLineEdit.Normal)
self.hide_prompt.emit()
if self.question.answer is None:
self.cancelled.emit()
@cmdutils.register(instance='mainwindow.status.prompt', hide=True,
modes=['prompt'])
@ -129,6 +132,7 @@ class Prompt(TextBase):
def exec_(self):
self.display()
self.question.answered.connect(self.loop.quit)
self.cancelled.connect(self.loop.quit)
self.loop.exec_()
return self.question.answer

View File

@ -323,9 +323,11 @@ class StatusBar(QWidget):
q.mode = PromptMode.user_pwd
q.text = "Username ({}):".format(authenticator.realm())
self.prompt.question = q
user, password = self.prompt.exec_()
authenticator.setUser(user)
authenticator.setPassword(password)
answer = self.prompt.exec_()
if answer is not None:
user, password = answer
authenticator.setUser(user)
authenticator.setPassword(password)
def resizeEvent(self, e):
"""Extend resizeEvent of QWidget to emit a resized signal afterwards.