From 50f7d0fe7891e0ad60ad845b8d727f85151159e3 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Tue, 29 May 2018 19:19:35 +0200 Subject: Profile attributes --- src/browser.cpp | 1 + src/webengine/webprofile.cpp | 136 +++++-------------------------------------- src/webengine/webprofile.h | 3 +- 3 files changed, 15 insertions(+), 125 deletions(-) diff --git a/src/browser.cpp b/src/browser.cpp index 41c73df..b10ff6a 100644 --- a/src/browser.cpp +++ b/src/browser.cpp @@ -102,6 +102,7 @@ void Browser::setup(const QString &defaultProfile) // load profiles { auto *otr = new WebProfile(m_config->section("profile"), this); + loadProfile(otr, QString::fromStdString(m_config->value("profile.path").value()) + "/otr.ini"); m_profiles.insert(tr("Off-the-record"), otr); m_profiles.unite(loadProfiles(QString::fromStdString(m_config->value("profile.path").value()))); diff --git a/src/webengine/webprofile.cpp b/src/webengine/webprofile.cpp index 28b1bd1..081e091 100644 --- a/src/webengine/webprofile.cpp +++ b/src/webengine/webprofile.cpp @@ -27,13 +27,23 @@ void loadProfile(WebProfile *profile, const QString &path) config.beginGroup("properties"); for(const QString &key : config.childKeys()) { +#ifdef QT_DEBUG + qDebug("set property %s to %s", qUtf8Printable(key), qUtf8Printable(config.value(key).toString())); +#endif profile->setProperty(qUtf8Printable(key), config.value(key)); } config.endGroup(); // properties -// m_search = config.value("search", conf.value("profile.search")).toString(); -// m_homepage = config.value("homepage", conf["profile.homepage"]).toUrl(); -// m_newtab = config.value("newtab", conf["profile.newtab"]).toUrl(); + config.beginGroup("attributes"); + auto *settings = profile->settings(); + for(const QString &key : config.childKeys()) { +#ifdef QT_DEBUG + qDebug("set attribute %s to %s", qUtf8Printable(key), qUtf8Printable(config.value(key).toString())); +#endif + auto attribute = static_cast(key.toInt()); + settings->setAttribute(attribute, config.value(key).toBool()); + } + config.endGroup(); // config.beginGroup("http"); // setHttpUserAgent(config.value("userAgent", httpUserAgent()).toString()); @@ -63,128 +73,8 @@ void loadProfile(WebProfile *profile, const QString &path) // } // } // config.endGroup(); // policy - -// config.beginGroup("attributes"); -// QWebEngineSettings *s = settings(); -// s->setAttribute(QWebEngineSettings::AutoLoadImages, -// config.value("autoLoadImages", s->testAttribute(QWebEngineSettings::AutoLoadImages)).toBool()); -// s->setAttribute(QWebEngineSettings::JavascriptEnabled, -// config.value("javascriptEnabled", s->testAttribute(QWebEngineSettings::JavascriptEnabled)).toBool()); -// s->setAttribute(QWebEngineSettings::JavascriptCanOpenWindows, -// config.value("javascriptCanOpenWindows", s->testAttribute(QWebEngineSettings::JavascriptCanOpenWindows)).toBool()); -// s->setAttribute(QWebEngineSettings::JavascriptCanAccessClipboard, -// config.value("javascriptCanAccessClipboard", s->testAttribute(QWebEngineSettings::JavascriptCanAccessClipboard)).toBool()); -// s->setAttribute(QWebEngineSettings::LinksIncludedInFocusChain, -// config.value("linksIncludedInFocusChain", s->testAttribute(QWebEngineSettings::LinksIncludedInFocusChain)).toBool()); -// s->setAttribute(QWebEngineSettings::LocalStorageEnabled, -// config.value("localStorageEnabled", s->testAttribute(QWebEngineSettings::LocalStorageEnabled)).toBool()); -// s->setAttribute(QWebEngineSettings::LocalContentCanAccessRemoteUrls, -// config.value("localContentCanAccessRemoteUrls", s->testAttribute(QWebEngineSettings::LocalContentCanAccessRemoteUrls)).toBool()); -// s->setAttribute(QWebEngineSettings::XSSAuditingEnabled, -// config.value("xssAuditingEnabled", s->testAttribute(QWebEngineSettings::XSSAuditingEnabled)).toBool()); -// s->setAttribute(QWebEngineSettings::SpatialNavigationEnabled, -// config.value("spatialNavigationEnabled", s->testAttribute(QWebEngineSettings::SpatialNavigationEnabled)).toBool()); -// s->setAttribute(QWebEngineSettings::LocalContentCanAccessFileUrls, -// config.value("localContentCanAccessFileUrls", s->testAttribute(QWebEngineSettings::LocalContentCanAccessFileUrls)).toBool()); -// s->setAttribute(QWebEngineSettings::HyperlinkAuditingEnabled, -// config.value("hyperlinkAuditingEnabled", s->testAttribute(QWebEngineSettings::HyperlinkAuditingEnabled)).toBool()); -// s->setAttribute(QWebEngineSettings::ScrollAnimatorEnabled, -// config.value("scrollAnimatorEnabled", s->testAttribute(QWebEngineSettings::ScrollAnimatorEnabled)).toBool()); -// s->setAttribute(QWebEngineSettings::ErrorPageEnabled, -// config.value("errorPageEnabled", s->testAttribute(QWebEngineSettings::ErrorPageEnabled)).toBool()); -// s->setAttribute(QWebEngineSettings::PluginsEnabled, -// config.value("pluginsEnabled", s->testAttribute(QWebEngineSettings::PluginsEnabled)).toBool()); -// s->setAttribute(QWebEngineSettings::FullScreenSupportEnabled, -// config.value("fullscreenSupportEnabled", s->testAttribute(QWebEngineSettings::FullScreenSupportEnabled)).toBool()); -// s->setAttribute(QWebEngineSettings::ScreenCaptureEnabled, -// config.value("screenCaptureEnabled", s->testAttribute(QWebEngineSettings::ScreenCaptureEnabled)).toBool()); -// s->setAttribute(QWebEngineSettings::WebGLEnabled, -// config.value("webglEnabled", s->testAttribute(QWebEngineSettings::WebGLEnabled)).toBool()); -// s->setAttribute(QWebEngineSettings::Accelerated2dCanvasEnabled, -// config.value("accelerated2dCanvasEnabled", s->testAttribute(QWebEngineSettings::Accelerated2dCanvasEnabled)).toBool()); -// s->setAttribute(QWebEngineSettings::AutoLoadIconsForPage, -// config.value("autoLoadIconsForPage", s->testAttribute(QWebEngineSettings::AutoLoadIconsForPage)).toBool()); -// s->setAttribute(QWebEngineSettings::TouchIconsEnabled, -// config.value("touchIconsEnabled", s->testAttribute(QWebEngineSettings::TouchIconsEnabled)).toBool()); -// s->setAttribute(QWebEngineSettings::FocusOnNavigationEnabled, -// config.value("focusOnNavigationEnabled", s->testAttribute(QWebEngineSettings::FocusOnNavigationEnabled)).toBool()); -// s->setAttribute(QWebEngineSettings::PrintElementBackgrounds, -// config.value("printElementBackgrounds", s->testAttribute(QWebEngineSettings::PrintElementBackgrounds)).toBool()); -// s->setAttribute(QWebEngineSettings::AllowRunningInsecureContent, -// config.value("allowRunningInsecureContent", s->testAttribute(QWebEngineSettings::AllowRunningInsecureContent)).toBool()); -// config.endGroup(); // attributes } -//void WebProfile::saveProfile(const QString &path) -//{ -// QSettings config(persistentStoragePath() + "/profile.ini", QSettings::IniFormat); - -// config.setValue("homepage", homepage().toString()); -// config.setValue("newtab", newtab().toString()); - -// config.beginGroup("http"); -// config.setValue("userAgent", httpUserAgent()); -// config.setValue("accept-lang", httpAcceptLanguage()); -// switch(httpCacheType()) { -// case MemoryHttpCache: -// config.setValue("cacheType", "memory"); -// break; -// case DiskHttpCache: -// config.setValue("cacheType", "disk"); -// break; -// case NoCache: -// config.setValue("cacheType", "disabled"); -// break; -// } -// config.setValue("cacheSize", httpCacheMaximumSize()); -// config.endGroup(); // http - -// config.beginGroup("policy"); -// switch(persistentCookiesPolicy()) { -// case NoPersistentCookies: -// config.setValue("cookies", "disabled"); -// break; -// case AllowPersistentCookies: -// config.setValue("cookies", "allow"); -// break; -// case ForcePersistentCookies: -// config.setValue("cookies", "force"); -// break; -// } -// config.endGroup(); // policy - -// QWebEngineSettings *s = settings(); -// config.beginGroup("attributes"); -// config.setValue("autoLoadImages", s->testAttribute(QWebEngineSettings::AutoLoadImages)); -// config.setValue("javascriptEnabled", s->testAttribute(QWebEngineSettings::JavascriptEnabled)); -// config.setValue("javascriptCanOpenWindows", s->testAttribute(QWebEngineSettings::JavascriptCanOpenWindows)); -// config.setValue("javascriptCanAccessClipboard", s->testAttribute(QWebEngineSettings::JavascriptCanAccessClipboard)); -// config.setValue("linksIncludedInFocusChain", s->testAttribute(QWebEngineSettings::LinksIncludedInFocusChain)); -// config.setValue("localStorageEnabled", s->testAttribute(QWebEngineSettings::LocalStorageEnabled)); -// config.setValue("localContentCanAccessRemoteUrls", s->testAttribute(QWebEngineSettings::LocalContentCanAccessRemoteUrls)); -// config.setValue("xssAuditingEnabled", s->testAttribute(QWebEngineSettings::XSSAuditingEnabled)); -// config.setValue("spatialNavigationEnabled", s->testAttribute(QWebEngineSettings::SpatialNavigationEnabled)); -// config.setValue("localContentCanAccessFileUrls", s->testAttribute(QWebEngineSettings::LocalContentCanAccessFileUrls)); -// config.setValue("hyperlinkAuditingEnabled", s->testAttribute(QWebEngineSettings::HyperlinkAuditingEnabled)); -// config.setValue("scrollAnimatorEnabled", s->testAttribute(QWebEngineSettings::ScrollAnimatorEnabled)); -// config.setValue("errorPageEnabled", s->testAttribute(QWebEngineSettings::ErrorPageEnabled)); -// config.setValue("pluginsEnabled", s->testAttribute(QWebEngineSettings::PluginsEnabled)); -// config.setValue("fullscreenSupportEnabled", s->testAttribute(QWebEngineSettings::FullScreenSupportEnabled)); -// config.setValue("screenCaptureEnabled", s->testAttribute(QWebEngineSettings::ScreenCaptureEnabled)); -// config.setValue("webglEnabled", s->testAttribute(QWebEngineSettings::WebGLEnabled)); -// config.setValue("accelerated2dCanvasEnabled", s->testAttribute(QWebEngineSettings::Accelerated2dCanvasEnabled)); -// config.setValue("autoLoadIconsForPage", s->testAttribute(QWebEngineSettings::AutoLoadIconsForPage)); -// config.setValue("touchIconsEnabled", s->testAttribute(QWebEngineSettings::TouchIconsEnabled)); -//#if QT_VERSION >= QT_VERSION_CHECK(5, 8, 0) -// config.setValue("focusOnNavigationEnabled", s->testAttribute(QWebEngineSettings::FocusOnNavigationEnabled)); -// config.setValue("printElementBackgrounds", s->testAttribute(QWebEngineSettings::PrintElementBackgrounds)); -// config.setValue("allowRunningInsecureContent", s->testAttribute(QWebEngineSettings::AllowRunningInsecureContent)); -//#endif -// config.endGroup(); // attributes - -// config.sync(); -//} - WebProfile::WebProfile(const QHash &defaults, QObject *parent) : QWebEngineProfile(parent) { diff --git a/src/webengine/webprofile.h b/src/webengine/webprofile.h index e11d7c5..1e3ac64 100644 --- a/src/webengine/webprofile.h +++ b/src/webengine/webprofile.h @@ -18,7 +18,6 @@ class WebProfile : public QWebEngineProfile { Q_OBJECT - //Q_PROPERTY(QString cachePath READ cachePath WRITE setCachePath) Q_PROPERTY(QString search READ search WRITE setSearch) Q_PROPERTY(QUrl homepage READ homepage WRITE setHomepage) Q_PROPERTY(QUrl newtab READ newtab WRITE setNewtab) @@ -88,6 +87,6 @@ private: }; void loadProfile(WebProfile *profile, const QString &path); -//WebProfile *saveProfile(const QString &path); +//WebProfile *saveProfile(WebProfile *profile, const QString &path); #endif // SMOLBOTE_WEBENGINEPROFILE_H -- cgit v1.2.1