summaryrefslogtreecommitdiff
path: root/qutebrowser/utils/log.py
diff options
context:
space:
mode:
Diffstat (limited to 'qutebrowser/utils/log.py')
-rw-r--r--qutebrowser/utils/log.py39
1 files changed, 20 insertions, 19 deletions
diff --git a/qutebrowser/utils/log.py b/qutebrowser/utils/log.py
index db72e1a21..040e75f16 100644
--- a/qutebrowser/utils/log.py
+++ b/qutebrowser/utils/log.py
@@ -35,7 +35,7 @@ import argparse
from typing import (TYPE_CHECKING, Any, Iterator, Mapping, MutableSequence,
Optional, Set, Tuple, Union)
-from PyQt5 import QtCore
+from qutebrowser.qt import core as qtcore
# Optional imports
try:
import colorama
@@ -211,13 +211,13 @@ def init_log(args: argparse.Namespace) -> None:
root.setLevel(logging.NOTSET)
logging.captureWarnings(True)
_init_py_warnings()
- QtCore.qInstallMessageHandler(qt_message_handler)
+ qtcore.qInstallMessageHandler(qt_message_handler)
_log_inited = True
-@QtCore.pyqtSlot()
+@qtcore.pyqtSlot()
def shutdown_log() -> None:
- QtCore.qInstallMessageHandler(None)
+ qtcore.qInstallMessageHandler(None)
def _init_py_warnings() -> None:
@@ -236,11 +236,11 @@ 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)
+ old_handler = qtcore.qInstallMessageHandler(None)
try:
yield
finally:
- QtCore.qInstallMessageHandler(old_handler)
+ qtcore.qInstallMessageHandler(old_handler)
@contextlib.contextmanager
@@ -378,8 +378,8 @@ def change_console_formatter(level: int) -> None:
assert isinstance(old_formatter, JSONFormatter), old_formatter
-def qt_message_handler(msg_type: QtCore.QtMsgType,
- context: QtCore.QMessageLogContext,
+def qt_message_handler(msg_type: qtcore.QtMsgType,
+ context: qtcore.QMessageLogContext,
msg: str) -> None:
"""Qt message handler to redirect qWarning etc. to the logging system.
@@ -392,18 +392,12 @@ def qt_message_handler(msg_type: QtCore.QtMsgType,
# Note we map critical to ERROR as it's actually "just" an error, and fatal
# to critical.
qt_to_logging = {
- QtCore.QtDebugMsg: logging.DEBUG,
- QtCore.QtWarningMsg: logging.WARNING,
- QtCore.QtCriticalMsg: logging.ERROR,
- QtCore.QtFatalMsg: logging.CRITICAL,
+ qtcore.QtMsgType.QtDebugMsg: logging.DEBUG,
+ qtcore.QtMsgType.QtWarningMsg: logging.WARNING,
+ qtcore.QtMsgType.QtCriticalMsg: logging.ERROR,
+ qtcore.QtMsgType.QtFatalMsg: logging.CRITICAL,
+ qtcore.QtMsgType.QtInfoMsg: logging.INFO,
}
- try:
- qt_to_logging[QtCore.QtInfoMsg] = logging.INFO
- except AttributeError:
- # Added in Qt 5.5.
- # While we don't support Qt < 5.5 anymore, logging still needs to work so that
- # the Qt version warning in earlyinit.py does.
- pass
# Change levels of some well-known messages to debug so they don't get
# shown to the user.
@@ -468,6 +462,8 @@ def qt_message_handler(msg_type: QtCore.QtMsgType,
# https://bugreports.qt.io/browse/QTBUG-76391
"Attribute Qt::AA_ShareOpenGLContexts must be set before "
"QCoreApplication is created.",
+ # Qt 6.4 beta 1: https://bugreports.qt.io/browse/QTBUG-104741
+ "GL format 0 is not supported",
]
# not using utils.is_mac here, because we can't be sure we can successfully
# import the utils module here.
@@ -483,6 +479,11 @@ def qt_message_handler(msg_type: QtCore.QtMsgType,
if any(msg.strip().startswith(pattern) for pattern in suppressed_msgs):
level = logging.DEBUG
+ elif context.category == "qt.webenginecontext" and (
+ msg.strip().startswith("GL Type: ") or # Qt 6.3
+ msg.strip().startswith("GLImplementation:") # Qt 6.2
+ ):
+ level = logging.DEBUG
else:
level = qt_to_logging[msg_type]