diff options
-rw-r--r-- | doc/help/settings.asciidoc | 20 | ||||
-rw-r--r-- | qutebrowser/browser/webengine/webenginetab.py | 1 | ||||
-rw-r--r-- | qutebrowser/config/configdata.yml | 10 | ||||
-rw-r--r-- | qutebrowser/config/websettings.py | 33 |
4 files changed, 50 insertions, 14 deletions
diff --git a/doc/help/settings.asciidoc b/doc/help/settings.asciidoc index 7a3d0c032..fb208e48c 100644 --- a/doc/help/settings.asciidoc +++ b/doc/help/settings.asciidoc @@ -3089,6 +3089,8 @@ Default: +pass:[default_size default_family]+ === fonts.web.family.cursive Font family for cursive fonts. +This setting supports URL patterns. + Type: <<types,FontFamily>> Default: empty @@ -3097,6 +3099,8 @@ Default: empty === fonts.web.family.fantasy Font family for fantasy fonts. +This setting supports URL patterns. + Type: <<types,FontFamily>> Default: empty @@ -3105,6 +3109,8 @@ Default: empty === fonts.web.family.fixed Font family for fixed fonts. +This setting supports URL patterns. + Type: <<types,FontFamily>> Default: empty @@ -3113,6 +3119,8 @@ Default: empty === fonts.web.family.sans_serif Font family for sans-serif fonts. +This setting supports URL patterns. + Type: <<types,FontFamily>> Default: empty @@ -3121,6 +3129,8 @@ Default: empty === fonts.web.family.serif Font family for serif fonts. +This setting supports URL patterns. + Type: <<types,FontFamily>> Default: empty @@ -3129,6 +3139,8 @@ Default: empty === fonts.web.family.standard Font family for standard fonts. +This setting supports URL patterns. + Type: <<types,FontFamily>> Default: empty @@ -3137,6 +3149,8 @@ Default: empty === fonts.web.size.default Default font size (in pixels) for regular text. +This setting supports URL patterns. + Type: <<types,Int>> Default: +pass:[16]+ @@ -3145,6 +3159,8 @@ Default: +pass:[16]+ === fonts.web.size.default_fixed Default font size (in pixels) for fixed-pitch text. +This setting supports URL patterns. + Type: <<types,Int>> Default: +pass:[13]+ @@ -3153,6 +3169,8 @@ Default: +pass:[13]+ === fonts.web.size.minimum Hard minimum font size (in pixels). +This setting supports URL patterns. + Type: <<types,Int>> Default: +pass:[0]+ @@ -3161,6 +3179,8 @@ Default: +pass:[0]+ === fonts.web.size.minimum_logical Minimum logical font size (in pixels) that is applied when zooming out. +This setting supports URL patterns. + Type: <<types,Int>> Default: +pass:[6]+ diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py index fcc9ecf35..c793a1929 100644 --- a/qutebrowser/browser/webengine/webenginetab.py +++ b/qutebrowser/browser/webengine/webenginetab.py @@ -989,6 +989,7 @@ class _Quirk: if self.name is None: self.name = f"js-{self.filename.replace('_', '-')}" + class _WebEngineScripts(QObject): def __init__(self, tab, parent=None): diff --git a/qutebrowser/config/configdata.yml b/qutebrowser/config/configdata.yml index b8c2990c9..80732d43d 100644 --- a/qutebrowser/config/configdata.yml +++ b/qutebrowser/config/configdata.yml @@ -3270,6 +3270,7 @@ fonts.tabs.unselected: fonts.web.family.standard: default: '' + supports_pattern: true type: name: FontFamily none_ok: true @@ -3277,6 +3278,7 @@ fonts.web.family.standard: fonts.web.family.fixed: default: '' + supports_pattern: true type: name: FontFamily none_ok: true @@ -3284,6 +3286,7 @@ fonts.web.family.fixed: fonts.web.family.serif: default: '' + supports_pattern: true type: name: FontFamily none_ok: true @@ -3291,6 +3294,7 @@ fonts.web.family.serif: fonts.web.family.sans_serif: default: '' + supports_pattern: true type: name: FontFamily none_ok: true @@ -3298,6 +3302,7 @@ fonts.web.family.sans_serif: fonts.web.family.cursive: default: '' + supports_pattern: true type: name: FontFamily none_ok: true @@ -3305,6 +3310,7 @@ fonts.web.family.cursive: fonts.web.family.fantasy: default: '' + supports_pattern: true type: name: FontFamily none_ok: true @@ -3317,6 +3323,7 @@ fonts.web.family.fantasy: fonts.web.size.default: default: 16 + supports_pattern: true type: name: Int minval: 1 @@ -3325,6 +3332,7 @@ fonts.web.size.default: fonts.web.size.default_fixed: default: 13 + supports_pattern: true type: name: Int minval: 1 @@ -3333,6 +3341,7 @@ fonts.web.size.default_fixed: fonts.web.size.minimum: default: 0 + supports_pattern: true type: name: Int minval: 0 @@ -3343,6 +3352,7 @@ fonts.web.size.minimum_logical: # This is 0 as default on QtWebKit, and 6 on QtWebEngine - so let's # just go for 6 here. default: 6 + supports_pattern: true type: name: Int minval: 0 diff --git a/qutebrowser/config/websettings.py b/qutebrowser/config/websettings.py index 1b07baab7..896f7639c 100644 --- a/qutebrowser/config/websettings.py +++ b/qutebrowser/config/websettings.py @@ -23,7 +23,7 @@ import re import argparse import functools import dataclasses -from typing import Any, Callable, Dict, Optional +from typing import Any, Callable, Dict, Optional, Union from PyQt5.QtCore import QUrl, pyqtSlot, qVersion from PyQt5.QtGui import QFont @@ -105,9 +105,6 @@ class AbstractSettings: def __init__(self, settings: Any) -> None: self._settings = settings - def _assert_not_unset(self, value: Any) -> None: - assert value is not usertypes.UNSET - def set_attribute(self, name: str, value: Any) -> None: """Set the given QWebSettings/QWebEngineSettings attribute. @@ -129,30 +126,38 @@ class AbstractSettings: info = self._ATTRIBUTES[name] return self._settings.testAttribute(info.attributes[0]) - def set_font_size(self, name: str, value: int) -> None: + def set_font_size(self, name: str, value: Union[int, usertypes.Unset]) -> None: """Set the given QWebSettings/QWebEngineSettings font size.""" - self._assert_not_unset(value) family = self._FONT_SIZES[name] - self._settings.setFontSize(family, value) + if value is usertypes.UNSET: + self._settings.resetFontSize(family) + else: + self._settings.setFontSize(family, value) - def set_font_family(self, name: str, value: Optional[str]) -> None: + def set_font_family( + self, + name: str, + value: Union[str, None, usertypes.Unset], + ) -> None: """Set the given QWebSettings/QWebEngineSettings font family. With None (the default), QFont is used to get the default font for the family. """ - self._assert_not_unset(value) family = self._FONT_FAMILIES[name] - if value is None: + if value is usertypes.UNSET: + self._settings.resetFontFamily(family) + elif value is None: font = QFont() font.setStyleHint(self._FONT_TO_QFONT[family]) value = font.defaultFamily() + self._settings.setFontFamily(family, value) + else: + self._settings.setFontFamily(family, value) - self._settings.setFontFamily(family, value) - - def set_default_text_encoding(self, encoding: str) -> None: + def set_default_text_encoding(self, encoding: Union[str, usertypes.Unset]) -> None: """Set the default text encoding to use.""" - self._assert_not_unset(encoding) + assert encoding is not usertypes.UNSET # unclear how to reset self._settings.setDefaultTextEncoding(encoding) def _update_setting(self, setting: str, value: Any) -> bool: |