summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/help/settings.asciidoc20
-rw-r--r--qutebrowser/browser/webengine/webenginetab.py1
-rw-r--r--qutebrowser/config/configdata.yml10
-rw-r--r--qutebrowser/config/websettings.py33
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: