summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Albrecht <palbrecht@mailbox.org>2023-07-10 09:07:10 +0200
committerPhilipp Albrecht <palbrecht@mailbox.org>2023-07-20 15:09:45 +0200
commit30570a5cad1a3e7f648f066b4a1df8158d6b1189 (patch)
treecd33fd68ad767dbe0e6677ebb273f79d7495343f
parent1e0fb604ae59366b8576f675537a9d67b2c70c16 (diff)
downloadqutebrowser-30570a5cad1a3e7f648f066b4a1df8158d6b1189.tar.gz
qutebrowser-30570a5cad1a3e7f648f066b4a1df8158d6b1189.zip
Move disable_qt_msghandler() to qtlog
-rw-r--r--qutebrowser/browser/network/pac.py4
-rw-r--r--qutebrowser/browser/webkit/network/networkmanager.py4
-rw-r--r--qutebrowser/misc/httpclient.py4
-rw-r--r--qutebrowser/utils/log.py26
-rw-r--r--qutebrowser/utils/qtlog.py27
5 files changed, 33 insertions, 32 deletions
diff --git a/qutebrowser/browser/network/pac.py b/qutebrowser/browser/network/pac.py
index 54c1195af..162e1c5d0 100644
--- a/qutebrowser/browser/network/pac.py
+++ b/qutebrowser/browser/network/pac.py
@@ -28,7 +28,7 @@ from qutebrowser.qt.network import (QNetworkProxy, QNetworkRequest, QHostInfo,
QHostAddress)
from qutebrowser.qt.qml import QJSEngine, QJSValue
-from qutebrowser.utils import log, utils, qtutils, resources, urlutils
+from qutebrowser.utils import log, qtlog, utils, qtutils, resources, urlutils
class ParseProxyError(Exception):
@@ -258,7 +258,7 @@ class PACFetcher(QObject):
url.setScheme(url.scheme()[len(pac_prefix):])
self._pac_url = url
- with log.disable_qt_msghandler():
+ with qtlog.disable_qt_msghandler():
# WORKAROUND for a hang when messages are printed, see our
# NetworkAccessManager subclass for details.
self._manager: Optional[QNetworkAccessManager] = QNetworkAccessManager()
diff --git a/qutebrowser/browser/webkit/network/networkmanager.py b/qutebrowser/browser/webkit/network/networkmanager.py
index 91e609456..4c1c767ec 100644
--- a/qutebrowser/browser/webkit/network/networkmanager.py
+++ b/qutebrowser/browser/webkit/network/networkmanager.py
@@ -28,7 +28,7 @@ from qutebrowser.qt.network import (QNetworkAccessManager, QNetworkReply, QSslCo
from qutebrowser.config import config
from qutebrowser.utils import (message, log, usertypes, utils, objreg,
- urlutils, debug)
+ urlutils, debug, qtlog)
from qutebrowser.browser import shared
from qutebrowser.browser.network import proxy as proxymod
from qutebrowser.extensions import interceptors
@@ -156,7 +156,7 @@ class NetworkManager(QNetworkAccessManager):
def __init__(self, *, win_id, tab_id, private, parent=None):
log.init.debug("Initializing NetworkManager")
- with log.disable_qt_msghandler():
+ with qtlog.disable_qt_msghandler():
# WORKAROUND for a hang when a message is printed - See:
# https://www.riverbankcomputing.com/pipermail/pyqt/2014-November/035045.html
#
diff --git a/qutebrowser/misc/httpclient.py b/qutebrowser/misc/httpclient.py
index 2bb152b03..45d491996 100644
--- a/qutebrowser/misc/httpclient.py
+++ b/qutebrowser/misc/httpclient.py
@@ -25,7 +25,7 @@ from qutebrowser.qt.core import pyqtSignal, QObject, QTimer
from qutebrowser.qt.network import (QNetworkAccessManager, QNetworkRequest,
QNetworkReply)
-from qutebrowser.utils import log
+from qutebrowser.utils import qtlog
class HTTPRequest(QNetworkRequest):
@@ -59,7 +59,7 @@ class HTTPClient(QObject):
def __init__(self, parent=None):
super().__init__(parent)
- with log.disable_qt_msghandler():
+ with qtlog.disable_qt_msghandler():
# WORKAROUND for a hang when messages are printed, see our
# NetworkAccessManager subclass for details.
self._nam = QNetworkAccessManager(self)
diff --git a/qutebrowser/utils/log.py b/qutebrowser/utils/log.py
index e5894dda8..de6cbb328 100644
--- a/qutebrowser/utils/log.py
+++ b/qutebrowser/utils/log.py
@@ -31,10 +31,9 @@ import json
import inspect
import argparse
from typing import (TYPE_CHECKING, Any, Iterator, Mapping, MutableSequence,
- Optional, Set, Tuple, Union, TextIO, Literal, cast, Callable)
+ Optional, Set, Tuple, Union, TextIO, Literal, cast)
from qutebrowser.qt import core as qtcore
-from qutebrowser.qt import machinery
# Optional imports
try:
import colorama
@@ -227,29 +226,6 @@ def _init_py_warnings() -> None:
@contextlib.contextmanager
-def disable_qt_msghandler() -> Iterator[None]:
- """Contextmanager which temporarily disables the Qt message handler."""
- old_handler = qtcore.qInstallMessageHandler(None)
- if machinery.IS_QT6:
- # cast str to Optional[str] to be compatible with PyQt6 type hints for
- # qInstallMessageHandler
- old_handler = cast(
- Optional[
- Callable[
- [qtcore.QtMsgType, qtcore.QMessageLogContext, Optional[str]],
- None
- ]
- ],
- old_handler,
- )
-
- try:
- yield
- finally:
- qtcore.qInstallMessageHandler(old_handler)
-
-
-@contextlib.contextmanager
def py_warning_filter(
action:
Literal['default', 'error', 'ignore', 'always', 'module', 'once'] = 'ignore',
diff --git a/qutebrowser/utils/qtlog.py b/qutebrowser/utils/qtlog.py
index 2bf10f07b..8a8b7511c 100644
--- a/qutebrowser/utils/qtlog.py
+++ b/qutebrowser/utils/qtlog.py
@@ -17,10 +17,35 @@
"""Loggers and utilities related to Qt logging."""
+import contextlib
+from typing import Iterator, Optional, Callable, cast
-from qutebrowser.qt import core as qtcore
+from qutebrowser.qt import core as qtcore, machinery
@qtcore.pyqtSlot()
def shutdown_log() -> None:
qtcore.qInstallMessageHandler(None)
+
+
+@contextlib.contextmanager
+def disable_qt_msghandler() -> Iterator[None]:
+ """Contextmanager which temporarily disables the Qt message handler."""
+ old_handler = qtcore.qInstallMessageHandler(None)
+ if machinery.IS_QT6:
+ # cast str to Optional[str] to be compatible with PyQt6 type hints for
+ # qInstallMessageHandler
+ old_handler = cast(
+ Optional[
+ Callable[
+ [qtcore.QtMsgType, qtcore.QMessageLogContext, Optional[str]],
+ None
+ ]
+ ],
+ old_handler,
+ )
+
+ try:
+ yield
+ finally:
+ qtcore.qInstallMessageHandler(old_handler)