Florian Bruhin
8da878c77c
Make KeySequence.matchs() work correctly
2018-03-04 20:21:58 +01:00
Florian Bruhin
68db8d04ad
KeySequence: Make sure we got valid key codes
2018-03-04 20:21:58 +01:00
Florian Bruhin
3649a36869
KeySequence: Add __le__/__ge__
2018-03-04 20:21:58 +01:00
Florian Bruhin
fb7c75a090
Improve keyutils tests
2018-03-04 20:21:58 +01:00
Florian Bruhin
3c9e8ff9ab
Test and fix keyutils._parse_keystring
2018-03-04 20:21:58 +01:00
Florian Bruhin
7f8508a367
Change the way Space keybindings are handled
...
Using it as " " in a keystring won't work anymore, but instead <Space> and
<Shift-Space> does.
2018-03-04 20:21:58 +01:00
Florian Bruhin
da60d11b24
Refactor keyutils tests
2018-03-04 20:21:58 +01:00
Florian Bruhin
b3834835ed
Bring back keyutils.is_modifier() and modifier handling
...
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 20:21:58 +01:00
Florian Bruhin
3a11a24be0
Fix modifier handling
...
We don't want to show <Shift-Shift>, but <Ctrl-Shift> should still work
correctly.
2018-03-04 20:21:58 +01:00
Florian Bruhin
7cb781cc92
Simplify handling of modifier-only keys
...
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.
2018-03-04 20:21:57 +01:00
Florian Bruhin
693178c8ee
Refactor KeyInfo.__str__
...
This removes the special handling for macOS, but this is hopefully not needed
anymore as we don't compare strings.
2018-03-04 20:21:57 +01:00
Florian Bruhin
50d2ef3b90
Fix handling of printable control keys in KeyInfo.text()
2018-03-04 20:21:57 +01:00
Florian Bruhin
934d586286
Fix handling of Shift-Tab aka. Backtab
2018-03-04 20:21:57 +01:00
Florian Bruhin
65a05f334e
Fix KeyInfo.__str__ for <Shift-Tab>
2018-03-04 20:21:57 +01:00
Florian Bruhin
0aa17bfa33
Simplify unicodedata.category calls
2018-03-04 20:21:57 +01:00
Florian Bruhin
e26eaaddc2
Add keyutils.is_modifier_key()
2018-03-04 20:21:57 +01:00
Florian Bruhin
1cd86d79d9
Add keyutils.is_printable()
2018-03-04 20:21:57 +01:00
Florian Bruhin
b4d232badd
Simplify KeyInfo.text()
2018-03-04 20:20:31 +01:00
Florian Bruhin
0b6d2c2b0a
Make all key names work
2018-03-04 20:20:30 +01:00
Florian Bruhin
601e56d2fa
Make test_keyutils work
2018-03-04 20:20:30 +01:00
Florian Bruhin
19512e988b
Expose less from keyutils publicly
2018-03-04 20:20:30 +01:00
Florian Bruhin
c3485821c7
Adjust copyright
2018-03-04 20:20:30 +01:00
Florian Bruhin
b85fe8f678
Merge BaseKeyParser._handle_key into .handle
2018-02-27 14:08:38 +01:00
Florian Bruhin
3a79f1293f
Remove FIXMEs
2018-02-27 13:10:25 +01:00
Florian Bruhin
bd87b4eb10
Stop logging in PassthroughKeyParser
2018-02-27 13:02:32 +01:00
Florian Bruhin
ec3ad8a969
Get rid of _warn_on_keychains and _supports_chains
2018-02-27 13:02:32 +01:00
Florian Bruhin
ba012c6ba8
Get rid of BaseKeyparser.Type
2018-02-27 13:01:41 +01:00
Florian Bruhin
079fcc7eea
Add FIXME
2018-02-27 09:38:40 +01:00
Florian Bruhin
362f923f06
Fix lint
2018-02-27 09:34:55 +01:00
Florian Bruhin
5d581d42f5
Improve key parsing with simple keys containing </>
2018-02-27 09:22:11 +01:00
Florian Bruhin
911b2daebf
Fix test_keyutils
2018-02-27 09:07:20 +01:00
Florian Bruhin
eeeb763f8a
Make sure 0 is handled as command
2018-02-27 08:50:50 +01:00
Florian Bruhin
9e27f2b3e7
Initial attempts at fixing test_basekeyparser
2018-02-27 08:48:16 +01:00
Florian Bruhin
44b4cb92be
Make keyutils.KeySequence.parse('') work
2018-02-27 08:35:14 +01:00
Florian Bruhin
ac4fd7c563
Add KeyInfo.to_event()
2018-02-27 08:20:06 +01:00
Florian Bruhin
01462008c9
Clearly separate yesno/prompt key modes
2018-02-26 22:49:15 +01:00
Florian Bruhin
d9ae3fd5aa
Fix more hinting issues
2018-02-26 20:49:02 +01:00
Florian Bruhin
de3b4adfd8
Don't force-follow hints when typing chars
2018-02-26 20:48:49 +01:00
Florian Bruhin
6fc391986f
Fix KeyInfo.text() for space
2018-02-26 20:48:22 +01:00
Florian Bruhin
e9d58dae2a
Fix getting individual items from KeySequence
2018-02-26 20:48:11 +01:00
Florian Bruhin
9f0e1a98a0
Make hint keybinding inhibition work
2018-02-26 20:22:52 +01:00
Florian Bruhin
f1b20f6dc4
Fix forward_unbound_keys test
2018-02-26 20:02:43 +01:00
Florian Bruhin
bb647123b7
Fix invalid key sequences
2018-02-26 14:13:46 +01:00
Florian Bruhin
2698b8bb63
Fix unicodedata check
2018-02-26 13:47:45 +01:00
Florian Bruhin
f15e2285ba
Fix bindings.key_mappings
2018-02-26 13:41:01 +01:00
Florian Bruhin
0afaf2ce89
Fix capital chars after string change
2018-02-26 11:48:10 +01:00
Florian Bruhin
508a12a84c
Try fixing KeyInfo.__str__ with lower-/uppercase chars
2018-02-26 11:36:24 +01:00
Florian Bruhin
16940db834
Refactor KeySequence initialization
2018-02-26 11:16:51 +01:00
Florian Bruhin
9aa37febbe
Make hints work
2018-02-26 10:33:18 +01:00
Florian Bruhin
be4cd94207
Try getting hints to work
2018-02-26 10:14:30 +01:00
Florian Bruhin
d077f38ac4
Store multiple QKeySequences in KeySequence
2018-02-26 09:13:53 +01:00
Florian Bruhin
79a337767a
Initial work at making :fake-key work
2018-02-26 09:13:44 +01:00
Florian Bruhin
e273f163a6
Add a KeyInfo class
2018-02-25 22:09:39 +01:00
Florian Bruhin
321d5c5d20
Merge branch 'master' into keys
2018-02-25 21:25:12 +01:00
Marc Jauvin
fbb78f1133
hook into modeman's entered and left signals
...
- save previous mode when a prompt is shown
- restore previous mode when finished prompting
2018-02-12 21:57:53 -05:00
Marc Jauvin
d04fc29163
save input_mode when entering/leaving mode
...
instead of when changing tab
2018-02-12 18:10:22 -05:00
Florian Bruhin
6f028e9ad0
Update copyright years
2018-02-05 12:19:50 +01:00
Florian Bruhin
1f5cbf21a3
Merge remote-tracking branch 'origin/pr/3348'
2018-01-20 18:28:14 +01:00
Florian Bruhin
28889cf099
Use a dict for ModeManager.eventFilter
2017-12-29 20:36:55 +01:00
Florian Bruhin
81e9060239
Make sure KeySequence keys are valid
2017-12-29 16:04:25 +01:00
Florian Bruhin
737ff2cc69
Add <> around special keys in __str__
2017-12-29 14:43:04 +01:00
Florian Bruhin
f1fe26b0b7
Handle modifiers correctly
2017-12-29 14:40:00 +01:00
Florian Bruhin
7b17ab4b3f
Initial str() attempt
2017-12-29 14:22:20 +01:00
Florian Bruhin
d9c768ed86
Strip out shift modifier for non-alpha bindings
2017-12-29 13:53:43 +01:00
Artur Shaikhullin
db16a87e68
Removed unused import
2017-12-29 18:39:29 +06:00
Florian Bruhin
917f2a30de
Get tests to collect
2017-12-29 13:23:38 +01:00
Florian Bruhin
cc747b00ce
Move parsing to class
2017-12-29 01:50:51 +01:00
Florian Bruhin
c98eb5502d
Add some FIXMEs
2017-12-29 01:24:05 +01:00
Florian Bruhin
d961211188
Delete some old code
2017-12-29 01:24:05 +01:00
Florian Bruhin
b1dde41b74
Rename sequence.py to keyutils.py
2017-12-29 01:24:05 +01:00
Florian Bruhin
dcf0d21121
Move key related utils to sequence.py
2017-12-29 01:24:05 +01:00
Florian Bruhin
600919a23a
Add a custom KeySequence class
2017-12-29 01:24:05 +01:00
Florian Bruhin
a565b77bf0
Switch from string to QKeySequence
2017-12-29 01:24:05 +01:00
Florian Bruhin
8478a1ea3d
Remove _handle_special_key
2017-12-29 01:24:05 +01:00
Florian Bruhin
26fdc129d3
Split off counts
2017-12-29 01:24:05 +01:00
Florian Bruhin
55803afbd2
Fix matching
2017-12-29 01:24:05 +01:00
Florian Bruhin
a8aaf01ff0
Fix some more stuff (and break some :D)
2017-12-29 01:24:05 +01:00
Florian Bruhin
ddcb5445a2
Initial refactoring for new key parsing
2017-12-29 01:24:05 +01:00
Artur Shaik
5605d3cd8e
Merge branch 'master' into webengine_caret
2017-12-28 20:43:31 +06:00
Florian Bruhin
e65c0dd8a7
pylint: Re-enable bad-continuation
...
And lots and lots of whitespace changes.
2017-12-15 19:16:55 +01:00
Florian Bruhin
f4ed31b295
Add an utils.Unreachable exception
2017-12-15 16:33:47 +01:00
Florian Bruhin
016fc0ebb1
Fix some inconsistent returns
2017-12-15 16:33:47 +01:00
Florian Bruhin
3f9ded3bed
Add missing docstrings
2017-12-15 13:55:06 +01:00
George Edward Bulmer
747a9bc5b6
Modify usage of re.match to fit re.fullmatch or re.search.
...
re.match features an implicit left anchor, which can be surprising.
re.fullmatch features implicit anchors on both sides, but is aptly named
and unsurprising.
re.search has no such implicit anchors, which ought to be the default
even if a single anchor is needed.
2017-12-11 21:32:55 +00:00
Ryan Farley
5ed8019115
update flake8 and flake8-deprecated
...
Updated requirements and adjusted the configuration in `.flake8`; other
files have been modified where the lack of per-file auto-ignore caused
problems, where putty's `# flake8: disable=` syntax could be replaced
with a simpler `noqa`, or where pylint directives already suppressed the
same error.
2017-11-26 00:16:14 -06:00
Artur Shaikhullin
b184d2f94d
dirty initial port of chrome caretbrowser extension
2017-11-16 19:25:15 +06:00
Florian Bruhin
f6cc6677dd
Remove hiding of commands
...
This was often confusing for people - let's instead just hide commands which are
not available in normal mode.
2017-11-13 09:02:16 +01:00
Gyorgy Orban
98c6b49cde
use enum module instead or usertypes.enum
...
Remove the usertypes.enum from the source and use
the standard enum module instead.
Enum start number is available since python 3.5
2017-11-02 18:56:11 +01:00
Florian Bruhin
1e2015be65
Make bindings win over mappings
...
Fixes #2995
2017-09-22 17:13:17 +02:00
Florian Bruhin
3a5241b642
Start using attrs
...
Closes #1073
2017-09-19 22:21:45 +02:00
Florian Bruhin
1fc9817cd4
Remove support for ambiguous keybindings
2017-09-14 00:37:01 +02:00
Florian Bruhin
0cdd3ff82f
Update some more references to old config options
2017-07-04 16:46:02 +02:00
Florian Bruhin
cff61fa0bc
Fix pylint
...
This also reverts commit 8df0b063be
.
2017-07-04 15:34:10 +02:00
Florian Bruhin
397ca47efb
Fix vulture
2017-07-04 15:09:23 +02:00
Florian Bruhin
0115285a84
Initial update for better bindings management
2017-07-04 15:08:03 +02:00
Florian Bruhin
290d27a064
Add a cmdexc.Error
2017-07-04 15:08:02 +02:00
Florian Bruhin
75798bebb0
Normalize bindings correctly when checking key_mappings
2017-07-04 15:08:02 +02:00
Florian Bruhin
383968d948
Add a Key config type
...
Make sure any key we get from the config is normalized).
2017-07-04 15:08:02 +02:00
Florian Bruhin
056edcfed3
More keyconfig work
2017-07-04 15:08:02 +02:00
Florian Bruhin
7e7fbf106b
Fix lint and old config options
2017-07-04 14:42:56 +02:00