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:
parent
ec2ce79b77
commit
e737c163b0
@ -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"
|
||||
|
@ -57,6 +57,7 @@ private Q_SLOTS:
|
||||
private:
|
||||
void initializeDialog();
|
||||
void openPortal();
|
||||
bool useNativeFileDialog() const;
|
||||
|
||||
QScopedPointer<QXdgDesktopPortalFileDialogPrivate> d_ptr;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user