aboutsummaryrefslogtreecommitdiff
path: root/src/webengine
diff options
context:
space:
mode:
Diffstat (limited to 'src/webengine')
-rw-r--r--src/webengine/webprofile.cpp112
-rw-r--r--src/webengine/webprofile.h82
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