diff options
Diffstat (limited to 'src/imports/platform/qquickplatformfiledialog.cpp')
-rw-r--r-- | src/imports/platform/qquickplatformfiledialog.cpp | 51 |
1 files changed, 27 insertions, 24 deletions
diff --git a/src/imports/platform/qquickplatformfiledialog.cpp b/src/imports/platform/qquickplatformfiledialog.cpp index 8ff5c4ac..1900952c 100644 --- a/src/imports/platform/qquickplatformfiledialog.cpp +++ b/src/imports/platform/qquickplatformfiledialog.cpp @@ -118,30 +118,6 @@ QQuickPlatformFileDialog::QQuickPlatformFileDialog(QObject *parent) { m_options->setFileMode(QFileDialogOptions::ExistingFile); 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) << "FileDialog:" << dialog; - - if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(dialog)) { - connect(fileDialog, &QPlatformFileDialogHelper::fileSelected, [this](const QUrl &file) { - emit fileSelected(addDefaultSuffix(file)); - }); - connect(fileDialog, &QPlatformFileDialogHelper::filesSelected, [this](const QList<QUrl> &files) { - emit filesSelected(addDefaultSuffixes(files)); - }); - connect(fileDialog, &QPlatformFileDialogHelper::currentChanged, [this](const QUrl &url) { - if (m_current == url) - return; - m_current = url; - emit currentFileChanged(); - }); - fileDialog->setOptions(m_options); - } - setHandle(dialog); } /*! @@ -366,6 +342,33 @@ void QQuickPlatformFileDialog::resetRejectLabel() setRejectLabel(QString()); } +QPlatformDialogHelper *QQuickPlatformFileDialog::createHelper() +{ + QPlatformDialogHelper *dialog = QGuiApplicationPrivate::platformTheme()->createPlatformDialogHelper(QPlatformTheme::FileDialog); +#ifdef QT_WIDGETS_LIB + if (!dialog) + dialog = new QWidgetPlatformFileDialog(this); +#endif + qCDebug(qtLabsPlatformDialogs) << "FileDialog:" << dialog; + + if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(dialog)) { + connect(fileDialog, &QPlatformFileDialogHelper::fileSelected, [this](const QUrl &file) { + emit fileSelected(addDefaultSuffix(file)); + }); + connect(fileDialog, &QPlatformFileDialogHelper::filesSelected, [this](const QList<QUrl> &files) { + emit filesSelected(addDefaultSuffixes(files)); + }); + connect(fileDialog, &QPlatformFileDialogHelper::currentChanged, [this](const QUrl &url) { + if (m_current == url) + return; + m_current = url; + emit currentFileChanged(); + }); + fileDialog->setOptions(m_options); + } + return dialog; +} + void QQuickPlatformFileDialog::applyOptions() { m_options->setWindowTitle(title()); |