summaryrefslogtreecommitdiff
path: root/qutebrowser/keyinput/modeman.py
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2020-10-16 16:36:02 +0200
committerFlorian Bruhin <me@the-compiler.org>2020-10-16 16:41:45 +0200
commit9c28d9ee540469a146e0a904413d2b7a74be36bd (patch)
treea5a8a3b2f2249e9cee5edcb119dee40a3745cb94 /qutebrowser/keyinput/modeman.py
parent77e8eb270efee8602b91086615161ebaef2b31bc (diff)
downloadqutebrowser-9c28d9ee540469a146e0a904413d2b7a74be36bd.tar.gz
qutebrowser-9c28d9ee540469a146e0a904413d2b7a74be36bd.zip
Use signals to set status text from HintManager
Diffstat (limited to 'qutebrowser/keyinput/modeman.py')
-rw-r--r--qutebrowser/keyinput/modeman.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/qutebrowser/keyinput/modeman.py b/qutebrowser/keyinput/modeman.py
index 4febf98a8..e49aa891d 100644
--- a/qutebrowser/keyinput/modeman.py
+++ b/qutebrowser/keyinput/modeman.py
@@ -17,8 +17,9 @@
# You should have received a copy of the GNU General Public License
# along with qutebrowser. If not, see <http://www.gnu.org/licenses/>.
-"""Mode manager singleton which handles the current keyboard mode."""
+"""Mode manager (per window) which handles the current keyboard mode."""
+import typing
import functools
from typing import Mapping, Callable, MutableMapping, Union, Set, cast
@@ -78,15 +79,17 @@ class UnavailableError(Exception):
def init(win_id: int, parent: QObject) -> 'ModeManager':
"""Initialize the mode manager and the keyparsers for the given win_id."""
+ commandrunner = runners.CommandRunner(win_id)
+
modeman = ModeManager(win_id, parent)
objreg.register('mode-manager', modeman, scope='window', window=win_id)
- commandrunner = runners.CommandRunner(win_id)
-
hintmanager = hints.HintManager(win_id, parent=parent)
objreg.register('hintmanager', hintmanager, scope='window',
window=win_id, command_only=True)
+ modeman.hintmanager = hintmanager
+
keyparsers = {
usertypes.KeyMode.normal:
modeparsers.NormalKeyParser(
@@ -227,6 +230,7 @@ class ModeManager(QObject):
Attributes:
mode: The mode we're currently in.
+ hintmanager: The HintManager associated with this window.
_win_id: The window ID of this ModeManager
_prev_mode: Mode before a prompt popped up
parsers: A dictionary of modes and their keyparsers.
@@ -260,6 +264,8 @@ class ModeManager(QObject):
self._prev_mode = usertypes.KeyMode.normal
self.mode = usertypes.KeyMode.normal
self._releaseevents_to_pass = set() # type: Set[KeyEvent]
+ # Set after __init__
+ self.hintmanager = typing.cast(hints.HintManager, None)
def __repr__(self) -> str:
return utils.get_repr(self, mode=self.mode)