diff --git a/src/panels/places/placesitemmodel.cpp b/src/panels/places/placesitemmodel.cpp --- a/src/panels/places/placesitemmodel.cpp +++ b/src/panels/places/placesitemmodel.cpp @@ -69,7 +69,7 @@ void PlacesItemModel::createPlacesItem(const QString &text, const QUrl &url, const QString &iconName, const QString &appName) { - createPlacesItem(text, url, iconName, appName, -1); + m_sourceModel->addPlace(text, url, iconName, appName); } void PlacesItemModel::createPlacesItem(const QString &text, const QUrl &url, const QString &iconName, const QString &appName, int after) @@ -362,8 +362,11 @@ // Only directories outside the trash are allowed continue; } - - createPlacesItem(text, url, KIO::iconNameForUrl(url), {}, qMax(0, index - 1)); + if (index < 0) { + createPlacesItem(text, url, KIO::iconNameForUrl(url), {}); + } else { + createPlacesItem(text, url, KIO::iconNameForUrl(url), {}, qMax(-1, index - 1)); + } } } // will save bookmark alteration and fix sort if that is broken by the drag/drop operation diff --git a/src/panels/places/placespanel.cpp b/src/panels/places/placespanel.cpp --- a/src/panels/places/placespanel.cpp +++ b/src/panels/places/placespanel.cpp @@ -375,6 +375,7 @@ void PlacesPanel::slotItemDropEvent(int index, QGraphicsSceneDragDropEvent* event) { if (index < 0) { + m_model->dropMimeDataBefore(index, event->mimeData()); return; }