diff options
-rw-r--r-- | src/core/api/qwebenginepage.cpp | 1 | ||||
-rw-r--r-- | src/core/api/qwebenginepage.h | 1 | ||||
-rw-r--r-- | src/core/doc/src/qwebenginepage_lgpl.qdoc | 2 | ||||
-rw-r--r-- | tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp | 15 |
4 files changed, 16 insertions, 3 deletions
diff --git a/src/core/api/qwebenginepage.cpp b/src/core/api/qwebenginepage.cpp index 8e03aea0d..b793daed0 100644 --- a/src/core/api/qwebenginepage.cpp +++ b/src/core/api/qwebenginepage.cpp @@ -2148,6 +2148,7 @@ void QWebEnginePage::setDevToolsPage(QWebEnginePage *devToolsPage) ASSERT_ENUMS_MATCH(FilePickerController::Open, QWebEnginePage::FileSelectOpen) ASSERT_ENUMS_MATCH(FilePickerController::OpenMultiple, QWebEnginePage::FileSelectOpenMultiple) ASSERT_ENUMS_MATCH(FilePickerController::UploadFolder, QWebEnginePage::FileSelectUploadFolder) +ASSERT_ENUMS_MATCH(FilePickerController::Save, QWebEnginePage::FileSelectSave) // TODO: remove virtuals QStringList QWebEnginePage::chooseFiles(FileSelectionMode mode, const QStringList &oldFiles, const QStringList &acceptedMimeTypes) diff --git a/src/core/api/qwebenginepage.h b/src/core/api/qwebenginepage.h index fcff3ab1e..45829f603 100644 --- a/src/core/api/qwebenginepage.h +++ b/src/core/api/qwebenginepage.h @@ -211,6 +211,7 @@ public: FileSelectOpen, FileSelectOpenMultiple, FileSelectUploadFolder, + FileSelectSave }; Q_ENUM(FileSelectionMode) diff --git a/src/core/doc/src/qwebenginepage_lgpl.qdoc b/src/core/doc/src/qwebenginepage_lgpl.qdoc index 43195deb2..4a058460b 100644 --- a/src/core/doc/src/qwebenginepage_lgpl.qdoc +++ b/src/core/doc/src/qwebenginepage_lgpl.qdoc @@ -252,6 +252,8 @@ Return multiple file names. \value FileSelectUploadFolder Allows users to specify a single existing folder for upload. + \value FileSelectSave + Specify a new file to be created. \sa chooseFiles() */ diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp index c86e89b42..d95c246fc 100644 --- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp +++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp @@ -4758,6 +4758,8 @@ void tst_QWebEnginePage::testChooseFilesParameters_data() << QWebEnginePage::FileSelectOpenMultiple << QStringList(); QTest::addRow("Folder upload") << QString("multiple webkitdirectory") << QString() << QWebEnginePage::FileSelectUploadFolder << QStringList(); + QTest::addRow("Save file") << QString("") << QString() + << QWebEnginePage::FileSelectSave << QStringList(); mimeTypes = QStringList() << "audio/*"; QTest::addRow("MIME type: audio") << QString() << QString("accept='%1'").arg(mimeTypes.join(',')) << QWebEnginePage::FileSelectOpen << mimeTypes; @@ -4791,9 +4793,16 @@ void tst_QWebEnginePage::testChooseFilesParameters() view.show(); QVERIFY(QTest::qWaitForWindowExposed(&view)); - page.setHtml(QString("<html><body>" - "<input id='filePicker' type='file' name='filePicker' %1 %2 />" - "</body></html>").arg(uploadAttribute, mimeTypeAttribute)); + if (expectedFileSelectionMode != QWebEnginePage::FileSelectSave) { + page.setHtml(QString("<html><body>" + "<input id='filePicker' type='file' name='filePicker' %1 %2 />" + "</body></html>").arg(uploadAttribute, mimeTypeAttribute)); + } else { + page.setHtml(QString("<html><body>" + "<button id='filePicker' value='trigger' " + "onclick='window.showSaveFilePicker()'" + "</body></html>"), QString("qrc:/")); + } QVERIFY(spyFinished.wait()); QTRY_COMPARE(spyFinished.count(), 1); |