From 71bfaa3ed29570b1d744675136344447e0fa4f1b Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Mon, 15 Jan 2018 17:48:28 +0100 Subject: All QWebEngineSettings are now accessible --- plugins/ProfileEditor/forms/profileview.cpp | 68 ++++++++++++--- plugins/ProfileEditor/forms/profileview.ui | 128 ++++++++++++++++++---------- 2 files changed, 141 insertions(+), 55 deletions(-) (limited to 'plugins/ProfileEditor') diff --git a/plugins/ProfileEditor/forms/profileview.cpp b/plugins/ProfileEditor/forms/profileview.cpp index ef0fece..fa0bfaa 100644 --- a/plugins/ProfileEditor/forms/profileview.cpp +++ b/plugins/ProfileEditor/forms/profileview.cpp @@ -10,14 +10,13 @@ #include "ui_profileview.h" #include -inline void connectCheckBox(QCheckBox *checkBox, QWebEngineSettings *settings, QWebEngineSettings::WebAttribute attr) +inline void connectSetting(QCheckBox *checkBox, QWebEngineSettings *settings, QWebEngineSettings::WebAttribute attr) { QObject::connect(checkBox, &QCheckBox::clicked, [settings, attr](bool checked){ settings->setAttribute(attr, checked); }); } - ProfileView::ProfileView(QWebEngineProfile *profile, QWidget *parent) : QDialog(parent) , ui(new Ui::ProfileView) @@ -27,13 +26,39 @@ ProfileView::ProfileView(QWebEngineProfile *profile, QWidget *parent) ui->setupUi(this); QWebEngineSettings *settings = m_profile->settings(); - connectCheckBox(ui->autoloadImages_checkBox, settings, QWebEngineSettings::AutoLoadImages); - connectCheckBox(ui->autoloadIcons_checkBox, settings, QWebEngineSettings::AutoLoadIconsForPage); + connectSetting(ui->autoloadImages, settings, QWebEngineSettings::AutoLoadImages); + connectSetting(ui->autoloadIcons, settings, QWebEngineSettings::AutoLoadIconsForPage); + + connectSetting(ui->javascriptEnabled, settings, QWebEngineSettings::JavascriptEnabled); + connectSetting(ui->javascriptCanAccessClipboard, settings, QWebEngineSettings::JavascriptCanAccessClipboard); + connectSetting(ui->javascriptCanOpenWindows, settings, QWebEngineSettings::JavascriptCanOpenWindows); + connectSetting(ui->javascriptCanActivateWindows, settings, QWebEngineSettings::AllowWindowActivationFromJavaScript); + + connectSetting(ui->linksIncludedInFocusChain, settings, QWebEngineSettings::LinksIncludedInFocusChain); + connectSetting(ui->spatialNavigationEnabled, settings, QWebEngineSettings::SpatialNavigationEnabled); + connectSetting(ui->focusOnNavigationEnabled, settings, QWebEngineSettings::FocusOnNavigationEnabled); + connectSetting(ui->touchIconsEnabled, settings, QWebEngineSettings::TouchIconsEnabled); + + connectSetting(ui->showScrollBars, settings, QWebEngineSettings::ShowScrollBars); + connectSetting(ui->scrollAnimatorEnabled, settings, QWebEngineSettings::ScrollAnimatorEnabled); + connectSetting(ui->errorPagesEnabled, settings, QWebEngineSettings::ErrorPageEnabled); + + connectSetting(ui->localContentCanAccessRemoteUrls, settings, QWebEngineSettings::LocalContentCanAccessRemoteUrls); + connectSetting(ui->localContentCanAccessFileUrls, settings, QWebEngineSettings::LocalContentCanAccessFileUrls); - connectCheckBox(ui->javascriptEnabled, settings, QWebEngineSettings::JavascriptEnabled); - connectCheckBox(ui->javascriptCanAccessClipboard, settings, QWebEngineSettings::JavascriptCanAccessClipboard); - connectCheckBox(ui->javascriptCanOpenWindows, settings, QWebEngineSettings::JavascriptCanOpenWindows); - connectCheckBox(ui->javascriptCanActivateWindows, settings, QWebEngineSettings::AllowWindowActivationFromJavaScript); + connectSetting(ui->localStorageEnabled, settings, QWebEngineSettings::LocalStorageEnabled); + connectSetting(ui->webglEnabled, settings, QWebEngineSettings::WebGLEnabled); + connectSetting(ui->canvasEnabled, settings, QWebEngineSettings::Accelerated2dCanvasEnabled); + + connectSetting(ui->xssAuditingEnabled, settings, QWebEngineSettings::XSSAuditingEnabled); + connectSetting(ui->hyperlinkAuditingEnabled, settings, QWebEngineSettings::HyperlinkAuditingEnabled); + + connectSetting(ui->allowRunningInsecureContent, settings, QWebEngineSettings::AllowRunningInsecureContent); + connectSetting(ui->allowGeolocationOnInsecureContent, settings, QWebEngineSettings::AllowGeolocationOnInsecureOrigins); + connectSetting(ui->ppapiPluginsEnabled, settings, QWebEngineSettings::PluginsEnabled); + connectSetting(ui->fullscreenSupportEnabled, settings, QWebEngineSettings::FullScreenSupportEnabled); + connectSetting(ui->screenCaptureEnabled, settings, QWebEngineSettings::ScreenCaptureEnabled); + connectSetting(ui->printElementBackgrounds, settings, QWebEngineSettings::PrintElementBackgrounds); // actions connect(ui->clearCache_pushButton, &QPushButton::clicked, [this]() { @@ -70,13 +95,32 @@ void ProfileView::loadProfile() // settings QWebEngineSettings *settings = m_profile->settings(); - ui->autoloadImages_checkBox->setChecked(settings->testAttribute(QWebEngineSettings::AutoLoadImages)); - ui->autoloadIcons_checkBox->setChecked(settings->testAttribute(QWebEngineSettings::AutoLoadIconsForPage)); - + ui->autoloadImages->setChecked(settings->testAttribute(QWebEngineSettings::AutoLoadImages)); ui->javascriptEnabled->setChecked(settings->testAttribute(QWebEngineSettings::JavascriptEnabled)); - ui->javascriptCanAccessClipboard->setChecked(settings->testAttribute(QWebEngineSettings::JavascriptCanAccessClipboard)); ui->javascriptCanOpenWindows->setChecked(settings->testAttribute(QWebEngineSettings::JavascriptCanOpenWindows)); + ui->javascriptCanAccessClipboard->setChecked(settings->testAttribute(QWebEngineSettings::JavascriptCanAccessClipboard)); + ui->linksIncludedInFocusChain->setChecked(settings->testAttribute(QWebEngineSettings::LinksIncludedInFocusChain)); + ui->localStorageEnabled->setChecked(settings->testAttribute(QWebEngineSettings::LocalStorageEnabled)); + ui->localContentCanAccessRemoteUrls->setChecked(settings->testAttribute(QWebEngineSettings::LocalContentCanAccessRemoteUrls)); + ui->xssAuditingEnabled->setChecked(settings->testAttribute(QWebEngineSettings::XSSAuditingEnabled)); + ui->spatialNavigationEnabled->setChecked(settings->testAttribute(QWebEngineSettings::SpatialNavigationEnabled)); + ui->localContentCanAccessFileUrls->setChecked(settings->testAttribute(QWebEngineSettings::LocalContentCanAccessFileUrls)); + ui->hyperlinkAuditingEnabled->setChecked(settings->testAttribute(QWebEngineSettings::HyperlinkAuditingEnabled)); + ui->scrollAnimatorEnabled->setChecked(settings->testAttribute(QWebEngineSettings::ScrollAnimatorEnabled)); + ui->errorPagesEnabled->setChecked(settings->testAttribute(QWebEngineSettings::ErrorPageEnabled)); + ui->ppapiPluginsEnabled->setChecked(settings->testAttribute(QWebEngineSettings::PluginsEnabled)); + ui->fullscreenSupportEnabled->setChecked(settings->testAttribute(QWebEngineSettings::FullScreenSupportEnabled)); + ui->screenCaptureEnabled->setChecked(settings->testAttribute(QWebEngineSettings::ScreenCaptureEnabled)); + ui->webglEnabled->setChecked(settings->testAttribute(QWebEngineSettings::WebGLEnabled)); + ui->canvasEnabled->setChecked(settings->testAttribute(QWebEngineSettings::Accelerated2dCanvasEnabled)); + ui->autoloadIcons->setChecked(settings->testAttribute(QWebEngineSettings::AutoLoadIconsForPage)); + ui->touchIconsEnabled->setChecked(settings->testAttribute(QWebEngineSettings::TouchIconsEnabled)); + ui->focusOnNavigationEnabled->setChecked(settings->testAttribute(QWebEngineSettings::FocusOnNavigationEnabled)); + ui->printElementBackgrounds->setChecked(settings->testAttribute(QWebEngineSettings::PrintElementBackgrounds)); + ui->allowRunningInsecureContent->setChecked(settings->testAttribute(QWebEngineSettings::AllowRunningInsecureContent)); + ui->allowGeolocationOnInsecureContent->setChecked(settings->testAttribute(QWebEngineSettings::AllowGeolocationOnInsecureOrigins)); ui->javascriptCanActivateWindows->setChecked(settings->testAttribute(QWebEngineSettings::AllowWindowActivationFromJavaScript)); + ui->showScrollBars->setChecked(settings->testAttribute(QWebEngineSettings::ShowScrollBars)); // policy ui->cookiePolicy->setCurrentIndex(m_profile->persistentCookiesPolicy()); diff --git a/plugins/ProfileEditor/forms/profileview.ui b/plugins/ProfileEditor/forms/profileview.ui index 1e6f94f..2e43bae 100644 --- a/plugins/ProfileEditor/forms/profileview.ui +++ b/plugins/ProfileEditor/forms/profileview.ui @@ -7,7 +7,7 @@ 0 0 640 - 480 + 504 @@ -164,21 +164,21 @@ 0 - 0 + -88 584 - 724 + 797 - + Autoload images - + Autoload icons @@ -227,135 +227,177 @@ - + - CheckBox + Links included in focus chain - + - CheckBox + Spatial navigation enabled - + - CheckBox + Focus on navigation enabled - + - CheckBox + Touch icons enabled - + + + Qt::Horizontal + + + + + - CheckBox + Show scroll bars - + - CheckBox + Scroll animator enabled - + - CheckBox + Error pages enabled + + + + + + + Qt::Horizontal - + - CheckBox + Local content can access remote URLs - + - CheckBox + Local content can access file URLs + + + + + + + Qt::Horizontal - + - CheckBox + Local storage enabled - + - CheckBox + WebGL enabled - + - CheckBox + Accelerated 2D canvas enabled - + + + Qt::Horizontal + + + + + - CheckBox + XSS auditing enabled + + + + + + + Hyperlink auditing enabled + + + + + + + Qt::Horizontal - + - CheckBox + Allow running insecure content - + - CheckBox + Allow geolocation on insecure content - + - CheckBox + PPAPI Plugins enabled - + - CheckBox + Fullscreen support enabled - + - CheckBox + Screen capture enabled - + - CheckBox + Print element backgrounds -- cgit v1.2.1