diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-09-18 15:02:06 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-12-07 15:25:54 +0000 |
commit | fba650c3d774c595b6726c7140ff12353f8c0a4c (patch) | |
tree | dca50fafd64d5dc9f132a80127e3264e48587a48 /src/webengine | |
parent | c6c58e0e03e2ba9b9dd8e149cab30b8eb12c443f (diff) |
Make the MIME-type of downloads available
An application currently have to rely on suggested filename only to
guess the type of a download. This is often insufficient when the suffix
is misleading or missing.
This patch adds the mimetype to the reported metadata and also adds
a mimetype appropriate suffix to suggested filenames.
Task-number: QTBUG-48206
Change-Id: I4c70f076d6eb5ae820fd6b7f568515eeb7c18df5
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Diffstat (limited to 'src/webengine')
-rw-r--r-- | src/webengine/api/qquickwebenginedownloaditem.cpp | 12 | ||||
-rw-r--r-- | src/webengine/api/qquickwebenginedownloaditem_p.h | 3 | ||||
-rw-r--r-- | src/webengine/api/qquickwebenginedownloaditem_p_p.h | 1 | ||||
-rw-r--r-- | src/webengine/api/qquickwebengineprofile.cpp | 1 | ||||
-rw-r--r-- | src/webengine/plugin/plugin.cpp | 2 |
5 files changed, 19 insertions, 0 deletions
diff --git a/src/webengine/api/qquickwebenginedownloaditem.cpp b/src/webengine/api/qquickwebenginedownloaditem.cpp index da47388ee..7290dba2b 100644 --- a/src/webengine/api/qquickwebenginedownloaditem.cpp +++ b/src/webengine/api/qquickwebenginedownloaditem.cpp @@ -217,6 +217,18 @@ qint64 QQuickWebEngineDownloadItem::receivedBytes() const } /*! + \qmlproperty QString WebEngineDownloadItem::mimeType + + Holds the MIME type of the download. +*/ + +QString QQuickWebEngineDownloadItem::mimeType() const +{ + Q_D(const QQuickWebEngineDownloadItem); + return d->mimeType; +} + +/*! \qmlproperty QString WebEngineDownloadItem::path Holds the full target path where data is being downloaded to. diff --git a/src/webengine/api/qquickwebenginedownloaditem_p.h b/src/webengine/api/qquickwebenginedownloaditem_p.h index d0be2f99a..124cea1a5 100644 --- a/src/webengine/api/qquickwebenginedownloaditem_p.h +++ b/src/webengine/api/qquickwebenginedownloaditem_p.h @@ -75,6 +75,7 @@ public: Q_PROPERTY(DownloadState state READ state NOTIFY stateChanged) Q_PROPERTY(qint64 totalBytes READ totalBytes NOTIFY totalBytesChanged) Q_PROPERTY(qint64 receivedBytes READ receivedBytes NOTIFY receivedBytesChanged) + Q_PROPERTY(QString mimeType READ mimeType NOTIFY mimeTypeChanged REVISION 1) Q_PROPERTY(QString path READ path WRITE setPath NOTIFY pathChanged) Q_INVOKABLE void accept(); @@ -84,6 +85,7 @@ public: DownloadState state() const; qint64 totalBytes() const; qint64 receivedBytes() const; + QString mimeType() const; QString path() const; void setPath(QString path); @@ -91,6 +93,7 @@ Q_SIGNALS: void stateChanged(); void receivedBytesChanged(); void totalBytesChanged(); + void mimeTypeChanged(); void pathChanged(); private: diff --git a/src/webengine/api/qquickwebenginedownloaditem_p_p.h b/src/webengine/api/qquickwebenginedownloaditem_p_p.h index 230f322b5..4e36fec43 100644 --- a/src/webengine/api/qquickwebenginedownloaditem_p_p.h +++ b/src/webengine/api/qquickwebenginedownloaditem_p_p.h @@ -71,6 +71,7 @@ public: QQuickWebEngineDownloadItem::DownloadState downloadState; qint64 totalBytes; qint64 receivedBytes; + QString mimeType; QString downloadPath; void update(const QtWebEngineCore::BrowserContextAdapterClient::DownloadItemInfo &info); diff --git a/src/webengine/api/qquickwebengineprofile.cpp b/src/webengine/api/qquickwebengineprofile.cpp index 303f038a8..a8f61dfcd 100644 --- a/src/webengine/api/qquickwebengineprofile.cpp +++ b/src/webengine/api/qquickwebengineprofile.cpp @@ -93,6 +93,7 @@ void QQuickWebEngineProfilePrivate::downloadRequested(DownloadItemInfo &info) itemPrivate->downloadId = info.id; itemPrivate->downloadState = QQuickWebEngineDownloadItem::DownloadRequested; itemPrivate->totalBytes = info.totalBytes; + itemPrivate->mimeType = info.mimeType; itemPrivate->downloadPath = info.path; QQuickWebEngineDownloadItem *download = new QQuickWebEngineDownloadItem(itemPrivate, q); diff --git a/src/webengine/plugin/plugin.cpp b/src/webengine/plugin/plugin.cpp index 16d36b190..fa84c9f5a 100644 --- a/src/webengine/plugin/plugin.cpp +++ b/src/webengine/plugin/plugin.cpp @@ -76,6 +76,8 @@ public: qmlRegisterUncreatableType<QQuickWebEngineCertificateError>(uri, 1, 1, "WebEngineCertificateError", tr("Cannot create separate instance of WebEngineCertificateError")); qmlRegisterUncreatableType<QQuickWebEngineDownloadItem>(uri, 1, 1, "WebEngineDownloadItem", tr("Cannot create a separate instance of WebEngineDownloadItem")); + qmlRegisterUncreatableType<QQuickWebEngineDownloadItem, 1>(uri, 1, 2, "WebEngineDownloadItem", + tr("Cannot create a separate instance of WebEngineDownloadItem")); qmlRegisterUncreatableType<QQuickWebEngineNewViewRequest>(uri, 1, 1, "WebEngineNewViewRequest", tr("Cannot create separate instance of WebEngineNewViewRequest")); qmlRegisterUncreatableType<QQuickWebEngineSettings>(uri, 1, 1, "WebEngineSettings", tr("Cannot create a separate instance of WebEngineSettings")); // FIXME(QTBUG-40043): qmlRegisterUncreatableType<QQuickWebEngineSettings, 1>(uri, 1, 2, "WebEngineSettings", tr("Cannot create a separate instance of WebEngineSettings")); |