summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortoofar <toofar@spalge.com>2023-11-12 11:15:20 +1300
committertoofar <toofar@spalge.com>2023-11-13 18:45:18 +1300
commitcedef129f98a01ec7bd0443ca38c8730d3a4491a (patch)
tree1ca7cb8b5effbffa00e62146d605a8b1acdc362c
parent9ebd28a10815176af5d4aada29a843dedd70a8a6 (diff)
downloadqutebrowser-cedef129f98a01ec7bd0443ca38c8730d3a4491a.tar.gz
qutebrowser-cedef129f98a01ec7bd0443ca38c8730d3a4491a.zip
Change browsertab WidgetType to be our tab implementations
Changing the type to be our overridden implementation of the view means we can push more common code down into the view class and make use of overridden methods more consistently. In this case I'm adding some type checking to some of the getters on the view. `_set_widget()` should be being called from the concrete child tab implementations. So the widget should always be our overridden version of the Qt tab implementations. Also change `_set_widget()` to use the common typevar. Also change the _widget type in WebEngineTab to match what it is actually being set to and to match all the _widgets in the other concrete classes in that file. ref: https://github.com/qutebrowser/qutebrowser/pull/7990
-rw-r--r--qutebrowser/browser/browsertab.py13
-rw-r--r--qutebrowser/browser/webengine/webenginetab.py5
2 files changed, 9 insertions, 9 deletions
diff --git a/qutebrowser/browser/browsertab.py b/qutebrowser/browser/browsertab.py
index 1312275dc..4d14c9cd7 100644
--- a/qutebrowser/browser/browsertab.py
+++ b/qutebrowser/browser/browsertab.py
@@ -2,7 +2,7 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
-"""Base class for a wrapper over QWebView/QWebEngineView."""
+"""Base class for a wrapper over WebView/WebEngineView."""
import enum
import pathlib
@@ -22,10 +22,9 @@ from qutebrowser.qt.network import QNetworkAccessManager
if TYPE_CHECKING:
from qutebrowser.qt.webkit import QWebHistory, QWebHistoryItem
- from qutebrowser.qt.webkitwidgets import QWebPage, QWebView
+ from qutebrowser.qt.webkitwidgets import QWebPage
from qutebrowser.qt.webenginecore import (
QWebEngineHistory, QWebEngineHistoryItem, QWebEnginePage)
- from qutebrowser.qt.webenginewidgets import QWebEngineView
from qutebrowser.keyinput import modeman
from qutebrowser.config import config, websettings
@@ -38,10 +37,12 @@ from qutebrowser.qt import sip
if TYPE_CHECKING:
from qutebrowser.browser import webelem
from qutebrowser.browser.inspector import AbstractWebInspector
+ from qutebrowser.browser.webengine.webview import WebEngineView
+ from qutebrowser.browser.webkit.webview import WebView
tab_id_gen = itertools.count(0)
-_WidgetType = Union["QWebView", "QWebEngineView"]
+_WidgetType = Union["WebView", "WebEngineView"]
def create(win_id: int,
@@ -964,7 +965,7 @@ class AbstractTabPrivate:
class AbstractTab(QWidget):
- """An adapter for QWebView/QWebEngineView representing a single tab."""
+ """An adapter for WebView/WebEngineView representing a single tab."""
#: Signal emitted when a website requests to close this tab.
window_close_requested = pyqtSignal()
@@ -1058,7 +1059,7 @@ class AbstractTab(QWidget):
self.before_load_started.connect(self._on_before_load_started)
- def _set_widget(self, widget: Union["QWebView", "QWebEngineView"]) -> None:
+ def _set_widget(self, widget: _WidgetType) -> None:
# pylint: disable=protected-access
self._widget = widget
# FIXME:v4 ignore needed for QtWebKit
diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py
index 9f1d04b63..1c712db5e 100644
--- a/qutebrowser/browser/webengine/webenginetab.py
+++ b/qutebrowser/browser/webengine/webenginetab.py
@@ -2,7 +2,7 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
-"""Wrapper over a QWebEngineView."""
+"""Wrapper over a WebEngineView."""
import math
import struct
@@ -15,7 +15,6 @@ from typing import cast, Union, Optional
from qutebrowser.qt.core import (pyqtSignal, pyqtSlot, Qt, QPoint, QPointF, QTimer, QUrl,
QObject, QByteArray)
from qutebrowser.qt.network import QAuthenticator
-from qutebrowser.qt.webenginewidgets import QWebEngineView
from qutebrowser.qt.webenginecore import QWebEnginePage, QWebEngineScript, QWebEngineHistory
from qutebrowser.config import config
@@ -1267,7 +1266,7 @@ class WebEngineTab(browsertab.AbstractTab):
abort_questions = pyqtSignal()
- _widget: QWebEngineView
+ _widget: webview.WebEngineView
search: WebEngineSearch
audio: WebEngineAudio
printing: WebEnginePrinting