summaryrefslogtreecommitdiffstats
path: root/src/core/download_manager_delegate_qt.cpp
diff options
context:
space:
mode:
authorAndras Becsi <andras.becsi@theqtcompany.com>2015-01-19 13:27:41 +0100
committerAndras Becsi <andras.becsi@theqtcompany.com>2015-01-20 11:31:02 +0100
commit38f58ee4693272ca8e206dac8b484d012b683ebf (patch)
tree929694adb94c960cf64a0fca18934aa17629c3cf /src/core/download_manager_delegate_qt.cpp
parent43905f3a41d2ce419fe6c1558fda6e90011802b6 (diff)
Add DownloadItemInfo to BrowserContextAdapterClient
This extends the carried information from Chromium's content::DownloadItem with url, totalBytes and receivedBytes in preparation of adding a Widget API for downloads. DownloadItemInfo struct is now constructed to carry information about individual downloads from the content layer to the Qt API layer. Change-Id: I3ee7aea02b74994e612e1b3709195776d5e7570b Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Diffstat (limited to 'src/core/download_manager_delegate_qt.cpp')
-rw-r--r--src/core/download_manager_delegate_qt.cpp43
1 files changed, 31 insertions, 12 deletions
diff --git a/src/core/download_manager_delegate_qt.cpp b/src/core/download_manager_delegate_qt.cpp
index 3f6ec7bcc..c46bfb080 100644
--- a/src/core/download_manager_delegate_qt.cpp
+++ b/src/core/download_manager_delegate_qt.cpp
@@ -54,8 +54,8 @@
#include "qtwebenginecoreglobal.h"
DownloadManagerDelegateQt::DownloadManagerDelegateQt(BrowserContextAdapter *contextAdapter)
- : m_currentId(0)
- , m_contextAdapter(contextAdapter)
+ : m_contextAdapter(contextAdapter)
+ , m_currentId(0)
{
Q_ASSERT(m_contextAdapter);
}
@@ -120,18 +120,28 @@ bool DownloadManagerDelegateQt::DetermineDownloadTarget(content::DownloadItem* i
}
item->AddObserver(this);
- quint32 downloadId = item->GetId();
if (m_contextAdapter->client()) {
bool cancelled = false;
- m_contextAdapter->client()->downloadRequested(downloadId, suggestedFilePath, cancelled);
- suggestedFile.setFile(suggestedFilePath);
-
- if (!cancelled && !suggestedFile.absoluteDir().mkpath(suggestedFile.absolutePath())) {
+ BrowserContextAdapterClient::DownloadItemInfo info = {
+ item->GetId(),
+ toQt(item->GetURL()),
+ item->GetState(),
+ item->PercentComplete(),
+ item->GetTotalBytes(),
+ item->GetReceivedBytes(),
+ suggestedFilePath,
+ cancelled
+ };
+ m_contextAdapter->client()->downloadRequested(info);
+
+ suggestedFile.setFile(info.path);
+
+ if (!info.cancelled && !suggestedFile.absoluteDir().mkpath(suggestedFile.absolutePath())) {
qWarning("Creating download path failed, download cancelled: %s", suggestedFile.absolutePath().toUtf8().data());
cancelled = true;
}
- if (cancelled) {
+ if (info.cancelled) {
cancelDownload(callback);
return true;
}
@@ -158,10 +168,19 @@ void DownloadManagerDelegateQt::GetSaveDir(content::BrowserContext* browser_cont
void DownloadManagerDelegateQt::OnDownloadUpdated(content::DownloadItem *download)
{
- const quint32 downloadId = download->GetId();
-
- if (m_contextAdapter->client())
- m_contextAdapter->client()->downloadUpdated(downloadId, download->GetState(), download->PercentComplete());
+ if (m_contextAdapter->client()) {
+ BrowserContextAdapterClient::DownloadItemInfo info = {
+ download->GetId(),
+ toQt(download->GetURL()),
+ download->GetState(),
+ download->PercentComplete(),
+ download->GetTotalBytes(),
+ download->GetReceivedBytes(),
+ QString(),
+ false
+ };
+ m_contextAdapter->client()->downloadUpdated(info);
+ }
}
void DownloadManagerDelegateQt::OnDownloadDestroyed(content::DownloadItem *download)