From add0f6db79cd016c1aa89bc8e9942b08f3e41443 Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Wed, 3 Dec 2008 07:14:37 +0000 Subject: [PATCH] use KDirModel::mimeData() for cut/copy operations as suggested by David Faure CCMAIL: faure@kde.org svn path=/trunk/KDE/kdebase/apps/; revision=891865 --- src/dolphincolumnview.cpp | 5 +++++ src/dolphincolumnview.h | 6 ++++++ src/dolphincolumnwidget.cpp | 6 ++++++ src/dolphincolumnwidget.h | 5 +++++ src/dolphinview.cpp | 16 ++++++++++++++-- src/dolphinview.h | 5 +++++ 6 files changed, 41 insertions(+), 2 deletions(-) diff --git a/src/dolphincolumnview.cpp b/src/dolphincolumnview.cpp index 40a579f5a..24d618720 100644 --- a/src/dolphincolumnview.cpp +++ b/src/dolphincolumnview.cpp @@ -269,6 +269,11 @@ KFileItemList DolphinColumnView::selectedItems() const return activeColumn()->selectedItems(); } +QMimeData* DolphinColumnView::selectionMimeData() const +{ + return activeColumn()->selectionMimeData(); +} + void DolphinColumnView::selectAll() { activeColumn()->selectAll(); diff --git a/src/dolphincolumnview.h b/src/dolphincolumnview.h index ba50d943c..1fdd75850 100644 --- a/src/dolphincolumnview.h +++ b/src/dolphincolumnview.h @@ -112,6 +112,12 @@ public: * Returns the selected items of the active column. */ KFileItemList selectedItems() const; + + /** + * Returns the MIME data for the selected items + * of the active column. + */ + QMimeData* selectionMimeData() const; public slots: /** @see QAbstractItemView::selectAll() */ diff --git a/src/dolphincolumnwidget.cpp b/src/dolphincolumnwidget.cpp index 31f5c6193..86ab88207 100644 --- a/src/dolphincolumnwidget.cpp +++ b/src/dolphincolumnwidget.cpp @@ -277,6 +277,12 @@ KFileItemList DolphinColumnWidget::selectedItems() const return itemList; } +QMimeData* DolphinColumnWidget::selectionMimeData() const +{ + const QItemSelection selection = m_proxyModel->mapSelectionToSource(selectionModel()->selection()); + return m_dolphinModel->mimeData(selection.indexes()); +} + QStyleOptionViewItem DolphinColumnWidget::viewOptions() const { QStyleOptionViewItem viewOptions = QListView::viewOptions(); diff --git a/src/dolphincolumnwidget.h b/src/dolphincolumnwidget.h index 8e4f6dfcf..b3cd741fc 100644 --- a/src/dolphincolumnwidget.h +++ b/src/dolphincolumnwidget.h @@ -111,6 +111,11 @@ public: KFileItem itemAt(const QPoint& pos) const; KFileItemList selectedItems() const; + + /** + * Returns the MIME data for the selected items. + */ + QMimeData* selectionMimeData() const; protected: virtual QStyleOptionViewItem viewOptions() const; diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index 9eadcecb2..6fad094f7 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -701,7 +701,7 @@ void DolphinView::deleteSelectedItems() void DolphinView::cutSelectedItems() { - QMimeData* mimeData = new QMimeData(); + QMimeData* mimeData = selectionMimeData(); const KUrl::List kdeUrls = simplifiedSelectedUrls(); const KUrl::List mostLocalUrls; KonqMimeData::populateMimeData(mimeData, kdeUrls, mostLocalUrls, true); @@ -710,7 +710,7 @@ void DolphinView::cutSelectedItems() void DolphinView::copySelectedItems() { - QMimeData* mimeData = new QMimeData(); + QMimeData* mimeData = selectionMimeData(); const KUrl::List kdeUrls = selectedUrls(); const KUrl::List mostLocalUrls; KonqMimeData::populateMimeData(mimeData, kdeUrls, mostLocalUrls, false); @@ -1424,4 +1424,16 @@ bool DolphinView::itemsExpandable() const return (m_detailsView != 0) && m_detailsView->itemsExpandable(); } +QMimeData* DolphinView::selectionMimeData() const +{ + if (isColumnViewActive()) { + return m_columnView->selectionMimeData(); + } + + const QAbstractItemView* view = itemView(); + Q_ASSERT((view != 0) && (view->selectionModel() != 0)); + const QItemSelection selection = m_proxyModel->mapSelectionToSource(view->selectionModel()->selection()); + return m_dolphinModel->mimeData(selection.indexes()); +} + #include "dolphinview.moc" diff --git a/src/dolphinview.h b/src/dolphinview.h index 955f974d8..7d8d06bf2 100644 --- a/src/dolphinview.h +++ b/src/dolphinview.h @@ -704,6 +704,11 @@ private: * is currently shown. */ void deleteExpandedViews(); + + /** + * Returns the MIME data for all selected items. + */ + QMimeData* selectionMimeData() const; private: bool m_active : 1; -- 2.47.3