From 9ea334d08f42f3c362e86499dc3c0ed658bb428c Mon Sep 17 00:00:00 2001 From: keshavbhatt Date: Mon, 5 Apr 2021 02:11:25 +0530 Subject: src init --- src/downloadmanagerwidget.cpp | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/downloadmanagerwidget.cpp (limited to 'src/downloadmanagerwidget.cpp') diff --git a/src/downloadmanagerwidget.cpp b/src/downloadmanagerwidget.cpp new file mode 100644 index 0000000..1a0fa27 --- /dev/null +++ b/src/downloadmanagerwidget.cpp @@ -0,0 +1,44 @@ +#include "downloadmanagerwidget.h" + +#include "downloadwidget.h" + +#include +#include + +DownloadManagerWidget::DownloadManagerWidget(QWidget *parent) + : QWidget(parent) + , m_numDownloads(0) +{ + setupUi(this); +} + +void DownloadManagerWidget::downloadRequested(QWebEngineDownloadItem *download) +{ + //Q_ASSERT(download && download->state() == QWebEngineDownloadItem::DownloadRequested); + + QString path = QFileDialog::getSaveFileName(this, tr("Save as"), download->path(),tr("Any file (*)"),nullptr,QFileDialog::DontUseNativeDialog); + if (path.isEmpty()) + return; + + download->setPath(path); + download->accept(); + add(new DownloadWidget(download)); + + show(); +} + +void DownloadManagerWidget::add(DownloadWidget *downloadWidget) +{ + connect(downloadWidget, &DownloadWidget::removeClicked, this, &DownloadManagerWidget::remove); + m_itemsLayout->insertWidget(0, downloadWidget, 0, Qt::AlignTop); + if (m_numDownloads++ == 0) + m_zeroItemsLabel->hide(); +} + +void DownloadManagerWidget::remove(DownloadWidget *downloadWidget) +{ + m_itemsLayout->removeWidget(downloadWidget); + downloadWidget->deleteLater(); + if (--m_numDownloads == 0) + m_zeroItemsLabel->show(); +} -- cgit v1.2.3