/** 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 "downloaddialog.h" #include "ui_downloaddialog.h" #include #include #include #include #include #include "webengine/downloaditemform.h" #include "settings.h" DownloadDialog::DownloadDialog(QWidget *parent) : QDialog(parent), ui(new Ui::DownloadDialog) { ui->setupUi(this); ui->filePath->setWordWrap(true); connect(ui->listWidget, SIGNAL(currentRowChanged(int)), this, SLOT(showItemDetails(int))); } DownloadDialog::~DownloadDialog() { delete ui; } void DownloadDialog::addDownload(QWebEngineDownloadItem *item) { Settings settings; QString filepath = QFileDialog::getSaveFileName(this, tr("Save"), settings.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); DownloadItemForm *form = new DownloadItemForm(item, this); listItem->setSizeHint(form->size()); ui->listWidget->setItemWidget(listItem, form); item->accept(); this->show(); } void DownloadDialog::showItemDetails(int index) { DownloadItemForm *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())); }