From 549741018ef5a18d9ad7a51092438d764149b758 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Fri, 31 Mar 2017 22:02:59 +0200 Subject: Added cookie widget --- src/forms/cookiesform.cpp | 75 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 src/forms/cookiesform.cpp (limited to 'src/forms/cookiesform.cpp') diff --git a/src/forms/cookiesform.cpp b/src/forms/cookiesform.cpp new file mode 100644 index 0000000..44a9e44 --- /dev/null +++ b/src/forms/cookiesform.cpp @@ -0,0 +1,75 @@ +/** LICENSE ******************************************************************** + ** + ** smolbote: yet another qute browser + ** Copyright (C) 2017 Xian Nox + ** + ** This program is free software: you can redistribute it and/or modify + ** it under the terms of the GNU General Public License as published by + ** the Free Software Foundation, either version 3 of the License, or + ** (at your option) any later version. + ** + ** This program is distributed in the hope that it will be useful, + ** but WITHOUT ANY WARRANTY; without even the implied warranty of + ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ** GNU General Public License for more details. + ** + ** You should have received a copy of the GNU General Public License + ** along with this program. If not, see . + ** + ******************************************************************************/ + +#include "cookiesform.h" +#include "ui_cookiesform.h" + +#include +#include + +CookiesWidget::CookiesWidget(QWebEngineCookieStore *store, QWidget *parent) : + QWidget(parent), + ui(new Ui::CookiesForm) +{ + setAttribute(Qt::WA_DeleteOnClose, false); + ui->setupUi(this); + + connect(store, SIGNAL(cookieAdded(QNetworkCookie)), this, SLOT(addCookie(QNetworkCookie))); + connect(ui->treeWidget, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)), this, SLOT(showDetails(QTreeWidgetItem*,QTreeWidgetItem*))); + connect(ui->treeWidget, SIGNAL(itemClicked(QTreeWidgetItem*,int)), this, SLOT(showDetails(QTreeWidgetItem*,int))); +} + +CookiesWidget::~CookiesWidget() +{ + delete ui; +} + +void CookiesWidget::addCookie(const QNetworkCookie &cookie) +{ + for(int i = 0; i < ui->treeWidget->topLevelItemCount(); i++) { + QTreeWidgetItem *parentItem = ui->treeWidget->topLevelItem(i); + if(parentItem->text(0) == cookie.domain()) { + QTreeWidgetItem *item = new QTreeWidgetItem(parentItem); + item->setText(0, cookie.name()); + item->setText(1, cookie.expirationDate().toString(Qt::RFC2822Date)); + item->setText(2, cookie.isHttpOnly() ? tr("yes") : tr("no")); + item->setText(3, cookie.isSecure() ? tr("yes") : tr("no")); + + item->setData(0, Qt::UserRole, cookie.value()); + return; + } + } + + // no topLevelItem matches + QTreeWidgetItem *parentItem = new QTreeWidgetItem(ui->treeWidget); + parentItem->setText(0, cookie.domain()); + addCookie(cookie); + +} + +void CookiesWidget::showDetails(QTreeWidgetItem *current, QTreeWidgetItem *previous) +{ + Q_UNUSED(previous) + if(!current) { + return; + } + + ui->value->setPlainText(current->data(0, Qt::UserRole).toString()); +} -- cgit v1.2.1