summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/core/api/qwebenginepage.cpp1
-rw-r--r--src/core/api/qwebenginepage.h1
-rw-r--r--src/core/doc/src/qwebenginepage_lgpl.qdoc2
-rw-r--r--tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp15
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);