summaryrefslogtreecommitdiffstats
path: root/src/webenginewidgets/api/qwebenginedownloaditem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/webenginewidgets/api/qwebenginedownloaditem.cpp')
-rw-r--r--src/webenginewidgets/api/qwebenginedownloaditem.cpp786
1 files changed, 0 insertions, 786 deletions
diff --git a/src/webenginewidgets/api/qwebenginedownloaditem.cpp b/src/webenginewidgets/api/qwebenginedownloaditem.cpp
deleted file mode 100644
index 7366dbf59..000000000
--- a/src/webenginewidgets/api/qwebenginedownloaditem.cpp
+++ /dev/null
@@ -1,786 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtWebEngine module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qwebenginedownloaditem.h"
-#include "qwebenginedownloaditem_p.h"
-
-#include "profile_adapter.h"
-#include "qwebengineprofile_p.h"
-
-#include <QDir>
-#include "QFileInfo"
-
-QT_BEGIN_NAMESPACE
-
-using QtWebEngineCore::ProfileAdapterClient;
-
-ASSERT_ENUMS_MATCH(ProfileAdapterClient::NoReason, QWebEngineDownloadItem::NoReason)
-ASSERT_ENUMS_MATCH(ProfileAdapterClient::FileFailed, QWebEngineDownloadItem::FileFailed)
-ASSERT_ENUMS_MATCH(ProfileAdapterClient::FileAccessDenied, QWebEngineDownloadItem::FileAccessDenied)
-ASSERT_ENUMS_MATCH(ProfileAdapterClient::FileNoSpace, QWebEngineDownloadItem::FileNoSpace)
-ASSERT_ENUMS_MATCH(ProfileAdapterClient::FileNameTooLong, QWebEngineDownloadItem::FileNameTooLong)
-ASSERT_ENUMS_MATCH(ProfileAdapterClient::FileTooLarge, QWebEngineDownloadItem::FileTooLarge)
-ASSERT_ENUMS_MATCH(ProfileAdapterClient::FileVirusInfected, QWebEngineDownloadItem::FileVirusInfected)
-ASSERT_ENUMS_MATCH(ProfileAdapterClient::FileTransientError, QWebEngineDownloadItem::FileTransientError)
-ASSERT_ENUMS_MATCH(ProfileAdapterClient::FileBlocked, QWebEngineDownloadItem::FileBlocked)
-ASSERT_ENUMS_MATCH(ProfileAdapterClient::FileSecurityCheckFailed, QWebEngineDownloadItem::FileSecurityCheckFailed)
-ASSERT_ENUMS_MATCH(ProfileAdapterClient::FileTooShort, QWebEngineDownloadItem::FileTooShort)
-ASSERT_ENUMS_MATCH(ProfileAdapterClient::FileHashMismatch, QWebEngineDownloadItem::FileHashMismatch)
-ASSERT_ENUMS_MATCH(ProfileAdapterClient::NetworkFailed, QWebEngineDownloadItem::NetworkFailed)
-ASSERT_ENUMS_MATCH(ProfileAdapterClient::NetworkTimeout, QWebEngineDownloadItem::NetworkTimeout)
-ASSERT_ENUMS_MATCH(ProfileAdapterClient::NetworkDisconnected, QWebEngineDownloadItem::NetworkDisconnected)
-ASSERT_ENUMS_MATCH(ProfileAdapterClient::NetworkServerDown, QWebEngineDownloadItem::NetworkServerDown)
-ASSERT_ENUMS_MATCH(ProfileAdapterClient::NetworkInvalidRequest, QWebEngineDownloadItem::NetworkInvalidRequest)
-ASSERT_ENUMS_MATCH(ProfileAdapterClient::ServerFailed, QWebEngineDownloadItem::ServerFailed)
-//ASSERT_ENUMS_MATCH(ProfileAdapterClient::ServerNoRange, QWebEngineDownloadItem::ServerNoRange)
-ASSERT_ENUMS_MATCH(ProfileAdapterClient::ServerBadContent, QWebEngineDownloadItem::ServerBadContent)
-ASSERT_ENUMS_MATCH(ProfileAdapterClient::ServerUnauthorized, QWebEngineDownloadItem::ServerUnauthorized)
-ASSERT_ENUMS_MATCH(ProfileAdapterClient::ServerCertProblem, QWebEngineDownloadItem::ServerCertProblem)
-ASSERT_ENUMS_MATCH(ProfileAdapterClient::ServerForbidden, QWebEngineDownloadItem::ServerForbidden)
-ASSERT_ENUMS_MATCH(ProfileAdapterClient::ServerUnreachable, QWebEngineDownloadItem::ServerUnreachable)
-ASSERT_ENUMS_MATCH(ProfileAdapterClient::UserCanceled, QWebEngineDownloadItem::UserCanceled)
-//ASSERT_ENUMS_MATCH(ProfileAdapterClient::UserShutdown, QWebEngineDownloadItem::UserShutdown)
-//ASSERT_ENUMS_MATCH(ProfileAdapterClient::Crash, QWebEngineDownloadItem::Crash)
-
-static inline QWebEngineDownloadItem::DownloadState toDownloadState(int state)
-{
- switch (state) {
- case ProfileAdapterClient::DownloadInProgress:
- return QWebEngineDownloadItem::DownloadInProgress;
- case ProfileAdapterClient::DownloadCompleted:
- return QWebEngineDownloadItem::DownloadCompleted;
- case ProfileAdapterClient::DownloadCancelled:
- return QWebEngineDownloadItem::DownloadCancelled;
- case ProfileAdapterClient::DownloadInterrupted:
- return QWebEngineDownloadItem::DownloadInterrupted;
- default:
- Q_UNREACHABLE();
- return QWebEngineDownloadItem::DownloadCancelled;
- }
-}
-
-static inline QWebEngineDownloadItem::DownloadInterruptReason toDownloadInterruptReason(int reason)
-{
- return static_cast<QWebEngineDownloadItem::DownloadInterruptReason>(reason);
-}
-
-/*!
- \class QWebEngineDownloadItem
- \brief The QWebEngineDownloadItem class provides information about a download.
-
- \since 5.5
-
- \inmodule QtWebEngineWidgets
-
- QWebEngineDownloadItem models a download throughout its life cycle, starting
- with a pending download request and finishing with a completed download. It
- can be used, for example, to get information about new downloads, to monitor
- progress, and to pause, resume, and cancel downloads.
-
- Downloads are usually triggered by user interaction on a web page. It is the
- QWebEngineProfile's responsibility to notify the application of new download
- requests, which it does by emitting the
- \l{QWebEngineProfile::downloadRequested}{downloadRequested} signal together
- with a newly created QWebEngineDownloadItem. The application can then
- examine this item and decide whether to accept it or not. A signal handler
- must explicitly call accept() on the item for \QWE to actually start
- downloading and writing data to disk. If no signal handler calls accept(),
- then the download request will be automatically rejected and nothing will be
- written to disk.
-
- \note Some properties, such as setting the path and file name where the file
- will be saved (see \l downloadDirectory() and \l downloadFileName()), can
- only be changed before calling accept().
-
- \section2 Object Life Cycle
-
- All items are guaranteed to be valid during the emission of the
- \l{QWebEngineProfile::downloadRequested}{downloadRequested} signal. If
- accept() is \e not called by any signal handler, then the item will be
- deleted \e immediately after signal emission. This means that the
- application \b{must not} keep references to rejected download items. It also
- means the application should not use a queued connection to this signal.
-
- If accept() \e is called by a signal handler, then the QWebEngineProfile
- will take ownership of the item. However, it is safe for the application to
- delete the item at any time, except during the handling of the
- \l{QWebEngineProfile::downloadRequested}{downloadRequested} signal. The
- QWebEngineProfile being a long-lived object, it is in fact recommended that
- the application delete any items it is no longer interested in.
-
- \note Deleting an item will also automatically cancel a download since 5.12.2,
- but it is recommended to cancel manually before deleting for portability.
-
- \section2 Web Page Downloads
-
- In addition to normal file downloads, which consist simply of retrieving
- some raw bytes from the network and writing them to disk, \QWE also
- supports saving complete web pages, which involves parsing the page's HTML,
- downloading any dependent resources, and potentially packaging everything
- into a special file format (\l savePageFormat). To check if a download is
- for a file or a web page, use \l isSavePageDownload.
-
- \sa QWebEngineProfile, QWebEngineProfile::downloadRequested,
- QWebEnginePage::download, QWebEnginePage::save
-*/
-
-QWebEngineDownloadItemPrivate::QWebEngineDownloadItemPrivate(QWebEngineProfilePrivate *p, const QUrl &url)
- : profile(p)
- , downloadFinished(false)
- , downloadId(-1)
- , downloadState(QWebEngineDownloadItem::DownloadCancelled)
- , savePageFormat(QWebEngineDownloadItem::MimeHtmlSaveFormat)
- , type(QWebEngineDownloadItem::Attachment)
- , interruptReason(QWebEngineDownloadItem::NoReason)
- , downloadUrl(url)
- , downloadPaused(false)
- , isCustomFileName(false)
- , totalBytes(-1)
- , receivedBytes(0)
- , page(0)
-{
-}
-
-QWebEngineDownloadItemPrivate::~QWebEngineDownloadItemPrivate()
-{
-}
-
-void QWebEngineDownloadItemPrivate::update(const ProfileAdapterClient::DownloadItemInfo &info)
-{
- Q_Q(QWebEngineDownloadItem);
-
- Q_ASSERT(downloadState != QWebEngineDownloadItem::DownloadRequested);
-
- if (toDownloadInterruptReason(info.downloadInterruptReason) != interruptReason)
- interruptReason = toDownloadInterruptReason(info.downloadInterruptReason);
-
- if (toDownloadState(info.state) != downloadState) {
- downloadState = toDownloadState(info.state);
- Q_EMIT q->stateChanged(downloadState);
- }
-
- if (info.receivedBytes != receivedBytes || info.totalBytes != totalBytes) {
- receivedBytes = info.receivedBytes;
- totalBytes = info.totalBytes;
- Q_EMIT q->downloadProgress(receivedBytes, totalBytes);
- }
-
- if (info.done)
- setFinished();
-
- if (downloadPaused != info.paused) {
- downloadPaused = info.paused;
- Q_EMIT q->isPausedChanged(downloadPaused);
- }
-}
-
-void QWebEngineDownloadItemPrivate::setFinished()
-{
- if (downloadFinished)
- return;
-
- downloadFinished = true;
- Q_EMIT q_ptr->finished();
-}
-
-/*!
- Accepts the current download request, which will start the download.
-
- If the item is in the \l DownloadRequested state, then it will transition
- into the \l DownloadInProgress state and the downloading will begin. If the
- item is in any other state, then nothing will happen.
-
- \sa finished(), stateChanged()
-*/
-
-void QWebEngineDownloadItem::accept()
-{
- Q_D(QWebEngineDownloadItem);
-
- if (d->downloadState != QWebEngineDownloadItem::DownloadRequested)
- return;
-
- d->downloadState = QWebEngineDownloadItem::DownloadInProgress;
- Q_EMIT stateChanged(d->downloadState);
-}
-
-/*!
- Cancels the current download.
-
- If the item is in the \l DownloadInProgress state, then it will transition
- into the \l DownloadCancelled state, the downloading will stop, and partially
- downloaded files will be deleted from disk.
-
- If the item is in the \l DownloadCompleted state, then nothing will happen.
- If the item is in any other state, then it will transition into the \l
- DownloadCancelled state without further effect.
-
- \sa finished(), stateChanged()
-*/
-
-void QWebEngineDownloadItem::cancel()
-{
- Q_D(QWebEngineDownloadItem);
-
- QWebEngineDownloadItem::DownloadState state = d->downloadState;
-
- if (state == QWebEngineDownloadItem::DownloadCompleted
- || state == QWebEngineDownloadItem::DownloadCancelled)
- return;
-
- // We directly cancel the download request if the user cancels
- // before it even started, so no need to notify the profile here.
- if (state == QWebEngineDownloadItem::DownloadInProgress) {
- if (auto profileAdapter = d->profile->profileAdapter())
- profileAdapter->cancelDownload(d->downloadId);
- } else {
- d->downloadState = QWebEngineDownloadItem::DownloadCancelled;
- Q_EMIT stateChanged(d->downloadState);
- d->setFinished();
- }
-}
-
-/*!
- \since 5.10
- Pauses the download.
-
- Has no effect if the state is not \l DownloadInProgress. Does not change the
- state.
-
- \sa resume(), isPaused()
-*/
-
-void QWebEngineDownloadItem::pause()
-{
- Q_D(QWebEngineDownloadItem);
-
- QWebEngineDownloadItem::DownloadState state = d->downloadState;
-
- if (state != QWebEngineDownloadItem::DownloadInProgress)
- return;
-
- d->profile->profileAdapter()->pauseDownload(d->downloadId);
-}
-
-/*!
- \since 5.10
- Resumes the current download if it was paused or interrupted.
-
- Has no effect if the state is not \l DownloadInProgress or \l
- DownloadInterrupted. Does not change the state.
-
- \sa pause(), isPaused(), state()
-*/
-void QWebEngineDownloadItem::resume()
-{
- Q_D(QWebEngineDownloadItem);
-
- QWebEngineDownloadItem::DownloadState state = d->downloadState;
-
- if (d->downloadFinished || (state != QWebEngineDownloadItem::DownloadInProgress && state != QWebEngineDownloadItem::DownloadInterrupted))
- return;
- d->profile->profileAdapter()->resumeDownload(d->downloadId);
-}
-
-/*!
- Returns the download item's ID.
-*/
-
-quint32 QWebEngineDownloadItem::id() const
-{
- Q_D(const QWebEngineDownloadItem);
- return d->downloadId;
-}
-
-/*!
- \fn void QWebEngineDownloadItem::finished()
-
- This signal is emitted when the download finishes.
-
- \sa state(), isFinished()
-*/
-
-/*!
- \fn void QWebEngineDownloadItem::isPausedChanged(bool isPaused)
- \since 5.10
-
- This signal is emitted whenever \a isPaused changes.
-
- \sa pause(), isPaused()
-*/
-
-/*!
- \fn void QWebEngineDownloadItem::stateChanged(DownloadState state)
-
- This signal is emitted whenever the download's \a state changes.
-
- \sa state(), DownloadState
-*/
-
-/*!
- \fn void QWebEngineDownloadItem::downloadProgress(qint64 bytesReceived, qint64 bytesTotal)
-
- This signal is emitted to indicate the progress of the download request.
-
- The \a bytesReceived parameter indicates the number of bytes received, while
- \a bytesTotal indicates the total number of bytes expected to be downloaded.
- If the size of the file to be downloaded is not known, \c bytesTotal will be
- 0.
-
- \sa totalBytes(), receivedBytes()
-*/
-
-/*!
- \enum QWebEngineDownloadItem::DownloadState
-
- This enum describes the state of the download:
-
- \value DownloadRequested Download has been requested, but has not been accepted yet.
- \value DownloadInProgress Download is in progress.
- \value DownloadCompleted Download completed successfully.
- \value DownloadCancelled Download has been cancelled.
- \value DownloadInterrupted Download has been interrupted (by the server or because of lost
- connectivity).
-*/
-
-/*!
- \enum QWebEngineDownloadItem::SavePageFormat
- \since 5.7
-
- This enum describes the format that is used to save a web page.
-
- \value UnknownSaveFormat This is not a request for downloading a complete web page.
- \value SingleHtmlSaveFormat The page is saved as a single HTML page. Resources such as images
- are not saved.
- \value CompleteHtmlSaveFormat The page is saved as a complete HTML page, for example a directory
- containing the single HTML page and the resources.
- \value MimeHtmlSaveFormat The page is saved as a complete web page in the MIME HTML format.
-*/
-
-/*!
- \enum QWebEngineDownloadItem::DownloadType
- \since 5.8
- \obsolete
-
- Describes the requested download's type.
-
- \value Attachment The web server's response includes a
- \c Content-Disposition header with the \c attachment directive. If \c Content-Disposition
- is present in the reply, the web server is indicating that the client should prompt the
- user to save the content regardless of the content type.
- See \l {RFC 2616 section 19.5.1} for details.
- \value DownloadAttribute The user clicked a link with the \c download
- attribute.
- \value UserRequested The user initiated the download, for example by
- selecting a web action.
- \value SavePage Saving of the current page was requested (for example by
- the \l{QWebEnginePage::WebAction}{QWebEnginePage::SavePage} web action).
-*/
-
-/*!
- \enum QWebEngineDownloadItem::DownloadInterruptReason
- \since 5.9
-
- Describes the reason why a download was interrupted:
-
- \value NoReason Unknown reason or not interrupted.
- \value FileFailed General file operation failure.
- \value FileAccessDenied The file cannot be written locally, due to access restrictions.
- \value FileNoSpace Insufficient space on the target drive.
- \value FileNameTooLong The directory or file name is too long.
- \value FileTooLarge The file size exceeds the file system limitation.
- \value FileVirusInfected The file is infected with a virus.
- \value FileTransientError Temporary problem (for example the file is in use,
- out of memory, or too many files are opened at once).
- \value FileBlocked The file was blocked due to local policy.
- \value FileSecurityCheckFailed An attempt to check the safety of the download
- failed due to unexpected reasons.
- \value FileTooShort An attempt was made to seek past the end of a file when
- opening a file (as part of resuming a previously interrupted download).
- \value FileHashMismatch The partial file did not match the expected hash.
-
- \value NetworkFailed General network failure.
- \value NetworkTimeout The network operation has timed out.
- \value NetworkDisconnected The network connection has been terminated.
- \value NetworkServerDown The server has gone down.
- \value NetworkInvalidRequest The network request was invalid (for example, the
- original or redirected URL is invalid, has an unsupported scheme, or is disallowed by policy).
-
- \value ServerFailed General server failure.
- \value ServerBadContent The server does not have the requested data.
- \value ServerUnauthorized The server did not authorize access to the resource.
- \value ServerCertProblem A problem with the server certificate occurred.
- \value ServerForbidden Access forbidden by the server.
- \value ServerUnreachable Unexpected server response (might indicate that
- the responding server may not be the intended server).
- \value UserCanceled The user canceled the download.
-*/
-
-/*!
- Returns the download item's current state.
-
- \sa DownloadState
-*/
-
-QWebEngineDownloadItem::DownloadState QWebEngineDownloadItem::state() const
-{
- Q_D(const QWebEngineDownloadItem);
- return d->downloadState;
-}
-
-/*!
- Returns the the total amount of data to download in bytes.
-
- \c -1 means the size is unknown.
-*/
-
-qint64 QWebEngineDownloadItem::totalBytes() const
-{
- Q_D(const QWebEngineDownloadItem);
- return d->totalBytes;
-}
-
-/*!
- Returns the amount of data in bytes that has been downloaded so far.
-
- \c -1 means the size is unknown.
-*/
-
-qint64 QWebEngineDownloadItem::receivedBytes() const
-{
- Q_D(const QWebEngineDownloadItem);
- return d->receivedBytes;
-}
-
-/*!
- Returns the download's origin URL.
-*/
-
-QUrl QWebEngineDownloadItem::url() const
-{
- Q_D(const QWebEngineDownloadItem);
- return d->downloadUrl;
-}
-
-/*!
- \since 5.6
-
- Returns the MIME type of the download.
-*/
-
-QString QWebEngineDownloadItem::mimeType() const
-{
- Q_D(const QWebEngineDownloadItem);
- return d->mimeType;
-}
-
-/*!
- \obsolete
-
- Use \l suggestedFileName(), \l downloadDirectory(), and
- \l downloadFileName() instead.
-
- Returns the full target path where data is being downloaded to.
-
- The path includes the file name. The default suggested path is the standard download location
- and file name is deduced not to overwrite already existing files.
-*/
-
-QString QWebEngineDownloadItem::path() const
-{
- Q_D(const QWebEngineDownloadItem);
- return QDir::cleanPath(QDir(d->downloadDirectory).filePath(d->downloadFileName));
-}
-
-/*!
- \obsolete
-
- Use \l setDownloadDirectory() and \l setDownloadFileName() instead.
-
- Sets the full target path to download the file to.
-
- The \a path should also include the file name. The download path can only be set in response
- to the QWebEngineProfile::downloadRequested() signal before the download is accepted.
- Past that point, this function has no effect on the download item's state.
-*/
-void QWebEngineDownloadItem::setPath(QString path)
-{
- Q_D(QWebEngineDownloadItem);
- if (d->downloadState != QWebEngineDownloadItem::DownloadRequested) {
- qWarning("Setting the download path is not allowed after the download has been accepted.");
- return;
- }
- if (QDir(d->downloadDirectory).filePath(d->downloadFileName) != path) {
- if (QFileInfo(path).fileName().isEmpty()) {
- qWarning("The download path does not include file name.");
- return;
- }
-
- if (QFileInfo(path).isDir()) {
- qWarning("The download path matches with an already existing directory path.");
- return;
- }
-
- if (QFileInfo(path).fileName() == path) {
- d->downloadDirectory = QStringLiteral("");
- d->downloadFileName = path;
- } else {
- d->downloadDirectory = QFileInfo(path).path();
- d->downloadFileName = QFileInfo(path).fileName();
- }
- }
-}
-
-/*!
- \since 5.14
-
- Returns the download directory path.
-*/
-
-QString QWebEngineDownloadItem::downloadDirectory() const
-{
- Q_D(const QWebEngineDownloadItem);
- return d->downloadDirectory;
-}
-
-/*!
- \since 5.14
-
- Sets \a directory as the directory path to download the file to.
-
- The download directory path can only be set in response to the QWebEngineProfile::downloadRequested()
- signal before the download is accepted. Past that point, this function has no effect on the
- download item's state.
-*/
-
-void QWebEngineDownloadItem::setDownloadDirectory(const QString &directory)
-{
- Q_D(QWebEngineDownloadItem);
- if (d->downloadState != QWebEngineDownloadItem::DownloadRequested) {
- qWarning("Setting the download directory is not allowed after the download has been accepted.");
- return;
- }
-
- if (!directory.isEmpty() && d->downloadDirectory != directory)
- d->downloadDirectory = directory;
-
- if (!d->isCustomFileName)
- d->downloadFileName = QFileInfo(d->profile->profileAdapter()->determineDownloadPath(d->downloadDirectory,
- d->suggestedFileName,
- d->startTime)).fileName();
-}
-
-/*!
- \since 5.14
-
- Returns the file name to download the file to.
-*/
-
-QString QWebEngineDownloadItem::downloadFileName() const
-{
- Q_D(const QWebEngineDownloadItem);
- return d->downloadFileName;
-}
-
-/*!
- \since 5.14
-
- Sets \a fileName as the file name to download the file to.
-
- The download file name can only be set in response to the QWebEngineProfile::downloadRequested()
- signal before the download is accepted. Past that point, this function has no effect on the
- download item's state.
-*/
-
-void QWebEngineDownloadItem::setDownloadFileName(const QString &fileName)
-{
- Q_D(QWebEngineDownloadItem);
- if (d->downloadState != QWebEngineDownloadItem::DownloadRequested) {
- qWarning("Setting the download file name is not allowed after the download has been accepted.");
- return;
- }
-
- if (!fileName.isEmpty()) {
- d->downloadFileName = fileName;
- d->isCustomFileName = true;
- }
-}
-
-/*!
- \since 5.14
-
- Returns the suggested file name.
-*/
-
-QString QWebEngineDownloadItem::suggestedFileName() const
-{
- Q_D(const QWebEngineDownloadItem);
- return d->suggestedFileName;
-}
-
-/*!
- Returns whether this download is finished (completed, cancelled, or non-resumable interrupted state).
-
- \sa finished(), state(),
-*/
-
-bool QWebEngineDownloadItem::isFinished() const
-{
- Q_D(const QWebEngineDownloadItem);
- return d->downloadFinished;
-}
-
-/*!
- Returns whether this download is paused.
-
- \sa pause(), resume()
-*/
-
-bool QWebEngineDownloadItem::isPaused() const
-{
- Q_D(const QWebEngineDownloadItem);
- return d->downloadPaused;
-}
-
-/*!
- Returns the format the web page will be saved in if this is a download request for a web page.
- \since 5.7
-
- \sa setSavePageFormat(), isSavePageDownload()
-*/
-QWebEngineDownloadItem::SavePageFormat QWebEngineDownloadItem::savePageFormat() const
-{
- Q_D(const QWebEngineDownloadItem);
- return d->savePageFormat;
-}
-
-/*!
- Sets the \a format the web page will be saved in if this is a download request for a web page.
- \since 5.7
-
- \sa savePageFormat(), isSavePageDownload()
-*/
-void QWebEngineDownloadItem::setSavePageFormat(QWebEngineDownloadItem::SavePageFormat format)
-{
- Q_D(QWebEngineDownloadItem);
- d->savePageFormat = format;
-}
-
-/*!
- Returns the requested download's type.
- \since 5.8
- \obsolete
-
- \note This property works unreliably, except for \c SavePage
- downloads. Use \l isSavePageDownload() instead.
- */
-
-QWebEngineDownloadItem::DownloadType QWebEngineDownloadItem::type() const
-{
- Q_D(const QWebEngineDownloadItem);
- return d->type;
-}
-
-/*!
- Returns \c true if this is a download request for saving a web page.
- \since 5.11
-
- \sa savePageFormat(), setSavePageFormat()
- */
-bool QWebEngineDownloadItem::isSavePageDownload() const
-{
- Q_D(const QWebEngineDownloadItem);
- return d->type == QWebEngineDownloadItem::SavePage;
-}
-
-/*!
- Returns the reason why the download was interrupted.
- \since 5.9
-
- \sa interruptReasonString()
-*/
-
-QWebEngineDownloadItem::DownloadInterruptReason QWebEngineDownloadItem::interruptReason() const
-{
- Q_D(const QWebEngineDownloadItem);
- return d->interruptReason;
-}
-
-/*!
- Returns a human-readable description of the reason for interrupting the download.
- \since 5.9
-
- \sa interruptReason()
-*/
-
-QString QWebEngineDownloadItem::interruptReasonString() const
-{
- return ProfileAdapterClient::downloadInterruptReasonToString(
- static_cast<ProfileAdapterClient::DownloadInterruptReason>(interruptReason()));
-}
-
-/*!
- \since 5.12
- Returns the page the download was requested on. If the download was not triggered by content in a page,
- \c nullptr is returned.
-*/
-QWebEnginePage *QWebEngineDownloadItem::page() const
-{
- Q_D(const QWebEngineDownloadItem);
- return d->page;
-}
-
-QWebEngineDownloadItem::QWebEngineDownloadItem(QWebEngineDownloadItemPrivate *p, QObject *parent)
- : QObject(parent)
- , d_ptr(p)
-{
- p->q_ptr = this;
-}
-
-/*! \internal
-*/
-QWebEngineDownloadItem::~QWebEngineDownloadItem()
-{
- // MEMO Items are owned by profile by default and will be destroyed on profile's destruction
- // It's not safe to access profile in that case, so we rely on profile to clean up items
- if (!isFinished())
- cancel();
-}
-
-QT_END_NAMESPACE