diff options
author | Ted Morse <ekpneo@users.noreply.github.com> | 2020-11-29 10:58:27 -0800 |
---|---|---|
committer | Ted Morse <ekpneo@users.noreply.github.com> | 2020-11-29 10:58:27 -0800 |
commit | 1f67527662a076aa0a3caf5348f9ba6b663f4a0e (patch) | |
tree | 1eb195c2b6f3832756aa5a439c5ae1a077033d59 | |
parent | 6d01062305e554f3d0e8989f0ba45c998c425ef1 (diff) | |
download | qutebrowser-1f67527662a076aa0a3caf5348f9ba6b663f4a0e.tar.gz qutebrowser-1f67527662a076aa0a3caf5348f9ba6b663f4a0e.zip |
Only apply blink-settings on Qt 15.5.2
Turns out Qt 5.15.{0,1} also needs `--force-dark-mode`. This commit
fixes it to only use the blink-setting on Qt 5.15.2 and up. It also
parameterizes the tests better to test that the settings work on their
respective Qt versions.
-rw-r--r-- | qutebrowser/browser/webengine/darkmode.py | 4 | ||||
-rw-r--r-- | qutebrowser/config/qtargs.py | 8 | ||||
-rw-r--r-- | tests/helpers/utils.py | 3 | ||||
-rw-r--r-- | tests/unit/browser/webengine/test_darkmode.py | 19 | ||||
-rw-r--r-- | tests/unit/config/test_qtargs.py | 8 |
5 files changed, 26 insertions, 16 deletions
diff --git a/qutebrowser/browser/webengine/darkmode.py b/qutebrowser/browser/webengine/darkmode.py index 5ae079392..86b7f8c59 100644 --- a/qutebrowser/browser/webengine/darkmode.py +++ b/qutebrowser/browser/webengine/darkmode.py @@ -264,8 +264,10 @@ def _variant() -> Variant: def settings() -> Iterator[Tuple[str, str]]: """Get necessary blink settings to configure dark mode for QtWebEngine.""" - if (qtutils.version_check('5.15', compiled=False) and + if (qtutils.version_check('5.15.2', compiled=False) and config.val.colors.webpage.prefers_color_scheme_dark): + # In future versions of 'blink', (> Qt 5.15.2) the enumeration has + # changed and this will need to be set to '0' instead. yield "preferredColorScheme", "1" if not config.val.colors.webpage.darkmode.enabled: diff --git a/qutebrowser/config/qtargs.py b/qutebrowser/config/qtargs.py index 663296bbc..2136f7e7f 100644 --- a/qutebrowser/config/qtargs.py +++ b/qutebrowser/config/qtargs.py @@ -204,10 +204,10 @@ def _qtwebengine_settings_args() -> Iterator[str]: } if (qtutils.version_check('5.14', compiled=False) and - not qtutils.version_check('5.15', compiled=False)): - # In Qt 5.14, `--force-dark-mode` is used to set the preferred - # colorscheme. In Qt 5.15, this is handled by a blink-setting - # instead. + not qtutils.version_check('5.15.2', compiled=False)): + # In Qt 5.14 to 5.15.1, `--force-dark-mode` is used to set the + # preferred colorscheme. In Qt 5.15.2, this is handled by a + # blink-setting instead. settings['colors.webpage.prefers_color_scheme_dark'] = { True: '--force-dark-mode', False: None, diff --git a/tests/helpers/utils.py b/tests/helpers/utils.py index 3b5ee0ab6..2c275bf15 100644 --- a/tests/helpers/utils.py +++ b/tests/helpers/utils.py @@ -44,9 +44,6 @@ ON_CI = 'CI' in os.environ qt514 = pytest.mark.skipif( not qtutils.version_check('5.14'), reason="Needs Qt 5.14 or newer") -qt515 = pytest.mark.skipif( - not qtutils.version_check('5.15'), reason="Needs Qt 5.15 or newer") - class PartialCompareOutcome: diff --git a/tests/unit/browser/webengine/test_darkmode.py b/tests/unit/browser/webengine/test_darkmode.py index 0c39cf95c..cd84526c3 100644 --- a/tests/unit/browser/webengine/test_darkmode.py +++ b/tests/unit/browser/webengine/test_darkmode.py @@ -32,16 +32,23 @@ def patch_backend(monkeypatch): monkeypatch.setattr(objects, 'backend', usertypes.Backend.QtWebEngine) -@pytest.mark.parametrize('enabled, expected', [ +@pytest.mark.parametrize('qversion, enabled, expected', [ # Disabled or nothing set - (False, []), + ("5.14", False, []), + ("5.15.0", False, []), + ("5.15.1", False, []), + ("5.15.2", False, []), # Enabled in configuration - (True, [("preferredColorScheme", "1")]), + ("5.14", True, []), + ("5.15.0", True, []), + ("5.15.1", True, []), + ("5.15.2", True, [("preferredColorScheme", "1")]), ]) -@utils.qt515 -def test_colorscheme(config_stub, monkeypatch, enabled, expected): - config_stub.set_obj('colors.webpage.prefers_color_scheme_dark', enabled) +@utils.qt514 +def test_colorscheme(config_stub, monkeypatch, qversion, enabled, expected): + monkeypatch.setattr(darkmode.qtutils, 'qVersion', lambda: qversion) + config_stub.val.colors.webpage.prefers_color_scheme_dark = enabled assert list(darkmode.settings()) == expected diff --git a/tests/unit/config/test_qtargs.py b/tests/unit/config/test_qtargs.py index d26a8ab50..8ff5b95d3 100644 --- a/tests/unit/config/test_qtargs.py +++ b/tests/unit/config/test_qtargs.py @@ -292,10 +292,14 @@ class TestQtArgs: @pytest.mark.parametrize('dark, qt_version, added', [ (True, "5.13", False), (True, "5.14", True), - (True, "5.15", False), + (True, "5.15.0", True), + (True, "5.15.1", True), + (True, "5.15.2", False), (False, "5.13", False), (False, "5.14", False), - (False, "5.15", False), + (False, "5.15.0", False), + (False, "5.15.1", False), + (False, "5.15.2", False), ]) @utils.qt514 def test_prefers_color_scheme_dark(self, config_stub, monkeypatch, parser, |