Add answer as argument to question's answered signal.

This commit is contained in:
Florian Bruhin 2014-06-13 18:16:24 +02:00
parent a5f71a286d
commit 5a2e6ba99a
3 changed files with 9 additions and 8 deletions

View File

@ -103,7 +103,7 @@ def question(message, mode, handler, cancelled_handler=None, default=None):
q.text = message
q.mode = mode
q.default = default
q.answered.connect(lambda: handler(q.answer))
q.answered.connect(handler)
if cancelled_handler is not None:
q.cancelled.connect(cancelled_handler)
instance().question.emit(q, True)

View File

@ -255,6 +255,7 @@ class Question(QObject):
answered: Emitted when the question has been answered by the user.
This is emitted from qutebrowser.widgets.statusbar._prompt so
it can be emitted after the mode is left.
arg: The answer to the question.
cancelled: Emitted when the question has been cancelled by the user.
answered_yes: Convienience signal emitted when a yesno question was
answered with yes.
@ -262,7 +263,7 @@ class Question(QObject):
answered with no.
"""
answered = pyqtSignal()
answered = pyqtSignal(str)
cancelled = pyqtSignal()
answered_yes = pyqtSignal()
answered_no = pyqtSignal()

View File

@ -93,22 +93,22 @@ class Prompt(QWidget):
self.question.answer = (self.question.user, password)
modeman.leave('prompt', 'prompt accept')
self.hide_prompt.emit()
self.question.answered.emit()
self.question.answered.emit(self.question.answer)
elif self.question.mode == PromptMode.text:
# User just entered text.
self.question.answer = self._input.text()
modeman.leave('prompt', 'prompt accept')
self.question.answered.emit()
self.question.answered.emit(self.question.answer)
elif self.question.mode == PromptMode.yesno:
# User wants to accept the default of a yes/no question.
self.question.answer = self.question.default
modeman.leave('yesno', 'yesno accept')
self.question.answered.emit()
self.question.answered.emit(self.question.answer)
elif self.question.mode == PromptMode.alert:
# User acknowledged an alert
self.question.answer = None
modeman.leave('prompt', 'alert accept')
self.question.answered.emit()
self.question.answered.emit(self.question.answer)
else:
raise ValueError("Invalid question mode!")
@ -121,7 +121,7 @@ class Prompt(QWidget):
return
self.question.answer = True
modeman.leave('yesno', 'yesno accept')
self.question.answered.emit()
self.question.answered.emit(self.question.answer)
self.question.answered_yes.emit()
@cmdutils.register(instance='mainwindow.status.prompt', hide=True,
@ -133,7 +133,7 @@ class Prompt(QWidget):
return
self.question.answer = False
modeman.leave('yesno', 'prompt accept')
self.question.answered.emit()
self.question.answered.emit(self.question.answer)
self.question.answered_no.emit()
def display(self):