diff --git a/src/Main.qml b/src/Main.qml index cdcbc3e..7b85de6 100644 --- a/src/Main.qml +++ b/src/Main.qml @@ -269,16 +269,20 @@ ApplicationWindow { Dialogs.FileDialog { id: openFileDialog + objectName: "openFileDialog" title: "Open File" fileMode: Dialogs.FileDialog.OpenFile + options: Dialogs.FileDialog.DontUseNativeDialog nameFilters: ["Markdown files (*.md *.markdown)", "All files (*)"] onAccepted: win.requestOpen(selectedFile) } Dialogs.FileDialog { id: saveFileDialog + objectName: "saveFileDialog" title: "Save File" fileMode: Dialogs.FileDialog.SaveFile + options: Dialogs.FileDialog.DontUseNativeDialog nameFilters: ["Markdown files (*.md *.markdown)", "All files (*)"] onAccepted: backend.saveAs(selectedFile) onRejected: { diff --git a/tests/tst_omawrite.cpp b/tests/tst_omawrite.cpp index 5c3306a..9eae220 100644 --- a/tests/tst_omawrite.cpp +++ b/tests/tst_omawrite.cpp @@ -1,5 +1,6 @@ #include #include +#include #include #include #include @@ -192,6 +193,27 @@ private slots: QCOMPARE(openDialogSpy.count(), 1); } + void usesQuickFileDialogs() { + const QString mainQmlPath = QFINDTESTDATA("../src/Main.qml"); + QVERIFY(!mainQmlPath.isEmpty()); + + Backend backend; + QQmlEngine engine; + engine.rootContext()->setContextProperty(QStringLiteral("backend"), &backend); + QQmlComponent component(&engine, QUrl::fromLocalFile(mainQmlPath)); + QVERIFY2(component.isReady(), qPrintable(component.errorString())); + QScopedPointer window(component.create()); + QVERIFY2(window, qPrintable(component.errorString())); + + const auto dontUseNativeDialog = int(QFileDialog::DontUseNativeDialog); + for (const QString &name : {QStringLiteral("openFileDialog"), + QStringLiteral("saveFileDialog")}) { + QObject *dialog = window->findChild(name); + QVERIFY(dialog); + QVERIFY(dialog->property("options").toInt() & dontUseNativeDialog); + } + } + void scalesTextWithDesktopTextSize() { const QString mainQmlPath = QFINDTESTDATA("../src/Main.qml"); QVERIFY(!mainQmlPath.isEmpty());