aboutsummaryrefslogtreecommitdiffstats
path: root/src/quickdialogs/quickdialogsquickimpl/qquickfiledialogdelegate.cpp
diff options
context:
space:
mode:
authorTarja Sundqvist <tarja.sundqvist@qt.io>2025-01-29 16:12:28 +0200
committerTarja Sundqvist <tarja.sundqvist@qt.io>2025-01-29 16:12:28 +0200
commit7ac842cba18be081ac835bf40ac475ec4c47d30b (patch)
treec35c8f45a56adf8df9ba018facce713a99d6074f /src/quickdialogs/quickdialogsquickimpl/qquickfiledialogdelegate.cpp
parent9edb471d3a35b3dc40def86c395789086edaa983 (diff)
parent3760c04fdea95b6e6d6ccac7c594993f063096fd (diff)
Merge tag 'v6.5.5-lts' into tqtc/lts-6.5-opensource
Qt 6.5.5-lts release Conflicts solved: dependencies.yaml src/quick/doc/snippets/qml/treeview/qml-customdelegate.qml Change-Id: Ifa297315fa0e6e70d9f26312f9183da4769d18fc
Diffstat (limited to 'src/quickdialogs/quickdialogsquickimpl/qquickfiledialogdelegate.cpp')
-rw-r--r--src/quickdialogs/quickdialogsquickimpl/qquickfiledialogdelegate.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/quickdialogs/quickdialogsquickimpl/qquickfiledialogdelegate.cpp b/src/quickdialogs/quickdialogsquickimpl/qquickfiledialogdelegate.cpp
index 71b1fccbc5..369176f844 100644
--- a/src/quickdialogs/quickdialogsquickimpl/qquickfiledialogdelegate.cpp
+++ b/src/quickdialogs/quickdialogsquickimpl/qquickfiledialogdelegate.cpp
@@ -11,6 +11,7 @@
#include <QtQuickTemplates2/private/qquickitemdelegate_p_p.h>
#include "qquickfiledialogimpl_p.h"
+#include "qquickfiledialogimpl_p_p.h"
#include "qquickfolderdialogimpl_p.h"
QT_BEGIN_NAMESPACE
@@ -67,6 +68,16 @@ void QQuickFileDialogDelegatePrivate::chooseFile()
Q_ASSERT(fileDialog);
// Otherwise it's a file, so select it and close the dialog.
fileDialog->setSelectedFile(file);
+
+ // Prioritize closing the dialog with QQuickDialogPrivate::handleClick() over QQuickDialog::accept()
+ const QQuickFileDialogImplAttached *attached = QQuickFileDialogImplPrivate::get(fileDialog)->attachedOrWarn();
+ if (Q_LIKELY(attached)) {
+ auto *openButton = attached->buttonBox()->standardButton(QPlatformDialogHelper::Open);
+ if (Q_LIKELY(openButton)) {
+ emit openButton->clicked();
+ return;
+ }
+ }
fileDialog->accept();
}
}