summaryrefslogtreecommitdiffstats
path: root/src/webengine/api/qquickwebengineprofile.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/webengine/api/qquickwebengineprofile.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/webengine/api/qquickwebengineprofile.cpp')
-rw-r--r--src/webengine/api/qquickwebengineprofile.cpp31
1 files changed, 17 insertions, 14 deletions
diff --git a/src/webengine/api/qquickwebengineprofile.cpp b/src/webengine/api/qquickwebengineprofile.cpp
index 9eecae073..534df6fae 100644
--- a/src/webengine/api/qquickwebengineprofile.cpp
+++ b/src/webengine/api/qquickwebengineprofile.cpp
@@ -90,47 +90,50 @@ void QQuickWebEngineProfilePrivate::cancelDownload(quint32 downloadId)
void QQuickWebEngineProfilePrivate::downloadDestroyed(quint32 downloadId)
{
m_ongoingDownloads.remove(downloadId);
+ cancelDownload(downloadId);
}
-void QQuickWebEngineProfilePrivate::downloadRequested(quint32 downloadId, QString &downloadPath, bool &cancelled)
+void QQuickWebEngineProfilePrivate::downloadRequested(DownloadItemInfo &info)
{
Q_Q(QQuickWebEngineProfile);
- Q_ASSERT(!m_ongoingDownloads.contains(downloadId));
+ Q_ASSERT(!m_ongoingDownloads.contains(info.id));
QQuickWebEngineDownloadItemPrivate *itemPrivate = new QQuickWebEngineDownloadItemPrivate(this);
- itemPrivate->downloadId = downloadId;
+ itemPrivate->downloadId = info.id;
itemPrivate->downloadState = QQuickWebEngineDownloadItem::DownloadInProgress;
- itemPrivate->downloadPath = downloadPath;
+ itemPrivate->downloadPath = info.path;
QQuickWebEngineDownloadItem *download = new QQuickWebEngineDownloadItem(itemPrivate, q);
- m_ongoingDownloads.insert(downloadId, download);
+ m_ongoingDownloads.insert(info.id, download);
QQmlEngine::setObjectOwnership(download, QQmlEngine::JavaScriptOwnership);
Q_EMIT q->downloadStarted(download);
download->d_func()->downloadStarted = true;
- downloadPath = download->path();
- cancelled = download->state() == QQuickWebEngineDownloadItem::DownloadCancelled;
+ info.path = download->path();
+ info.cancelled = download->state() == QQuickWebEngineDownloadItem::DownloadCancelled;
}
-void QQuickWebEngineProfilePrivate::downloadUpdated(quint32 downloadId, int downloadState, int percentComplete)
+void QQuickWebEngineProfilePrivate::downloadUpdated(const DownloadItemInfo &info)
{
+ if (!m_ongoingDownloads.contains(info.id))
+ return;
+
Q_Q(QQuickWebEngineProfile);
- Q_ASSERT(m_ongoingDownloads.contains(downloadId));
- QQuickWebEngineDownloadItem* download = m_ongoingDownloads.value(downloadId).data();
+ QQuickWebEngineDownloadItem* download = m_ongoingDownloads.value(info.id).data();
if (!download) {
- cancelDownload(downloadId);
+ downloadDestroyed(info.id);
return;
}
- download->d_func()->update(toDownloadState(downloadState), percentComplete);
+ download->d_func()->update(toDownloadState(info.state), info.percentComplete);
- if (downloadState != BrowserContextAdapterClient::DownloadInProgress) {
+ if (info.state != BrowserContextAdapterClient::DownloadInProgress) {
Q_EMIT q->downloadFinished(download);
- m_ongoingDownloads.remove(downloadId);
+ m_ongoingDownloads.remove(info.id);
}
}