Add QXdgDesktopPortalFileDialog::useNativeFileDialog()

Task-number: QTBUG-98988
Change-Id: I39417f089d839a9af009791088bd20058532bd7a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
(cherry picked from commit 6f9f6849c53e057e8b4186db64a1a6b5e1f31eca)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Ilya Fedin 2022-06-06 20:57:22 +04:00 committed by Qt Cherry-pick Bot
parent ec2ce79b77
commit e737c163b0
2 changed files with 15 additions and 4 deletions

View File

@ -298,7 +298,7 @@ QUrl QXdgDesktopPortalFileDialog::directory() const
{
Q_D(const QXdgDesktopPortalFileDialog);
if (d->nativeFileDialog && (options()->fileMode() == QFileDialogOptions::Directory || options()->fileMode() == QFileDialogOptions::DirectoryOnly))
if (d->nativeFileDialog && useNativeFileDialog())
return d->nativeFileDialog->directory();
return d->directory;
@ -320,7 +320,7 @@ QList<QUrl> QXdgDesktopPortalFileDialog::selectedFiles() const
{
Q_D(const QXdgDesktopPortalFileDialog);
if (d->nativeFileDialog && (options()->fileMode() == QFileDialogOptions::Directory || options()->fileMode() == QFileDialogOptions::DirectoryOnly))
if (d->nativeFileDialog && useNativeFileDialog())
return d->nativeFileDialog->selectedFiles();
QList<QUrl> files;
@ -375,7 +375,7 @@ void QXdgDesktopPortalFileDialog::exec()
{
Q_D(QXdgDesktopPortalFileDialog);
if (d->nativeFileDialog && (options()->fileMode() == QFileDialogOptions::Directory || options()->fileMode() == QFileDialogOptions::DirectoryOnly)) {
if (d->nativeFileDialog && useNativeFileDialog()) {
d->nativeFileDialog->exec();
return;
}
@ -404,7 +404,7 @@ bool QXdgDesktopPortalFileDialog::show(Qt::WindowFlags windowFlags, Qt::WindowMo
d->modal = windowModality != Qt::NonModal;
d->winId = parent ? parent->winId() : 0;
if (d->nativeFileDialog && (options()->fileMode() == QFileDialogOptions::Directory || options()->fileMode() == QFileDialogOptions::DirectoryOnly))
if (d->nativeFileDialog && useNativeFileDialog())
return d->nativeFileDialog->show(windowFlags, windowModality, parent);
openPortal();
@ -437,6 +437,16 @@ void QXdgDesktopPortalFileDialog::gotResponse(uint response, const QVariantMap &
}
}
bool QXdgDesktopPortalFileDialog::useNativeFileDialog() const
{
if (options()->fileMode() == QFileDialogOptions::Directory)
return true;
else if (options()->fileMode() == QFileDialogOptions::DirectoryOnly)
return true;
return false;
}
QT_END_NAMESPACE
#include "moc_qxdgdesktopportalfiledialog_p.cpp"

View File

@ -57,6 +57,7 @@ private Q_SLOTS:
private:
void initializeDialog();
void openPortal();
bool useNativeFileDialog() const;
QScopedPointer<QXdgDesktopPortalFileDialogPrivate> d_ptr;
};