]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/panels/places/placesitemmodel.cpp
Fix for crash which was introduced by commit
[dolphin.git] / src / panels / places / placesitemmodel.cpp
index e49a6a9da61fe5c4b6596472b5863a62ba15a7d2..cfe6d2e462dfdeb2d0ea97a4744d718df2737f3b 100644 (file)
@@ -214,8 +214,12 @@ int PlacesItemModel::closestItem(const QUrl& url) const
 
     for (int i = 0; i < count(); ++i) {
         const QUrl itemUrl = placesItem(i)->url();
-        if (itemUrl.isParentOf(url)) {
-            const int length = itemUrl.toDisplayString().length();
+        if (url == itemUrl) {
+            // We can't find a closer one, so stop here.
+            foundIndex = i;
+            break;
+        } else if (itemUrl.isParentOf(url)) {
+            const int length = itemUrl.path().length();
             if (length > maxLength) {
                 foundIndex = i;
                 maxLength = length;
@@ -653,7 +657,7 @@ void PlacesItemModel::updateBookmarks()
                     found = true;
                     if (newBookmark.metaDataItem("UDI").isEmpty()) {
                         item->setBookmark(newBookmark);
-                        item->setText(i18nc("KFile System Bookmarks", newBookmark.text().toUtf8().data()));
+                        item->setText(i18nc("KFile System Bookmarks", newBookmark.text().toUtf8().constData()));
                     }
                     break;
                 }
@@ -760,7 +764,7 @@ void PlacesItemModel::loadBookmarks()
                     // text, the retranslation will fail and the users custom text is still used.
                     // It is important to use "KFile System Bookmarks" as context (see
                     // createSystemBookmarks()).
-                    item->setText(i18nc("KFile System Bookmarks", bookmark.text().toUtf8().data()));
+                    item->setText(i18nc("KFile System Bookmarks", bookmark.text().toUtf8().constData()));
                     item->setSystemItem(true);
                 }
 
@@ -869,22 +873,22 @@ PlacesItem* PlacesItemModel::createSystemPlacesItem(const SystemBookmarkData& da
             if (path == QLatin1String("/documents")) {
                 props.setViewMode(DolphinView::DetailsView);
                 props.setPreviewsShown(false);
-                props.setVisibleRoles(QList<QByteArray>() << "text" << "path");
+                props.setVisibleRoles({"text", "path"});
             } else if (path == QLatin1String("/images")) {
                 props.setViewMode(DolphinView::IconsView);
                 props.setPreviewsShown(true);
-                props.setVisibleRoles(QList<QByteArray>() << "text" << "imageSize");
+                props.setVisibleRoles({"text", "imageSize"});
             } else if (path == QLatin1String("/audio")) {
                 props.setViewMode(DolphinView::DetailsView);
                 props.setPreviewsShown(false);
-                props.setVisibleRoles(QList<QByteArray>() << "text" << "artist" << "album");
+                props.setVisibleRoles({"text", "artist", "album"});
             } else if (path == QLatin1String("/videos")) {
                 props.setViewMode(DolphinView::IconsView);
                 props.setPreviewsShown(true);
-                props.setVisibleRoles(QList<QByteArray>() << "text");
+                props.setVisibleRoles({"text"});
             } else if (data.url.scheme() == "timeline") {
                 props.setViewMode(DolphinView::DetailsView);
-                props.setVisibleRoles(QList<QByteArray>() << "text" << "date");
+                props.setVisibleRoles({"text", "date"});
             }
         }
     }