diff options
author | Andras Becsi <andras.becsi@theqtcompany.com> | 2015-01-19 13:27:41 +0100 |
---|---|---|
committer | Andras Becsi <andras.becsi@theqtcompany.com> | 2015-01-20 11:31:02 +0100 |
commit | 38f58ee4693272ca8e206dac8b484d012b683ebf (patch) | |
tree | 929694adb94c960cf64a0fca18934aa17629c3cf /src/core/download_manager_delegate_qt.cpp | |
parent | 43905f3a41d2ce419fe6c1558fda6e90011802b6 (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.cpp | 43 |
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) |