/* * 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 + "/" + item->downloadFileName()); if(filepath.isEmpty()) { // user cancelled the save dialog item->cancel(); return; } QFileInfo info(filepath); // you first have to set the download directory, then file name, otherwise the filename gets defaulted item->setDownloadDirectory(info.absolutePath()); item->setDownloadFileName(info.fileName()); 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); }