Age | Commit message (Collapse) | Author | |
---|---|---|---|
2022-03-31 | Ignore invalid keys | Florian Bruhin | |
Workaround for #7047, supersedes #7045 | |||
2021-08-26 | key hacks | Florian Bruhin | |
2021-08-26 | Automatically rewrite enums | Florian Bruhin | |
See #5904 | |||
2021-08-26 | Blanket PyQt5 -> PyQt6 | Florian Bruhin | |
2021-05-19 | mypy: Set disallow_any_generics | Florian Bruhin | |
See #6100 | |||
2021-01-26 | doc: Switch URLs to https | Florian Bruhin | |
2021-01-20 | Bump copyright years | Florian Bruhin | |
Closes #6015 | |||
2021-01-13 | dataclasses: Adjust import order | Florian Bruhin | |
See #6023 | |||
2021-01-13 | dataclasses: Initial switch | Florian Bruhin | |
See #6023 | |||
2020-10-28 | mypy: use from-import style for typing | Tim Brown | |
Update files in `keyinput`, `mainwindow`, and `misc`. See #5396 | |||
2020-06-17 | Fix lint | Florian Bruhin | |
2020-06-17 | Add BindingTrie.__str__ | Florian Bruhin | |
2020-06-17 | basekeyparser: Improve debug logging | Florian Bruhin | |
2020-06-17 | modeparsers: Refactor to avoid subclassing | Florian Bruhin | |
Before the changes in this commit, we've had to have a subclassed parser for every mode, even if there was no special key handling going on in that mode. With a couple of changes, we can avoid many of those subclasses and only have subclasses for bigger changes (like hint or register modes). - The awkward handling of self._modename in _read_config() is now removed. _read_config() doesn't take an argument, always uses the mode in self._mode and gets called from __init__. - BaseKeyParser takes the mode as an argument to __init__. - The class attributes (do_log/passthrough/supports_count) now also get passed via the constructor. | |||
2020-06-17 | basekeyparser: Remove old config format comment | Florian Bruhin | |
2020-05-10 | Fix lint | Florian Bruhin | |
See #5368 | |||
2020-05-09 | mypy: Fix wrong type annotations | Florian Bruhin | |
See #5368 | |||
2020-03-21 | Upgrade to mypy 0.770 | Florian Bruhin | |
This removes some isinstance asserts which are outdated. Mypy should be able to alert us in those cases anyways. | |||
2020-01-04 | Adjust copyrights for 2020 | Florian Bruhin | |
2019-10-10 | Fix hint filtering with number keypad | Florian Bruhin | |
In 9557885 a regression was introduced which broke following hints with the number keypad. Fixes #5065 | |||
2019-10-09 | Complete type annotations for keyinput.basekeyparser | Florian Bruhin | |
2019-10-09 | Move supports_count to a class attribute | Florian Bruhin | |
2019-09-13 | Remove BindingTrie.__getitem__ | Florian Bruhin | |
2019-09-13 | Add a proper MatchResult type instead of tuples | Florian Bruhin | |
2019-09-12 | Rename BindingTrie.child to children | Florian Bruhin | |
2019-09-12 | Improve docstrings | Florian Bruhin | |
2019-09-12 | Add some more type safety for keyutils | Florian Bruhin | |
We now convert from int to Qt.Key as soon as we get a key (with no modifiers added) from a QKeyEvent. Also add missing _assert_plain_key calls. | |||
2019-09-12 | Add more type annotations for basekeyparser.py | Florian Bruhin | |
2019-09-12 | Don't claim that BindingTrie is a MutableMapping | Florian Bruhin | |
While we need to implement update/__contains__ by hand, I think this is a much cleaner solution because we aren't actually a MutableMapping if we don't implement __delitem__/__iter__/__len__. See https://refactoring.guru/smells/refused-bequest | |||
2019-09-12 | Make KeyInfo hashable | Florian Bruhin | |
This way, we can store the real KeyInfo objects in BindingTrie instead of having to use .to_int(). | |||
2019-09-12 | Merge remote-tracking branch 'origin/pr/4730' into binding-trie | Florian Bruhin | |
2019-05-03 | Remove pylint useless suppression | user202729 | |
2019-04-23 | Implement trie for bindings | user202729 | |
2019-03-17 | Cache bindings.key_mappings | Jay Kamat | |
2019-02-22 | Update copyright for 2019 | Jay Kamat | |
2018-05-22 | Handle ² keypress correctly | Florian Bruhin | |
Turns out str.isdigit() also handles ² as a digit, but int('²') causes a ValueError. Here we use `string.digits` instead, which is '0123456789'. Fixes #3743 | |||
2018-03-13 | Split up BaseKeyParser.handle into functions | Florian Bruhin | |
2018-03-13 | Fall back to non-keypad keys without any keypad bindings | Florian Bruhin | |
Fixes #3701 | |||
2018-03-07 | Show the keystring correctly when entering a count | Florian Bruhin | |
2018-03-07 | Allow to bind numbers in keybindings | Florian Bruhin | |
This mostly reverts 4ef5db1bc4b5205812714a57d29daa59224afe8b for #1966, but fixes #3684 by allowing numbers to be bound again. If the user wants to bind numbers instead of using them for a count, why not let them. | |||
2018-03-06 | Apply key_mappings to KeySequences correctly | Florian Bruhin | |
Fixes #3678 | |||
2018-03-05 | Also log modifiers for key presses | Florian Bruhin | |
2018-03-05 | Fix lint | Florian Bruhin | |
2018-03-05 | Handle invalid keys coming from Qt | Florian Bruhin | |
When pressing a key which doesn't exist as Qt.Key, we don't get Qt.Key_unknown like we'd expect, but we get 0x0 instead... Let's add that as a new "nil" key (to not conflict with None/unknown/zero/...) and handle it appropriately. This can be reproduced by doing: setxkbmap -layout us,gr -option grp:alt_shift_toggle and pressing Alt-Shift/Shift-Alt. | |||
2018-03-05 | Filter out ShortcutOverride events properly | Florian Bruhin | |
Fixes #3419 | |||
2018-03-04 | Always prefer exact over partial matches | Florian Bruhin | |
2018-03-04 | Improve logging message for clear_keystring | Florian Bruhin | |
2018-03-04 | Fix handling of key_mappings | Florian Bruhin | |
2018-03-04 | Bring back keyutils.is_modifier() and modifier handling | Florian Bruhin | |
Turns out when we press yY, we get three events: Qt.Key_Y, Qt.NoModifier Qt.Key_Shift, Qt.ShiftModifier Qt.Key_Y, Qt.ShiftModifier If we don't ignore the second one, our keychain will be interrupted by the Shift keypress. | |||
2018-03-04 | Simplify handling of modifier-only keys | Florian Bruhin | |
Now that we don't rely on str(KeyInfo) being empty anywhere, there's no reason to return an empty string for only-modifier keypresses anymore. While those keys can't be bound (QKeySequence('Shift') == Qt.Key_unknown) there's also no reason to explicitly ignore them. |