Fix MarkKeyParser crash when changing keyconfig.

Ensure MarkKeyParser implements on_keyconfig_changed, so it doesn't fail when
rebinding a key. It doesn't have keybindings, so the implementation is just
`pass`.

This also fixes a few flake8 style errors.
This commit is contained in:
Ryan Roden-Corrent 2016-04-15 17:20:37 -04:00
parent be6308534f
commit 4b00a17d71
3 changed files with 18 additions and 8 deletions

View File

@ -254,7 +254,6 @@ class MarkKeyParser(keyparser.BaseKeyParser):
Return: Return:
True if event has been handled, False otherwise. True if event has been handled, False otherwise.
""" """
if utils.keyevent_to_string(e) is None: if utils.keyevent_to_string(e) is None:
# this is a modifier key, let it pass and keep going # this is a modifier key, let it pass and keep going
return True return True
@ -279,3 +278,11 @@ class MarkKeyParser(keyparser.BaseKeyParser):
self.request_leave.emit(self._mode, "valid mark key") self.request_leave.emit(self._mode, "valid mark key")
return True return True
def on_keyconfig_changed(self, mode):
"""MarkKeyParser has no config section (no bindable keys)."""
pass
def execute(self, cmdstr, _keytype, count=None):
"""Should never be called on MarkKeyParser."""
raise NotImplementedError

View File

@ -23,15 +23,15 @@ import functools
import collections import collections
from PyQt5.QtWidgets import QSizePolicy from PyQt5.QtWidgets import QSizePolicy
from PyQt5.QtCore import pyqtSignal, pyqtSlot, QTimer, QUrl, QPoint from PyQt5.QtCore import pyqtSignal, pyqtSlot, QTimer, QUrl
from PyQt5.QtGui import QIcon from PyQt5.QtGui import QIcon
from qutebrowser.config import config from qutebrowser.config import config
from qutebrowser.keyinput import modeman from qutebrowser.keyinput import modeman
from qutebrowser.mainwindow import tabwidget from qutebrowser.mainwindow import tabwidget
from qutebrowser.browser import signalfilter, webview from qutebrowser.browser import signalfilter, webview
from qutebrowser.utils import (log, usertypes, utils, qtutils, objreg, urlutils, from qutebrowser.utils import (log, usertypes, utils, qtutils, objreg,
message) urlutils, message)
UndoEntry = collections.namedtuple('UndoEntry', ['url', 'history']) UndoEntry = collections.namedtuple('UndoEntry', ['url', 'history'])

View File

@ -22,14 +22,17 @@ import pytest
from qutebrowser.keyinput import modeman as modeman_module from qutebrowser.keyinput import modeman as modeman_module
from qutebrowser.utils import usertypes from qutebrowser.utils import usertypes
from PyQt5.QtCore import Qt from PyQt5.QtCore import Qt, QObject, pyqtSignal
class FakeKeyparser: class FakeKeyparser(QObject):
"""A fake BaseKeyParser which doesn't handle anything.""" """A fake BaseKeyParser which doesn't handle anything."""
request_leave = pyqtSignal(usertypes.KeyMode, str)
def __init__(self): def __init__(self):
super().__init__()
self.passthrough = False self.passthrough = False
def handle(self, evt): def handle(self, evt):