X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/1ab719d490d467218d65f2b03b3ec0ec717515b5..dc62d3840bea2aed95e75fc3429647f06dbd3774:/src/dolphinview.cpp diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index dcabe8329..7418997d9 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -29,7 +29,6 @@ #include #include #include -#include #include #include @@ -40,11 +39,13 @@ #include #include #include +#include #include #include #include #include +#include "dolphindropcontroller.h" #include "dolphinmodel.h" #include "dolphincolumnview.h" #include "dolphincontroller.h" @@ -319,7 +320,13 @@ bool DolphinView::supportsCategorizedSorting() const void DolphinView::selectAll() { - itemView()->selectAll(); + QAbstractItemView* view = itemView(); + // TODO: there seems to be a bug in QAbstractItemView::selectAll(); if + // the Ctrl-key is pressed (e. g. for Ctrl+A), selectAll() inverts the + // selection instead of selecting all items. This is bypassed for KDE 4.0 + // by invoking clearSelection() first. + view->clearSelection(); + view->selectAll(); } void DolphinView::invertSelection() @@ -751,6 +758,7 @@ void DolphinView::dropUrls(const KUrl::List& urls, const KUrl& destPath, const KFileItem& destItem) { + Q_ASSERT(!urls.isEmpty()); const KUrl& destination = !destItem.isNull() && destItem.isDir() ? destItem.url() : destPath; const KUrl sourceDir = KUrl(urls.first().directory()); @@ -762,7 +770,11 @@ void DolphinView::dropUrls(const KUrl::List& urls, void DolphinView::dropUrls(const KUrl::List& urls, const KUrl& destination) { - emit urlsDropped(urls, destination); + DolphinDropController dropController(this); + // forward doingOperation signal up to the mainwindow + connect(&dropController, SIGNAL(doingOperation(KonqFileUndoManager::CommandType)), + this, SIGNAL(doingOperation(KonqFileUndoManager::CommandType))); + dropController.dropUrls(urls, destination); } void DolphinView::updateSorting(DolphinView::Sorting sorting) @@ -986,7 +998,7 @@ KToggleAction* DolphinView::iconsModeAction(KActionCollection* actionCollection) KToggleAction* iconsView = actionCollection->add("icons"); iconsView->setText(i18nc("@action:inmenu View Mode", "Icons")); iconsView->setShortcut(Qt::CTRL | Qt::Key_1); - iconsView->setIcon(KIcon("fileview-icon")); + iconsView->setIcon(KIcon("view-list-icons")); iconsView->setData(QVariant::fromValue(IconsView)); return iconsView; } @@ -996,7 +1008,7 @@ KToggleAction* DolphinView::detailsModeAction(KActionCollection* actionCollectio KToggleAction* detailsView = actionCollection->add("details"); detailsView->setText(i18nc("@action:inmenu View Mode", "Details")); detailsView->setShortcut(Qt::CTRL | Qt::Key_2); - detailsView->setIcon(KIcon("fileview-detailed")); + detailsView->setIcon(KIcon("view-list-details")); detailsView->setData(QVariant::fromValue(DetailsView)); return detailsView; } @@ -1006,7 +1018,7 @@ KToggleAction* DolphinView::columnsModeAction(KActionCollection* actionCollectio KToggleAction* columnView = actionCollection->add("columns"); columnView->setText(i18nc("@action:inmenu View Mode", "Columns")); columnView->setShortcut(Qt::CTRL | Qt::Key_3); - columnView->setIcon(KIcon("fileview-column")); + columnView->setIcon(KIcon("view-file-columns")); columnView->setData(QVariant::fromValue(ColumnView)); return columnView; } @@ -1197,8 +1209,8 @@ QPair DolphinView::pasteInfo() const } if (ret.first) { - const KUrl::List urls = selectedUrls(); - const uint count = urls.count(); + const KFileItemList items = selectedItems(); + const uint count = items.count(); if (count > 1) { // pasting should not be allowed when more than one file // is selected @@ -1206,13 +1218,7 @@ QPair DolphinView::pasteInfo() const } else if (count == 1) { // Only one file is selected. Pasting is only allowed if this // file is a directory. - // TODO: this doesn't work with remote protocols; instead we need a - // m_activeViewContainer->selectedFileItems() to get the real KFileItems - const KFileItem fileItem(S_IFDIR, - KFileItem::Unknown, - urls.first(), - true); - ret.first = fileItem.isDir(); + ret.first = items.first().isDir(); } } return ret;