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
Florian Bruhin
5ab2c89a37
Adjust config.change_filter
2017-07-02 22:17:33 +02:00
Florian Bruhin
c2e75bf2fd
Initial conversion to new config syntax
2017-07-02 22:17:33 +02:00
Florian Bruhin
822623f2ed
Finally update copyrights...
2017-05-09 21:37:03 +02:00
Florian Bruhin
b1a95a3930
Add automatic backend selection in earlyinit
2017-02-05 17:09:04 +01:00
Florian Bruhin
de50f30b9b
Replace all GitHub links
2017-02-05 00:13:11 +01:00
Florian Bruhin
d3f359e490
Disallow caret mode with QtWebEngine
2017-02-04 21:43:32 +01:00
Florian Bruhin
007065b63c
Merge branch 'ignore-invalid-register-keys' of https://github.com/blyxxyz/qutebrowser into blyxxyz-ignore-invalid-register-keys
2017-02-04 17:55:07 +01:00
Jan Verbeek
bd3c2f92fc
Blacklist some modes for :enter-mode
...
This disallows using :enter-mode with modes that don't work properly
when entered that way. Fixes #1137 .
2017-01-20 19:32:16 +01:00
Jan Verbeek
7e7cac2d48
Ignore non-register keys
...
Ignore all keys with an empty .text() return value, not just modifier
keys. You can still use unusual things like ß for registers, but
XF86WakeUp is out. Fixes #2125 .
2017-01-20 17:34:33 +01:00
Florian Bruhin
cc8db65b18
Merge branch 'cancel-register-key' of https://github.com/blyxxyz/qutebrowser into blyxxyz-cancel-register-key
2016-11-23 12:53:50 +01:00
Florian Bruhin
552e0551af
Revert zero counts
...
This initially seemed like a nice feature, but it means 0 can't be bound
as a separate key anymore, and 0<Esc> gives weird error messages...
Reverts #1953 .
Fixes #2032 .
2016-11-23 08:37:29 +01:00
Jan Verbeek
fc79349af6
Remove misplaced blank line
2016-11-15 00:30:54 +01:00
Jan Verbeek
f0d215e07a
Change hard-coded escape to leave-mode binding
2016-11-14 23:28:38 +01:00
Jan Verbeek
75c996c13e
Cancel register key input with escape
2016-11-11 02:45:59 +01:00
Florian Bruhin
bbd842bd82
Get rid of modeman.maybe_leave
2016-11-10 07:19:45 +01:00
Florian Bruhin
2ef85d6c35
Fix macros with a mode-switching command
2016-11-10 07:16:52 +01:00
Jan Verbeek
f1c3bc89ec
Further cleanup
2016-11-09 14:56:41 +01:00
Jan Verbeek
479c8e56b4
Improve macro code style, info messages
2016-11-09 13:09:10 +01:00
Jan Verbeek
21289a80ad
Catch RegisterKeyParser command errors
2016-10-20 17:38:56 +02:00
Jan Verbeek
f2b05a0395
Move keyboard macro system to MacroRecorder object
2016-10-20 02:50:00 +02:00
Jan Verbeek
87899cb6b3
Fix long lines
2016-10-08 22:00:26 +02:00
Jan Verbeek
33ff0ba715
Interactively get macro register
2016-10-08 21:17:47 +02:00
Florian Bruhin
822c100f52
Make 0 a usable count for :tab-focus
...
Fixes #1768
2016-09-30 08:33:16 +02:00
Florian Bruhin
f16b96aa28
Initial implementation of new messages
2016-09-15 14:51:21 +02:00
Florian Bruhin
d25fde4f29
Whoops...
2016-08-19 13:42:38 +02:00
Florian Bruhin
29cd878902
Fix lint
2016-08-19 13:40:21 +02:00
nanjekyejoannah
056c0c3c14
Make command keys configurable
...
Fixes #672
2016-08-19 13:40:21 +02:00
Florian Bruhin
f4b72d4b24
Revert "Revert "Handle counts for special keys.""
...
This reverts commit 2d5ffbfd02
.
2016-08-16 13:44:28 +02:00
Florian Bruhin
8e6d784fd7
Merge branch 'fix_hints_autofollow' of https://github.com/lahwaacz/qutebrowser into lahwaacz-fix_hints_autofollow
2016-08-16 12:58:56 +02:00
Jakub Klinkovský
0e35983362
fix lint ('line too long')
2016-08-11 19:15:26 +02:00
Jakub Klinkovský
567fe0ec10
keyinput: don't emit keystring_updated twice when clearing
2016-08-11 17:48:43 +02:00
Jakub Klinkovský
55a00ab2cf
emit keystring_updated iff necessary
2016-08-11 15:57:46 +02:00
Jakub Klinkovský
bf0fe3c43b
clear keychain properly
...
fixes #1805
2016-08-11 15:45:44 +02:00
Jakub Klinkovský
24f8ed8ac1
hints: refactor auto-follow handling in the fire method
2016-08-10 16:09:37 +02:00
Niklas Haas
62e58c0ab9
Add a --mode flag to :hints
...
This allows a specific keybinding, for whatever reason, to override the
default mode. Examples of when this could be useful:
* :hint --rapid --mode=word (to type them more rapidly)
* :hint --mode=letter input (if the default mode is number)
Also reword the description of 'group' to make the distinction between
'group' and 'mode' clearer.
2016-08-09 15:34:13 +02:00
Florian Bruhin
be609d5779
Improve logging for BaseKeyParser
...
See #1653
2016-07-27 10:27:53 +02:00
Jan Verbeek
bbc46d28ff
Use lists instead of tuples for comparing
...
Per one of the diff comments on #1597 :
> I used to use a tuple for constant things, but nowadays I'd actually
> prefer a list as a tuple is something more heterogeneous (i.e. it
> makes sense to have a `(x, y)` point as a tuple, but a list of points
> would be a list).
> At some point I should probably change it to a list everywhere 😉
2016-07-12 22:05:32 +02:00
Florian Bruhin
299fea830e
Simplify some bool conditions
2016-06-07 15:42:59 +02:00
Jakub Klinkovský
82da79d05a
Renumber hints when filtering in numeric mode
...
(addresses #308 )
2016-06-07 13:07:56 +02:00
Jakub Klinkovský
3690ead5e0
Fix backspace handling in numeric hint mode
...
addresses #1186
2016-06-07 11:37:47 +02:00
Jakub Klinkovský
6e494605dd
Add timeout after auto-followed hint
2016-06-07 10:30:08 +02:00
Ryan Roden-Corrent
b1440a1804
Implement utils.is_special_key.
...
The check `key.startswith('<') and key.endswith('>') is repeated many
times in code to check for a special key. Replace all these with a call
to the same function.
2016-05-19 20:48:48 -04:00
Florian Bruhin
4a551a6758
Show exception stack when handling cmdexc errors.
2016-05-13 07:43:44 +02:00
Florian Bruhin
2d5ffbfd02
Revert "Handle counts for special keys."
...
This reverts commit c881730fad
.
This is just a temporary solution until we can properly fix this.
See #1464
2016-04-29 14:20:11 +02:00
Florian Bruhin
60f8681b41
Improve name of unused variable
2016-04-28 22:28:12 +02:00
Florian Bruhin
8b227f4ba4
Merge branch 'special_key_count' of https://github.com/rcorre/qutebrowser into rcorre-special_key_count
2016-04-28 22:22:23 +02:00
Florian Bruhin
2a343cb3a1
Various code style improvements
2016-04-27 20:25:27 +02:00
Florian Bruhin
77a9bbb4b4
Fix accidental double-import
2016-04-21 23:12:54 +02:00
Florian Bruhin
5b34f1b429
Fix ModeManager.leave docstring
2016-04-21 20:12:02 +02:00
Florian Bruhin
e0aa35b05a
Fix type in @pyqtSlot for ModeManager.leave
...
For some reason it worked with str as well, but the signal emits a
KeyMode member.
2016-04-21 20:10:58 +02:00
Ryan Roden-Corrent
600b5082a9
Touch up tests and add pyqtSlot for marks.
...
Small code review changes.
2016-04-20 21:53:12 -04:00
Ryan Roden-Corrent
c881730fad
Handle counts for special keys.
...
Now 3<ctrl-o> will execute whatever <ctrl-o> is mapped to with count=3.
2016-04-19 23:39:02 -04:00
Ryan Roden-Corrent
268d490e25
Return False when MarkKeyParser gets special key.
2016-04-19 17:30:57 -04:00
Ryan Roden-Corrent
6466ff919a
Don't limit marks to alpha characters.
2016-04-19 08:28:11 -04:00
Ryan Roden-Corrent
ae267c466f
Small fixes for marks.
...
Mark two callbacks with pyqtSlot as appropriate.
Return False instead of raising NotImplementedException to avoid pylint
identifying MarkKeyParser as abstract.
2016-04-19 08:28:02 -04:00
Ryan Roden-Corrent
4b00a17d71
Fix MarkKeyParser crash when changing keyconfig.
...
Ensure MarkKeyParser implements on_keyconfig_changed, so it doesn't fail when
rebinding a key. It doesn't have keybindings, so the implementation is just
`pass`.
This also fixes a few flake8 style errors.
2016-04-17 21:04:08 -04:00
Ryan Roden-Corrent
f4b9573744
Remove cyclic dependency from MarkKeyParser.
...
Rather than calling modeman.leave directly, modeman hooks into a request_leave
signal that is fired when MarkKeyParser wants to exit mark mode.
2016-04-17 21:04:08 -04:00
Ryan Roden-Corrent
49b2f6e967
Move jump_mark logic to TabbedBrowser.
...
This simplifies the MarkKeyParser by removing its dependency on the
commandrunner. It also removes the need for a new exception type.
2016-04-17 21:04:08 -04:00
Ryan Roden-Corrent
c7b830d69d
Fix up mistakes caught by pylint.
2016-04-17 21:04:08 -04:00
Ryan Roden-Corrent
7bfea773db
Add set_mark and jump_mark modes.
...
These modes use a custom handler to pass whatever the next keypress is
to either set_mark or jump_mark.
2016-04-17 21:04:08 -04:00
Florian Bruhin
27b31b7ded
Avoid DownloadView being focused when pressing tab
...
The previous fix didn't work in situations where the web view was
actually focused, but had no focused element (like about:blank).
The new fix always works, and even is a lot simpler!
Fixes #504 .
2016-03-31 19:45:36 +02:00
Florian Bruhin
a5f2ac5f03
Adjust copyright years.
2016-01-04 07:12:39 +01:00
Florian Bruhin
c1d3a94936
Don't pass through shifted characters.
...
See #1207 - turns out that was a problem for *any* character.
2016-01-04 07:10:23 +01:00
Florian Bruhin
f78fb0c027
basekeyparser: Remove dead code.
...
We added this in 836a5e04a5
for the old INI-based
config, but this is not needed anymore as the keys.conf syntax does not allow
this.
2015-08-26 20:31:17 +02:00
Alexander Cogneau
09161faca5
Refactor read_config for easier testing
2015-08-25 12:04:22 +02:00
Alexander Cogneau
af9647221a
Add tests for BaseKeyParser
2015-08-24 18:12:12 +02:00
Alexander Cogneau
193a8d5242
Add unit tests for KeyInput.BaseKeyParser
2015-08-22 23:26:13 +02:00
Florian Bruhin
5310c60d58
Remove unused import.
2015-06-07 01:24:24 +02:00
Florian Bruhin
def41e70bf
Fix some spelling mistakes.
2015-06-07 01:24:02 +02:00
Martin Tournoij
dfada850e0
Update code after refactor, and add migration
2015-06-05 16:52:33 +02:00
Martin Tournoij
a7b10a090f
Merge branch 'master' into issue-716
2015-06-05 16:45:52 +02:00
Florian Bruhin
b55e22b5c3
Refactor key mode/parser handling in modeman.
2015-06-05 15:29:09 +02:00
Martin Tournoij
fa65f345ac
Perhaps fix it more properly after all :-)
2015-06-05 15:19:40 +02:00
Martin Tournoij
57ddd8e95e
Always handle the <Esc> key, even if it's bound.
...
This fixes #716 , which sufficiently annoyed me to make this quick fix. It's not
a great fix, but it's not worse than what we had already, and the current
behaviour is very surprising IMHO.
2015-06-05 14:26:17 +02:00
Florian Bruhin
7102459c81
Rename _get_modeman() to instance().
2015-06-05 11:15:18 +02:00
Florian Bruhin
947dcd556b
Clean up CaretKeyParser.
2015-05-13 22:29:21 +02:00
Florian Bruhin
bc54eb8671
Make get_modeman private again.
2015-05-13 22:27:54 +02:00
Florian Bruhin
a36c0fcd4c
Fix lint.
2015-05-11 20:32:27 +02:00
Artur Shaik
178d0dfa58
Add count for actions. Zero key treat as command.
2015-05-07 11:51:10 +06:00
Artur Shaik
d594798db8
Implement caret selection and positioning
...
Added option to webview for selection enabled caret mode.
In status bar checking value of this option to identificate about it.
Added bindings: <Space> for toggle selection mode, <Ctrl+Space> drop
selection and keep selection mode enabled.
In webview added javascript snippet to position caret at top of the
viewport after caret enabling. This code mostly was taken from cVim sources.
2015-05-05 10:18:24 +06:00
Artur Shaik
aeaa20c3b7
Disable support count for CaretKeyParser
...
Allow using '0' for move caret to beginnig of the line.
2015-05-04 18:00:40 +06:00
Florian Bruhin
32562c6878
Fix lint.
2015-04-28 16:50:42 +02:00
Florian Bruhin
6c8e073dc8
Merge branch 'caret_visual_mode' of https://github.com/artur-shaik/qutebrowser into visual
...
Conflicts:
qutebrowser/browser/commands.py
qutebrowser/browser/webview.py
qutebrowser/config/configdata.py
2015-04-21 21:29:00 +02:00
Florian Bruhin
83dbe48469
Refactor EventFilter.
2015-04-09 20:22:00 +02:00
Florian Bruhin
f77ba5744b
Add a ui -> hide-mouse-cursor option.
2015-04-09 19:59:16 +02:00
Artur Shaik
695712e50c
Basic caret and visual modes implementation
...
Allow user switch in caret mode for browsing with caret, and visual mode
for select and yank text with keyboard.
Default keybindings is c or v for caret mode, and again v for visual mode. All
basic movements provided by WebAction enum implemened with vim-like
bindings. Yanking with y and Y for selection and clipboard respectively.
There is bug/feature in WebKit that after caret enabled, caret doesn't
show until mouse click (or sometimes Tab helps). So I add some workaround
for that with mouse event. I think should be better aproach.
Signed-off-by: Artur Shaik <ashaihullin@gmail.com>
2015-04-09 22:55:42 +06:00
Florian Bruhin
431257d380
Fix handling of key release events.
...
Fixes #593 .
It seems Qt "re-uses" existing keyevents, so we have to save and compare the
data instead.
2015-03-31 23:09:40 +02:00
Florian Bruhin
8ebac8d38c
Various spelling fixes.
2015-03-31 21:11:47 +02:00
Florian Bruhin
6dc65287a9
Discard uninteresting events early in eventFilter.
...
Before, we ran quite a lot of code (e.g. objreg) on every event, even if it
turns out to not be a keypress/release event at all.
2015-03-16 23:25:29 +01:00
Florian Bruhin
e8e6d8409b
Adjust pylint exceptions.
2015-03-11 20:14:39 +01:00
Florian Bruhin
e696898c4a
Add input -> partial-timeout option to clear partial keystrings.
2015-02-27 10:59:03 +01:00
Florian Bruhin
42e2438efb
Return Match instead bool in _handle_single_key.
2015-02-27 10:59:03 +01:00
Florian Bruhin
d66997610b
Use a single Timer for ambigious keybindings.
2015-02-27 10:59:03 +01:00
Florian Bruhin
22fab87311
Ignore tab key presses if they'd switch focus.
...
If the mainwindow is focused but not the web view (e.g. in prompt mode), an
unbound tab key should be filtered so it doesn't change keyboard focus.
Fixes #504 .
2015-02-12 18:57:56 +01:00
Florian Bruhin
ca590c5df7
Fix lint
2015-01-23 15:10:44 +01:00
Florian Bruhin
0587cc8b1d
Really fix pylint and unicodedata.category.
2015-01-23 15:06:51 +01:00
Florian Bruhin
d7c7e91f2b
pylint: Ignore no-member for unicodedata.category.
...
This seems to be broken for pylint since #463 on Windows, so we just ignore the
warning there.
2015-01-23 14:40:40 +01:00
Florian Bruhin
a412814dee
Enter KeyMode.normal directly in ModeManager.
...
We used to enter KeyMode.none and then with a zero-time singleShot QTimer enter
the normal mode. This doesn't really make sense, and caused an exception if a
keypress was processed before the timer fired.
Fixes #433 .
2015-01-09 21:49:39 +01:00
Florian Bruhin
d147ba90d4
Remove old comment.
2015-01-09 21:49:39 +01:00
Florian Bruhin
450d1ab70d
Update copyright years
2015-01-03 15:51:31 +01:00