Revert "Revert "Handle counts for special keys.""

This reverts commit 2d5ffbfd02.
This commit is contained in:
Florian Bruhin 2016-08-16 13:44:28 +02:00
parent 33cda441e6
commit f4b72d4b24
2 changed files with 15 additions and 3 deletions

View File

@ -131,7 +131,9 @@ class BaseKeyParser(QObject):
except KeyError:
self._debug_log("No special binding found for {}.".format(binding))
return False
self.execute(cmdstr, self.Type.special)
count, _command = 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):