diff options
Diffstat (limited to 'src/lib/downloads/downloadswidget.cpp')
-rw-r--r-- | src/lib/downloads/downloadswidget.cpp | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/src/lib/downloads/downloadswidget.cpp b/src/lib/downloads/downloadswidget.cpp deleted file mode 100644 index f9a8f34..0000000 --- a/src/lib/downloads/downloadswidget.cpp +++ /dev/null @@ -1,91 +0,0 @@ -/* - * 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: git://neueland.iserlohn-fortress.net/smolbote.git - * - * SPDX-License-Identifier: GPL-3.0 - */ - -#include "downloadswidget.h" -#include "ui_downloadsform.h" - -#include <QWebEngineDownloadItem> -#include <QUrl> -#include <QFileDialog> -#include <QListWidget> -#include <QLabel> -#include "widgets/downloaditemwidget.h" - -DownloadsWidget::DownloadsWidget(const QString &downloadPath, QWidget *parent) : - QDialog(parent), - ui(new Ui::DownloadDialog) -{ - // make sure this dialog does not get deleted on close - setAttribute(Qt::WA_DeleteOnClose, false); - setWindowTitle(tr("Downloads")); - - ui->setupUi(this); - - m_downloadPath = downloadPath; - - connect(ui->listWidget, &QListWidget::currentItemChanged, this, [this](QListWidgetItem *current, QListWidgetItem *previous) { - DownloadItemWidget *currentWidget = qobject_cast<DownloadItemWidget*>(ui->listWidget->itemWidget(current)); - currentWidget->showDetails(); - currentWidget->setFixedWidth(ui->listWidget->viewport()->width()); - currentWidget->adjustSize(); - current->setSizeHint(currentWidget->size()); - - DownloadItemWidget *previousWidget = qobject_cast<DownloadItemWidget*>(ui->listWidget->itemWidget(previous)); - if(previousWidget != nullptr) { - previousWidget->hideDetails(); - previousWidget->setFixedWidth(ui->listWidget->viewport()->width()); - previousWidget->adjustSize(); - previous->setSizeHint(previousWidget->size()); - } - }); -} - -DownloadsWidget::~DownloadsWidget() -{ - delete ui; -} - -void DownloadsWidget::addDownload(QWebEngineDownloadItem *item) -{ - this->show(); - - QString filepath = QFileDialog::getSaveFileName(this, - tr("Save"), - m_downloadPath + "/" + 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); - ui->listWidget->setItemWidget(listItem, form); - - item->accept(); - - ui->listWidget->setCurrentRow(rowIndex); -} - -void DownloadsWidget::resizeEvent(QResizeEvent *event) -{ - QWidget::resizeEvent(event); - - for(int i = 0; i < ui->listWidget->count(); ++i) { - QWidget *w = ui->listWidget->itemWidget(ui->listWidget->item(i)); - w->setFixedWidth(ui->listWidget->viewport()->width()); - w->adjustSize(); - ui->listWidget->item(i)->setSizeHint(w->size()); - } -} |