Move webkitsettings to WebKitSettings object

This commit is contained in:
Florian Bruhin 2018-06-14 14:06:00 +02:00
parent fbbb290e16
commit 4af58d39ed

View File

@ -120,43 +120,61 @@ class WebKitSettings(websettings.AbstractSettings):
QWebSettings.FantasyFont: QFont.Fantasy,
}
def _set_user_stylesheet(self):
"""Set the generated user-stylesheet."""
stylesheet = shared.get_user_stylesheet().encode('utf-8')
url = urlutils.data_url('text/css;charset=utf-8', stylesheet)
old = self._settings.userStyleSheetUrl()
def _set_user_stylesheet(settings):
"""Set the generated user-stylesheet."""
stylesheet = shared.get_user_stylesheet().encode('utf-8')
url = urlutils.data_url('text/css;charset=utf-8', stylesheet)
settings.setUserStyleSheetUrl(url)
if old == url:
return False
self._settings.setUserStyleSheetUrl(url)
return True
def _set_cookie_accept_policy(settings):
"""Update the content.cookies.accept setting."""
mapping = {
'all': QWebSettings.AlwaysAllowThirdPartyCookies,
'no-3rdparty': QWebSettings.AlwaysBlockThirdPartyCookies,
'never': QWebSettings.AlwaysBlockThirdPartyCookies,
'no-unknown-3rdparty': QWebSettings.AllowThirdPartyWithExistingCookies,
}
value = config.val.content.cookies.accept
settings.setThirdPartyCookiePolicy(mapping[value])
def _set_cookie_accept_policy(self, value):
"""Update the content.cookies.accept setting."""
mapping = {
'all': QWebSettings.AlwaysAllowThirdPartyCookies,
'no-3rdparty': QWebSettings.AlwaysBlockThirdPartyCookies,
'never': QWebSettings.AlwaysBlockThirdPartyCookies,
'no-unknown-3rdparty': QWebSettings.AllowThirdPartyWithExistingCookies,
}
old = self._settings.thirdPartyCookiePolicy()
new = mapping[value]
def _set_cache_maximum_pages(settings):
"""Update the content.cache.maximum_pages setting."""
value = config.val.content.cache.maximum_pages
settings.setMaximumPagesInCache(value)
if old == new:
return False
self._settings.setThirdPartyCookiePolicy(new)
return True
def _update_settings(option):
"""Update global settings when qwebsettings changed."""
global_settings.update_setting(option)
def _set_cache_maximum_pages(self, value):
"""Update the content.cache.maximum_pages setting."""
old = self._settings.maximumPagesInCache()
settings = QWebSettings.globalSettings()
if option in ['scrollbar.hide', 'content.user_stylesheets']:
_set_user_stylesheet(settings)
elif option == 'content.cookies.accept':
_set_cookie_accept_policy(settings)
elif option == 'content.cache.maximum_pages':
_set_cache_maximum_pages(settings)
if old == value:
return False
self._settings.setMaximumPagesInCache(value)
return True
def _update_setting(self, option, value):
if option in ['scrollbar.hide', 'content.user_stylesheets']:
return self._set_user_stylesheet()
elif option == 'content.cookies.accept':
return self._set_cookie_accept_policy(value)
elif option == 'content.cache.maximum_pages':
return self._set_cache_maximum_pages(value)
else:
return super()._update_setting(option, value)
def init_settings(self):
super().init_settings()
self.update_setting('content.user_stylesheets')
self.update_setting('content.cookies.accept')
self.update_setting('content.cache.maximum_pages')
def init(_args):
@ -172,16 +190,10 @@ def init(_args):
QWebSettings.setOfflineStoragePath(
os.path.join(data_path, 'offline-storage'))
settings = QWebSettings.globalSettings()
_set_user_stylesheet(settings)
_set_cookie_accept_policy(settings)
_set_cache_maximum_pages(settings)
config.instance.changed.connect(_update_settings)
global global_settings
global_settings = WebKitSettings(QWebSettings.globalSettings())
global_settings.init_settings()
config.instance.changed.connect(global_settings.update_setting)
def shutdown():