]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Show error-message when dropping a folder into itself
authorPeter Penz <peter.penz19@gmail.com>
Sat, 10 Dec 2011 20:47:56 +0000 (21:47 +0100)
committerPeter Penz <peter.penz19@gmail.com>
Sat, 10 Dec 2011 20:50:24 +0000 (21:50 +0100)
Thanks to Janardhan Reddy for the analysis of the issue!

BUG: 283646
FIXED-IN: 4.8.0

src/views/dolphinview.cpp
src/views/draganddrophelper.cpp

index 2aa0525c9e80f8cae7c6870ce7f32860cce9656c..8ec7f335df5666e77ed2e7f490b12eb89072145a 100644 (file)
@@ -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)
index 8e58734808dd756ec45bd00b7c4586c4a9d19fb8..ea92787ab07d52c77e01b39116e83fad796cc9d6 100644 (file)
@@ -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());