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
Florian Bruhin
73d08cb60c
Fix mode handling with multiple javascript prompts.
...
This fixes a regression introduced in 03ac8874ff
.
2014-12-28 01:28:35 +01:00
Florian Bruhin
03ac8874ff
Rewrite keymode handling to use only one mode.
...
Fixes #417 .
Fixes #418 .
See 4ab5d2df28
.
2014-12-28 00:01:27 +01:00
Florian Bruhin
4ab5d2df28
Make it possible to enter a keymode twice.
...
If we don't allow this, we can get stuck e.g. when doing this:
- Press m to get a quickmark prompt.
- Click a javascript prompt button.
- Exit the javascript prompt.
- We have the quickmark prompt open but we're in normal mode.
2014-12-26 14:26:59 +01:00
Florian Bruhin
b7dc2e1bc6
Allow non-ASCII chars in keychains. Fixes #303 .
2014-12-13 21:03:33 +01:00
Florian Bruhin
d611a37d7d
Fix statusbar with nested passthrough modes.
...
Fixes #87 .
2014-12-08 20:18:55 +01:00
Florian Bruhin
eb5527f897
Add some logging about keyboard focus.
...
This should help with debugging #218 if it occurs again.
2014-10-28 07:44:42 +01:00
Florian Bruhin
76de3d0c51
Use signals and decorators for configs again.
...
This basically rolls back 64a119afb2
and
b7f2a6d143
.
Fixes #188 .
Breaks #156 again but the next commit will fix this.
2014-10-18 19:50:10 +02:00
Florian Bruhin
d9213ecf17
Prevent double-entering hint mode. Fixes #160 .
2014-10-08 22:19:24 +02:00
Florian Bruhin
71308b45ac
Add utils.qualname. Closes #169 .
2014-10-08 21:11:04 +02:00
Florian Bruhin
6349a6a213
Remove Emit:/Raise: from docstrings.
...
They got out-of-sync fast and provided no real benefit.
2014-10-07 23:08:37 +02:00
Florian Bruhin
1ad081a2db
Fix lint
2014-10-06 22:30:37 +02:00
Florian Bruhin
12bbce2914
Spelling fix
2014-10-06 22:23:27 +02:00
Florian Bruhin
105c25bc5f
Merge branch 'multiwin'
...
Conflicts:
qutebrowser/app.py
qutebrowser/browser/commands.py
qutebrowser/browser/hints.py
qutebrowser/keyinput/modeman.py
qutebrowser/network/networkmanager.py
qutebrowser/widgets/mainwindow.py
qutebrowser/widgets/statusbar/command.py
qutebrowser/widgets/statusbar/prompt.py
qutebrowser/widgets/statusbar/prompter.py
qutebrowser/widgets/tabbedbrowser.py
2014-10-06 22:03:58 +02:00
Florian Bruhin
9281fa3992
Fix lint/bugs
2014-10-06 19:53:50 +02:00
Florian Bruhin
85ead4273b
Register tab registry under window registry with ID.
2014-10-06 07:41:05 +02:00
Florian Bruhin
d3121034df
Revert "Store window registries in objreg."
...
This reverts commit dfd3b3d9c4
.
It turns out this makes it very hard to remove the window from the window
registry at the right time.
2014-10-05 23:09:35 +02:00
Florian Bruhin
dfd3b3d9c4
Store window registries in objreg.
2014-10-05 22:17:29 +02:00
Florian Bruhin
85f8366028
Fix lint
2014-09-30 07:49:01 +02:00
Florian Bruhin
8864c042c8
modeman: Make it possible to override a locked mode.
2014-09-30 07:11:37 +02:00
Florian Bruhin
e6fe358d73
Clean up correctly when a window is closed.
2014-09-29 10:43:06 +02:00
Florian Bruhin
9533312e0d
Fix event filter when a non-Mainwindow dialog has an event.
2014-09-28 22:53:24 +02:00
Florian Bruhin
dc7b32e460
Fix lint
2014-09-28 22:23:37 +02:00
Florian Bruhin
fb6cb62f93
First attempt at multi-window support.
2014-09-28 22:13:14 +02:00
Florian Bruhin
64a119afb2
Don't use signals for on_config_changed.
2014-09-28 11:27:52 +02:00
Florian Bruhin
0fadf6b091
Use a list as items-argument for usertypes.enum
2014-09-28 00:42:53 +02:00
Florian Bruhin
86fdf981e3
Refactor init
2014-09-28 00:18:57 +02:00
Florian Bruhin
36fd2e5c7f
Improve __repr__ methods.
2014-09-26 15:48:24 +02:00
Florian Bruhin
0494bc3763
Improve modeman.maybe_leave logging/exception.
2014-09-25 18:45:16 +02:00
Florian Bruhin
55e2ccabf5
Fix lint
2014-09-25 07:58:08 +02:00
Florian Bruhin
78949a8c1b
Use object registry for hintmanager.
2014-09-25 07:49:45 +02:00
Florian Bruhin
cb35452cf0
Remove unused flag for keyparser.
2014-09-24 22:25:11 +02:00
Florian Bruhin
62e55499eb
Privatize all attributes which aren't needed from the outside.
2014-09-24 22:25:11 +02:00
Florian Bruhin
3f02451828
Move object registry to its own file.
2014-09-24 07:06:45 +02:00
Florian Bruhin
2b60cdb64c
Object names cleanup
2014-09-23 23:05:55 +02:00
Florian Bruhin
04be586bca
Use object registry for keyconfig.
2014-09-23 22:37:41 +02:00
Florian Bruhin
a32ed36ba6
Use object registry for mainwindow.
2014-09-23 22:05:00 +02:00
Florian Bruhin
5f45d3de60
Use object registry for modeman.
2014-09-23 20:02:48 +02:00
Florian Bruhin
812a0fdd41
Merge branch 'newcmd'
...
Conflicts:
.flake8
pkg/PKGBUILD.qutebrowser-git
qutebrowser/browser/commands.py
qutebrowser/browser/hints.py
qutebrowser/config/configdata.py
qutebrowser/network/qutescheme.py
qutebrowser/test/config/test_configtypes.py
qutebrowser/utils/utils.py
2014-09-22 19:09:48 +02:00
Florian Bruhin
5eef6d422d
Better exception formatting and handling.
2014-09-16 08:20:19 +02:00
Florian Bruhin
4fde56a942
Allow binding keys.
2014-09-09 23:05:28 +02:00
Florian Bruhin
6f03f08111
Make new key config work (readonly)
2014-09-09 07:43:27 +02:00
Florian Bruhin
ccfc0b3c19
Get rid of most @property's.
...
They were problematic because they're executing hidden code, and also PyQt
hides exceptions happening inside them.
2014-09-02 23:37:47 +02:00
Florian Bruhin
a2e457ccc3
Remove old Ubuntu workaround.
2014-09-02 20:45:25 +02:00
Florian Bruhin
4caec2becb
Document and mark workarounds.
2014-09-02 20:44:58 +02:00
Florian Bruhin
ce4a5affa4
Rename commands.utils to commands.cmdutils.
2014-08-26 20:48:39 +02:00
Florian Bruhin
270b822908
Simplify imports in keyinput.modeman.
2014-08-26 20:38:50 +02:00
Florian Bruhin
c72bfff306
Rename commands.exceptions to commands.cmdexc.
2014-08-26 20:38:10 +02:00
Florian Bruhin
d9a8cbe7ad
Rename utils.misc to utils.utils
2014-08-26 20:20:17 +02:00
Florian Bruhin
b4298c2922
Remove 'as logger' imports.
2014-08-26 20:15:41 +02:00
Florian Bruhin
d625cde28c
Clean up imports
2014-08-26 19:10:14 +02:00
Florian Bruhin
5a88028738
Rename qutebrowser.commands.managers module to .runners.
2014-08-06 15:58:08 +02:00
Florian Bruhin
aebce80b2b
Rename {Command,Search}Manager to ...Runner
2014-08-06 15:38:25 +02:00
Florian Bruhin
ee1b136807
Clean up pylint/noqa comments.
2014-08-04 03:47:09 +02:00
Florian Bruhin
3dc7a1b735
Lock mode while prompting.
2014-08-04 03:14:14 +02:00
Florian Bruhin
9e73cba333
Improve command documentation.
2014-08-03 00:33:39 +02:00
Florian Bruhin
016e8f3c8d
Don't explicitely fill commandline
2014-07-29 01:04:17 +02:00
Florian Bruhin
54246bacbe
Add some type checking for enums
2014-07-29 00:23:20 +02:00
Florian Bruhin
7c8f9bec0f
Use enum for keyboard modes.
2014-07-29 00:19:35 +02:00
Florian Bruhin
8d80ce2628
Switch to python 3.4 enums.
...
Our home-brewn enum wasn't really liked by pylint (many no-member errors), so
instead of adding some workaround, we just use the python 3.4 enum instead.
This however also means we need to depend on Python 3.4 and not 3.3. Maybe we
should use enum34 on Python < 3.3.
2014-07-28 20:41:42 +02:00
Florian Bruhin
70afe4d1fd
Don't die on only-modifier keypresses.
2014-07-03 07:52:47 +02:00
Florian Bruhin
ea84ce7acf
Force keybindings to lower case
2014-07-03 07:46:14 +02:00
Florian Bruhin
9b24ca39ea
Move normalize_keystr to utils.misc
2014-07-03 07:34:09 +02:00
Florian Bruhin
f1ff2738da
Don't normalize keys via QKeySequence.
...
This yields rather strange results with some exotic keys, and this
normalisation doesn't really do much anyways.
2014-07-03 07:16:24 +02:00
Florian Bruhin
03e83ff8e1
Move key to string converting to utils.misc
2014-07-03 06:51:24 +02:00
Florian Bruhin
058bab2348
Log key IDs in hex
2014-07-03 06:30:50 +02:00
Florian Bruhin
a52796e94d
Handle all key modifiers correctly
2014-07-03 06:29:05 +02:00
Florian Bruhin
92ff957543
Clean up message API
2014-06-26 07:58:00 +02:00
Florian Bruhin
37ccac39d6
Fix lint
2014-06-25 21:23:22 +02:00
Florian Bruhin
158301d3df
Reduce logging from modemanager
2014-06-25 15:26:59 +02:00
Florian Bruhin
2690891cbe
Better init logging
2014-06-23 06:37:47 +02:00
Florian Bruhin
113221c731
Log some exceptions
2014-06-20 23:26:19 +02:00
Florian Bruhin
fdda1dd3a0
Forward unbound non-alphanumeric keys by default.
...
We do this so we benefit from some default WebKit keybindings users would
expect. For example, we'd need to bind Ctrl+X/C/V by default without this.
We also remove the custom-bound scrolling keybindings as they're redundant now.
The forward-unbound-keys setting now isn't a bool anymore, instead it can be
set to all/auto/none.
2014-06-19 11:51:25 +02:00
Florian Bruhin
d42e71a5d5
Use QApplication (not QCoreApplication) to call activeWindow
2014-06-19 11:22:17 +02:00
Florian Bruhin
d65587128f
Add vim modelines to all files.
2014-06-19 09:04:37 +02:00
Florian Bruhin
1fef2d02b9
Add an :all-objects command and __repr__s
2014-06-17 11:03:42 +02:00
Florian Bruhin
b905b44b07
Add a qenum_key debug method
2014-06-15 11:21:39 +02:00
Florian Bruhin
6660988a5b
Don't evaluate hint keychains twice
2014-06-13 14:52:54 +02:00
Florian Bruhin
2f1cd43f9c
Change lists to tuples for immutable values
2014-06-06 17:21:35 +02:00
Florian Bruhin
ec25821fae
_foo.py file rename [2/2]
2014-06-03 15:01:57 +02:00
Florian Bruhin
fa1e03f56b
_foo.py file rename [1/2]
2014-06-03 14:57:57 +02:00
Florian Bruhin
1e256699f8
Add topic-specific loggers
2014-05-23 16:11:55 +02:00
Florian Bruhin
7c351caf77
Don't warn on prompt keychain bindings
2014-05-20 17:50:09 +02:00
Florian Bruhin
cfd70e7821
Make yes/no questions work
2014-05-20 12:05:14 +02:00
Florian Bruhin
d901fe69e6
Rename some commands
2014-05-16 23:01:40 +02:00
Florian Bruhin
7eb19e2a1e
Start implementing message-timeout
2014-05-16 15:33:36 +02:00
Florian Bruhin
a045511962
Use exceptions for command errors
2014-05-14 18:00:40 +02:00
Florian Bruhin
876dcad28f
Fix some more escaped quotes
2014-05-13 22:18:59 +02:00
Florian Bruhin
c76819a8b0
Use loggings.warning instead of warn
2014-05-12 17:39:17 +02:00
Florian Bruhin
8ac215fa52
Clear old keybindings when rereading config.
2014-05-12 17:39:04 +02:00
Florian Bruhin
7b2961f23e
Fix some backslash-quotes
2014-05-12 15:58:09 +02:00
Florian Bruhin
edc9d0810c
Use QCoreApplication.instance()
2014-05-09 17:01:05 +02:00
Florian Bruhin
59a89d31fe
Add reasons why modes are entered/left
2014-05-09 16:03:46 +02:00
Florian Bruhin
db6ab7212f
Move cmd/count splitting out of _handle_single_key
2014-05-09 15:37:00 +02:00