'Handle a new keypress and call the respective handlers.
Args:
e: the KeyPressEvent from Qt
Returns:
True if the match has been handled, False otherwise.'

def handle(self, e):

    match = self._handle_single_key(e)
    if (match == self.Match.partial):
        self.keystring_updated.emit(self._keystring)
        self._last_press = LastPress.keystring
        return True
    elif (match == self.Match.definitive):
        self._last_press = LastPress.none
        return True
    elif (match == self.Match.other):
        pass
    elif (match == self.Match.none):
        return self._handle_special_key(e)
    else:
        raise ValueError('Got    invalid    match    type    {}!'.format(match))
