┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2011-12-10 21:47:56 +0100
committerPeter Penz <[email protected]>2011-12-10 21:50:24 +0100
commit54713bab0b387bda14ee3733bc55f9755555e97f (patch)
tree22b2146924d1125b37c90984d524addd48b9ac4c
parent542a80874bcf8ca1345c63e3f34feb868ec368e0 (diff)
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
-rw-r--r--src/views/dolphinview.cpp5
-rw-r--r--src/views/draganddrophelper.cpp11
2 files changed, 11 insertions, 5 deletions
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());