- const KUrl::List urls = KUrl::List::fromMimeData(event->mimeData());
- const int urlsCount = urls.count();
- if ((urlsCount == 1) && (urls.first() == destination)) {
- emit errorMessage(i18nc("@info:status", "A folder cannot be dropped into itself"));
- } else if (dropToItem) {
- KonqOperations::doDrop(destItem, destination, event, widget);
- } else {
- KonqOperations::doDrop(KFileItem(), destination, event, widget);
- }
- }
-}
-
-DragAndDropHelper::DragAndDropHelper()
- : m_dragSource(0)
-{
-}
-
-QPixmap DragAndDropHelper::createDragPixmap(QAbstractItemView* itemView) const
-{
- const QModelIndexList selectedIndexes = itemView->selectionModel()->selectedIndexes();
- Q_ASSERT(!selectedIndexes.isEmpty());
-
- QAbstractProxyModel* proxyModel = static_cast<QAbstractProxyModel*>(itemView->model());
- KDirModel* dirModel = static_cast<KDirModel*>(proxyModel->sourceModel());
-
- const int itemCount = selectedIndexes.count();
-
- // If more than one item is dragged, align the items inside a
- // rectangular grid. The maximum grid size is limited to 5 x 5 items.
- int xCount = 3;
- int size = KIconLoader::SizeMedium;
- if (itemCount > 16) {
- xCount = 5;
- size = KIconLoader::SizeSmall;
- } else if (itemCount > 9) {
- xCount = 4;
- size = KIconLoader::SizeSmallMedium;
- }
-
- if (itemCount < xCount) {
- xCount = itemCount;
- }
-
- int yCount = itemCount / xCount;
- if (itemCount % xCount != 0) {
- ++yCount;
- }
- if (yCount > xCount) {
- yCount = xCount;
+ // Drop into a directory or a desktop-file
+ KIO::DropJob *job = KIO::drop(event, destUrl);
+ KJobWidgets::setWindow(job, window);
+ return job;