Merge branch 'special_key_count' of https://github.com/rcorre/qutebrowser into rcorre-special_key_count

This commit is contained in:
Florian Bruhin 2016-04-28 22:22:23 +02:00
commit 8b227f4ba4
2 changed files with 15 additions and 3 deletions

View File

@ -131,7 +131,9 @@ class BaseKeyParser(QObject):
except KeyError:
self._debug_log("No binding found for {}.".format(binding))
return False
self.execute(cmdstr, self.Type.special)
count, _ = self._split_count()
self.execute(cmdstr, self.Type.special, count)
self.clear_keystring()
return True
def _split_count(self):

View File

@ -183,7 +183,17 @@ class TestSpecialKeys:
keyparser.handle(fake_keyevent_factory(Qt.Key_A, modifier))
keyparser.handle(fake_keyevent_factory(Qt.Key_X, modifier))
keyparser.execute.assert_called_once_with(
'ctrla', keyparser.Type.special)
'ctrla', keyparser.Type.special, None)
def test_valid_key_count(self, fake_keyevent_factory, keyparser):
if sys.platform == 'darwin':
modifier = Qt.MetaModifier
else:
modifier = Qt.ControlModifier
keyparser.handle(fake_keyevent_factory(5, text='5'))
keyparser.handle(fake_keyevent_factory(Qt.Key_A, modifier, text='A'))
keyparser.execute.assert_called_once_with(
'ctrla', keyparser.Type.special, 5)
def test_invalid_key(self, fake_keyevent_factory, keyparser):
keyparser.handle(fake_keyevent_factory(
@ -217,7 +227,7 @@ class TestKeyChain:
keyparser.handle(fake_keyevent_factory(Qt.Key_A, modifier))
keyparser.handle(fake_keyevent_factory(Qt.Key_X, modifier))
keyparser.execute.assert_called_once_with(
'ctrla', keyparser.Type.special)
'ctrla', keyparser.Type.special, None)
assert keyparser._keystring == ''
def test_invalid_special_key(self, fake_keyevent_factory, keyparser):