From e81cbb167a5fd6cb5e4fb5439aa15bfd1737d932 Mon Sep 17 00:00:00 2001 From: Zsombor Gegesy Date: Tue, 20 Jan 2015 11:00:16 +0100 Subject: [PATCH] Add 'Remove and block domain' button to the cookie manager --- src/lib/cookies/cookiemanager.cpp | 18 ++++++++++++++++++ src/lib/cookies/cookiemanager.h | 2 ++ src/lib/cookies/cookiemanager.ui | 7 +++++++ 3 files changed, 27 insertions(+) diff --git a/src/lib/cookies/cookiemanager.cpp b/src/lib/cookies/cookiemanager.cpp index 146e24b3d..b384cd189 100644 --- a/src/lib/cookies/cookiemanager.cpp +++ b/src/lib/cookies/cookiemanager.cpp @@ -56,6 +56,7 @@ CookieManager::CookieManager(QWidget* parent) connect(ui->cookieTree, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)), this, SLOT(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*))); connect(ui->removeAll, SIGNAL(clicked()), this, SLOT(removeAll())); connect(ui->removeOne, SIGNAL(clicked()), this, SLOT(removeCookie())); + connect(ui->blockDomain, SIGNAL(clicked()), this, SLOT(blockCurrentHostAndRemoveCookie())); connect(ui->close, SIGNAL(clicked(QAbstractButton*)), this, SLOT(close())); connect(ui->close2, SIGNAL(clicked(QAbstractButton*)), this, SLOT(close())); connect(ui->close3, SIGNAL(clicked(QAbstractButton*)), this, SLOT(close())); @@ -142,6 +143,19 @@ void CookieManager::removeCookie() mApp->cookieJar()->setAllCookies(allCookies); } +void CookieManager::blockCurrentHostAndRemoveCookie() +{ + QTreeWidgetItem* current = ui->cookieTree->currentItem(); + if (!current) { + return; + } + const QString domain = (current->text(1).isEmpty()) ? current->data(0, Qt::UserRole + 10).toString() : + qvariant_cast(current->data(0, Qt::UserRole + 10)).domain(); + + removeCookie(); + addBlacklist(domain); +} + void CookieManager::currentItemChanged(QTreeWidgetItem* current, QTreeWidgetItem* parent) { Q_UNUSED(parent); @@ -277,7 +291,11 @@ void CookieManager::removeWhitelist() void CookieManager::addBlacklist() { const QString server = QInputDialog::getText(this, tr("Add to blacklist"), tr("Server:")); + addBlacklist(server); +} +void CookieManager::addBlacklist(const QString &server) +{ if (server.isEmpty()) { return; } diff --git a/src/lib/cookies/cookiemanager.h b/src/lib/cookies/cookiemanager.h index b641f8865..25b172c32 100644 --- a/src/lib/cookies/cookiemanager.h +++ b/src/lib/cookies/cookiemanager.h @@ -45,6 +45,7 @@ private slots: void currentItemChanged(QTreeWidgetItem* current, QTreeWidgetItem* parent); void removeCookie(); void removeAll(); + void blockCurrentHostAndRemoveCookie(); void slotRefreshTable(); void slotRefreshFilters(); @@ -62,6 +63,7 @@ private slots: private: void closeEvent(QCloseEvent* e); void keyPressEvent(QKeyEvent* e); + void addBlacklist(const QString &server); Ui::CookieManager* ui; diff --git a/src/lib/cookies/cookiemanager.ui b/src/lib/cookies/cookiemanager.ui index e6a669787..4b7c16573 100644 --- a/src/lib/cookies/cookiemanager.ui +++ b/src/lib/cookies/cookiemanager.ui @@ -225,6 +225,13 @@ + + + + Remove and block domain + + +