summaryrefslogtreecommitdiff
path: root/qutebrowser/browser/webkit/webkittab.py
diff options
context:
space:
mode:
Diffstat (limited to 'qutebrowser/browser/webkit/webkittab.py')
-rw-r--r--qutebrowser/browser/webkit/webkittab.py228
1 files changed, 111 insertions, 117 deletions
diff --git a/qutebrowser/browser/webkit/webkittab.py b/qutebrowser/browser/webkit/webkittab.py
index 0916a0a64..d30c3cb71 100644
--- a/qutebrowser/browser/webkit/webkittab.py
+++ b/qutebrowser/browser/webkit/webkittab.py
@@ -26,13 +26,7 @@ import re
import functools
import xml.etree.ElementTree
from typing import cast, Iterable, Optional
-
-from qutebrowser.qt.core import pyqtSlot, Qt, QUrl, QPoint, QTimer, QSizeF, QSize
-from qutebrowser.qt.gui import QIcon
-from qutebrowser.qt.widgets import QWidget
-from qutebrowser.qt.webkitwidgets import QWebPage, QWebFrame
-from qutebrowser.qt.webkit import QWebSettings, QWebHistory, QWebElement
-from qutebrowser.qt.printsupport import QPrinter
+from qutebrowser.qt import widgets, webkitwidgets, webkit, printsupport, gui
from qutebrowser.browser import browsertab, shared
from qutebrowser.browser.webkit import (webview, webpage, tabhistory, webkitelem,
@@ -40,14 +34,14 @@ from qutebrowser.browser.webkit import (webview, webpage, tabhistory, webkitelem
from qutebrowser.browser.webkit.network import networkmanager
from qutebrowser.utils import qtutils, usertypes, utils, log, debug, resources
from qutebrowser.keyinput import modeman
-from qutebrowser.qt import sip
+from qutebrowser.qt import core, sip
class WebKitAction(browsertab.AbstractAction):
"""QtWebKit implementations related to web actions."""
- action_base = QWebPage.WebAction
+ action_base = webkitwidgets.QWebPage.WebAction
_widget: webview.WebView
@@ -69,9 +63,9 @@ class WebKitAction(browsertab.AbstractAction):
"""
new_actions = {
# https://github.com/qtwebkit/qtwebkit/commit/a96d9ef5d24b02d996ad14ff050d0e485c9ddc97
- 'RequestClose': QWebPage.WebAction.ToggleVideoFullscreen + 1,
+ 'RequestClose': webkitwidgets.QWebPage.WebAction.ToggleVideoFullscreen + 1,
# https://github.com/qtwebkit/qtwebkit/commit/96b9ba6269a5be44343635a7aaca4a153ea0366b
- 'Unselect': QWebPage.WebAction.ToggleVideoFullscreen + 2,
+ 'Unselect': webkitwidgets.QWebPage.WebAction.ToggleVideoFullscreen + 2,
}
if name in new_actions:
self._widget.triggerPageAction(new_actions[name]) # type: ignore[arg-type]
@@ -93,7 +87,7 @@ class WebKitPrinting(browsertab.AbstractPrinting):
pass
def to_pdf(self, filename):
- printer = QPrinter()
+ printer = printsupport.QPrinter()
printer.setOutputFileName(filename)
self._widget.print(printer)
# Can't find out whether there was an error...
@@ -116,14 +110,14 @@ class WebKitSearch(browsertab.AbstractSearch):
self._flags = self._empty_flags()
def _empty_flags(self):
- return QWebPage.FindFlags(0) # type: ignore[call-overload]
+ return webkitwidgets.QWebPage.FindFlags(0) # type: ignore[call-overload]
def _args_to_flags(self, reverse, ignore_case):
flags = self._empty_flags()
if self._is_case_sensitive(ignore_case):
- flags |= QWebPage.FindFlag.FindCaseSensitively
+ flags |= webkitwidgets.QWebPage.FindFlag.FindCaseSensitively
if reverse:
- flags |= QWebPage.FindFlag.FindBackward
+ flags |= webkitwidgets.QWebPage.FindFlag.FindBackward
return flags
def _call_cb(self, callback, found, text, flags, caller):
@@ -142,8 +136,8 @@ class WebKitSearch(browsertab.AbstractSearch):
# Removing FindWrapsAroundDocument to get the same logging as with
# QtWebEngine
debug_flags = debug.qflags_key(
- QWebPage, flags & ~QWebPage.FindFlag.FindWrapsAroundDocument,
- klass=QWebPage.FindFlag)
+ webkitwidgets.QWebPage, flags & ~webkitwidgets.QWebPage.FindFlag.FindWrapsAroundDocument,
+ klass=webkitwidgets.QWebPage.FindFlag)
if debug_flags != '0x0000':
flag_text = 'with flags {}'.format(debug_flags)
else:
@@ -155,7 +149,7 @@ class WebKitSearch(browsertab.AbstractSearch):
if found:
# no wrapping detection
cb_value = browsertab.SearchNavigationResult.found
- elif flags & QWebPage.FindBackward:
+ elif flags & webkitwidgets.QWebPage.FindBackward:
cb_value = browsertab.SearchNavigationResult.wrap_prevented_top
else:
cb_value = browsertab.SearchNavigationResult.wrap_prevented_bottom
@@ -163,7 +157,7 @@ class WebKitSearch(browsertab.AbstractSearch):
cb_value = found
else:
raise utils.Unreachable(caller)
- QTimer.singleShot(0, functools.partial(callback, cb_value))
+ core.QTimer.singleShot(0, functools.partial(callback, cb_value))
self.finished.emit(found)
@@ -174,7 +168,7 @@ class WebKitSearch(browsertab.AbstractSearch):
# We first clear the marked text, then the highlights
self._widget.findText('')
self._widget.findText(
- '', QWebPage.FindFlag.HighlightAllOccurrences) # type: ignore[arg-type]
+ '', webkitwidgets.QWebPage.FindFlag.HighlightAllOccurrences) # type: ignore[arg-type]
def search(self, text, *, ignore_case=usertypes.IgnoreCase.never,
reverse=False, result_cb=None):
@@ -195,17 +189,17 @@ class WebKitSearch(browsertab.AbstractSearch):
# to get a mark so we can navigate.
found = self._widget.findText(text, self._flags)
self._widget.findText(text,
- self._flags | QWebPage.FindFlag.HighlightAllOccurrences)
+ self._flags | webkitwidgets.QWebPage.FindFlag.HighlightAllOccurrences)
self._call_cb(result_cb, found, text, self._flags, 'search')
def next_result(self, *, wrap=False, callback=None):
self.search_displayed = True
# The int() here makes sure we get a copy of the flags.
- flags = QWebPage.FindFlags(
+ flags = webkitwidgets.QWebPage.FindFlags(
int(self._flags)) # type: ignore[call-overload]
if wrap:
- flags |= QWebPage.FindFlag.FindWrapsAroundDocument
+ flags |= webkitwidgets.QWebPage.FindFlag.FindWrapsAroundDocument
found = self._widget.findText(self.text, flags) # type: ignore[arg-type]
self._call_cb(callback, found, self.text, flags, 'next_result')
@@ -213,16 +207,16 @@ class WebKitSearch(browsertab.AbstractSearch):
def prev_result(self, *, wrap=False, callback=None):
self.search_displayed = True
# The int() here makes sure we get a copy of the flags.
- flags = QWebPage.FindFlags(
+ flags = webkitwidgets.QWebPage.FindFlags(
int(self._flags)) # type: ignore[call-overload]
- if flags & QWebPage.FindFlag.FindBackward:
- flags &= ~QWebPage.FindFlag.FindBackward
+ if flags & webkitwidgets.QWebPage.FindFlag.FindBackward:
+ flags &= ~webkitwidgets.QWebPage.FindFlag.FindBackward
else:
- flags |= QWebPage.FindFlag.FindBackward
+ flags |= webkitwidgets.QWebPage.FindFlag.FindBackward
if wrap:
- flags |= QWebPage.FindFlag.FindWrapsAroundDocument
+ flags |= webkitwidgets.QWebPage.FindFlag.FindWrapsAroundDocument
found = self._widget.findText(self.text, flags) # type: ignore[arg-type]
self._call_cb(callback, found, self.text, flags, 'prev_result')
@@ -237,11 +231,11 @@ class WebKitCaret(browsertab.AbstractCaret):
def __init__(self,
tab: 'WebKitTab',
mode_manager: modeman.ModeManager,
- parent: QWidget = None) -> None:
+ parent: widgets.QWidget = None) -> None:
super().__init__(tab, mode_manager, parent)
self._selection_state = browsertab.SelectionState.none
- @pyqtSlot(usertypes.KeyMode)
+ @core.pyqtSlot(usertypes.KeyMode)
def _on_mode_entered(self, mode):
if mode != usertypes.KeyMode.caret:
return
@@ -252,13 +246,13 @@ class WebKitCaret(browsertab.AbstractCaret):
self._selection_state = browsertab.SelectionState.none
self.selection_toggled.emit(self._selection_state)
settings = self._widget.settings()
- settings.setAttribute(QWebSettings.WebAttribute.CaretBrowsingEnabled, True)
+ settings.setAttribute(webkit.QWebSettings.WebAttribute.CaretBrowsingEnabled, True)
if self._widget.isVisible():
# Sometimes the caret isn't immediately visible, but unfocusing
# and refocusing it fixes that.
self._widget.clearFocus()
- self._widget.setFocus(Qt.FocusReason.OtherFocusReason)
+ self._widget.setFocus(core.Qt.FocusReason.OtherFocusReason)
# Move the caret to the first element in the viewport if there
# isn't any text which is already selected.
@@ -269,22 +263,22 @@ class WebKitCaret(browsertab.AbstractCaret):
self._widget.page().currentFrame().evaluateJavaScript(
resources.read_file('javascript/position_caret.js'))
- @pyqtSlot(usertypes.KeyMode)
+ @core.pyqtSlot(usertypes.KeyMode)
def _on_mode_left(self, _mode):
settings = self._widget.settings()
- if settings.testAttribute(QWebSettings.WebAttribute.CaretBrowsingEnabled):
+ if settings.testAttribute(webkit.QWebSettings.WebAttribute.CaretBrowsingEnabled):
if (self._selection_state is not browsertab.SelectionState.none and
self._widget.hasSelection()):
# Remove selection if it exists
- self._widget.triggerPageAction(QWebPage.WebAction.MoveToNextChar)
- settings.setAttribute(QWebSettings.WebAttribute.CaretBrowsingEnabled, False)
+ self._widget.triggerPageAction(webkitwidgets.QWebPage.WebAction.MoveToNextChar)
+ settings.setAttribute(webkit.QWebSettings.WebAttribute.CaretBrowsingEnabled, False)
self._selection_state = browsertab.SelectionState.none
def move_to_next_line(self, count=1):
if self._selection_state is not browsertab.SelectionState.none:
- act = QWebPage.WebAction.SelectNextLine
+ act = webkitwidgets.QWebPage.WebAction.SelectNextLine
else:
- act = QWebPage.WebAction.MoveToNextLine
+ act = webkitwidgets.QWebPage.WebAction.MoveToNextLine
for _ in range(count):
self._widget.triggerPageAction(act)
if self._selection_state is browsertab.SelectionState.line:
@@ -292,9 +286,9 @@ class WebKitCaret(browsertab.AbstractCaret):
def move_to_prev_line(self, count=1):
if self._selection_state is not browsertab.SelectionState.none:
- act = QWebPage.WebAction.SelectPreviousLine
+ act = webkitwidgets.QWebPage.WebAction.SelectPreviousLine
else:
- act = QWebPage.WebAction.MoveToPreviousLine
+ act = webkitwidgets.QWebPage.WebAction.MoveToPreviousLine
for _ in range(count):
self._widget.triggerPageAction(act)
if self._selection_state is browsertab.SelectionState.line:
@@ -302,89 +296,89 @@ class WebKitCaret(browsertab.AbstractCaret):
def move_to_next_char(self, count=1):
if self._selection_state is browsertab.SelectionState.normal:
- act = QWebPage.WebAction.SelectNextChar
+ act = webkitwidgets.QWebPage.WebAction.SelectNextChar
elif self._selection_state is browsertab.SelectionState.line:
return
else:
- act = QWebPage.WebAction.MoveToNextChar
+ act = webkitwidgets.QWebPage.WebAction.MoveToNextChar
for _ in range(count):
self._widget.triggerPageAction(act)
def move_to_prev_char(self, count=1):
if self._selection_state is browsertab.SelectionState.normal:
- act = QWebPage.WebAction.SelectPreviousChar
+ act = webkitwidgets.QWebPage.WebAction.SelectPreviousChar
elif self._selection_state is browsertab.SelectionState.line:
return
else:
- act = QWebPage.WebAction.MoveToPreviousChar
+ act = webkitwidgets.QWebPage.WebAction.MoveToPreviousChar
for _ in range(count):
self._widget.triggerPageAction(act)
def move_to_end_of_word(self, count=1):
if self._selection_state is browsertab.SelectionState.normal:
- act = [QWebPage.WebAction.SelectNextWord]
+ act = [webkitwidgets.QWebPage.WebAction.SelectNextWord]
if utils.is_windows: # pragma: no cover
- act.append(QWebPage.WebAction.SelectPreviousChar)
+ act.append(webkitwidgets.QWebPage.WebAction.SelectPreviousChar)
elif self._selection_state is browsertab.SelectionState.line:
return
else:
- act = [QWebPage.WebAction.MoveToNextWord]
+ act = [webkitwidgets.QWebPage.WebAction.MoveToNextWord]
if utils.is_windows: # pragma: no cover
- act.append(QWebPage.WebAction.MoveToPreviousChar)
+ act.append(webkitwidgets.QWebPage.WebAction.MoveToPreviousChar)
for _ in range(count):
for a in act:
self._widget.triggerPageAction(a)
def move_to_next_word(self, count=1):
if self._selection_state is browsertab.SelectionState.normal:
- act = [QWebPage.WebAction.SelectNextWord]
+ act = [webkitwidgets.QWebPage.WebAction.SelectNextWord]
if not utils.is_windows: # pragma: no branch
- act.append(QWebPage.WebAction.SelectNextChar)
+ act.append(webkitwidgets.QWebPage.WebAction.SelectNextChar)
elif self._selection_state is browsertab.SelectionState.line:
return
else:
- act = [QWebPage.WebAction.MoveToNextWord]
+ act = [webkitwidgets.QWebPage.WebAction.MoveToNextWord]
if not utils.is_windows: # pragma: no branch
- act.append(QWebPage.WebAction.MoveToNextChar)
+ act.append(webkitwidgets.QWebPage.WebAction.MoveToNextChar)
for _ in range(count):
for a in act:
self._widget.triggerPageAction(a)
def move_to_prev_word(self, count=1):
if self._selection_state is browsertab.SelectionState.normal:
- act = QWebPage.WebAction.SelectPreviousWord
+ act = webkitwidgets.QWebPage.WebAction.SelectPreviousWord
elif self._selection_state is browsertab.SelectionState.line:
return
else:
- act = QWebPage.WebAction.MoveToPreviousWord
+ act = webkitwidgets.QWebPage.WebAction.MoveToPreviousWord
for _ in range(count):
self._widget.triggerPageAction(act)
def move_to_start_of_line(self):
if self._selection_state is browsertab.SelectionState.normal:
- act = QWebPage.WebAction.SelectStartOfLine
+ act = webkitwidgets.QWebPage.WebAction.SelectStartOfLine
elif self._selection_state is browsertab.SelectionState.line:
return
else:
- act = QWebPage.WebAction.MoveToStartOfLine
+ act = webkitwidgets.QWebPage.WebAction.MoveToStartOfLine
self._widget.triggerPageAction(act)
def move_to_end_of_line(self):
if self._selection_state is browsertab.SelectionState.normal:
- act = QWebPage.WebAction.SelectEndOfLine
+ act = webkitwidgets.QWebPage.WebAction.SelectEndOfLine
elif self._selection_state is browsertab.SelectionState.line:
return
else:
- act = QWebPage.WebAction.MoveToEndOfLine
+ act = webkitwidgets.QWebPage.WebAction.MoveToEndOfLine
self._widget.triggerPageAction(act)
def move_to_start_of_next_block(self, count=1):
if self._selection_state is not browsertab.SelectionState.none:
- act = [QWebPage.WebAction.SelectNextLine,
- QWebPage.WebAction.SelectStartOfBlock]
+ act = [webkitwidgets.QWebPage.WebAction.SelectNextLine,
+ webkitwidgets.QWebPage.WebAction.SelectStartOfBlock]
else:
- act = [QWebPage.WebAction.MoveToNextLine,
- QWebPage.WebAction.MoveToStartOfBlock]
+ act = [webkitwidgets.QWebPage.WebAction.MoveToNextLine,
+ webkitwidgets.QWebPage.WebAction.MoveToStartOfBlock]
for _ in range(count):
for a in act:
self._widget.triggerPageAction(a)
@@ -393,11 +387,11 @@ class WebKitCaret(browsertab.AbstractCaret):
def move_to_start_of_prev_block(self, count=1):
if self._selection_state is not browsertab.SelectionState.none:
- act = [QWebPage.WebAction.SelectPreviousLine,
- QWebPage.WebAction.SelectStartOfBlock]
+ act = [webkitwidgets.QWebPage.WebAction.SelectPreviousLine,
+ webkitwidgets.QWebPage.WebAction.SelectStartOfBlock]
else:
- act = [QWebPage.WebAction.MoveToPreviousLine,
- QWebPage.WebAction.MoveToStartOfBlock]
+ act = [webkitwidgets.QWebPage.WebAction.MoveToPreviousLine,
+ webkitwidgets.QWebPage.WebAction.MoveToStartOfBlock]
for _ in range(count):
for a in act:
self._widget.triggerPageAction(a)
@@ -406,11 +400,11 @@ class WebKitCaret(browsertab.AbstractCaret):
def move_to_end_of_next_block(self, count=1):
if self._selection_state is not browsertab.SelectionState.none:
- act = [QWebPage.WebAction.SelectNextLine,
- QWebPage.WebAction.SelectEndOfBlock]
+ act = [webkitwidgets.QWebPage.WebAction.SelectNextLine,
+ webkitwidgets.QWebPage.WebAction.SelectEndOfBlock]
else:
- act = [QWebPage.WebAction.MoveToNextLine,
- QWebPage.WebAction.MoveToEndOfBlock]
+ act = [webkitwidgets.QWebPage.WebAction.MoveToNextLine,
+ webkitwidgets.QWebPage.WebAction.MoveToEndOfBlock]
for _ in range(count):
for a in act:
self._widget.triggerPageAction(a)
@@ -419,9 +413,9 @@ class WebKitCaret(browsertab.AbstractCaret):
def move_to_end_of_prev_block(self, count=1):
if self._selection_state is not browsertab.SelectionState.none:
- act = [QWebPage.WebAction.SelectPreviousLine, QWebPage.WebAction.SelectEndOfBlock]
+ act = [webkitwidgets.QWebPage.WebAction.SelectPreviousLine, webkitwidgets.QWebPage.WebAction.SelectEndOfBlock]
else:
- act = [QWebPage.WebAction.MoveToPreviousLine, QWebPage.WebAction.MoveToEndOfBlock]
+ act = [webkitwidgets.QWebPage.WebAction.MoveToPreviousLine, webkitwidgets.QWebPage.WebAction.MoveToEndOfBlock]
for _ in range(count):
for a in act:
self._widget.triggerPageAction(a)
@@ -430,18 +424,18 @@ class WebKitCaret(browsertab.AbstractCaret):
def move_to_start_of_document(self):
if self._selection_state is not browsertab.SelectionState.none:
- act = QWebPage.WebAction.SelectStartOfDocument
+ act = webkitwidgets.QWebPage.WebAction.SelectStartOfDocument
else:
- act = QWebPage.WebAction.MoveToStartOfDocument
+ act = webkitwidgets.QWebPage.WebAction.MoveToStartOfDocument
self._widget.triggerPageAction(act)
if self._selection_state is browsertab.SelectionState.line:
self._select_line()
def move_to_end_of_document(self):
if self._selection_state is not browsertab.SelectionState.none:
- act = QWebPage.WebAction.SelectEndOfDocument
+ act = webkitwidgets.QWebPage.WebAction.SelectEndOfDocument
else:
- act = QWebPage.WebAction.MoveToEndOfDocument
+ act = webkitwidgets.QWebPage.WebAction.MoveToEndOfDocument
self._widget.triggerPageAction(act)
def toggle_selection(self, line=False):
@@ -458,7 +452,7 @@ class WebKitCaret(browsertab.AbstractCaret):
self.selection_toggled.emit(self._selection_state)
def drop_selection(self):
- self._widget.triggerPageAction(QWebPage.WebAction.MoveToNextChar)
+ self._widget.triggerPageAction(webkitwidgets.QWebPage.WebAction.MoveToNextChar)
def selection(self, callback):
callback(self._widget.selectedText())
@@ -473,9 +467,9 @@ class WebKitCaret(browsertab.AbstractCaret):
}""")
def _select_line(self):
- self._widget.triggerPageAction(QWebPage.WebAction.SelectStartOfLine)
+ self._widget.triggerPageAction(webkitwidgets.QWebPage.WebAction.SelectStartOfLine)
self.reverse_selection()
- self._widget.triggerPageAction(QWebPage.WebAction.SelectEndOfLine)
+ self._widget.triggerPageAction(webkitwidgets.QWebPage.WebAction.SelectEndOfLine)
self.reverse_selection()
def _select_line_to_end(self):
@@ -483,11 +477,11 @@ class WebKitCaret(browsertab.AbstractCaret):
# of focus) has to be checked before moving selection
# to the end of line
if self._js_selection_left_to_right():
- self._widget.triggerPageAction(QWebPage.WebAction.SelectEndOfLine)
+ self._widget.triggerPageAction(webkitwidgets.QWebPage.WebAction.SelectEndOfLine)
def _select_line_to_start(self):
if not self._js_selection_left_to_right():
- self._widget.triggerPageAction(QWebPage.WebAction.SelectStartOfLine)
+ self._widget.triggerPageAction(webkitwidgets.QWebPage.WebAction.SelectStartOfLine)
def _js_selection_left_to_right(self):
"""Return True iff the selection's direction is left to right."""
@@ -499,8 +493,8 @@ class WebKitCaret(browsertab.AbstractCaret):
""")
def _follow_selected(self, *, tab=False):
- if QWebSettings.globalSettings().testAttribute(
- QWebSettings.WebAttribute.JavascriptEnabled):
+ if webkit.QWebSettings.globalSettings().testAttribute(
+ webkit.QWebSettings.WebAttribute.JavascriptEnabled):
if tab:
self._tab.data.override_target = usertypes.ClickTarget.tab
self._tab.run_js_async("""
@@ -533,7 +527,7 @@ class WebKitCaret(browsertab.AbstractCaret):
except KeyError:
raise browsertab.WebTabError('Anchor element without '
'href!')
- url = self._tab.url().resolved(QUrl(href))
+ url = self._tab.url().resolved(core.QUrl(href))
if tab:
self._tab.new_tab_requested.emit(url)
else:
@@ -602,7 +596,7 @@ class WebKitScroller(browsertab.AbstractScroller):
elif x is None and y == 100:
self.bottom()
else:
- for val, orientation in [(x, Qt.Orientation.Horizontal), (y, Qt.Orientation.Vertical)]:
+ for val, orientation in [(x, core.Qt.Orientation.Horizontal), (y, core.Qt.Orientation.Vertical)]:
if val is not None:
frame = self._widget.page().mainFrame()
maximum = frame.scrollBarMaximum(orientation)
@@ -627,47 +621,47 @@ class WebKitScroller(browsertab.AbstractScroller):
self._tab.fake_key_press(key)
def up(self, count=1):
- self._key_press(Qt.Key.Key_Up, count, 'scrollBarMinimum', Qt.Orientation.Vertical)
+ self._key_press(core.Qt.Key.Key_Up, count, 'scrollBarMinimum', core.Qt.Orientation.Vertical)
def down(self, count=1):
- self._key_press(Qt.Key.Key_Down, count, 'scrollBarMaximum', Qt.Orientation.Vertical)
+ self._key_press(core.Qt.Key.Key_Down, count, 'scrollBarMaximum', core.Qt.Orientation.Vertical)
def left(self, count=1):
- self._key_press(Qt.Key.Key_Left, count, 'scrollBarMinimum', Qt.Orientation.Horizontal)
+ self._key_press(core.Qt.Key.Key_Left, count, 'scrollBarMinimum', core.Qt.Orientation.Horizontal)
def right(self, count=1):
- self._key_press(Qt.Key.Key_Right, count, 'scrollBarMaximum', Qt.Orientation.Horizontal)
+ self._key_press(core.Qt.Key.Key_Right, count, 'scrollBarMaximum', core.Qt.Orientation.Horizontal)
def top(self):
- self._key_press(Qt.Key.Key_Home)
+ self._key_press(core.Qt.Key.Key_Home)
def bottom(self):
- self._key_press(Qt.Key.Key_End)
+ self._key_press(core.Qt.Key.Key_End)
def page_up(self, count=1):
- self._key_press(Qt.Key.Key_PageUp, count, 'scrollBarMinimum', Qt.Orientation.Vertical)
+ self._key_press(core.Qt.Key.Key_PageUp, count, 'scrollBarMinimum', core.Qt.Orientation.Vertical)
def page_down(self, count=1):
- self._key_press(Qt.Key.Key_PageDown, count, 'scrollBarMaximum',
- Qt.Orientation.Vertical)
+ self._key_press(core.Qt.Key.Key_PageDown, count, 'scrollBarMaximum',
+ core.Qt.Orientation.Vertical)
def at_top(self):
return self.pos_px().y() == 0
def at_bottom(self):
frame = self._widget.page().currentFrame()
- return self.pos_px().y() >= frame.scrollBarMaximum(Qt.Orientation.Vertical)
+ return self.pos_px().y() >= frame.scrollBarMaximum(core.Qt.Orientation.Vertical)
class WebKitHistoryPrivate(browsertab.AbstractHistoryPrivate):
"""History-related methods which are not part of the extension API."""
- _history: QWebHistory
+ _history: webkit.QWebHistory
def __init__(self, tab: 'WebKitTab') -> None:
self._tab = tab
- self._history = cast(QWebHistory, None)
+ self._history = cast(webkit.QWebHistory, None)
def serialize(self):
return qtutils.serialize(self._history)
@@ -689,8 +683,8 @@ class WebKitHistoryPrivate(browsertab.AbstractHistoryPrivate):
if 'zoom' in cur_data:
self._tab.zoom.set_factor(cur_data['zoom'])
if ('scroll-pos' in cur_data and
- self._tab.scroller.pos_px() == QPoint(0, 0)):
- QTimer.singleShot(0, functools.partial(
+ self._tab.scroller.pos_px() == core.QPoint(0, 0)):
+ core.QTimer.singleShot(0, functools.partial(
self._tab.scroller.to_point, cur_data['scroll-pos']))
@@ -750,7 +744,7 @@ class WebKitElements(browsertab.AbstractElements):
elems = []
frames = webkitelem.get_child_frames(mainframe)
for f in frames:
- frame_elems = cast(Iterable[QWebElement], f.findAllElements(selector))
+ frame_elems = cast(Iterable[webkit.QWebElement], f.findAllElements(selector))
for elem in frame_elems:
elems.append(webkitelem.WebKitElement(elem, tab=self._tab))
@@ -775,7 +769,7 @@ class WebKitElements(browsertab.AbstractElements):
self.find_css('#' + elem_id, find_id_cb, error_cb=lambda exc: None)
def find_focused(self, callback):
- frame = cast(Optional[QWebFrame], self._widget.page().currentFrame())
+ frame = cast(Optional[webkitwidgets.QWebFrame], self._widget.page().currentFrame())
if frame is None:
callback(None)
return
@@ -789,7 +783,7 @@ class WebKitElements(browsertab.AbstractElements):
def find_at_pos(self, pos, callback):
assert pos.x() >= 0
assert pos.y() >= 0
- frame = cast(Optional[QWebFrame], self._widget.page().frameAt(pos))
+ frame = cast(Optional[webkitwidgets.QWebFrame], self._widget.page().frameAt(pos))
if frame is None:
# This happens when we click inside the webview, but not actually
# on the QWebPage - for example when clicking the scrollbar
@@ -902,7 +896,7 @@ class WebKitTab(browsertab.AbstractTab):
def _make_private(self, widget):
settings = widget.settings()
- settings.setAttribute(QWebSettings.WebAttribute.PrivateBrowsingEnabled, True)
+ settings.setAttribute(webkit.QWebSettings.WebAttribute.PrivateBrowsingEnabled, True)
def load_url(self, url):
self._load_url_prepare(url)
@@ -934,9 +928,9 @@ class WebKitTab(browsertab.AbstractTab):
def reload(self, *, force=False):
if force:
- action = QWebPage.WebAction.ReloadAndBypassCache
+ action = webkitwidgets.QWebPage.WebAction.ReloadAndBypassCache
else:
- action = QWebPage.WebAction.Reload
+ action = webkitwidgets.QWebPage.WebAction.Reload
self._widget.triggerPageAction(action)
def stop(self):
@@ -948,30 +942,30 @@ class WebKitTab(browsertab.AbstractTab):
def renderer_process_pid(self) -> Optional[int]:
return None
- @pyqtSlot()
+ @core.pyqtSlot()
def _on_history_trigger(self):
url = self.url()
requested_url = self.url(requested=True)
self.history_item_triggered.emit(url, requested_url, self.title())
- def set_html(self, html, base_url=QUrl()):
+ def set_html(self, html, base_url=core.QUrl()):
self._widget.setHtml(html, base_url)
- @pyqtSlot()
+ @core.pyqtSlot()
def _on_load_started(self):
super()._on_load_started()
nam = self._widget.page().networkAccessManager()
assert isinstance(nam, networkmanager.NetworkManager), nam
nam.netrc_used = False
# Make sure the icon is cleared when navigating to a page without one.
- self.icon_changed.emit(QIcon())
+ self.icon_changed.emit(gui.QIcon())
- @pyqtSlot(bool)
+ @core.pyqtSlot(bool)
def _on_load_finished(self, ok: bool) -> None:
super()._on_load_finished(ok)
self._update_load_status(ok)
- @pyqtSlot()
+ @core.pyqtSlot()
def _on_frame_load_finished(self):
"""Make sure we emit an appropriate status when loading finished.
@@ -983,7 +977,7 @@ class WebKitTab(browsertab.AbstractTab):
assert isinstance(page, webpage.BrowserPage), page
self._on_load_finished(not page.error_occurred)
- @pyqtSlot()
+ @core.pyqtSlot()
def _on_webkit_icon_changed(self):
"""Emit iconChanged with a QIcon like QWebEngineView does."""
if sip.isdeleted(self._widget):
@@ -991,7 +985,7 @@ class WebKitTab(browsertab.AbstractTab):
return
self.icon_changed.emit(self._widget.icon())
- @pyqtSlot(QWebFrame)
+ @core.pyqtSlot(webkitwidgets.QWebFrame)
def _on_frame_created(self, frame):
"""Connect the contentsSizeChanged signal of each frame."""
# FIXME:qtwebengine those could theoretically regress:
@@ -999,11 +993,11 @@ class WebKitTab(browsertab.AbstractTab):
# https://github.com/qutebrowser/qutebrowser/issues/263
frame.contentsSizeChanged.connect(self._on_contents_size_changed)
- @pyqtSlot(QSize)
+ @core.pyqtSlot(core.QSize)
def _on_contents_size_changed(self, size):
- self.contents_size_changed.emit(QSizeF(size))
+ self.contents_size_changed.emit(core.QSizeF(size))
- @pyqtSlot(usertypes.NavigationRequest)
+ @core.pyqtSlot(usertypes.NavigationRequest)
def _on_navigation_request(self, navigation):
super()._on_navigation_request(navigation)
if not navigation.accepted:
@@ -1028,7 +1022,7 @@ class WebKitTab(browsertab.AbstractTab):
if navigation.is_main_frame:
self.settings.update_for_url(navigation.url)
- @pyqtSlot('QNetworkReply*')
+ @core.pyqtSlot('QNetworkReply*')
def _on_ssl_errors(self, reply):
self._insecure_hosts.add(reply.url().host())