aboutsummaryrefslogtreecommitdiff
path: root/src/forms/downloaddialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/forms/downloaddialog.cpp')
-rw-r--r--src/forms/downloaddialog.cpp46
1 files changed, 46 insertions, 0 deletions
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 <QWebEngineDownloadItem>
+#include <QUrl>
+#include <QFileDialog>
+#include <QListWidget>
+#include <QLabel>
+#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();
+}