Make sure KeySequence keys are valid
This commit is contained in:
parent
caa05df16d
commit
81e9060239
@ -243,6 +243,8 @@ class KeySequence:
|
|||||||
|
|
||||||
def __init__(self, *args):
|
def __init__(self, *args):
|
||||||
self._sequence = QKeySequence(*args)
|
self._sequence = QKeySequence(*args)
|
||||||
|
for key in self._sequence:
|
||||||
|
assert key != Qt.Key_unknown
|
||||||
# FIXME handle more than 4 keys
|
# FIXME handle more than 4 keys
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
@ -275,6 +277,9 @@ class KeySequence:
|
|||||||
def __hash__(self):
|
def __hash__(self):
|
||||||
return hash(self._sequence)
|
return hash(self._sequence)
|
||||||
|
|
||||||
|
def __len__(self):
|
||||||
|
return len(self._sequence)
|
||||||
|
|
||||||
def matches(self, other):
|
def matches(self, other):
|
||||||
# pylint: disable=protected-access
|
# pylint: disable=protected-access
|
||||||
return self._sequence.matches(other._sequence)
|
return self._sequence.matches(other._sequence)
|
||||||
@ -306,4 +311,6 @@ class KeySequence:
|
|||||||
def parse(cls, keystr):
|
def parse(cls, keystr):
|
||||||
"""Parse a keystring like <Ctrl-x> or xyz and return a KeySequence."""
|
"""Parse a keystring like <Ctrl-x> or xyz and return a KeySequence."""
|
||||||
s = ', '.join(_parse_keystring(keystr))
|
s = ', '.join(_parse_keystring(keystr))
|
||||||
return cls(s)
|
new = cls(s)
|
||||||
|
assert len(new) > 0
|
||||||
|
return new
|
||||||
|
Loading…
Reference in New Issue
Block a user