From: Peter Penz Date: Sat, 10 Dec 2011 20:47:56 +0000 (+0100) Subject: Show error-message when dropping a folder into itself X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/54713bab0b387bda14ee3733bc55f9755555e97f?ds=sidebyside Show error-message when dropping a folder into itself Thanks to Janardhan Reddy for the analysis of the issue! BUG: 283646 FIXED-IN: 4.8.0 --- diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index 2aa0525c9..8ec7f335d 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -823,7 +823,10 @@ void DolphinView::slotItemDropEvent(int index, QGraphicsSceneDragDropEvent* even event->buttons(), event->modifiers()); - DragAndDropHelper::dropUrls(destItem, url(), &dropEvent); + const QString error = DragAndDropHelper::dropUrls(destItem, url(), &dropEvent); + if (!error.isEmpty()) { + emit errorMessage(error); + } } void DolphinView::slotModelChanged(KItemModelBase* current, KItemModelBase* previous) diff --git a/src/views/draganddrophelper.cpp b/src/views/draganddrophelper.cpp index 8e5873480..ea92787ab 100644 --- a/src/views/draganddrophelper.cpp +++ b/src/views/draganddrophelper.cpp @@ -44,10 +44,13 @@ QString DragAndDropHelper::dropUrls(const KFileItem& destItem, QDBusConnection::sessionBus().call(message); } else { const KUrl::List urls = KUrl::List::fromMimeData(event->mimeData()); - const int urlsCount = urls.count(); - if (urlsCount == 1 && urls.first() == destination) { - return i18nc("@info:status", "A folder cannot be dropped into itself"); - } else if (dropToItem) { + foreach (const KUrl& url, urls) { + if (url == destination) { + return i18nc("@info:status", "A folder cannot be dropped into itself"); + } + } + + if (dropToItem) { KonqOperations::doDrop(destItem, destination, event, QApplication::activeWindow()); } else { KonqOperations::doDrop(KFileItem(), destination, event, QApplication::activeWindow());