diff --git a/src/lib/cookies/cookiemanager.cpp b/src/lib/cookies/cookiemanager.cpp --- a/src/lib/cookies/cookiemanager.cpp +++ b/src/lib/cookies/cookiemanager.cpp @@ -119,22 +119,22 @@ void CookieManager::remove() { - QTreeWidgetItem* current = ui->cookieTree->currentItem(); - if (!current) { - return; - } - QList cookies; + auto selection = ui->cookieTree->selectedItems(); - if (current->childCount()) { - for (int i = 0; i < current->childCount(); ++i) { - QTreeWidgetItem *item = current->child(i); - if (item && m_itemHash.contains(item)) { - cookies.append(m_itemHash.value(item)); + for (int i = 0; i < selection.count(); i++) { + QTreeWidgetItem* current = selection[i]; + + if (current->childCount()) { + for (int i = 0; i < current->childCount(); ++i) { + QTreeWidgetItem *item = current->child(i); + 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)) { - cookies.append(m_itemHash.value(current)); } foreach (const QNetworkCookie &cookie, cookies) { @@ -157,6 +157,16 @@ ui->secure->setText(tr("")); ui->expiration->setText(tr("")); + ui->removeOne->setText(tr("Remove cookies")); + return; + } else if (ui->cookieTree->selectedItems().count() > 1) { + ui->name->setText(tr("")); + ui->value->setText(tr("")); + ui->server->setText(tr("")); + ui->path->setText(tr("")); + ui->secure->setText(tr("")); + ui->expiration->setText(tr("")); + ui->removeOne->setText(tr("Remove cookies")); return; } diff --git a/src/lib/cookies/cookiemanager.ui b/src/lib/cookies/cookiemanager.ui --- a/src/lib/cookies/cookiemanager.ui +++ b/src/lib/cookies/cookiemanager.ui @@ -55,6 +55,9 @@ + + QAbstractItemView::ExtendedSelection + true