aboutsummaryrefslogtreecommitdiff
path: root/src/webengine/webprofile.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/webengine/webprofile.cpp')
-rw-r--r--src/webengine/webprofile.cpp147
1 files changed, 147 insertions, 0 deletions
diff --git a/src/webengine/webprofile.cpp b/src/webengine/webprofile.cpp
new file mode 100644
index 0000000..843b78e
--- /dev/null
+++ b/src/webengine/webprofile.cpp
@@ -0,0 +1,147 @@
+/*
+ * This file is part of smolbote. It's copyrighted by the contributors recorded
+ * in the version control history of the file, available from its original
+ * location: https://neueland.iserlohn-fortress.net/gitea/aqua/smolbote
+ *
+ * SPDX-License-Identifier: GPL-3.0
+ */
+
+#include "webprofile.h"
+#include <QFileInfo>
+#include <QSettings>
+#include <QWebEngineCookieStore>
+#include <QWebEngineSettings>
+
+WebProfile *WebProfile::profile = nullptr;
+
+WebProfile::WebProfile(const QString &name, QObject *parent)
+ : Profile(parent)
+{
+ m_name = name;
+
+ connect(this->cookieStore(), &QWebEngineCookieStore::cookieAdded, this, [this](const QNetworkCookie &cookie) {
+ m_cookies.append(cookie);
+ });
+ connect(this->cookieStore(), &QWebEngineCookieStore::cookieRemoved, this, [this](const QNetworkCookie &cookie) {
+ m_cookies.removeAll(cookie);
+ });
+}
+
+WebProfile::WebProfile(const QString &storageName, const QString &name, QObject *parent)
+ : Profile(storageName, parent)
+{
+ m_name = name;
+
+ connect(this->cookieStore(), &QWebEngineCookieStore::cookieAdded, this, [this](const QNetworkCookie &cookie) {
+ m_cookies.append(cookie);
+ });
+ connect(this->cookieStore(), &QWebEngineCookieStore::cookieRemoved, this, [this](const QNetworkCookie &cookie) {
+ m_cookies.removeAll(cookie);
+ });
+}
+
+const QString WebProfile::name() const
+{
+ return m_name;
+}
+
+void WebProfile::setName(const QString &name)
+{
+ m_name = name;
+ emit nameChanged(name);
+}
+
+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 propertyChanged("cachePath", path);
+}
+
+void WebProfile::setPersistentStoragePath(const QString &path)
+{
+ QWebEngineProfile::setPersistentStoragePath(path);
+ emit propertyChanged("persistentStoragePath", path);
+}
+
+void WebProfile::setPersistentCookiesPolicy(int policy)
+{
+ QWebEngineProfile::setPersistentCookiesPolicy(static_cast<QWebEngineProfile::PersistentCookiesPolicy>(policy));
+ emit propertyChanged("persistentCookiesPolicy", policy);
+}
+
+void WebProfile::setHttpAcceptLanguage(const QString &httpAcceptLanguage)
+{
+ QWebEngineProfile::setHttpAcceptLanguage(httpAcceptLanguage);
+ emit propertyChanged("httpAcceptLanguage", httpAcceptLanguage);
+}
+
+void WebProfile::setHttpCacheMaximumSize(int maxSize)
+{
+ QWebEngineProfile::setHttpCacheMaximumSize(maxSize);
+ emit propertyChanged("httpCacheMaximumSize", maxSize);
+}
+
+void WebProfile::setHttpCacheType(int type)
+{
+ QWebEngineProfile::setHttpCacheType(static_cast<QWebEngineProfile::HttpCacheType>(type));
+ emit propertyChanged("httpCacheType", type);
+}
+
+void WebProfile::setHttpUserAgent(const QString &userAgent)
+{
+ QWebEngineProfile::setHttpUserAgent(userAgent);
+ emit propertyChanged("httpUserAgent", userAgent);
+}
+
+void WebProfile::setHttpHeader(const QString &name, const QString &value)
+{
+ m_headers[name.toLatin1()] = value.toLatin1();
+ emit headerChanged(name, value);
+}
+
+void WebProfile::removeHttpHeader(const QString &name)
+{
+ if(m_headers.contains(name.toLatin1())) {
+ m_headers.remove(name.toLatin1());
+ emit headerRemoved(name);
+ }
+}
+
+void WebProfile::setSpellCheckEnabled(bool enable)
+{
+ QWebEngineProfile::setSpellCheckEnabled(enable);
+ emit propertyChanged("spellCheckEnabed", enable);
+}