From d830bfc8ce7c6763d074beafdde7cab1835d31f9 Mon Sep 17 00:00:00 2001 From: Mubashshir Date: Tue, 7 Mar 2023 21:11:06 +0600 Subject: Import Upstream version 4.12.0 --- src/downloadmanagerwidget.cpp | 58 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 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..2d75287 --- /dev/null +++ b/src/downloadmanagerwidget.cpp @@ -0,0 +1,58 @@ +#include "downloadmanagerwidget.h" + +#include "downloadwidget.h" + +#include +#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 = + settings + .value("defaultDownloadLocation", + QStandardPaths::writableLocation( + QStandardPaths::DownloadLocation) + + QDir::separator() + QApplication::applicationName()) + .toString(); + QDir d; + d.mkpath(path); + + download->setDownloadFileName(path + QDir::separator() + + download->downloadFileName()); + 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(); +} + +void DownloadManagerWidget::on_open_download_dir_clicked() { + utils::desktopOpenUrl(settings + .value("defaultDownloadLocation", + QStandardPaths::writableLocation( + QStandardPaths::DownloadLocation) + + QDir::separator() + + QApplication::applicationName()) + .toString()); +} -- cgit v1.2.3