aboutsummaryrefslogtreecommitdiff
path: root/lib/downloads/widgets/downloaditemwidget.cpp
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2018-03-15 17:30:45 +0100
committerAqua-sama <aqua@iserlohn-fortress.net>2018-03-15 17:30:45 +0100
commit1db5ea9fe9ca588852397a7d05d49267b0258e29 (patch)
treea3909d64319177e773c8f6a0057446669d1f145e /lib/downloads/widgets/downloaditemwidget.cpp
parentMoved Configuration class into library (diff)
downloadsmolbote-1db5ea9fe9ca588852397a7d05d49267b0258e29.tar.xz
Add pause/resume/cancel buttons to download
Diffstat (limited to 'lib/downloads/widgets/downloaditemwidget.cpp')
-rw-r--r--lib/downloads/widgets/downloaditemwidget.cpp29
1 files changed, 28 insertions, 1 deletions
diff --git a/lib/downloads/widgets/downloaditemwidget.cpp b/lib/downloads/widgets/downloaditemwidget.cpp
index 0de17c2..26a9a05 100644
--- a/lib/downloads/widgets/downloaditemwidget.cpp
+++ b/lib/downloads/widgets/downloaditemwidget.cpp
@@ -8,7 +8,6 @@
#include "downloaditemwidget.h"
#include "ui_downloaditemform.h"
-
#include <QUrl>
DownloadItemWidget::DownloadItemWidget(QWebEngineDownloadItem *item, QWidget *parent)
@@ -18,6 +17,15 @@ DownloadItemWidget::DownloadItemWidget(QWebEngineDownloadItem *item, QWidget *pa
m_item = item;
ui->setupUi(this);
+ {
+ // pause/resume icons
+ QIcon pauseIcon;
+ pauseIcon.addPixmap(style()->standardPixmap(QStyle::SP_MediaPlay), QIcon::Normal, QIcon::Off);
+ pauseIcon.addPixmap(style()->standardPixmap(QStyle::SP_MediaPause), QIcon::Normal, QIcon::On);
+ ui->pause_toolButton->setIcon(pauseIcon);
+
+ ui->abort_toolButton->setIcon(style()->standardIcon(QStyle::SP_MediaStop));
+ }
ui->url_label->setContent(item->url().toString());
ui->detailsWidget->hide();
@@ -27,6 +35,15 @@ DownloadItemWidget::DownloadItemWidget(QWebEngineDownloadItem *item, QWidget *pa
connect(item, &QWebEngineDownloadItem::stateChanged, this, &DownloadItemWidget::updateState);
connect(item, &QWebEngineDownloadItem::downloadProgress, this, &DownloadItemWidget::updateProgress);
connect(item, &QWebEngineDownloadItem::finished, this, &DownloadItemWidget::updateFinished);
+
+ connect(ui->abort_toolButton, &QToolButton::clicked, item, &QWebEngineDownloadItem::cancel);
+ connect(ui->pause_toolButton, &QToolButton::clicked, item, [item](bool clicked) {
+ if(clicked) {
+ item->pause();
+ } else {
+ item->resume();
+ }
+ });
}
DownloadItemWidget::~DownloadItemWidget()
@@ -71,18 +88,28 @@ void DownloadItemWidget::updateState(QWebEngineDownloadItem::DownloadState state
switch(state) {
case QWebEngineDownloadItem::DownloadRequested:
ui->status_label->setText(tr("Requested"));
+ ui->pause_toolButton->setEnabled(true);
+ ui->abort_toolButton->setEnabled(true);
break;
case QWebEngineDownloadItem::DownloadInProgress:
ui->status_label->setText(tr("In progress"));
+ ui->pause_toolButton->setEnabled(true);
+ ui->abort_toolButton->setEnabled(true);
break;
case QWebEngineDownloadItem::DownloadCompleted:
ui->status_label->setText(tr("Completed"));
+ ui->pause_toolButton->setEnabled(false);
+ ui->abort_toolButton->setEnabled(false);
break;
case QWebEngineDownloadItem::DownloadCancelled:
ui->status_label->setText(tr("Cancelled"));
+ ui->pause_toolButton->setEnabled(false);
+ ui->abort_toolButton->setEnabled(false);
break;
case QWebEngineDownloadItem::DownloadInterrupted:
ui->status_label->setText(tr("Interrupted"));
+ ui->pause_toolButton->setEnabled(false);
+ ui->abort_toolButton->setEnabled(false);
break;
default:
break;