Commit Graph

133 Commits

Author SHA1 Message Date
Florian Bruhin
b8e2d5f8f6 Add initial WebEngineElement implementation
This allows :navigate prev/next to work correctly via the javascript
bridge.
2016-08-08 15:02:58 +02:00
Florian Bruhin
27330bd4d1 Fix :search-prev with QtWebEngine
Fixes #1797
2016-08-08 13:51:42 +02:00
Florian Bruhin
d8521f43ee Change tab.find_all_elements() to be async 2016-08-05 12:37:25 +02:00
Florian Bruhin
94cf3fa4ff QtWebEngine: Restore Qt 5.6 compatibility 2016-08-04 21:33:53 +02:00
Florian Bruhin
7b211e0b65 QtWebEngine: Run javascript in ApplicationWorld
This means the JS context will be isolated from the webpage itself, and
the webpage won't be able to access things we define.
2016-08-04 18:14:29 +02:00
Florian Bruhin
08b70f0f4c Add qutebrowser.utils.javascript
webelem.javascript_escape got renamed to javascript.string_escape, and a
new javascript.assemble got added to make it easier to call a function
inside a .js file.
2016-08-04 17:53:13 +02:00
Florian Bruhin
81d0d64731 QtWebEngine: Fix crash when closing/reopening tabs 2016-08-01 17:25:55 +02:00
Florian Bruhin
41e6a2392a QtWebEngine: Add stub for find_all_elements 2016-07-28 12:36:09 +02:00
Florian Bruhin
c5a91004f5 Add contents_size_changed to tab API 2016-07-28 12:35:56 +02:00
Florian Bruhin
2121865bdd Show jsret value in update_scroll_pos callback 2016-07-26 23:26:20 +02:00
Florian Bruhin
3ccb691e9f tab API: Rename scroll to scroller
The scroll attribute did overwrite QWidget.scroll which is unfortunate.
2016-07-26 13:19:07 +02:00
Florian Bruhin
76eab7617b Remove @pyqtSlot for functions and non-QObjects
Fixes #1669
2016-07-23 11:42:50 +02:00
Florian Bruhin
d710a98f46 Fix lint 2016-07-15 15:52:48 +02:00
Florian Bruhin
e2c4e6301f QtWebEngine: Implement scroll.at_top() 2016-07-15 14:00:41 +02:00
Florian Bruhin
695864281b QtWebEngine: Implement pixel scroll position in JS 2016-07-15 13:04:44 +02:00
Florian Bruhin
7adc8ab2d6 QtWebEngine: Implement scroll position based on JS 2016-07-15 12:52:27 +02:00
Florian Bruhin
c9176b7c58 QtWebEngine: Fix 'unset' with run_js_blocking 2016-07-13 18:17:37 +02:00
Florian Bruhin
a7509d5978 Fix lint 2016-07-13 16:01:12 +02:00
Florian Bruhin
5b1cca92ab Add run_js_blocking to tab API 2016-07-13 13:47:30 +02:00
Florian Bruhin
c83a8a64dc QtWebEngine: Implement scroll.delta_page 2016-07-13 11:26:53 +02:00
Florian Bruhin
602d10c495 QtWebEngine: Implement scroll.to_point/.delta 2016-07-13 11:21:50 +02:00
Florian Bruhin
b78b89f04f QtWebEngine: Implement :scroll-perc via JS 2016-07-13 10:55:04 +02:00
Florian Bruhin
54c00deb5b Remove checking of 'wrap' in WebEngineSearch
wrap functionality was removed, so no point in doing this here.
2016-07-12 17:28:28 +02:00
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
3d4cf1fc92 QtWebEngine: Fix icon access on Qt < 5.7 2016-07-11 18:24:38 +02:00
Florian Bruhin
8b67d68d4a Move qtutils.ensure_valid in WebView.openurl 2016-07-11 16:32:24 +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
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
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
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
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
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
e4b0b7fffd Fix lint 2016-07-07 20:12:17 +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
40f0aa0023 Fix pylint without QtWebEngine available 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
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
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
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
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
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
aebc29337a Move __iter__ to AbstractHistory 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
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
7319ced0bc Fix history deserializing 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
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
115021b8ea Get QtWebEngine to start and work somewhat 2016-07-07 18:32:52 +02:00