summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJimmy <jimmy@spalge.com>2022-04-25 16:24:31 +1200
committerJimmy <jimmy@spalge.com>2022-04-30 19:30:49 +1200
commit9495c70635b97085a2bfcb288cbf1da0ffb81da6 (patch)
treeedc0f570ed4b2f1c2947b21ceb8d0de502e3913a
parent9354627d54c33f0ee4d60ae5b9c886a957cdc876 (diff)
downloadqutebrowser-9495c70635b97085a2bfcb288cbf1da0ffb81da6.tar.gz
qutebrowser-9495c70635b97085a2bfcb288cbf1da0ffb81da6.zip
fix some string types and import for mypy
The LibCST rename tool got a bit confused by imports done in `if TYPE_CHECKING:` blocks. For ones that were used it moved them out of those blocks. For ones that were only used in string type hints it half changed the imports and didn't updated the strings. A couple of instances were fixed in previous commits. These are the last few that mypy could see. Addressed manually. These fixers based on LibCST https://github.com/python-qt-tools/PyQt6-stubs/tree/main/fixes look like they could be useful. But they don't have any documentations of tests or anything. So it's much faster to fix these manually then to try to understand what all that is doing, if any of it is useful for us, extract it, test it etc.
-rw-r--r--qutebrowser/browser/webengine/notification.py32
-rw-r--r--qutebrowser/misc/objects.py4
-rw-r--r--qutebrowser/utils/qtutils.py7
3 files changed, 20 insertions, 23 deletions
diff --git a/qutebrowser/browser/webengine/notification.py b/qutebrowser/browser/webengine/notification.py
index 7ab769659..a5ba56b62 100644
--- a/qutebrowser/browser/webengine/notification.py
+++ b/qutebrowser/browser/webengine/notification.py
@@ -49,20 +49,18 @@ import itertools
import functools
import subprocess
from typing import Any, List, Dict, Optional, Iterator, TYPE_CHECKING
-from qutebrowser.qt import QtWidgets
if TYPE_CHECKING:
# putting these behind TYPE_CHECKING also means this module is importable
# on installs that don't have these
- from qutebrowser.qt import QtWebEngineWidgets, QtWebEngineCore, QWebEngineNotification
- from qutebrowser.qt import QWebEngineProfile
+ from qutebrowser.qt import QtWebEngineWidgets, QtWebEngineCore
from qutebrowser.config import config
from qutebrowser.misc import objects
from qutebrowser.utils import (
qtutils, log, utils, debug, message, version, objreg, resources,
)
-from qutebrowser.qt import QtWebEngine, QtGui, QtDBus, QtCore, sip
+from qutebrowser.qt import QtWidgets, QtWebEngine, QtGui, QtDBus, QtCore, sip
bridge: Optional['NotificationBridgePresenter'] = None
@@ -123,7 +121,7 @@ class AbstractNotificationAdapter(QtCore.QObject):
def present(
self,
- qt_notification: "QWebEngineNotification",
+ qt_notification: "QtWebEngineCore.QWebEngineNotification",
*,
replaces_id: Optional[int],
) -> int:
@@ -169,7 +167,7 @@ class NotificationBridgePresenter(QtCore.QObject):
super().__init__(parent)
assert _notifications_supported()
- self._active_notifications: Dict[int, 'QWebEngineNotification'] = {}
+ self._active_notifications: Dict[int, 'QtWebEngineCore.QWebEngineNotification'] = {}
self._adapter: Optional[AbstractNotificationAdapter] = None
config.instance.changed.connect(self._init_adapter)
@@ -227,7 +225,7 @@ class NotificationBridgePresenter(QtCore.QObject):
self._adapter.error.connect(self._on_adapter_error)
self._adapter.clear_all.connect(self._on_adapter_clear_all)
- def install(self, profile: "QWebEngineProfile") -> None:
+ def install(self, profile: "QtWebEngineWidgets.QWebEngineProfile") -> None:
"""Set the profile to use this bridge as the presenter."""
if QtWebEngine.PYQT_WEBENGINE_VERSION < 0x050F00:
# PyQtWebEngine unrefs the callback after it's called, for some
@@ -235,14 +233,14 @@ class NotificationBridgePresenter(QtCore.QObject):
# its refcount to prevent it from getting GC'd. Otherwise, random
# methods start getting called with the notification as `self`, or
# segfaults happen, or other badness.
- def _present_and_reset(qt_notification: "QWebEngineNotification") -> None:
+ def _present_and_reset(qt_notification: "QtWebEngineCore.QWebEngineNotification") -> None:
profile.setNotificationPresenter(_present_and_reset)
self.present(qt_notification)
profile.setNotificationPresenter(_present_and_reset)
else:
profile.setNotificationPresenter(self.present)
- def present(self, qt_notification: "QWebEngineNotification") -> None:
+ def present(self, qt_notification: "QtWebEngineCore.QWebEngineNotification") -> None:
"""Show a notification using the configured adapter.
Lazily initializes a suitable adapter if none exists yet.
@@ -281,7 +279,7 @@ class NotificationBridgePresenter(QtCore.QObject):
def _find_replaces_id(
self,
- new_notification: "QWebEngineNotification",
+ new_notification: "QtWebEngineCore.QWebEngineNotification",
) -> Optional[int]:
"""Find an existing notification to replace.
@@ -361,7 +359,7 @@ class NotificationBridgePresenter(QtCore.QObject):
return
self._focus_first_matching_tab(notification)
- def _focus_first_matching_tab(self, notification: "QWebEngineNotification") -> None:
+ def _focus_first_matching_tab(self, notification: "QtWebEngineCore.QWebEngineNotification") -> None:
for win_id in objreg.window_registry:
tabbedbrowser = objreg.get("tabbed-browser", window=win_id, scope="window")
for idx, tab in enumerate(tabbedbrowser.widgets()):
@@ -441,7 +439,7 @@ class SystrayNotificationAdapter(AbstractNotificationAdapter):
def present(
self,
- qt_notification: "QWebEngineNotification",
+ qt_notification: "QtWebEngineCore.QWebEngineNotification",
*,
replaces_id: Optional[int],
) -> int:
@@ -503,7 +501,7 @@ class MessagesNotificationAdapter(AbstractNotificationAdapter):
def present(
self,
- qt_notification: "QWebEngineNotification",
+ qt_notification: "QtWebEngineCore.QWebEngineNotification",
*,
replaces_id: Optional[int],
) -> int:
@@ -522,7 +520,7 @@ class MessagesNotificationAdapter(AbstractNotificationAdapter):
def on_web_closed(self, _notification_id: int) -> None:
"""We can't close messages."""
- def _format_message(self, qt_notification: "QWebEngineNotification") -> str:
+ def _format_message(self, qt_notification: "QtWebEngineCore.QWebEngineNotification") -> str:
title = html.escape(qt_notification.title())
body = html.escape(qt_notification.message())
hint = "" if qt_notification.icon().isNull() else " (image not shown)"
@@ -563,7 +561,7 @@ class HerbeNotificationAdapter(AbstractNotificationAdapter):
def present(
self,
- qt_notification: "QWebEngineNotification",
+ qt_notification: "QtWebEngineCore.QWebEngineNotification",
*,
replaces_id: Optional[int],
) -> int:
@@ -584,7 +582,7 @@ class HerbeNotificationAdapter(AbstractNotificationAdapter):
def _message_lines(
self,
- qt_notification: "QWebEngineNotification",
+ qt_notification: "QtWebEngineCore.QWebEngineNotification",
) -> Iterator[str]:
"""Get the lines to display for this notification."""
yield qt_notification.title()
@@ -928,7 +926,7 @@ class DBusNotificationAdapter(AbstractNotificationAdapter):
def present(
self,
- qt_notification: "QWebEngineNotification",
+ qt_notification: "QtWebEngineCore.QWebEngineNotification",
*,
replaces_id: Optional[int],
) -> int:
diff --git a/qutebrowser/misc/objects.py b/qutebrowser/misc/objects.py
index c20b547a2..e270e80a6 100644
--- a/qutebrowser/misc/objects.py
+++ b/qutebrowser/misc/objects.py
@@ -26,7 +26,7 @@ import argparse
from typing import TYPE_CHECKING, Any, Dict, Set, Union, cast
if TYPE_CHECKING:
- from qutebrowser.qt import QtWidgets, QApplication
+ from qutebrowser.qt import QtWidgets
from qutebrowser.utils import usertypes
from qutebrowser.commands import command
@@ -47,4 +47,4 @@ backend: Union['usertypes.Backend', NoBackend] = NoBackend()
commands: Dict[str, 'command.Command'] = {}
debug_flags: Set[str] = set()
args = cast(argparse.Namespace, None)
-qapp = cast('QApplication', None)
+qapp = cast('QtWidgets.QApplication', None)
diff --git a/qutebrowser/utils/qtutils.py b/qutebrowser/utils/qtutils.py
index 9b0186b55..90e7d252a 100644
--- a/qutebrowser/utils/qtutils.py
+++ b/qutebrowser/utils/qtutils.py
@@ -39,8 +39,7 @@ if QtWebKit:
else:
qWebKitVersion = None # type: ignore[assignment] # noqa: N816
if TYPE_CHECKING:
- from qutebrowser.qt import QWebHistory
- from qutebrowser.qt import QWebEngineHistory
+ from qutebrowser.qt import QtWebEngineWidgets
from qutebrowser.misc import objects
from qutebrowser.utils import usertypes, utils
@@ -185,8 +184,8 @@ _QtSerializableType = Union[
QtCore.QObject,
QtCore.QByteArray,
QtCore.QUrl,
- 'QWebEngineHistory',
- 'QWebHistory'
+ 'QtWebEngineWidgets.QWebEngineHistory',
+ 'QtWebKit.QWebHistory'
]