diff options
Diffstat (limited to 'src/imports')
-rw-r--r-- | src/imports/folderlistmodel/qquickfolderlistmodel.cpp | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/imports/folderlistmodel/qquickfolderlistmodel.cpp b/src/imports/folderlistmodel/qquickfolderlistmodel.cpp index 7ba2981a4e..2f61a9abe7 100644 --- a/src/imports/folderlistmodel/qquickfolderlistmodel.cpp +++ b/src/imports/folderlistmodel/qquickfolderlistmodel.cpp @@ -483,16 +483,12 @@ QUrl QQuickFolderListModel::parentFolder() const QString localFile = d->currentDir.toLocalFile(); if (!localFile.isEmpty()) { QDir dir(localFile); -#if defined(Q_OS_WIN) - if (dir.isRoot()) - dir.setPath(""); - else -#endif - dir.cdUp(); + if (dir.isRoot() || !dir.cdUp()) + return QUrl(); localFile = dir.path(); } else { - int pos = d->currentDir.path().lastIndexOf(QLatin1Char('/')); - if (pos == -1) + const int pos = d->currentDir.path().lastIndexOf(QLatin1Char('/')); + if (pos <= 0) return QUrl(); localFile = d->currentDir.path().left(pos); } @@ -536,8 +532,8 @@ void QQuickFolderListModel::componentComplete() { Q_D(QQuickFolderListModel); - if (!d->currentDir.isValid() || d->currentDir.toLocalFile().isEmpty() || !QDir().exists(d->currentDir.toLocalFile())) - setFolder(QUrl(QLatin1String("file://")+QDir::currentPath())); + if (!d->currentDir.isValid() || !d->currentDir.isLocalFile() || !QDir().exists(d->currentDir.toLocalFile())) + setFolder(QUrl::fromLocalFile(QDir::currentPath())); } /*! |