From 8c25c63acf839b09e10d398cfa44d5a45d3ba7c0 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Sun, 15 Jan 2017 15:39:42 +0100 Subject: Download manager --- src/forms/downloaddialog.cpp | 46 ++++++++++++++++++++++++++++++ src/forms/downloaddialog.h | 26 +++++++++++++++++ src/forms/downloaddialog.ui | 67 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 139 insertions(+) create mode 100644 src/forms/downloaddialog.cpp create mode 100644 src/forms/downloaddialog.h create mode 100644 src/forms/downloaddialog.ui (limited to 'src/forms') diff --git a/src/forms/downloaddialog.cpp b/src/forms/downloaddialog.cpp new file mode 100644 index 0000000..4943fcc --- /dev/null +++ b/src/forms/downloaddialog.cpp @@ -0,0 +1,46 @@ +#include "downloaddialog.h" +#include "ui_downloaddialog.h" + +#include +#include +#include +#include +#include +#include "webengine/downloaditemform.h" + +DownloadDialog::DownloadDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::DownloadDialog) +{ + ui->setupUi(this); +} + +DownloadDialog::~DownloadDialog() +{ + delete ui; +} + +void DownloadDialog::addDownload(QWebEngineDownloadItem *item) +{ + qDebug("download item: %s", qUtf8Printable(item->url().toString())); + QString filepath = QFileDialog::getSaveFileName(this, tr("Save")); + + 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); + + DownloadItemForm *form = new DownloadItemForm(item, this); + listItem->setSizeHint(form->size()); + ui->listWidget->setItemWidget(listItem, form); + + item->accept(); + this->show(); +} diff --git a/src/forms/downloaddialog.h b/src/forms/downloaddialog.h new file mode 100644 index 0000000..bec0037 --- /dev/null +++ b/src/forms/downloaddialog.h @@ -0,0 +1,26 @@ +#ifndef DOWNLOADDIALOG_H +#define DOWNLOADDIALOG_H + +#include + +namespace Ui { +class DownloadDialog; +} + +class QWebEngineDownloadItem; +class DownloadDialog : public QDialog +{ + Q_OBJECT + +public: + explicit DownloadDialog(QWidget *parent = 0); + ~DownloadDialog(); + +public slots: + void addDownload(QWebEngineDownloadItem *item); + +private: + Ui::DownloadDialog *ui; +}; + +#endif // DOWNLOADDIALOG_H diff --git a/src/forms/downloaddialog.ui b/src/forms/downloaddialog.ui new file mode 100644 index 0000000..75a6faa --- /dev/null +++ b/src/forms/downloaddialog.ui @@ -0,0 +1,67 @@ + + + DownloadDialog + + + + 0 + 0 + 640 + 480 + + + + Dialog + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Close + + + + + + + + + buttonBox + accepted() + DownloadDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + DownloadDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + -- cgit v1.2.1