/* * This file is part of smolbote. It's copyrighted by the contributors recorded * in the version control history of the file, available from its original * location: https://neueland.iserlohn-fortress.net/gitea/aqua/smolbote * * SPDX-License-Identifier: GPL-3.0 */ #include "downloadswidget.h" #include "ui_downloadsform.h" #include "widgets/downloaditemwidget.h" #include DownloadsWidget::DownloadsWidget(const QString &downloadPath, QWidget *parent) : QDialog(parent) , ui(new Ui::DownloadDialog) , m_downloadPath(downloadPath) { // make sure this dialog does not get deleted on close setAttribute(Qt::WA_DeleteOnClose, false); setWindowTitle(tr("Downloads")); ui->setupUi(this); } DownloadsWidget::~DownloadsWidget() { delete ui; } void DownloadsWidget::addDownload(QWebEngineDownloadItem *item) { const QString filepath = QFileDialog::getSaveFileName(this, tr("Save File"), m_downloadPath + "/" + QFileInfo(item->path()).fileName()); if(filepath.isEmpty()) { // user cancelled the save dialog item->cancel(); return; } item->setPath(filepath); auto *listItem = new QListWidgetItem(ui->listWidget); auto *form = new DownloadItemWidget(item, this); ui->listWidget->setItemWidget(listItem, form); listItem->setSizeHint(QSize(listItem->sizeHint().width(), form->size().height())); item->accept(); ui->listWidget->setCurrentItem(listItem); }