Commit Graph

5820 Commits

Author SHA1 Message Date
Spreadyy
a22ae2818c Fix scroll JS for xkcd.
Fix wrong scroll.height for xkcd. Solution according to:
http://stackoverflow.com/questions/1145850/how-to-get-height-of-entire-document-with-javascript
2016-09-27 11:41:47 +02:00
Ryan Roden-Corrent
6aaa138619 Use a set instead of a list for Command._modes. 2016-09-26 08:30:28 -04:00
Ryan Roden-Corrent
14f8ec8754 Error on mode/command mismatch with :bind.
Resolves #1964 (:bind should error for mode/command mismatch)
2016-09-26 08:30:28 -04:00
Ryan Roden-Corrent
6fdd007dbb Simplify mode-checking in command.
Rather than maintaining separate _modes and _not_modes lists, just
build a single _modes list in the constructor.
2016-09-26 08:30:28 -04:00
Florian Bruhin
68e60ecc3c configtypes: Add a "# pragma: no cover" 2016-09-26 08:25:54 +02:00
Florian Bruhin
62ac87c34f Merge branch 'pretty-url' of https://github.com/lahwaacz/qutebrowser into lahwaacz-pretty-url 2016-09-26 07:08:33 +02:00
Florian Bruhin
cfe25b96fc Merge branch 'option-description' of https://github.com/HolySmoke86/qutebrowser into HolySmoke86-option-description 2016-09-26 07:00:17 +02:00
Florian Bruhin
27b524300b Improve configtypes tests
This also gets configtypes.py back to 100% coverage
2016-09-26 06:33:14 +02:00
Daniel Karbach
b801208d97 show option description in qute:settings 2016-09-23 15:42:02 +02:00
Jakub Klinkovský
a72efe4a3e also prettify url:pretty variable 2016-09-22 19:25:54 +02:00
Florian Bruhin
d4376c5196 Fix overlays with a top statusbar 2016-09-22 17:34:30 +02:00
Florian Bruhin
e6f62f8118 Remove now-unneeded _get_overlay_position 2016-09-22 17:34:17 +02:00
Florian Bruhin
17ceba5ce4 Round correct edge for keyhint with top statusbar 2016-09-22 17:29:25 +02:00
Florian Bruhin
e04e6c51d1 Add generator argument to set_register_stylesheet 2016-09-22 17:29:03 +02:00
Florian Bruhin
750dfd98af Generalize statusbar-attached website overlays
We already had some duplicated logic for completion/keyhint/messageview,
and plan to add prompt overlays too now - so here we refactor related
code to have a list of overlays instead, which are all
resized/positioned by the mainwindow when needed.

This also changes the size management, which gets moved into the
sizeHint of the respective overlay widgets.
2016-09-22 17:04:39 +02:00
Jakub Klinkovský
268db48f19 prettify yank pretty-url 2016-09-22 14:25:48 +02:00
Florian Bruhin
57d896e989 Fix hints when zoomed with QtWebEngine
We mutated rect (coming from self._js_dict), which means we used the
already adjusted values the second time we called rect_on_view.

Fixes #1863.
2016-09-21 20:09:31 +02:00
Ryan Roden-Corrent
1d2cf3b648 Completer: don't try to partition search.
Exit before trying to partition if the command prefix is not ':'.

Resolves #1969:
'TypeError with refactored completion when searching for command'
2016-09-21 07:08:34 -04:00
Florian Bruhin
43fa5f55c1 Don't set QT_HARFBUZZ with Qt >= 5.4
Fixes #1948
2016-09-16 08:35:17 +02:00
Florian Bruhin
e5b3880b71 Check for spaces in URLs with explicit scheme
Fixes #1954
2016-09-15 22:29:21 +02:00
Florian Bruhin
04a891cbf0 Merge branch 'kwonly-default-fix' of https://github.com/Kingdread/qutebrowser into Kingdread-kwonly-default-fix 2016-09-15 17:19:26 +02:00
Florian Bruhin
0d64257049 Add missing docstring 2016-09-15 17:16:30 +02:00
Florian Bruhin
bb1b1c8ee8 Remove unused imports 2016-09-15 16:45:48 +02:00
Florian Bruhin
018e9ef4a3 Merge branch 'completion_split' of https://github.com/rcorre/qutebrowser into rcorre-completion_split 2016-09-15 16:44:54 +02:00
Florian Bruhin
879ca0b873 Make qutescheme arg optional for resource_url 2016-09-15 16:42:07 +02:00
Daniel Schadt
794eb84805 add parameter name in error message 2016-09-15 16:38:18 +02:00
Florian Bruhin
37fa7431b0 Serve broken qutebrowser logo via qute:resources
This is needed when we want to display an error page after the user
requested a qute:// URL, as qute:// URLs can't access file:// content
with QtWebEngine.
2016-09-15 16:06:25 +02:00
Daniel Schadt
0ef5d338bd make sure keyword-only arguments have a default
Fixes #1872.

This prevents inspect.Parameter.empty from slipping through to the
command.
2016-09-15 15:44:33 +02:00
Florian Bruhin
44e8296a66 Remove environment variables from version()
We already have those in the report anyways.
2016-09-15 14:59:32 +02:00
Florian Bruhin
8403f2451f Add $PATH to crash info 2016-09-15 14:56:27 +02:00
Florian Bruhin
7e30792bfe Fix lint 2016-09-15 14:51:22 +02:00
Florian Bruhin
e32bbfa8f7 Init message.global_bridge at import time 2016-09-15 14:51:22 +02:00
Florian Bruhin
2c98b837d5 Add config migrations 2016-09-15 14:51:21 +02:00
Florian Bruhin
e5293d34de Add missing str() calls 2016-09-15 14:51:21 +02:00
Florian Bruhin
dfac0658ae Re-add logging for messages 2016-09-15 14:51:21 +02:00
Florian Bruhin
ed4f476ab4 Get rid of queued messages and unused code 2016-09-15 14:51:21 +02:00
Florian Bruhin
f16b96aa28 Initial implementation of new messages 2016-09-15 14:51:21 +02:00
Ryan Roden-Corrent
a9771007b1 Pass string, not index from on_selection_changed.
Simplify the CompletionWidget/Completer interface by changing
on_selection_changed to pass the newly selected text rather than the
index of the newly selected item.
This moves the logic from Completer to CompletionWidget but simplifies
the interaction between the two and makes testing easier.
2016-09-14 22:55:07 -04:00
Ryan Roden-Corrent
ac03095512 Small if-statement style tweak in Completer. 2016-09-14 22:35:05 -04:00
Florian Bruhin
c071964091 Fix lint 2016-09-14 15:21:30 +02:00
Florian Bruhin
886103c887 Fix showing errors in the current window 2016-09-14 15:18:12 +02:00
Florian Bruhin
982d00ff84 Let qute:* handlers decide their mimetype
This means we have to guess less, and handlers can give us HTML as text
which we then encode for them.
2016-09-14 12:33:20 +02:00
Florian Bruhin
5501d90268 Fix lint 2016-09-14 12:00:29 +02:00
Florian Bruhin
a1527f35d4 Allow to restrict qute:* pages to a backend 2016-09-14 11:04:47 +02:00
Florian Bruhin
71bc5bb943 Move QuteSchemeError to qutescheme 2016-09-14 11:04:37 +02:00
Florian Bruhin
aa71c9ae58 Initial qute:* support for QtWebEngine 2016-09-14 10:18:25 +02:00
Ryan Roden-Corrent
e23d611b37 Strip quotes from completion pattern.
Given a commandline like:
`:set general editor "gvim -f"|`, the pattern should be 'gvim -f'
rather than '"gvim -f"'.
2016-09-12 22:19:44 -04:00
Ryan Roden-Corrent
b867b87955 Don't crash Completer on unknown command.
The CommandRunner's fallback parsing behavior treated whitespace
differently than the normal flow. When a user entered an unknown
command, trailing whitespace would be stripped and the cmdline length
would be less than the cursor position.

This is fixed by making the fallback use the ShellLexer just as the
'normal' parsing does.
2016-09-12 22:19:44 -04:00
Ryan Roden-Corrent
69a3df174d Remove needless try/catch in on_selection_changed. 2016-09-12 22:19:44 -04:00
Ryan Roden-Corrent
d651cc75b0 Fix flake8/pylint errors. 2016-09-12 22:19:44 -04:00
Ryan Roden-Corrent
808a645b40 Fix quick-complete highlighting quirk.
When the commandline reads ':open |', quick-completing the only offered
completion will set the commandline to ':open some_url |'. Since `open`
has `maxsplit=0`, everything after ':open' is (correctly) treated as
one argument. This means completion is opened again with 'some url '
as the pattern (note trailing whitespace), which makes the comletion
menu 'flicker' and stay open even though it was 'supposed' to quick
compelte.

This is fixed by ignoring the next completion request if we just
completed something after maxsplit (because we don't expect any more
completions after the last split).

Resolves #1519.
2016-09-12 22:19:44 -04:00
Ryan Roden-Corrent
fcadde6aef Merge _split into _partition in Completer.
After the refactoring, _split is only called by _partition so just make
it part of the same method. This also removes the use of
_empty_item_index, as it can be figured out on the fly.
2016-09-12 22:19:44 -04:00
Ryan Roden-Corrent
127412d91c Simplify update_completion.
Remove the class variables _cursor_part and _empty_item_index. Instead,
split up the commandline around the cursor whenever that information is
needed. Using locals instead of class variables makes the logic easier
to follow and ends up requiring much less code.
2016-09-12 22:19:44 -04:00
Ryan Roden-Corrent
581d7659ba Clean up Completer.on_selection_changed.
Remove the dependency on the class variables _empty_item_index
and _cursor_part to make the code easier to follow. If
_update_completion is refactored in a similar way these variables can
be removed.
2016-09-12 22:19:44 -04:00
Florian Bruhin
0b310d6910 Fix removing of a clicked download 2016-09-12 21:47:01 +02:00
Florian Bruhin
5b0fc41367 Log scroll data we got via JS 2016-09-12 21:46:51 +02:00
Florian Bruhin
4b4582c452 Adjust comment in _rect_on_view_js 2016-09-12 20:00:59 +02:00
Florian Bruhin
14de9f58b8 Fix docstring 2016-09-12 18:33:57 +02:00
Florian Bruhin
8a35ebac7b Use a separate JS world for :jseval 2016-09-12 18:27:51 +02:00
Florian Bruhin
c9e3cc04cf Accept a name for --world with :jseval 2016-09-12 18:23:23 +02:00
Florian Bruhin
97edc59f03 Add some logging to argparse.multitype_conv 2016-09-12 18:22:49 +02:00
Florian Bruhin
b2608d7697 Add --world to :jseval 2016-09-12 15:59:17 +02:00
Florian Bruhin
a16c5a6a25 Add a world argument to tab.run_js_async 2016-09-12 15:59:03 +02:00
Florian Bruhin
2388489038 downloads: Be okay with the tmpdir being gone 2016-09-12 11:30:44 +02:00
Florian Bruhin
0fef141db5 Handle QBuffer in on_feature_permission_requested 2016-09-12 09:43:08 +02:00
Florian Bruhin
43b563f600 Add missing docstring 2016-09-11 21:27:16 +02:00
Florian Bruhin
7ec62c4523 Make some more things in download.py private 2016-09-11 20:58:34 +02:00
Florian Bruhin
3550d59e3a Make DownloadItem.reply private
This adds a new uses_nam method to DownloadItem though.
2016-09-11 20:58:34 +02:00
Florian Bruhin
36b7485262 Make some things in downloads.py private 2016-09-11 20:48:19 +02:00
Florian Bruhin
4a2f0eea2f Fix import order in utilcmds 2016-09-11 20:29:19 +02:00
Florian Bruhin
4537b786f5 Ignore already deleted windows in :window-only 2016-09-11 20:29:05 +02:00
Florian Bruhin
1b5cd98d38 Fix lint 2016-09-11 20:16:03 +02:00
Florian Bruhin
8eeb3b9c75 QtWebEngine: Round scroll percentages 2016-09-11 19:59:00 +02:00
Florian Bruhin
fff777404b Use QApplication.postEvent again
We had some funny segfaults reported during scrolling (i.e. with
QApplication.sendEvent), and some code already had to use postpone=True
so there was no segfault...

So now we're back to postEvent again, and eliminated the main reason for
segfaults with it, which was re-using (and -posting) events which had
already been posted.

At least during tests this seems to run stable, let's hope it helps for
the people having crashes as well.
2016-09-11 19:37:09 +02:00
Florian Bruhin
de03feabfe Fix DownloadModel.itemFlags with invalid index 2016-09-11 17:10:52 +02:00
Florian Bruhin
4d96586eb6 Merge branch 'visibility-api' of https://github.com/Ban3/qutebrowser into Ban3-visibility-api 2016-09-11 16:23:14 +02:00
Florian Bruhin
1fe2579bb1 Merge branch 'windows-userscripts' of https://github.com/Kingdread/qutebrowser into Kingdread-windows-userscripts 2016-09-11 16:14:25 +02:00
Florian Bruhin
4686e0349b Fix lint 2016-09-11 16:06:16 +02:00
Florian Bruhin
162e6d6483 Fix closing with no last-visible-main-window
Fixes #1918
2016-09-11 16:03:15 +02:00
Florian Bruhin
1c09649dcb Pass QNAM instead of page to DownloadManager 2016-09-11 14:58:07 +02:00
Florian Bruhin
e8f8f1e72a Add DownloadItem.remove
This also gets rid of the remove_items method and replaces it by a
simple loop. I don't think the optimization is actually needed...
2016-09-11 14:58:07 +02:00
Florian Bruhin
b332d22967 Make DownloadModel a sequence 2016-09-11 14:58:07 +02:00
Florian Bruhin
b949e4d73a Start splitting DownloadModel from DownloadManager
This mostly works, apart from remove_item/remove_items not being
available on the model.
2016-09-11 14:58:07 +02:00
Jussi Timperi
19d9ec374d Handle the missing attribute 2016-09-11 13:12:27 +03:00
Jussi Timperi
1adc308676 Access enums by their base class 2016-09-11 13:04:58 +03:00
Florian Bruhin
4c55963dc3 Fix lint 2016-09-10 17:32:04 +02:00
Jussi Timperi
6437a28184 QtWebKit: Add version checks to visibility API 2016-09-10 17:55:00 +03:00
Florian Bruhin
bd5f63db46 Make an invalid download target fatal
This should never happen, so there's no reason for it to log an error
instead of raising an exception.
2016-09-10 16:42:27 +02:00
Florian Bruhin
cc4cd6913d Make download model qtmodeltester compliant 2016-09-10 16:24:31 +02:00
Florian Bruhin
3bf841bdb4 Delete file on infinite redirects 2016-09-10 16:24:31 +02:00
Florian Bruhin
dc0ddd023a Add logging for deleting/removing downloads 2016-09-10 16:24:31 +02:00
Jussi Timperi
13d73359d4 QtWebKit: Handle visibility API
closes #1886
2016-09-10 16:07:29 +03:00
Florian Bruhin
7f2cc5dbc3 Make remove_data in DownloadItem.cancel kw-only 2016-09-09 19:29:14 +02:00
Florian Bruhin
b39d33d5e3 Revert "Remove remove_data arg for DownloadItem.cancel"
This reverts commit ece85dc903.

It's actually needed in _ask_confirm_question...
2016-09-09 19:28:17 +02:00
Florian Bruhin
433a8a8ced Fix filename with a misconfigured XDG_DOWNLOAD_DIR
'filename' is the relative path we got from the broken config file.
Instead of using the garbage, let's just drop it and use the suggested
name (self.basename) instead.
2016-09-09 18:46:51 +02:00
Florian Bruhin
a5793695de Mark almost-impossible check with a nocover pragma
This can only happen when running :download-open on a download created
by :adblock-update right now, which is a very small chance, so we can't
easily test for it.
2016-09-09 18:46:51 +02:00
Florian Bruhin
ece85dc903 Remove remove_data arg for DownloadItem.cancel
This was added in f0779f8cc0 but never
actually used.
2016-09-09 18:46:51 +02:00
Florian Bruhin
ab30124bd0 Remove (hopefully) dead download code
If the percentage is None, remaining/total should always be None
too (as percentage/remaining being None should be triggered by total
being None).
2016-09-09 18:46:51 +02:00
Florian Bruhin
7611281563 Add basename to "download finished" message 2016-09-09 18:46:51 +02:00
Florian Bruhin
864ec94cde Fix lint 2016-09-09 17:56:58 +02:00