Use object registry for prompter.
This commit is contained in:
parent
ffaf4f0cb0
commit
487300f926
@ -379,6 +379,7 @@ class Application(QApplication):
|
|||||||
searchrunner = self.registry['searchrunner']
|
searchrunner = self.registry['searchrunner']
|
||||||
messagebridge = self.registry['messagebridge']
|
messagebridge = self.registry['messagebridge']
|
||||||
modeman = self.registry['modeman']
|
modeman = self.registry['modeman']
|
||||||
|
prompter = self.registry['prompter']
|
||||||
|
|
||||||
# misc
|
# misc
|
||||||
self.lastWindowClosed.connect(self.shutdown)
|
self.lastWindowClosed.connect(self.shutdown)
|
||||||
@ -388,7 +389,7 @@ class Application(QApplication):
|
|||||||
modeman.entered.connect(status.on_mode_entered)
|
modeman.entered.connect(status.on_mode_entered)
|
||||||
modeman.left.connect(status.on_mode_left)
|
modeman.left.connect(status.on_mode_left)
|
||||||
modeman.left.connect(cmd.on_mode_left)
|
modeman.left.connect(cmd.on_mode_left)
|
||||||
modeman.left.connect(status.prompt.prompter.on_mode_left)
|
modeman.left.connect(prompter.on_mode_left)
|
||||||
|
|
||||||
# commands
|
# commands
|
||||||
cmd.got_cmd.connect(self._commandrunner.run_safely)
|
cmd.got_cmd.connect(self._commandrunner.run_safely)
|
||||||
@ -413,7 +414,7 @@ class Application(QApplication):
|
|||||||
messagebridge.s_set_text.connect(status.set_text)
|
messagebridge.s_set_text.connect(status.set_text)
|
||||||
messagebridge.s_maybe_reset_text.connect(status.txt.maybe_reset_text)
|
messagebridge.s_maybe_reset_text.connect(status.txt.maybe_reset_text)
|
||||||
messagebridge.s_set_cmd_text.connect(cmd.set_cmd_text)
|
messagebridge.s_set_cmd_text.connect(cmd.set_cmd_text)
|
||||||
messagebridge.s_question.connect(status.prompt.prompter.ask_question,
|
messagebridge.s_question.connect(prompter.ask_question,
|
||||||
Qt.DirectConnection)
|
Qt.DirectConnection)
|
||||||
|
|
||||||
# config
|
# config
|
||||||
@ -730,7 +731,7 @@ class Application(QApplication):
|
|||||||
return
|
return
|
||||||
self._shutting_down = True
|
self._shutting_down = True
|
||||||
log.destroy.debug("Shutting down with status {}...".format(status))
|
log.destroy.debug("Shutting down with status {}...".format(status))
|
||||||
if self.mainwindow.status.prompt.prompter.shutdown():
|
if self.registry['prompter'].shutdown():
|
||||||
# If shutdown was called while we were asking a question, we're in
|
# If shutdown was called while we were asking a question, we're in
|
||||||
# a still sub-eventloop (which gets quitted now) and not in the
|
# a still sub-eventloop (which gets quitted now) and not in the
|
||||||
# main one.
|
# main one.
|
||||||
|
@ -24,6 +24,7 @@ from PyQt5.QtWidgets import QHBoxLayout, QWidget, QLineEdit
|
|||||||
|
|
||||||
from qutebrowser.widgets import misc
|
from qutebrowser.widgets import misc
|
||||||
from qutebrowser.widgets.statusbar import textbase, prompter
|
from qutebrowser.widgets.statusbar import textbase, prompter
|
||||||
|
from qutebrowser.utils import utils
|
||||||
|
|
||||||
|
|
||||||
class PromptLineEdit(misc.MinimalLineEditMixin, QLineEdit):
|
class PromptLineEdit(misc.MinimalLineEditMixin, QLineEdit):
|
||||||
@ -40,7 +41,6 @@ class Prompt(QWidget):
|
|||||||
"""The prompt widget shown in the statusbar.
|
"""The prompt widget shown in the statusbar.
|
||||||
|
|
||||||
Attributes:
|
Attributes:
|
||||||
prompter: The Prompter instance assosciated with this Prompt.
|
|
||||||
txt: The TextBase instance (QLabel) used to display the prompt text.
|
txt: The TextBase instance (QLabel) used to display the prompt text.
|
||||||
lineedit: The MinimalLineEdit instance (QLineEdit) used for the input.
|
lineedit: The MinimalLineEdit instance (QLineEdit) used for the input.
|
||||||
_hbox: The QHBoxLayout used to display the text and prompt.
|
_hbox: The QHBoxLayout used to display the text and prompt.
|
||||||
@ -65,7 +65,8 @@ class Prompt(QWidget):
|
|||||||
self.lineedit = PromptLineEdit()
|
self.lineedit = PromptLineEdit()
|
||||||
self._hbox.addWidget(self.lineedit)
|
self._hbox.addWidget(self.lineedit)
|
||||||
|
|
||||||
self.prompter = prompter.Prompter(self)
|
prompter_obj = prompter.Prompter(self)
|
||||||
|
utils.register_object('prompter', prompter_obj)
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return '<{}>'.format(self.__class__.__name__)
|
return '<{}>'.format(self.__class__.__name__)
|
||||||
|
@ -26,7 +26,7 @@ from PyQt5.QtWidgets import QLineEdit
|
|||||||
|
|
||||||
from qutebrowser.keyinput import modeman
|
from qutebrowser.keyinput import modeman
|
||||||
from qutebrowser.commands import cmdutils
|
from qutebrowser.commands import cmdutils
|
||||||
from qutebrowser.utils import usertypes, log, qtutils
|
from qutebrowser.utils import usertypes, log, qtutils, utils
|
||||||
|
|
||||||
|
|
||||||
PromptContext = collections.namedtuple('PromptContext',
|
PromptContext = collections.namedtuple('PromptContext',
|
||||||
@ -185,7 +185,7 @@ class Prompter:
|
|||||||
if self.question.answer is None and not self.question.is_aborted:
|
if self.question.answer is None and not self.question.is_aborted:
|
||||||
self.question.cancel()
|
self.question.cancel()
|
||||||
|
|
||||||
@cmdutils.register(instance='mainwindow.status.prompt.prompter', hide=True,
|
@cmdutils.register(instance='prompter', hide=True,
|
||||||
modes=[usertypes.KeyMode.prompt,
|
modes=[usertypes.KeyMode.prompt,
|
||||||
usertypes.KeyMode.yesno])
|
usertypes.KeyMode.yesno])
|
||||||
def prompt_accept(self):
|
def prompt_accept(self):
|
||||||
@ -227,7 +227,7 @@ class Prompter:
|
|||||||
else:
|
else:
|
||||||
raise ValueError("Invalid question mode!")
|
raise ValueError("Invalid question mode!")
|
||||||
|
|
||||||
@cmdutils.register(instance='mainwindow.status.prompt.prompter', hide=True,
|
@cmdutils.register(instance='prompter', hide=True,
|
||||||
modes=[usertypes.KeyMode.yesno])
|
modes=[usertypes.KeyMode.yesno])
|
||||||
def prompt_yes(self):
|
def prompt_yes(self):
|
||||||
"""Answer yes to a yes/no prompt."""
|
"""Answer yes to a yes/no prompt."""
|
||||||
@ -238,7 +238,7 @@ class Prompter:
|
|||||||
modeman.leave(usertypes.KeyMode.yesno, 'yesno accept')
|
modeman.leave(usertypes.KeyMode.yesno, 'yesno accept')
|
||||||
self.question.done()
|
self.question.done()
|
||||||
|
|
||||||
@cmdutils.register(instance='mainwindow.status.prompt.prompter', hide=True,
|
@cmdutils.register(instance='prompter', hide=True,
|
||||||
modes=[usertypes.KeyMode.yesno])
|
modes=[usertypes.KeyMode.yesno])
|
||||||
def prompt_no(self):
|
def prompt_no(self):
|
||||||
"""Answer no to a yes/no prompt."""
|
"""Answer no to a yes/no prompt."""
|
||||||
|
Loading…
Reference in New Issue
Block a user