Commit Graph

1619 Commits

Author SHA1 Message Date
Florian Bruhin
64b32ec87d Remove general -> wrap-search 2016-07-12 16:47:57 +02:00
Florian Bruhin
f0da508c21 Move searching out of WebView subclass
This also makes it work for QtWebEngine.
It also seems to fix #1050 though I'm not 100% sure why.
2016-07-12 16:29:50 +02:00
Florian Bruhin
cd4eff364a Add printing to tab API
This fixes printing for QtWebKit, and hopefully will make printing to
PDF work with QtWebEngine with Qt >= 5.7
2016-07-12 12:54:11 +02:00
Florian Bruhin
7a39021d41 Merge branch 'issues/1630' of https://github.com/jdkaplan/qutebrowser into jdkaplan-issues/1630 2016-07-12 10:07:59 +02:00
Jeremy Kaplan
6b2b096f3c Add test for :print --pdf 2016-07-11 20:08:24 -04:00
Jeremy Kaplan
62ae793a24 Generate docs 2016-07-11 20:07:54 -04:00
Florian Bruhin
4f9be56d7d Merge branch 'add-bookmark-by-url' of https://github.com/ismail-s/qutebrowser into ismail-s-add-bookmark-by-url 2016-07-11 20:54:09 +02:00
Florian Bruhin
3d4cf1fc92 QtWebEngine: Fix icon access on Qt < 5.7 2016-07-11 18:24:38 +02:00
Florian Bruhin
f2c52f96a1 Fix _on_url_changed 2016-07-11 16:33:19 +02:00
Florian Bruhin
8b67d68d4a Move qtutils.ensure_valid in WebView.openurl 2016-07-11 16:32:24 +02:00
Florian Bruhin
e80475ed57 Remove support for showing JS statusbar messages
Closes #1579.
2016-07-11 16:19:44 +02:00
Florian Bruhin
d0aea24568 Remove WebView.linkHovered signal 2016-07-11 16:09:17 +02:00
Florian Bruhin
914f9db8ca Actually connect _on_url_changed slot 2016-07-11 16:05:09 +02:00
Florian Bruhin
5d6eedcd49 Move URL/title handling to AbstractTab 2016-07-11 14:36:57 +02:00
Florian Bruhin
a470bfc3f3 Get rid of url_text_changed signal
Instead we simply use url_changed which (similar to Qt's urlChanged)
simply has a QUrl argument.
2016-07-11 14:28:51 +02:00
Florian Bruhin
5cbd540e15 Get rid of WebView.cur_url attribute
The only thing which differs from url() is that it got set immediately
after openurl() was called, which might or might not have improved
something.

Let's see if things still work the same without it.
2016-07-11 14:20:46 +02:00
Florian Bruhin
c558a8b4ad Add missing docstring 2016-07-11 12:42:51 +02:00
Florian Bruhin
e9d606a782 Move load_status / SSL errors to AbstractTab 2016-07-11 12:09:41 +02:00
Florian Bruhin
6ae232d8fc Move 'progress' to AbstractTab
This makes load progress work with QtWebEngine.
2016-07-11 11:31:59 +02:00
Jeremy Kaplan
a6a030e92f Add :print --pdf flag to skip printing dialog 2016-07-10 21:58:54 -04:00
Florian Bruhin
01b7b27bda Fix lines which are now too long 2016-07-10 17:33:36 +02:00
Florian Bruhin
b791095324 Rename browser.tab module and classes 2016-07-10 17:27:02 +02:00
Florian Bruhin
d2ece6b542 Move Backend enum to usertypes
Otherwise we have a cyclic import
2016-07-10 17:04:26 +02:00
Florian Bruhin
0ab601aaf3 Make it possible to limit commands to backends 2016-07-10 16:57:02 +02:00
Florian Bruhin
11cd5f8653 Don't register webview in objreg
All places now should use the tab API instead.
2016-07-08 17:21:33 +02:00
Florian Bruhin
67eea1678e Move tab registry from webview to tab 2016-07-08 17:13:18 +02:00
Ismail S
fd7342b055 Move """ to separate line 2016-07-08 15:58:47 +01:00
Ismail S
5ad66c29e1 Update docstring 2016-07-08 15:38:58 +01:00
Ismail S
babbd0771c Refactor code 2016-07-08 15:33:13 +01:00
Florian Bruhin
7360ea69ba Fix lint 2016-07-08 13:08:31 +02:00
Florian Bruhin
06a6daee34 Add stubs for QtWebEngine 2016-07-08 12:53:48 +02:00
Florian Bruhin
b1fda1b0ef Get rid of tab.run_webaction
As mentioned here:
e4b0b7fffd (r70002693)

It makes no sense to add a backend-specific run_webaction method to
AbstractTab - better to just access _widget directly in this one place
instead of adding something backend-speficic to the API.
2016-07-08 10:42:54 +02:00
Florian Bruhin
55784f9783 Add tab.create() helper function 2016-07-08 10:38:52 +02:00
Florian Bruhin
334f6cda4f tab: Rename modeman to mode_manager
To avoid it being mixed up with the modeman module
2016-07-08 10:38:51 +02:00
Florian Bruhin
b8086d1d13 mhtml: web_view -> tab rename
Otherwise this sounds like we still have a QWebView.
This also fixes the cur_url access.
2016-07-08 10:08:11 +02:00
Florian Bruhin
2befebaf3a Don't use properties for AbstractTab
Otherwise exceptions in there could be hidden by Python/PyQt.

Some places are not changed yet, as there are also other renames in the
next commits.
2016-07-08 10:05:46 +02:00
Florian Bruhin
ecd399181d Fix AbstractSearch attribute docs 2016-07-08 09:15:28 +02:00
Ismail S
3b0fb84c47 Allow adding bookmarks by url 2016-07-07 20:16:19 +01:00
Florian Bruhin
e4b0b7fffd Fix lint 2016-07-07 20:12:17 +02:00
Florian Bruhin
dde8ac6844 Use __slots__ for tab.TabData 2016-07-07 19:36:27 +02:00
Florian Bruhin
ee7b4256a9 Fix AbstractTab repr() with no URL available 2016-07-07 18:32:52 +02:00
Florian Bruhin
d9516b9c1d Adjust various comments 2016-07-07 18:32:52 +02:00
Florian Bruhin
3c99436950 Make on_* methods in tab private 2016-07-07 18:32:52 +02:00
Florian Bruhin
868f781f4d Rename zoom._set_default_zoom to zoom.set_default 2016-07-07 18:32:52 +02:00
Florian Bruhin
1c9d0857cb Various cleanups 2016-07-07 18:32:52 +02:00
Florian Bruhin
40f0aa0023 Fix pylint without QtWebEngine available 2016-07-07 18:32:52 +02:00
Florian Bruhin
7e3e9618b2 Revert "Adjust QtWebKit _key_press to QtWebEngine one"
This reverts commit f52326c5eea83e58d95afb696480600c6a8a5b7b.

For some reason this causes a lot of segfaults...
2016-07-07 18:32:52 +02:00
Florian Bruhin
b23ddb31c9 Fix lint 2016-07-07 18:32:52 +02:00
Florian Bruhin
be02bfb37d Unify arguments for on_mode_* slots in Caret 2016-07-07 18:32:52 +02:00
Florian Bruhin
df2c50aa60 Add class docstrings for webkittab/webenginetab 2016-07-07 18:32:52 +02:00
Florian Bruhin
de60ad04dc Fix mouse wheel zooming 2016-07-07 18:32:52 +02:00
Florian Bruhin
b78de501c2 Adjust QtWebKit _key_press to QtWebEngine one 2016-07-07 18:32:52 +02:00
Florian Bruhin
47ce6aff89 Send QtWebEngine fake key events to focus proxy
This fixes simple scrolling with QtWebEngine.
2016-07-07 18:32:52 +02:00
Florian Bruhin
ec053f8007 Simplify TabData implementation
This uses direct attributes instead of self._data which means we can
only override __setattr__, and pylint will better understand what's
happening.
2016-07-07 18:32:52 +02:00
Florian Bruhin
2bd07937e5 Remove unnecessary TabData.__getattr__ code
__getattribute__ is used in that case; see
https://github.com/PyCQA/pylint/issues/979
2016-07-07 18:32:52 +02:00
Florian Bruhin
7444f83dbf Fix importing of QtWebEngine specific code 2016-07-07 18:32:52 +02:00
Florian Bruhin
17466b4f26 Fix some lint 2016-07-07 18:32:52 +02:00
Florian Bruhin
7b37d85150 Pass modeman as argument to AbstractTab 2016-07-07 18:32:52 +02:00
Florian Bruhin
e0cd878606 Fix/tunnel mhtml downloads 2016-07-07 18:32:52 +02:00
Florian Bruhin
0719101b6f Also tunnel :paste-primary 2016-07-07 18:32:52 +02:00
Florian Bruhin
21b282ce29 Get rid of _DummyUserscriptRunner
This simplifies the code a bit and only provides
userscript.run_async (and not the UserscriptRunner class) as entrypoint.
2016-07-07 18:32:52 +02:00
Florian Bruhin
a6307497c0 Rewrite userscripts to work with async dumping 2016-07-07 18:32:52 +02:00
Florian Bruhin
edafa7c99f Tunnel a few features until we have a proper API 2016-07-07 18:32:52 +02:00
Florian Bruhin
3c71337698 Handle OverflowError when scrolling 2016-07-07 18:32:52 +02:00
Florian Bruhin
0937a64f1c Fix :inspect 2016-07-07 18:32:52 +02:00
Florian Bruhin
675f95a2e4 Add stubs for on_mode_{entered,left} for WebEngine
This means at least we won't get a crash when using the commandline.
2016-07-07 18:32:52 +02:00
Florian Bruhin
12fc0821c0 Try to implement some QtWebEngine scrolling 2016-07-07 18:32:52 +02:00
Florian Bruhin
9c5143786c Implement scroll.pos_perc for QtWebEngine 2016-07-07 18:32:52 +02:00
Florian Bruhin
a1f4dcd542 Add QWebEngineView subclass 2016-07-07 18:32:52 +02:00
Florian Bruhin
822e193682 Fix :view-source 2016-07-07 18:32:52 +02:00
Florian Bruhin
04ee021bdb Add AbstractTab.set_html 2016-07-07 18:32:52 +02:00
Florian Bruhin
78f425c98b Add AbstractTab.data 2016-07-07 18:32:52 +02:00
Florian Bruhin
70b7314b76 Fix :debug-webaction 2016-07-07 18:32:52 +02:00
Florian Bruhin
deb0a10973 Add AbstractTab.backend attribute 2016-07-07 18:32:52 +02:00
Florian Bruhin
4de48620e3 Fix loading of sessions 2016-07-07 18:32:52 +02:00
Florian Bruhin
5dfd8d68bf Set focus proxy for AbstractTab
By default, the AbstractTab object got the focus, which means things
like key events passed to it didn't actually get passed through to the
web view, causing these tests to fail:

    tests/end2end/features/test_keyinput_bdd.py::test_forwarding_all_keys
    tests/end2end/features/test_keyinput_bdd.py::test_forwarding_special_keys

Now we make sure the real underlying WebView always gets the keyboard
focus.
2016-07-07 18:32:52 +02:00
Florian Bruhin
3c3043eeae Add tab.clear_ssl_errors()
This fixes :debug-clear-ssl-errors
2016-07-07 18:32:52 +02:00
Florian Bruhin
86f63e1ae6 Add tab.new_tab_requested signal 2016-07-07 18:32:52 +02:00
Florian Bruhin
4d650c8dfd Add tab.caret.follow_selected() 2016-07-07 18:32:52 +02:00
Florian Bruhin
1148184892 Add tab.set_open_target
This fixes :follow-selected
2016-07-07 18:32:52 +02:00
Florian Bruhin
52efa9f185 Make AbstractHistory.history private 2016-07-07 18:32:52 +02:00
Florian Bruhin
b0ba2125a3 Fix :undo 2016-07-07 18:32:52 +02:00
Florian Bruhin
aebc29337a Move __iter__ to AbstractHistory 2016-07-07 18:32:52 +02:00
Florian Bruhin
59c9ee88e5 Quick fix for createWindow 2016-07-07 18:32:52 +02:00
Florian Bruhin
94b856c565 Make self._widget private in wrappers
While we need to set it from the outside (from AbstractTab) this still
is not considered public API for the rest of the code, so let's make it
private.
2016-07-07 18:32:52 +02:00
Florian Bruhin
0b88c5d413 Re-implement searching for QtWebKit 2016-07-07 18:32:52 +02:00
Florian Bruhin
515d16f137 Move selection()/has_selection() to caret 2016-07-07 18:32:52 +02:00
Florian Bruhin
5c535213ad Random cleanups 2016-07-07 18:32:52 +02:00
Florian Bruhin
ac4186a0f0 Tunnel :hint and :navigate 2016-07-07 18:32:52 +02:00
Florian Bruhin
5fe2230e1f Fix various scrolling issues 2016-07-07 18:32:52 +02:00
Florian Bruhin
16c397a9d2 Fix various zooming issues 2016-07-07 18:32:52 +02:00
Florian Bruhin
edb65ecf50 Add run_js_eval and get :jseval to run 2016-07-07 18:32:52 +02:00
Florian Bruhin
cd95f94ac8 Disallow None-callback for dump_async 2016-07-07 18:32:52 +02:00
Florian Bruhin
21753bc65f Make AbstractCaret a QObject 2016-07-07 18:32:52 +02:00
Florian Bruhin
e21edd3e18 Implement selection 2016-07-07 18:32:52 +02:00
Florian Bruhin
90614d1fe3 Initial caret browsing support 2016-07-07 18:32:52 +02:00
Florian Bruhin
34d3d2cda6 Full scrolling implementation 2016-07-07 18:32:52 +02:00
Florian Bruhin
56852821e8 Try to fix _back_forward 2016-07-07 18:32:52 +02:00
Florian Bruhin
7319ced0bc Fix history deserializing 2016-07-07 18:32:52 +02:00
Florian Bruhin
67ffa67968 Fix deserialize call 2016-07-07 18:32:52 +02:00
Florian Bruhin
7cbe174f1e Fix set_zoom_factor call 2016-07-07 18:32:52 +02:00
Florian Bruhin
7e607a0cf2 Add icon() 2016-07-07 18:32:52 +02:00
Florian Bruhin
4fea285740 Add win_id attribute 2016-07-07 18:32:52 +02:00
Florian Bruhin
363f3d7ea7 Replace scroll_pos by scroll_pos_px()/_perc() 2016-07-07 18:32:52 +02:00
Florian Bruhin
ed716b2b90 Make session saving work 2016-07-07 18:32:52 +02:00
Florian Bruhin
2d590c581d Make :reload and :stop work 2016-07-07 18:32:52 +02:00
Florian Bruhin
6a42e0c96c Make shutdown work 2016-07-07 18:32:52 +02:00
Florian Bruhin
55753171f1 Make :back/:forward work 2016-07-07 18:32:52 +02:00
Florian Bruhin
3ee58fdea3 Get :debug-dump-page to work 2016-07-07 18:32:52 +02:00
Florian Bruhin
5b9ae8bc85 Initial history implementation 2016-07-07 18:32:52 +02:00
Florian Bruhin
8e5a86fb13 Don't require QtWebEngine 2016-07-07 18:32:52 +02:00
Florian Bruhin
bf286f8c74 Fix some tests 2016-07-07 18:32:52 +02:00
Florian Bruhin
115021b8ea Get QtWebEngine to start and work somewhat 2016-07-07 18:32:52 +02:00
Florian Bruhin
b0a391932a Get qutebrowser to run 2016-07-07 18:32:52 +02:00
Florian Bruhin
048f7dcaf5 Refactor signals 2016-07-07 18:32:52 +02:00
Florian Bruhin
4305966f7b Add WrapperLayout/AbstractTab 2016-07-07 18:32:52 +02:00
Florian Bruhin
70117265d6 Fix some a/an misspellings
Thanks to https://github.com/jwilk/anorack
2016-07-05 08:34:03 +02:00
Florian Bruhin
e3c6a0b766 Handle OSError when closing download fileobj 2016-07-03 18:26:21 +02:00
Florian Bruhin
f1de4cc0cf Revert "Strip newline char with :edit-url"
This reverts commit ac9fee310d.
2016-07-01 13:52:08 +02:00
Florian Bruhin
ac9fee310d Strip newline char with :edit-url 2016-07-01 13:50:28 +02:00
Florian Bruhin
af37272246 Merge branch 'edit-url' of https://github.com/blyxxyz/qutebrowser into blyxxyz-edit-url 2016-07-01 13:40:00 +02:00
Jan Verbeek
6fbbc3f123 Only load with :edit-url if the URL was changed, remove count argument 2016-06-30 17:48:06 +02:00
Florian Bruhin
ce8315b720 Document :hint input and add default binding
See #1607, #1499
2016-06-30 17:33:51 +02:00
Jan Verbeek
5e9fa2b57e Make gg accept count 2016-06-29 00:12:44 +02:00
Florian Bruhin
4fccc89d7d Split browser into browser/browser.webkit 2016-06-13 11:18:21 +02:00
Florian Bruhin
f70a75978b Move browser.network.pastebin to misc 2016-06-13 09:48:53 +02:00
Florian Bruhin
ff7d6250c6 Improve original URL handling
When setting self._orig_url by hand, sometimes on redirects the wrong
URL was picked up.
2016-06-10 14:41:08 +02:00
Florian Bruhin
66938ed44b Full redirect support for history
When a redirect occurs, the item is saved in history with a -r suffix
now. When opening qutebrowser that's picked up and the item is hidden
from completion.
2016-06-10 14:40:42 +02:00
Florian Bruhin
9298fa697b Allow to pass atime to WebHistory.add_url
This makes a lot of tests easier and/or more exact.
2016-06-10 12:12:29 +02:00
Florian Bruhin
f691439149 Make WebHistory parent optional 2016-06-09 21:14:04 +02:00
Florian Bruhin
1d1c71f919 Strip of trailing spaces for history entries 2016-06-09 21:14:04 +02:00
Florian Bruhin
b8fba0a138 Add some documentation to WebHistory 2016-06-09 21:14:04 +02:00
Florian Bruhin
e9e6da6510 Remove WebHistory.__getitem__ 2016-06-09 21:14:04 +02:00
Florian Bruhin
33f01d8375 Fix lint 2016-06-09 21:14:03 +02:00
Florian Bruhin
d5abfa3d0d Check if original URL is valid 2016-06-09 21:14:03 +02:00
Florian Bruhin
9510af9912 Use QUrl with QWebHistory
Now that we have our own history implementation, we get the URLs as QUrl
and not as string - so no point in converting them to string and back.
2016-06-09 21:14:03 +02:00
Florian Bruhin
6304565a9a Refactor browser.history
- Rename HistoryEntry to Entry
- Move history line parsing from WebHistory.async_read to Entry.from_str
- Improve errors for invalid history lines
- Pass history directory/filename from the outside to WebHistory
- Clear temp history after reading it when async_read is done
2016-06-09 21:14:00 +02:00
Florian Bruhin
446abefba5 Make sure there is no temp history without datadir 2016-06-09 17:44:04 +02:00
Florian Bruhin
34ba44b0a3 Separate WebHistoryInterface from WebHistory 2016-06-09 17:44:04 +02:00
Florian Bruhin
089131c79d Improve error message when clicking invalid link 2016-06-09 17:43:33 +02:00
Florian Bruhin
035526848e Add a hints -> find-implementation setting
This makes it possible to switch to an alternative implementation if
there are weird issues like #1568. Some users might also prefer the
slightly better performance over more accurate hints.
2016-06-09 17:00:08 +02:00
Samuel Loury
8369140b72 Strip the url before processing it
This won't hurt and will help with some poorly formatted sites
including blank spaces around the url (e.g. the Previous link in a
dashboard make with CDash 2.0.2).
2016-06-09 08:23:53 +02:00
Florian Bruhin
e08c6cb059 Don't save the original URL for redirected pages
See #1345
2016-06-08 17:15:08 +02:00
Florian Bruhin
263b5680c7 Improve :history-clear docstring 2016-06-08 16:49:07 +02:00
Florian Bruhin
483a5f8103 Fix sharing of cookie jars with private browsing
Fixes #1219
2016-06-08 16:35:43 +02:00
Florian Bruhin
530721522a Fix lint 2016-06-08 15:38:52 +02:00
Florian Bruhin
1b2c6d30c5 Fix typo 2016-06-08 15:22:21 +02:00
Florian Bruhin
f17d4388fd Use fully encoded URL for history
Otherwise e.g. spaces are literal spaces instead of %20 and the history
breaks.
2016-06-08 15:15:54 +02:00
Florian Bruhin
e1fd9fc408 Also add title to history for redirected URLs 2016-06-08 13:30:40 +02:00
Florian Bruhin
79e0aa2418 Merge branch 'history-title' of https://github.com/toofar/qutebrowser into toofar-history-title 2016-06-08 12:53:07 +02:00