diff options
author | Florian Richter <richter@mvtec.com> | 2019-09-20 15:06:56 +0200 |
---|---|---|
committer | Mitch Curtis <mitch.curtis@qt.io> | 2021-08-25 09:17:55 +0200 |
commit | a641e8ef74b8f2ad9dea03bdb7cc8c7c3c70e75e (patch) | |
tree | 0f4357b6ede004bb4bdab80ed5b9c1bfdaf7d62f | |
parent | 1e497b2f38b9444a88bc1fe50525aa88d0d7f9d6 (diff) |
QQuickPlatformFolderDialog: Allow opening selected folder
Before a folder needed to be made the current folder in the
OpenFolderDialog, now it is enough to select the folder in the dialog.
Fixes: QTBUG-76860
Change-Id: Icc91db76c0badc3b8397a87ec7202db41999dea3
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
(adapted from commit 4ec8c0700cd0e6bc1b2dfb08fff5e9e15288e047)
-rw-r--r-- | src/imports/platform/qquickplatformfolderdialog.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/imports/platform/qquickplatformfolderdialog.cpp b/src/imports/platform/qquickplatformfolderdialog.cpp index a28dc828..ca6a17b1 100644 --- a/src/imports/platform/qquickplatformfolderdialog.cpp +++ b/src/imports/platform/qquickplatformfolderdialog.cpp @@ -141,8 +141,12 @@ void QQuickPlatformFolderDialog::setFolder(const QUrl &folder) */ QUrl QQuickPlatformFolderDialog::currentFolder() const { - if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(handle())) + if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(handle())) { + const QList<QUrl> selectedFiles = fileDialog->selectedFiles(); + if (!selectedFiles.isEmpty()) + return selectedFiles.first(); return fileDialog->directory(); + } return m_options->initialDirectory(); } @@ -259,7 +263,7 @@ bool QQuickPlatformFolderDialog::useNativeDialog() const void QQuickPlatformFolderDialog::onCreate(QPlatformDialogHelper *dialog) { if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(dialog)) { - connect(fileDialog, &QPlatformFileDialogHelper::directoryEntered, this, &QQuickPlatformFolderDialog::currentFolderChanged); + connect(fileDialog, &QPlatformFileDialogHelper::currentChanged, this, &QQuickPlatformFolderDialog::currentFolderChanged); fileDialog->setOptions(m_options); } } |