summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <git@the-compiler.org>2014-12-28 22:44:40 +0100
committerFlorian Bruhin <git@the-compiler.org>2014-12-28 22:44:40 +0100
commitbb1a1b80aa1fe9c5b6b42fece74b8f2ac9576d78 (patch)
treeafe529e056abca5c335a93d6523facdbf94054dd
parentb703028411c598bbf1600863a6855145e8231a6d (diff)
downloadqutebrowser-bb1a1b80aa1fe9c5b6b42fece74b8f2ac9576d78.tar.gz
qutebrowser-bb1a1b80aa1fe9c5b6b42fece74b8f2ac9576d78.zip
Fix setting of QWebSettings with empty strings.
-rw-r--r--qutebrowser/config/websettings.py27
1 files changed, 16 insertions, 11 deletions
diff --git a/qutebrowser/config/websettings.py b/qutebrowser/config/websettings.py
index 405a5ad84..91c9eafa6 100644
--- a/qutebrowser/config/websettings.py
+++ b/qutebrowser/config/websettings.py
@@ -34,7 +34,8 @@ from PyQt5.QtCore import QStandardPaths
from qutebrowser.config import config
from qutebrowser.utils import usertypes, standarddir, objreg
-MapType = usertypes.enum('MapType', ['attribute', 'setter', 'static_setter'])
+MapType = usertypes.enum('MapType', ['attribute', 'setter', 'setter_none',
+ 'static_setter'])
MAPPINGS = {
@@ -70,22 +71,22 @@ MAPPINGS = {
},
'fonts': {
'web-family-standard':
- (MapType.setter, lambda qws, v:
+ (MapType.setter_none, lambda qws, v:
qws.setFontFamily(QWebSettings.StandardFont, v)),
'web-family-fixed':
- (MapType.setter, lambda qws, v:
+ (MapType.setter_none, lambda qws, v:
qws.setFontFamily(QWebSettings.FixedFont, v)),
'web-family-serif':
- (MapType.setter, lambda qws, v:
+ (MapType.setter_none, lambda qws, v:
qws.setFontFamily(QWebSettings.SerifFont, v)),
'web-family-sans-serif':
- (MapType.setter, lambda qws, v:
+ (MapType.setter_none, lambda qws, v:
qws.setFontFamily(QWebSettings.SansSerifFont, v)),
'web-family-cursive':
- (MapType.setter, lambda qws, v:
+ (MapType.setter_none, lambda qws, v:
qws.setFontFamily(QWebSettings.CursiveFont, v)),
'web-family-fantasy':
- (MapType.setter, lambda qws, v:
+ (MapType.setter_none, lambda qws, v:
qws.setFontFamily(QWebSettings.FantasyFont, v)),
'web-size-minimum':
(MapType.setter, lambda qws, v:
@@ -106,7 +107,7 @@ MAPPINGS = {
'frame-flattening':
(MapType.attribute, QWebSettings.FrameFlatteningEnabled),
'user-stylesheet':
- (MapType.setter, lambda qws, v: qws.setUserStyleSheetUrl(v)),
+ (MapType.setter_none, lambda qws, v: qws.setUserStyleSheetUrl(v)),
'css-media-type':
(MapType.setter, lambda qws, v: qws.setCSSMediaType(v)),
#'accelerated-compositing':
@@ -147,7 +148,8 @@ MAPPINGS = {
'site-specific-quirks':
(MapType.attribute, QWebSettings.SiteSpecificQuirksEnabled),
'default-encoding':
- (MapType.setter, lambda qws, v: qws.setDefaultTextEncoding(v)),
+ (MapType.setter_none, lambda qws, v:
+ qws.setDefaultTextEncoding(v)),
}
}
@@ -159,8 +161,7 @@ def _set_setting(typ, arg, value):
"""Set a QWebSettings setting.
Args:
- typ: The type of the item
- (MapType.attribute/MapType.setter/MapType.static_setter)
+ typ: The type of the item.
arg: The argument (attribute/handler)
value: The value to set.
"""
@@ -168,6 +169,10 @@ def _set_setting(typ, arg, value):
raise TypeError("Type {} is no MapType member!".format(typ))
if typ == MapType.attribute:
settings.setAttribute(arg, value)
+ elif typ == MapType.setter_none:
+ if value is None:
+ value = ""
+ arg(settings, value)
elif typ == MapType.setter and value is not None:
arg(settings, value)
elif typ == MapType.static_setter and value is not None: