From df245dae4867265f2df77deb1178c48bf9ef7c48 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Mon, 6 Feb 2017 21:08:32 +0100 Subject: [PATCH] Add support for general -> print-element-backgrounds with WebEngine --- CHANGELOG.asciidoc | 1 + qutebrowser/browser/webengine/webenginesettings.py | 8 +++++++- qutebrowser/config/configdata.py | 7 +++++-- scripts/dev/src2asciidoc.py | 4 +++- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index cce6265ad..d2173b530 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -29,6 +29,7 @@ Added - Support for the `storage -> cache-size` option with QtWebEngine - Support for the `colors -> webpage.bg` option with QtWebEngine - Support for the HTML5 fullscreen API (e.g. youtube videos) with QtWebEngine +- Support for the `general -> print-element-backgrounds` option with QtWebEngine on Qt >= 5.8 Changed ~~~~~~~ diff --git a/qutebrowser/browser/webengine/webenginesettings.py b/qutebrowser/browser/webengine/webenginesettings.py index bd3b962a6..69ace544d 100644 --- a/qutebrowser/browser/webengine/webenginesettings.py +++ b/qutebrowser/browser/webengine/webenginesettings.py @@ -185,7 +185,6 @@ def shutdown(): # - AutoLoadIconsForPage (5.7) # - TouchIconsEnabled (5.7) # - FocusOnNavigationEnabled (5.8) -# - PrintElementBackgrounds (5.8) # - AllowRunningInsecureContent (5.8) # # Missing QtWebEngine fonts: @@ -288,3 +287,10 @@ try: except AttributeError: # Added in Qt 5.7 pass + +try: + MAPPINGS['general']['print-element-backgrounds'] = Attribute( + QWebEngineSettings.PrintElementBackgrounds) +except AttributeError: + # Added in Qt 5.8 + pass diff --git a/qutebrowser/config/configdata.py b/qutebrowser/config/configdata.py index d7efce6b9..2ec593378 100644 --- a/qutebrowser/config/configdata.py +++ b/qutebrowser/config/configdata.py @@ -200,9 +200,12 @@ def data(readonly=False): ('print-element-backgrounds', SettingValue(typ.Bool(), 'true', - backends=[usertypes.Backend.QtWebKit]), + backends=(None if qtutils.version_check('5.8') + else [usertypes.Backend.QtWebKit])), "Whether the background color and images are also drawn when the " - "page is printed."), + "page is printed.\n" + "This setting only works with Qt 5.8 or newer when using the " + "QtWebEngine backend."), ('xss-auditing', SettingValue(typ.Bool(), 'false'), diff --git a/scripts/dev/src2asciidoc.py b/scripts/dev/src2asciidoc.py index 75a0d6b61..eae67522e 100755 --- a/scripts/dev/src2asciidoc.py +++ b/scripts/dev/src2asciidoc.py @@ -365,6 +365,8 @@ def generate_commands(filename): def _generate_setting_section(f, sectname, sect): """Generate documentation for a single section.""" + version_dependent_options = [('network', 'proxy'), + ('general', 'print-element-backgrounds')] for optname, option in sect.items(): f.write("\n") f.write('[[{}-{}]]'.format(sectname, optname) + "\n") @@ -391,7 +393,7 @@ def _generate_setting_section(f, sectname, sect): f.write("Default: empty\n") if (option.backends is None or - (sectname, optname) == ('network', 'proxy')): + (sectname, optname) in version_dependent_options): pass elif option.backends == [usertypes.Backend.QtWebKit]: f.write("\nThis setting is only available with the QtWebKit "