diff options
| author | Shawn Rutledge <shawn.rutledge@digia.com> | 2014-01-20 16:11:03 +0100 |
|---|---|---|
| committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-02-11 13:30:10 +0100 |
| commit | ca06c78059918570fc46b8df915b0d7bcd0c80b2 (patch) | |
| tree | 2f5bcf8da26c8a273d309ee02ba364011a232a68 /src/dialogs/qquickabstractfiledialog.cpp | |
| parent | 77a6b6448200c263a862bc34546106a6b0e698a6 (diff) | |
FileDialog: centralize URL validation in setFolder
QQuickAbstractFileDialog::setFolder() takes care of the pathological
cases so that the QML can be more straightforward. This is an
alternate fix for QTBUG-36006 and some other navigation bugs.
Change-Id: I7b6b6c8cb31d68e3971e39842ec63118854ecd6d
Reviewed-by: Liang Qi <liang.qi@digia.com>
Diffstat (limited to 'src/dialogs/qquickabstractfiledialog.cpp')
| -rw-r--r-- | src/dialogs/qquickabstractfiledialog.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/dialogs/qquickabstractfiledialog.cpp b/src/dialogs/qquickabstractfiledialog.cpp index e193ca37a..4b8592d42 100644 --- a/src/dialogs/qquickabstractfiledialog.cpp +++ b/src/dialogs/qquickabstractfiledialog.cpp @@ -116,9 +116,15 @@ QUrl QQuickAbstractFileDialog::folder() const void QQuickAbstractFileDialog::setFolder(const QUrl &f) { + QString lf = f.toLocalFile(); + while (lf.startsWith("//")) + lf.remove(0, 1); + if (lf.isEmpty()) + lf = QDir::currentPath(); + QUrl u = QUrl::fromLocalFile(lf); if (m_dlgHelper) - m_dlgHelper->setDirectory(f); - m_options->setInitialDirectory(f); + m_dlgHelper->setDirectory(u); + m_options->setInitialDirectory(u); emit folderChanged(); } |
