Commit Graph

297 Commits

Author SHA1 Message Date
Florian Bruhin
0d9bf5e2c9 Fix lint. 2015-02-26 06:13:27 +01:00
Samir Benmendil
81af41d77f Add option to set minimum number of chars in hints 2015-02-26 00:49:50 +00:00
Florian Bruhin
0fcd016427 Move cursor to end of textboxes when hinting. 2015-02-25 19:56:03 +01:00
Florian Bruhin
56b0ae2b6e Get rid of mainwindow.MainWindow.spawn. 2015-02-16 22:56:12 +01:00
Florian Bruhin
18b58b2001 Set a higher z-index for hint labels.
This fixes hinting on the youtube top bar.

Fixes #496.
2015-02-02 06:35:45 +01:00
Florian Bruhin
aae33a0308 Handle another webelem.IsNullError with hints. 2015-01-16 09:09:12 +01:00
Florian Bruhin
77df4c7241 Add !important to all hint properties. 2015-01-06 17:10:54 +01:00
Error 800
82ee78b3db Added !important to hint styles
Prevents websites from overriding hint styles
2015-01-06 16:23:45 +01:00
Error 800
c008ee8dd7 Added !important to hint styles
Prevents websites from overriding hint styles
2015-01-06 16:13:28 +01:00
Error 800
ce5629eab3 Fixed uppercase hints option
Corrected CSS property from 'texttransform' to 'text-transform'
2015-01-05 16:20:45 +01:00
Florian Bruhin
efe96462c9 Pass more useful information to userscripts.
Closes #379.
2015-01-04 20:16:15 +01:00
Florian Bruhin
013f906c3b hints: Small cleanup (add _show_url_error method). 2015-01-04 20:15:45 +01:00
Florian Bruhin
450d1ab70d Update copyright years 2015-01-03 15:51:31 +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
67001665a2 Cleanups in hint.py. 2014-12-13 00:30:35 +01:00
Johannes Altmanninger
d0bed460eb Hints: Use the src html attribute in addition to href in _resolve_url.
See issue #286
2014-12-12 18:40:12 +01:00
Johannes Altmanninger
582e3e57e9 Add hint target 'run' to execute a command based on a hint URL.
Fixes Issue #285.
The command is not preceded by a colon because there is no need to
distinguish between a search and a command.
2014-12-12 18:17:58 +01:00
Florian Bruhin
841e31283c hints: Store id() of destroyed frames.
Fixes #305. #152 should still be okay.
2014-12-12 01:38:13 +01:00
Florian Bruhin
aefa637bc5 Check if command text is valid when hinting. 2014-12-11 22:16:56 +01:00
Florian Bruhin
d0b5f2087a Fix un-hiding of hints. 2014-12-10 23:22:25 +01:00
Florian Bruhin
d94f848c82 Ignore isNullError while handling label elements.
Fixes #295 (hopefully for real this time!)
2014-12-02 21:27:06 +01:00
Florian Bruhin
99fb516aa3 Never disconnect signal from destroyed frames.
Fixes #152 - hopefully really this time!
2014-12-02 21:09:03 +01:00
Florian Bruhin
9fa036ecce Remove logging for #152.
This reverts a1ba05ff08.
2014-12-01 22:29:32 +01:00
Florian Bruhin
e8a6238028 Clean up hint labels and frames before clicking link.
Fixes #152.
Hopefully fixes #295.
2014-12-01 19:15:17 +01:00
Florian Bruhin
655115858c Handle OSError when using subprocess. 2014-11-23 18:07:05 +01:00
Florian Bruhin
ecbebba9e9 hints: Ignore TypeError when disconnecting contentsSizeChanged.
Fixes #263.
2014-11-16 00:05:20 +01:00
Florian Bruhin
b502280c06 Make download-manager a per-window object.
Fixes #228.
2014-11-11 21:36:47 +01:00
Florian Bruhin
326ce91eb7 Append hint elements inside body.
Fixes #226.
2014-11-09 22:02:08 +01:00
Florian Bruhin
c3a83bc412 Add hover description to docstring (#238) 2014-11-02 20:08:40 +01:00
Florian Bruhin
7b670b134d Small whitespace fix for #238 2014-11-02 20:04:41 +01:00
rikn00
4d101eea59 Improve hovering a hint 2014-11-02 16:37:34 +02:00
rikn00
84759a4928 Add support to hover mouse over a hint 2014-11-01 01:54:19 +02:00
Florian Bruhin
8e0e33e89a Use QWebElement API to set hint elem style.
See #225.
2014-10-29 22:50:29 +01:00
Florian Bruhin
2937fb9232 Use QWebElement API to set hint elem attributes.
Fixes #225.
2014-10-29 21:01:32 +01:00
Florian Bruhin
a1ba05ff08 Add some logging for #152 2014-10-29 07:09:43 +01:00
Florian Bruhin
0c8b9fe095 Add vdebug logging for hints.
This hopefully helps with #225.
2014-10-28 19:00:41 +01:00
Florian Bruhin
2d9425a0b7 Fix uppercase hint formatting. 2014-10-26 17:05:56 +01:00
Peter Vilim
ee875ba895 hints: Show uppercase hint chars #73 2014-10-26 03:04:48 -05:00
Florian Bruhin
c2daadf0bd Fix exception when element has no web frame. 2014-10-22 20:18:58 +02:00
Florian Bruhin
5a5ff70703 hints: fix replacing of {hint-url}.
Fixes #200.
2014-10-17 11:39:44 +02:00
Florian Bruhin
ee02f339d7 Draw hints correctly when page is zoomed.
Fixes #199.
2014-10-17 11:32:41 +02:00
Florian Bruhin
d9213ecf17 Prevent double-entering hint mode. Fixes #160. 2014-10-08 22:19:24 +02:00
Florian Bruhin
596afab1ac Fix lint 2014-10-07 23:10:58 +02:00
Florian Bruhin
f9dc9f4acd Fix rapid hinting. Closes #148. 2014-10-07 07:45:29 +02:00
Florian Bruhin
d2b3f89d78 Remove frame signal workaround for hints. See #152. 2014-10-07 07:15:14 +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
fd9a3fc5e7 Clean up mainwindow import mess. 2014-10-06 21:24:07 +02:00
Florian Bruhin
8eb0489357 Add rapid window hinting. 2014-10-06 19:39:48 +02:00
Florian Bruhin
52e72a8bec Fix window spawning with hints. 2014-10-06 18:47:55 +02:00
Florian Bruhin
6324751af6 More window support. 2014-10-06 17:58:40 +02:00
Florian Bruhin
85ead4273b Register tab registry under window registry with ID. 2014-10-06 07:41:05 +02:00
Florian Bruhin
4dcaa1fdec Be more forgiving when validating URLs. Fixes #141. 2014-10-03 16:58:30 +02:00
Florian Bruhin
d674b90240 Clean up FIXMEs and add github URLs 2014-10-01 22:23:27 +02:00
Florian Bruhin
36f7ff6154 Fix some objreg.get calls. 2014-09-28 23:23:02 +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
65d1d21d2e Always use a list for namedtuple. 2014-09-28 00:43:08 +02:00
Florian Bruhin
0fadf6b091 Use a list as items-argument for usertypes.enum 2014-09-28 00:42:53 +02:00
Florian Bruhin
c188c6986d Call on_mode_entered only once for hints. 2014-09-25 19:06:38 +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
4783df8c32 Avoid download_get signal. 2014-09-25 00:29:29 +02:00
Florian Bruhin
3f02451828 Move object registry to its own file. 2014-09-24 07:06:45 +02:00
Florian Bruhin
9aa65a2341 Fix lint and bugs 2014-09-23 23:17:36 +02:00
Florian Bruhin
2b60cdb64c Object names cleanup 2014-09-23 23:05:55 +02:00
Florian Bruhin
5f45d3de60 Use object registry for modeman. 2014-09-23 20:02:48 +02:00
Florian Bruhin
58be65f4f0 Use object registry for messagebridge. 2014-09-23 19:53:48 +02:00
Florian Bruhin
688b9a57cb Add missing is_visible check for hints. 2014-09-22 20:06:17 +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
658053842e hints: Wrap elements after checking is_visible.
Wrapping thousands of elements is really slow (>3 seconds for hinting on a
reddit page, because we wrap ~2500 elements with 50 methods each), so we try to
filter the elements first before wrapping them, as the visible elements will be
much less.
2014-09-19 12:32:28 +02:00
Florian Bruhin
81aa08593b hints: Ignore invalid href's instead of crashing. 2014-09-15 06:54:05 +02:00
Florian Bruhin
ad2435fa0b hints: Small cleanup 2014-09-15 06:53:05 +02:00
Florian Bruhin
00193df99e hints: Fix URL resolving crash with new WebElement API. 2014-09-15 06:52:34 +02:00
Florian Bruhin
1fd8fb57a6 Use *args for commands where possible. 2014-09-14 23:10:51 +02:00
Florian Bruhin
1220f0c5fd Move webelem from utils to browser. 2014-09-08 10:30:05 +02:00
Florian Bruhin
0a094c6e58 Refactor HintManager.start 2014-09-08 07:36:17 +02:00
Florian Bruhin
57d51ad9bb Lots of fixes for new command system.
Squashed commit:

- Fix getting current URL
- Get rid of *args for hints.
- Make enums work.
- Fix moving commands to utilcmds.
- Fix enums in argparse
- Fix arg splitting for hints.
- Fix default enum args.
- Fix argument splitting for hints if None is given.
- Fix set_cmd_text with flags and fix {url}.
- Fix unittests
- Fix tuple types for arguments.
- Fix scroll-page.
- Fix lint
- Fix open_target.
- Others
2014-09-08 07:36:17 +02:00
Florian Bruhin
b856bf3a47 Improve webelement API 2014-09-04 20:30:59 +02:00
Florian Bruhin
b789d14513 Improve prev-page/next-page matching and logging. 2014-09-03 22:55:48 +02:00
Florian Bruhin
71796e9528 Fix statusbar text when entering insert mode via hints.
Before, hints cleaned the statusbar text delayed, clearing the "==== INSERT
MODE ====" in the statusbar.

Now we only reset the text if it wasn't changed.
2014-09-03 11:51:24 +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
c72bfff306 Rename commands.exceptions to commands.cmdexc. 2014-08-26 20:38:10 +02:00
Florian Bruhin
8bd64382bd Rename utils.qt to utils.qtutils. 2014-08-26 20:25:11 +02:00
Florian Bruhin
b4298c2922 Remove 'as logger' imports. 2014-08-26 20:15:41 +02:00
Florian Bruhin
e04b31eb90 Remove qt_ prefix from qtutils functions. 2014-08-26 19:23:06 +02:00
Florian Bruhin
d625cde28c Clean up imports 2014-08-26 19:10:14 +02:00
Florian Bruhin
3dc7a1b735 Lock mode while prompting. 2014-08-04 03:14:14 +02:00
Florian Bruhin
90f1d5851c Fix lint. 2014-08-03 00:58:59 +02:00
Florian Bruhin
acfc95e19d Simplify :hint by adding a 'fill' target. 2014-08-03 00:56:42 +02:00
Florian Bruhin
425a7fd7c4 Simplify userscript running. 2014-07-29 02:05:15 +02:00
Florian Bruhin
b83dd59469 Add userscript/spawn targets to hints. 2014-07-29 01:45:42 +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
1f3b39eb75 Get rid of prevnext_rel selector group 2014-07-16 09:17:59 +02:00
Florian Bruhin
fad22c63d9 Go back to using one NetworkManager per tab 2014-07-10 06:42:52 +02:00
Florian Bruhin
72b854049b Improvments for hints/page-prev/page-next 2014-07-09 21:14:15 +02:00
Florian Bruhin
92ff957543 Clean up message API 2014-06-26 07:58:00 +02:00
Florian Bruhin
81990f792f Avoid using QApplication for downloads 2014-06-23 17:30:28 +02:00
Florian Bruhin
8a8ca0c34f Split utils.misc into utils.{qt,misc} 2014-06-23 07:45:04 +02:00
Florian Bruhin
49fd08b30d Leave URLs encoded when setting commandline 2014-06-21 23:19:59 +02:00
Florian Bruhin
664079c728 Don't raise CommandError in HintManager.fire 2014-06-21 17:41:25 +02:00
Florian Bruhin
7a6e2b3242 Ensure validity of Qt objects 2014-06-21 17:02:30 +02:00
Florian Bruhin
0dc2ecef46 Check QUrl objects for validity 2014-06-20 23:57:52 +02:00
Florian Bruhin
2d2ee71bee Remove passwords from URLs going out via an insecure channel. 2014-06-20 22:57:04 +02:00
Florian Bruhin
8b6af23b13 Make sure we don't display passwords in URLs to the user 2014-06-20 19:50:44 +02:00
Florian Bruhin
0fd64419da Remove urlutils.{urlstring,qurl}.
The idea of treating an URL-string and a QUrl as essentially the same data type
got us into all kinds of problems. Now we use QUrl everywhere except at the
borders to the user interface.
2014-06-20 16:33:01 +02:00
Florian Bruhin
6b12572fb0 Add dwb download keybindings. 2014-06-19 17:58:46 +02:00
Florian Bruhin
d65587128f Add vim modelines to all files. 2014-06-19 09:04:37 +02:00
Florian Bruhin
6a81710c71 Use HintContext per invocation of hintmanager 2014-06-07 18:07:09 +02:00
Florian Bruhin
2f1cd43f9c Change lists to tuples for immutable values 2014-06-06 17:21:35 +02:00
Florian Bruhin
1e256699f8 Add topic-specific loggers 2014-05-23 16:11:55 +02:00
Florian Bruhin
7308fa97c5 Leave hinting mode when insert mode is entered 2014-05-22 17:49:18 +02:00
Florian Bruhin
d901fe69e6 Rename some commands 2014-05-16 23:01:40 +02:00
Florian Bruhin
326280f910 Fix consistency and spelling in docstrings/comments 2014-05-15 16:27:34 +02:00
Florian Bruhin
cf02330b42 Make hinting work again.
6b2d2713f7 broke this as we accidentally
iterate over self._frames before setting it.
2014-05-14 18:54:34 +02:00
Florian Bruhin
a045511962 Use exceptions for command errors 2014-05-14 18:00:40 +02:00
Florian Bruhin
651eab1032 Return after error when there's no hint to follow 2014-05-14 14:56:13 +02:00
Florian Bruhin
6b2d2713f7 Clean up HintManager.start() 2014-05-13 21:13:53 +02:00
Florian Bruhin
0b3854bff1 Work around segfault in hintmanager 2014-05-13 13:42:30 +02:00
Florian Bruhin
7b2961f23e Fix some backslash-quotes 2014-05-12 15:58:09 +02:00
Florian Bruhin
419caf7116 Rename rect_on_screen to rect_on_view 2014-05-12 10:05:00 +02:00
Florian Bruhin
50f31ca7cb Handle visibility of elements on screen correctly 2014-05-12 10:04:27 +02:00
Florian Bruhin
4eebe2dc57 First try at hinting with frames 2014-05-12 07:49:44 +02:00
Florian Bruhin
59a89d31fe Add reasons why modes are entered/left 2014-05-09 16:03:46 +02:00
Florian Bruhin
4eb6f896b0 Remove unused import in hints.py 2014-05-08 20:36:23 +02:00
Florian Bruhin
14873285e6 Fix enum bugs 2014-05-06 21:09:09 +02:00
Florian Bruhin
164dcfb6bd Always click elements in the center when hinting 2014-05-06 21:07:20 +02:00
Florian Bruhin
e2ded2e0ad Add logging to handle_partial_key 2014-05-06 17:02:44 +02:00
Florian Bruhin
764c37c8d6 Hide elements instead of deleting them 2014-05-06 17:02:32 +02:00
Florian Bruhin
e683d85799 Add quick and dirty fix for hint clicking 2014-05-06 14:03:48 +02:00
Florian Bruhin
70d6efff96 Elements might be deleted already when hint mode is left 2014-05-06 10:04:40 +02:00
Florian Bruhin
e5000c315d Revert "Use global HintManager"
This reverts commit a76d68f564.

WTF. I thought I reset --hard-ed that one?
2014-05-06 07:11:20 +02:00
Florian Bruhin
3eaf1ec6d8 Remove old logging 2014-05-05 22:34:58 +02:00
Florian Bruhin
a76d68f564 Use global HintManager 2014-05-05 20:28:29 +02:00
Florian Bruhin
667b255d01 Use QApplication for global singletons 2014-05-05 17:56:14 +02:00
Florian Bruhin
9cf713cbe4 Use a metaclass for Enums for easier reverse mapping 2014-05-05 10:08:06 +02:00
Florian Bruhin
4ebe643ea6 Use simple enums for constants 2014-05-05 07:45:36 +02:00
Florian Bruhin
af68474fc3 Make sure frame is not None in HintManager.start 2014-05-02 18:57:59 +02:00
Florian Bruhin
efc613811f Implement numeric hints 2014-05-02 17:53:16 +02:00
Florian Bruhin
615a2e0bb5 Handle invalid hinting modes/targets 2014-05-02 11:25:24 +02:00
Florian Bruhin
7aef865b0d Lint fixes 2014-05-01 19:42:51 +02:00
Florian Bruhin
cb8f824f01 Add basurl 2014-05-01 16:40:14 +02:00
Florian Bruhin
5d80831752 prevpage/nextpage updates 2014-05-01 16:35:26 +02:00
Florian Bruhin
a3126635d4 Revert changes in _click 2014-05-01 15:29:18 +02:00
Florian Bruhin
fd678ff864 Make hints work 2014-05-01 15:27:32 +02:00
Florian Bruhin
12b36de5b5 Start implementing prev/next 2014-05-01 00:26:18 +02:00
Florian Bruhin
9fd7f8b975 Rewrite HintManager.fire to use handler dicts 2014-04-29 09:09:42 +02:00
Florian Bruhin
0d92e34310 Fix/silence checks 2014-04-28 00:05:14 +02:00
Florian Bruhin
a0f27fed61 Add manual hint following 2014-04-27 21:59:23 +02:00