summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2023-06-13 19:32:50 +0200
committerFlorian Bruhin <me@the-compiler.org>2023-06-13 19:32:50 +0200
commit1313704802f0bdb84d32ab84ec9e8d4543040108 (patch)
treedca285d72695f0d990536a92e88d60cb2e2c617f
parent0175c00d0f7c00dc7447b116b4479344a1c8c205 (diff)
downloadqutebrowser-1313704802f0bdb84d32ab84ec9e8d4543040108.tar.gz
qutebrowser-1313704802f0bdb84d32ab84ec9e8d4543040108.zip
qt: Add wrapper info to backendproblem messages
-rw-r--r--qutebrowser/misc/backendproblem.py14
-rw-r--r--qutebrowser/qt/machinery.py4
-rw-r--r--tests/unit/test_qt_machinery.py1
3 files changed, 15 insertions, 4 deletions
diff --git a/qutebrowser/misc/backendproblem.py b/qutebrowser/misc/backendproblem.py
index 4c0e184ac..7e3f987c4 100644
--- a/qutebrowser/misc/backendproblem.py
+++ b/qutebrowser/misc/backendproblem.py
@@ -29,6 +29,7 @@ import argparse
import dataclasses
from typing import Any, Optional, Sequence, Tuple
+from qutebrowser.qt import machinery
from qutebrowser.qt.core import Qt
from qutebrowser.qt.widgets import (QDialog, QPushButton, QHBoxLayout, QVBoxLayout, QLabel,
QMessageBox, QWidget)
@@ -97,6 +98,8 @@ def _error_text(
f"setting the <i>backend = '{other_setting}'</i> option "
f"(if you have a <i>config.py</i> file, you'll need to set "
f"this manually). {warning}</p>")
+
+ text += f"<p>{machinery.INFO.to_html()}</p>"
return text
@@ -260,9 +263,11 @@ class _BackendProblemChecker:
"<p>The errors encountered were:<ul>"
"<li><b>QtWebKit:</b> {webkit_error}"
"<li><b>QtWebEngine:</b> {webengine_error}"
- "</ul></p>".format(
+ "</ul></p><p>{info}</p>".format(
webkit_error=html.escape(imports.webkit_error),
- webengine_error=html.escape(imports.webengine_error)))
+ webengine_error=html.escape(imports.webengine_error),
+ info=machinery.INFO.to_html(),
+ ))
errbox = msgbox.msgbox(parent=None,
title="No backend library found!",
text=text,
@@ -328,6 +333,7 @@ class _BackendProblemChecker:
"""Ask if there are Chromium downgrades or a Qt 5 -> 6 upgrade."""
versions = version.qtwebengine_versions(avoid_init=True)
change = configfiles.state.chromium_version_changed
+ info = f"<br><br>{machinery.INFO.to_html()}"
if change == configfiles.VersionChange.major:
# FIXME:qt6 Remove this before the release, as it typically should
# not concern users?
@@ -340,7 +346,7 @@ class _BackendProblemChecker:
"Chromium data will be invalid and discarded.<br><br>"
"This affects page data such as cookies, but not data managed by "
"qutebrowser, such as your configuration or <tt>:open</tt> history."
- )
+ ) + info
elif change == configfiles.VersionChange.downgrade:
text = (
"Chromium/QtWebEngine downgrade detected:<br>"
@@ -349,7 +355,7 @@ class _BackendProblemChecker:
"Data managed by Chromium will be discarded if you continue.<br><br>"
"This affects page data such as cookies, but not data managed by "
"qutebrowser, such as your configuration or <tt>:open</tt> history."
- )
+ ) + info
else:
return
diff --git a/qutebrowser/qt/machinery.py b/qutebrowser/qt/machinery.py
index 99b23ec8e..4ef9017be 100644
--- a/qutebrowser/qt/machinery.py
+++ b/qutebrowser/qt/machinery.py
@@ -12,6 +12,7 @@ Contains selection logic and globals for Qt wrapper selection.
import os
import sys
import enum
+import html
import argparse
import importlib
import dataclasses
@@ -108,6 +109,9 @@ class SelectionInfo:
lines.append(f"selected: {self.wrapper} (via {self.reason.value})")
return "\n".join(lines)
+ def to_html(self) -> str:
+ return html.escape(str(self)).replace("\n", "<br>")
+
def _autoselect_wrapper() -> SelectionInfo:
"""Autoselect a Qt wrapper.
diff --git a/tests/unit/test_qt_machinery.py b/tests/unit/test_qt_machinery.py
index 79f21308e..eb2f6fa1e 100644
--- a/tests/unit/test_qt_machinery.py
+++ b/tests/unit/test_qt_machinery.py
@@ -114,6 +114,7 @@ def test_selectioninfo_set_module():
)
def test_selectioninfo_str(info: machinery.SelectionInfo, expected: str):
assert str(info) == expected
+ assert info.to_html() == expected.replace("\n", "<br>")
@pytest.fixture