X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/e98e218564694ccca6c0a2962e56ffb7256a11ea..11289b4fc3efbc074b668d4516cd896f8ade9761:/src/draganddrophelper.cpp diff --git a/src/draganddrophelper.cpp b/src/draganddrophelper.cpp index d8c55ed12..ff319dfb8 100644 --- a/src/draganddrophelper.cpp +++ b/src/draganddrophelper.cpp @@ -101,13 +101,24 @@ void DragAndDropHelper::dropUrls(const KFileItem& destItem, QDBusConnection::sessionBus().call(message); } else { const KUrl::List urls = KUrl::List::fromMimeData(event->mimeData()); - const KUrl sourceDir = KUrl(urls.first().directory()); - if (sourceDir == destination) { - const QString msg = i18ncp("@info:status", - "The dropped item is already inside the folder %2", - "The dropped items are already inside the folder %2", - urls.count(), destination.fileName()); - emit informationMessage(msg); + const KUrl source = urls.first(); + const KUrl sourceDir = KUrl(source.directory()); + const bool singleSelection = (urls.count() == 1); + + if (singleSelection && (source == destination)) { + emit errorMessage(i18nc("@info:status", "A folder cannot be dropped into itself")); + } else if (sourceDir == destination) { + QString msg; + if (singleSelection) { + msg = i18nc("@info:status", + "The dropped item %1 is already inside " + "the folder %2", source.fileName(), destination.fileName()); + } else { + msg = i18nc("@info:status", + "The dropped items are already inside the folder %1", + destination.fileName()); + } + emit errorMessage(msg); } else if (dropToItem) { KonqOperations::doDrop(destItem, destination, event, widget); } else {