/******************************************************************************* ** ** 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 "downloadswidget.h" #include "ui_downloadsform.h" #include #include #include #include #include #include "widgets/downloaditemwidget.h" #include "browser.h" DownloadsWidget::DownloadsWidget(QWidget *parent) : DockingWidget(tr("Downloads"), parent), ui(new Ui::DownloadDialog) { ui->setupUi(this); ui->filePath->setWordWrap(true); connect(ui->listWidget, SIGNAL(currentRowChanged(int)), this, SLOT(showItemDetails(int))); } DownloadsWidget::~DownloadsWidget() { delete ui; } void DownloadsWidget::addDownload(QWebEngineDownloadItem *item) { QString filepath = QFileDialog::getSaveFileName(this, tr("Save"), sSettings->value("downloads.path").toString() + "/" + QFileInfo(item->path()).fileName()); if(filepath.isEmpty()) { // user cancelled the save dialog item->cancel(); return; } item->setPath(filepath); QListWidgetItem *listItem = new QListWidgetItem(); int rowIndex = ui->listWidget->count(); ui->listWidget->insertItem(rowIndex, listItem); DownloadItemWidget *form = new DownloadItemWidget(item, this); listItem->setSizeHint(form->size()); ui->listWidget->setItemWidget(listItem, form); item->accept(); this->show(); } void DownloadsWidget::showItemDetails(int index) { DownloadItemWidget *form = qobject_cast(ui->listWidget->itemWidget(ui->listWidget->item(index))); ui->mimeType_label->setText(form->item()->mimeType()); ui->filePath_label->setText(form->item()->path()); ui->fileSize_label->setText(QString("%1 bytes").arg(form->item()->totalBytes())); }