summaryrefslogtreecommitdiffstats
path: root/src/dialogs/qquickfiledialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/dialogs/qquickfiledialog.cpp')
-rw-r--r--src/dialogs/qquickfiledialog.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/dialogs/qquickfiledialog.cpp b/src/dialogs/qquickfiledialog.cpp
index 576778e10..8a7c3e5fb 100644
--- a/src/dialogs/qquickfiledialog.cpp
+++ b/src/dialogs/qquickfiledialog.cpp
@@ -176,14 +176,15 @@ void QQuickFileDialog::clearSelection()
bool QQuickFileDialog::addSelection(const QUrl &path)
{
QFileInfo info(path.toLocalFile());
- if (info.exists() && ((info.isDir() && m_selectFolder) || !info.isDir())) {
- if (m_selectFolder)
- m_selections.append(pathFolder(path.toLocalFile()));
- else
- m_selections.append(path);
- return true;
- }
- return false;
+ if (selectExisting() && !info.exists())
+ return false;
+ if (selectFolder() != info.isDir())
+ return false;
+ if (selectFolder())
+ m_selections.append(pathFolder(path.toLocalFile()));
+ else
+ m_selections.append(path);
+ return true;
}
/*!