diff options
Diffstat (limited to 'src/dialogs/qquickplatformfiledialog.cpp')
| -rw-r--r-- | src/dialogs/qquickplatformfiledialog.cpp | 17 |
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()); |
