Read unbound-keys setting only once

This commit is contained in:
Florian Bruhin 2014-04-24 18:31:01 +02:00
parent 6f7391d7d1
commit 6311deb6b0
3 changed files with 14 additions and 5 deletions

1
TODO
View File

@ -3,7 +3,6 @@ keyparser foo
- Create a SimpleKeyParser and inherit KeyParser from that. - Create a SimpleKeyParser and inherit KeyParser from that.
- Handle keybind to get out of insert mode (e.g. esc) - Handle keybind to get out of insert mode (e.g. esc)
- Read unbound-keys setting only once
- Add more element-selection-detection code (with options?) based on: - Add more element-selection-detection code (with options?) based on:
-> javascript: http://stackoverflow.com/a/2848120/2085149 -> javascript: http://stackoverflow.com/a/2848120/2085149
-> microFocusChanged and check active element via: -> microFocusChanged and check active element via:

View File

@ -284,7 +284,7 @@ class QuteBrowser(QApplication):
# config # config
self.config.style_changed.connect(style.invalidate_caches) self.config.style_changed.connect(style.invalidate_caches)
for obj in [tabs, completion, self.mainwindow, config.cmd_history, for obj in [tabs, completion, self.mainwindow, config.cmd_history,
websettings, kp["normal"]]: websettings, kp["normal"], modemanager.manager]:
self.config.changed.connect(obj.on_config_changed) self.config.changed.connect(obj.on_config_changed)
# statusbar # statusbar

View File

@ -23,7 +23,7 @@ Module attributes:
import logging import logging
from PyQt5.QtCore import pyqtSignal, QObject, QEvent from PyQt5.QtCore import pyqtSignal, pyqtSlot, QObject, QEvent
import qutebrowser.config.config as config import qutebrowser.config.config as config
@ -72,13 +72,14 @@ class ModeManager(QObject):
_handlers: A dictionary of modes and their handlers. _handlers: A dictionary of modes and their handlers.
_mode_stack: A list of the modes we're currently in, with the active _mode_stack: A list of the modes we're currently in, with the active
one on the right. one on the right.
_forward_unbound_keys: If we should forward unbound keys.
Signals: Signals:
entered: Emitted when a mode is entered. entered: Emitted when a mode is entered.
arg: Name of the entered mode. arg: Name of the entered mode.
left: Emitted when a mode is left. left: Emitted when a mode is left.
arg: Name of the left mode. arg: Name of the left mode.
key_pressed; A key was pressed. key_pressed: A key was pressed.
""" """
entered = pyqtSignal(str) entered = pyqtSignal(str)
@ -90,6 +91,8 @@ class ModeManager(QObject):
self._handlers = {} self._handlers = {}
self.passthrough = [] self.passthrough = []
self._mode_stack = [] self._mode_stack = []
self._forward_unbound_keys = config.get('general',
'forward_unbound_keys')
@property @property
def mode(self): def mode(self):
@ -147,6 +150,13 @@ class ModeManager(QObject):
logging.debug("New mode stack: {}".format(self._mode_stack)) logging.debug("New mode stack: {}".format(self._mode_stack))
self.left.emit(mode) self.left.emit(mode)
@pyqtSlot(str, str)
def on_config_changed(self, section, option):
"""Update local setting when config changed."""
if (section, option) == ('general', 'forward_unbound_keys'):
self._forward_unbound_keys = config.get('general',
'forward_unbound_keys')
def eventFilter(self, _obj, evt): def eventFilter(self, _obj, evt):
"""Filter all events based on the currently set mode. """Filter all events based on the currently set mode.
@ -179,7 +189,7 @@ class ModeManager(QObject):
handled = False handled = False
if handled: if handled:
return True return True
elif config.get('general', 'forward_unbound_keys'): elif self._forward_unbound_keys:
return False return False
else: else:
return True return True