diff options
Diffstat (limited to 'src/webengine')
-rw-r--r-- | src/webengine/webprofile.cpp | 112 | ||||
-rw-r--r-- | src/webengine/webprofile.h | 82 |
2 files changed, 128 insertions, 66 deletions
diff --git a/src/webengine/webprofile.cpp b/src/webengine/webprofile.cpp index 5b07645..b40a98c 100644 --- a/src/webengine/webprofile.cpp +++ b/src/webengine/webprofile.cpp @@ -14,8 +14,14 @@ WebProfile *WebProfile::profile = nullptr; -void loadProfile(WebProfile *profile, const QString &path) +void loadProfile(WebProfile *profile, const QHash<QString, QString> &defaults, const QString &path) { + Q_CHECK_PTR(profile); + + profile->setSearch(defaults.value("profile.search")); + profile->setHomepage(QUrl::fromUserInput(defaults.value("profile.homepage"))); + profile->setNewtab(QUrl::fromUserInput(defaults.value("profile.newtab"))); + // return if there is no config file if(!QFileInfo::exists(path)) return; @@ -50,38 +56,9 @@ void loadProfile(WebProfile *profile, const QString &path) } } config.endGroup(); - -// config.beginGroup("http"); -// setHttpUserAgent(config.value("userAgent", httpUserAgent()).toString()); -// setHttpAcceptLanguage(config.value("accept-lang", httpAcceptLanguage()).toString()); -// { -// QString cacheType = config.value("cacheType").toString(); -// if(cacheType == "memory") { -// setHttpCacheType(QWebEngineProfile::MemoryHttpCache); -// } else if(cacheType == "disk") { -// setHttpCacheType(QWebEngineProfile::DiskHttpCache); -// } else if(cacheType == "disabled") { -// setHttpCacheType(QWebEngineProfile::NoCache); -// } -// } -// setHttpCacheMaximumSize(config.value("cacheSize", httpCacheMaximumSize()).toInt()); -// config.endGroup(); // http - -// config.beginGroup("policy"); -// { -// QString cookies = config.value("cookies").toString(); -// if(cookies == "disabled") { -// setPersistentCookiesPolicy(QWebEngineProfile::NoPersistentCookies); -// } else if(cookies == "allow") { -// setPersistentCookiesPolicy(QWebEngineProfile::AllowPersistentCookies); -// } else if(cookies == "force") { -// setPersistentCookiesPolicy(QWebEngineProfile::ForcePersistentCookies); -// } -// } -// config.endGroup(); // policy } -WebProfile::WebProfile(const QHash<QString, QString> &defaults, QObject *parent) +WebProfile::WebProfile(QObject *parent) : QWebEngineProfile(parent) { m_name = tr("Off-the-record"); @@ -89,10 +66,6 @@ WebProfile::WebProfile(const QHash<QString, QString> &defaults, QObject *parent) #ifdef QT_DEBUG qDebug("Creating off-the-record profile"); #endif - - m_search = defaults.value("profile.search"); - m_homepage = QUrl::fromUserInput(defaults.value("profile.homepage")); - m_newtab = QUrl::fromUserInput(defaults.value("profile.newtab")); } WebProfile::WebProfile(const QString &name, QObject *parent) @@ -105,4 +78,71 @@ WebProfile::WebProfile(const QString &name, QObject *parent) #endif } -WebProfile::~WebProfile() = default; +QString WebProfile::search() const +{ + return m_search; +} + +void WebProfile::setSearch(const QString &url) +{ + m_search = url; + emit searchChanged(m_search); +} + +QUrl WebProfile::homepage() const +{ + return m_homepage; +} + +void WebProfile::setHomepage(const QUrl &url) +{ + m_homepage = url; + emit homepageChanged(m_homepage); +} + +QUrl WebProfile::newtab() const +{ + return m_newtab; +} + +void WebProfile::setNewtab(const QUrl &url) +{ + m_newtab = url; + emit newtabChanged(m_newtab); +} + +void WebProfile::setCachePath(const QString &path) +{ + QWebEngineProfile::setCachePath(path); + emit cachePathChanged(QWebEngineProfile::cachePath()); +} + +void WebProfile::setPersistentStoragePath(const QString &path) +{ + QWebEngineProfile::setPersistentStoragePath(path); + emit persistentStoragePathChanged(QWebEngineProfile::persistentStoragePath()); +} + +void WebProfile::setHttpAcceptLanguage(const QString &httpAcceptLanguage) +{ + QWebEngineProfile::setHttpAcceptLanguage(httpAcceptLanguage); + emit httpAcceptLanguageChanged(QWebEngineProfile::httpAcceptLanguage()); +} + +void WebProfile::setHttpCacheMaximumSize(int maxSize) +{ + QWebEngineProfile::setHttpCacheMaximumSize(maxSize); + emit httpCacheMaximumSizeChanged(QWebEngineProfile::httpCacheMaximumSize()); +} + +void WebProfile::setHttpUserAgent(const QString &userAgent) +{ + QWebEngineProfile::setHttpUserAgent(userAgent); + emit httpUserAgentChanged(QWebEngineProfile::httpUserAgent()); +} + +void WebProfile::setSpellCheckEnabled(bool enable) +{ + QWebEngineProfile::setSpellCheckEnabled(enable); + emit spellCheckEnabledChanged(QWebEngineProfile::isSpellCheckEnabled()); +} diff --git a/src/webengine/webprofile.h b/src/webengine/webprofile.h index 1e3ac64..31c5b44 100644 --- a/src/webengine/webprofile.h +++ b/src/webengine/webprofile.h @@ -18,15 +18,27 @@ class WebProfile : public QWebEngineProfile { Q_OBJECT - Q_PROPERTY(QString search READ search WRITE setSearch) - Q_PROPERTY(QUrl homepage READ homepage WRITE setHomepage) - Q_PROPERTY(QUrl newtab READ newtab WRITE setNewtab) + Q_PROPERTY(QString search READ search WRITE setSearch NOTIFY searchChanged) + Q_PROPERTY(QUrl homepage READ homepage WRITE setHomepage NOTIFY homepageChanged) + Q_PROPERTY(QUrl newtab READ newtab WRITE setNewtab NOTIFY newtabChanged) + + // QWebEngineProfile should-be properties + Q_PROPERTY(QString cachePath READ cachePath WRITE setCachePath NOTIFY cachePathChanged) + Q_PROPERTY(QString persistentStoragePath READ persistentStoragePath WRITE setPersistentStoragePath NOTIFY persistentStoragePathChanged) + + Q_PROPERTY(QString httpAcceptLanguage READ httpAcceptLanguage WRITE setHttpAcceptLanguage NOTIFY httpAcceptLanguageChanged) + Q_PROPERTY(int httpCacheMaximumSize READ httpCacheMaximumSize WRITE setHttpCacheMaximumSize NOTIFY httpCacheMaximumSizeChanged) + Q_PROPERTY(QString httpUserAgent READ httpUserAgent WRITE setHttpUserAgent NOTIFY httpUserAgentChanged) + + Q_PROPERTY(bool spellCheckEnabled READ isSpellCheckEnabled WRITE setSpellCheckEnabled NOTIFY spellCheckEnabledChanged) public: - explicit WebProfile(const QHash<QString, QString> &defaults, QObject *parent = nullptr); + // off-the-record constructor + explicit WebProfile(QObject *parent = nullptr); + // default constructor explicit WebProfile(const QString &name, QObject *parent = nullptr); - ~WebProfile() override; + ~WebProfile() = default; static void setDefaultProfile(WebProfile *profile) { @@ -43,30 +55,27 @@ public: { return m_name; } - QString search() const - { - return m_search; - } - void setSearch(const QString &url) - { - m_search = url; - } - QUrl homepage() const - { - return m_homepage; - } - void setHomepage(const QUrl &url) - { - m_homepage = url; - } - QUrl newtab() const - { - return m_newtab; - } - void setNewtab(const QUrl &url) - { - m_newtab = url; - } + + // search url + QString search() const; + void setSearch(const QString &url); + + // homepage url + QUrl homepage() const; + void setHomepage(const QUrl &url); + + // new tab url + QUrl newtab() const; + void setNewtab(const QUrl &url); + + void setCachePath(const QString &path); + void setPersistentStoragePath(const QString &path); + + void setHttpAcceptLanguage(const QString &httpAcceptLanguage); + void setHttpCacheMaximumSize(int maxSize); + void setHttpUserAgent(const QString &userAgent); + + void setSpellCheckEnabled(bool enable); void addBookmark(const QString &title, const QString &url) { @@ -77,6 +86,19 @@ public: signals: void addBookmarkRequested(const QString &title, const QString &url); + void searchChanged(const QString &url); + void homepageChanged(const QUrl &url); + void newtabChanged(const QUrl &url); + + void cachePathChanged(const QString &path); + void persistentStoragePathChanged(const QString &path); + + void httpAcceptLanguageChanged(const QString &httpAcceptLanguage); + void httpCacheMaximumSizeChanged(int maxSize); + void httpUserAgentChanged(const QString &userAgent); + + void spellCheckEnabledChanged(bool enable); + private: static WebProfile *profile; @@ -86,7 +108,7 @@ private: QUrl m_newtab = QUrl("about:blank"); }; -void loadProfile(WebProfile *profile, const QString &path); +void loadProfile(WebProfile *profile, const QHash<QString, QString> &defaults, const QString &path); //WebProfile *saveProfile(WebProfile *profile, const QString &path); #endif // SMOLBOTE_WEBENGINEPROFILE_H |