From d340be4b27b9067c0057b20f6bd0228f03c994c6 Mon Sep 17 00:00:00 2001 From: Aqua-sama <aqua@iserlohn-fortress.net> Date: Sun, 17 Jun 2018 19:50:56 +0200 Subject: WebProfile: cache a list of cookies ProfileView: delete selected items rather than current item Browser: store profiles in QMap instead of QHash --- lib/web/webprofile.cpp | 14 ++++++++++++++ lib/web/webprofile.h | 9 +++++++++ 2 files changed, 23 insertions(+) (limited to 'lib/web') diff --git a/lib/web/webprofile.cpp b/lib/web/webprofile.cpp index 37338b9..1124261 100644 --- a/lib/web/webprofile.cpp +++ b/lib/web/webprofile.cpp @@ -79,6 +79,13 @@ WebProfile::WebProfile(const QString &name, const QString &configPath, QObject * #ifdef QT_DEBUG qDebug("Creating otr profile %s", qUtf8Printable(m_name)); #endif + + 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, const QString &configPath, QObject *parent) @@ -90,6 +97,13 @@ WebProfile::WebProfile(const QString &storageName, const QString &name, const QS #ifdef QT_DEBUG qDebug("Creating profile %s", qUtf8Printable(m_name)); #endif + + 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); + }); } QString WebProfile::search() const diff --git a/lib/web/webprofile.h b/lib/web/webprofile.h index 9e9fd3e..279e6bf 100644 --- a/lib/web/webprofile.h +++ b/lib/web/webprofile.h @@ -13,6 +13,8 @@ #include <QUrl> #include <QString> #include <QWebEngineProfile> +#include <QVector> +#include <QNetworkCookie> class WebProfile : public QWebEngineProfile { @@ -60,6 +62,11 @@ public: return m_configPath; } + const QVector<QNetworkCookie> cookies() const + { + return qAsConst(m_cookies); + } + // search url QString search() const; void setSearch(const QString &url); @@ -103,6 +110,8 @@ private: QString m_search = QString("about:blank"); QUrl m_homepage = QUrl("about:blank"); QUrl m_newtab = QUrl("about:blank"); + + QVector<QNetworkCookie> m_cookies; }; WebProfile* loadProfile(const QString &name, const QHash<QString, QString> &defaults, const QString &path = QString(), QObject *parent = nullptr); -- cgit v1.2.1