summaryrefslogtreecommitdiffstats
path: root/src/dialogs/qquickplatformfiledialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/dialogs/qquickplatformfiledialog.cpp')
-rw-r--r--src/dialogs/qquickplatformfiledialog.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/dialogs/qquickplatformfiledialog.cpp b/src/dialogs/qquickplatformfiledialog.cpp
index 7ed4e3fbc..b8f75ddc9 100644
--- a/src/dialogs/qquickplatformfiledialog.cpp
+++ b/src/dialogs/qquickplatformfiledialog.cpp
@@ -44,7 +44,7 @@ QT_BEGIN_NAMESPACE
/*!
\qmltype FileDialog
\instantiates QQuickPlatformFileDialog
- \inqmlmodule QtQuick.Dialogs 1
+ \inqmlmodule QtQuick.Dialogs
\ingroup dialogs
\brief Dialog component for choosing files from a local filesystem.
\since 5.1
@@ -172,6 +172,21 @@ QQuickPlatformFileDialog::~QQuickPlatformFileDialog()
delete m_dlgHelper;
}
+void QQuickPlatformFileDialog::setModality(Qt::WindowModality m)
+{
+#ifdef Q_OS_WIN
+ // A non-modal native file dialog is not possible on Windows, so
+ // be stubborn about it. Emit modalityChanged() whether it changed
+ // or not, to ensure that anything which depends on the property
+ // will re-read the actual current value.
+ if (m != Qt::ApplicationModal)
+ m = Qt::ApplicationModal;
+ if (m == m_modality)
+ emit modalityChanged();
+#endif
+ QQuickAbstractFileDialog::setModality(m);
+}
+
QPlatformFileDialogHelper *QQuickPlatformFileDialog::helper()
{
QQuickItem *parentItem = qobject_cast<QQuickItem *>(parent());