From 0fc6ca85c4f8d39a39bb2cbf37d2eb77201fc24c Mon Sep 17 00:00:00 2001 From: David Rosca Date: Mon, 26 Dec 2016 16:03:47 +0100 Subject: [PATCH] Fix deleting cookies Closes #2137 --- bin/themes/linux/main.css | 2 +- src/lib/cookies/cookiejar.cpp | 5 +++++ src/lib/cookies/cookiejar.h | 2 ++ src/lib/cookies/cookiemanager.cpp | 15 ++++++++++----- src/lib/cookies/cookiemanager.h | 2 -- 5 files changed, 18 insertions(+), 8 deletions(-) diff --git a/bin/themes/linux/main.css b/bin/themes/linux/main.css index 2cb92abd0..addd1491d 100644 --- a/bin/themes/linux/main.css +++ b/bin/themes/linux/main.css @@ -117,7 +117,7 @@ IconProvider { margin-left: 5px; border-image: url(images/transp.png); - qproperty-fixedsize: 22px 16px; + qproperty-fixedsize: 21px 16px; } #locationbar-goicon diff --git a/src/lib/cookies/cookiejar.cpp b/src/lib/cookies/cookiejar.cpp index d1eba318c..33fe9a0f0 100644 --- a/src/lib/cookies/cookiejar.cpp +++ b/src/lib/cookies/cookiejar.cpp @@ -57,6 +57,11 @@ void CookieJar::setAllowCookies(bool allow) m_allowCookies = allow; } +void CookieJar::deleteCookie(const QNetworkCookie &cookie) +{ + m_client->deleteCookie(cookie); +} + QVector CookieJar::getAllCookies() const { return m_cookies; diff --git a/src/lib/cookies/cookiejar.h b/src/lib/cookies/cookiejar.h index fd75d9152..4fd4fcf8f 100644 --- a/src/lib/cookies/cookiejar.h +++ b/src/lib/cookies/cookiejar.h @@ -37,6 +37,8 @@ public: void setAllowCookies(bool allow); + void deleteCookie(const QNetworkCookie &cookie); + QVector getAllCookies() const; void deleteAllCookies(); diff --git a/src/lib/cookies/cookiemanager.cpp b/src/lib/cookies/cookiemanager.cpp index 74b73d212..777876eb7 100644 --- a/src/lib/cookies/cookiemanager.cpp +++ b/src/lib/cookies/cookiemanager.cpp @@ -116,16 +116,21 @@ void CookieManager::remove() return; } + QList cookies; + if (current->childCount()) { for (int i = 0; i < current->childCount(); ++i) { QTreeWidgetItem *item = current->child(i); - if (item && m_itemHash.contains(item)) - removeCookie(m_itemHash.value(item)); + if (item && m_itemHash.contains(item)) { + cookies.append(m_itemHash.value(item)); + } } + } else if (m_itemHash.contains(current)) { + cookies.append(m_itemHash.value(current)); } - else { - if (m_itemHash.contains(current)) - removeCookie(m_itemHash.value(current)); + + foreach (const QNetworkCookie &cookie, cookies) { + mApp->cookieJar()->deleteCookie(cookie); } } diff --git a/src/lib/cookies/cookiemanager.h b/src/lib/cookies/cookiemanager.h index 1565ea001..750454a0b 100644 --- a/src/lib/cookies/cookiemanager.h +++ b/src/lib/cookies/cookiemanager.h @@ -40,8 +40,6 @@ public: explicit CookieManager(); ~CookieManager(); - void refreshTable(); - private slots: void currentItemChanged(QTreeWidgetItem* current, QTreeWidgetItem* parent); void remove();