aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/platform/qquickplatformfolderdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/imports/platform/qquickplatformfolderdialog.cpp')
-rw-r--r--src/imports/platform/qquickplatformfolderdialog.cpp43
1 files changed, 23 insertions, 20 deletions
diff --git a/src/imports/platform/qquickplatformfolderdialog.cpp b/src/imports/platform/qquickplatformfolderdialog.cpp
index bf0ba09b..04c39f6f 100644
--- a/src/imports/platform/qquickplatformfolderdialog.cpp
+++ b/src/imports/platform/qquickplatformfolderdialog.cpp
@@ -118,26 +118,6 @@ QQuickPlatformFolderDialog::QQuickPlatformFolderDialog(QObject *parent)
{
m_options->setFileMode(QFileDialogOptions::Directory);
m_options->setAcceptMode(QFileDialogOptions::AcceptOpen);
-
- QPlatformDialogHelper *dialog = QGuiApplicationPrivate::platformTheme()->createPlatformDialogHelper(QPlatformTheme::FileDialog);
-#ifdef QT_WIDGETS_LIB
- if (!dialog)
- dialog = new QWidgetPlatformFileDialog(this);
-#endif
- qCDebug(qtLabsPlatformDialogs) << "FolderDialog:" << dialog;
-
- if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(dialog)) {
- connect(fileDialog, &QPlatformFileDialogHelper::fileSelected, this, &QQuickPlatformFolderDialog::folderSelected);
- connect(fileDialog, &QPlatformFileDialogHelper::filesSelected, this, &QQuickPlatformFolderDialog::foldersSelected);
- connect(fileDialog, &QPlatformFileDialogHelper::currentChanged, [this](const QUrl &url) {
- if (m_current == url)
- return;
- m_current = url;
- emit currentFolderChanged();
- });
- fileDialog->setOptions(m_options);
- }
- setHandle(dialog);
}
/*!
@@ -259,6 +239,29 @@ void QQuickPlatformFolderDialog::resetRejectLabel()
setRejectLabel(QString());
}
+QPlatformDialogHelper *QQuickPlatformFolderDialog::createHelper()
+{
+ QPlatformDialogHelper *dialog = QGuiApplicationPrivate::platformTheme()->createPlatformDialogHelper(QPlatformTheme::FileDialog);
+#ifdef QT_WIDGETS_LIB
+ if (!dialog)
+ dialog = new QWidgetPlatformFileDialog(this);
+#endif
+ qCDebug(qtLabsPlatformDialogs) << "FolderDialog:" << dialog;
+
+ if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(dialog)) {
+ connect(fileDialog, &QPlatformFileDialogHelper::fileSelected, this, &QQuickPlatformFolderDialog::folderSelected);
+ connect(fileDialog, &QPlatformFileDialogHelper::filesSelected, this, &QQuickPlatformFolderDialog::foldersSelected);
+ connect(fileDialog, &QPlatformFileDialogHelper::currentChanged, [this](const QUrl &url) {
+ if (m_current == url)
+ return;
+ m_current = url;
+ emit currentFolderChanged();
+ });
+ fileDialog->setOptions(m_options);
+ }
+ return dialog;
+}
+
void QQuickPlatformFolderDialog::applyOptions()
{
m_options->setWindowTitle(title());