X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/ae0829d3b8f0f4e44e9d861af3d5951ee1eaa304..b8a4e0fac2820ec8fc442c2abeea700ae4947e01:/src/dolphinview.cpp diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index bfca285cf..221d20376 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include @@ -294,6 +295,10 @@ void DolphinView::clearSelection() KFileItemList DolphinView::selectedItems() const { + if (isColumnViewActive()) { + return m_columnView->selectedItems(); + } + const QAbstractItemView* view = itemView(); // Our view has a selection, we will map them back to the DolphinModel @@ -324,12 +329,6 @@ KUrl::List DolphinView::selectedUrls() const return urls; } -KFileItem DolphinView::fileItem(const QModelIndex& index) const -{ - const QModelIndex dolphinModelIndex = m_proxyModel->mapToSource(index); - return m_dolphinModel->itemForIndex(dolphinModelIndex); -} - void DolphinView::setContentsPosition(int x, int y) { QAbstractItemView* view = itemView(); @@ -441,6 +440,7 @@ void DolphinView::updateView(const KUrl& url, const KUrl& rootUrl) return; } + m_iconManager->cancelPreviews(); m_controller->setUrl(url); // emits urlChanged, which we forward if (!rootUrl.isEmpty() && rootUrl.isParentOf(url)) { @@ -772,10 +772,14 @@ void DolphinView::emitSelectionChangedSignal() void DolphinView::openContextMenu(const QPoint& pos) { KFileItem item; - - const QModelIndex index = itemView()->indexAt(pos); - if (index.isValid() && (index.column() == DolphinModel::Name)) { - item = fileItem(index); + if (isColumnViewActive()) { + item = m_columnView->itemAt(pos); + } else { + const QModelIndex index = itemView()->indexAt(pos); + if (index.isValid() && (index.column() == DolphinModel::Name)) { + const QModelIndex dolphinModelIndex = m_proxyModel->mapToSource(index); + item = m_dolphinModel->itemForIndex(dolphinModelIndex); + } } if (m_toolTipManager != 0) { @@ -901,7 +905,10 @@ QPair DolphinView::pasteInfo() const KUrl::List urls = KUrl::List::fromMimeData(mimeData); if (!urls.isEmpty()) { - ret.first = true; + // disable the paste action if no writing is supported + KFileItem item(KFileItem::Unknown, KFileItem::Unknown, url()); + ret.first = KonqFileItemCapabilities(KFileItemList() << item).supportsWriting(); + if (urls.count() == 1) { const KFileItem item(KFileItem::Unknown, KFileItem::Unknown, urls.first(), true); ret.second = item.isDir() ? i18nc("@action:inmenu", "Paste One Folder") : @@ -1121,7 +1128,6 @@ void DolphinView::createView() view->setSelectionMode(QAbstractItemView::ExtendedSelection); - new KMimeTypeResolver(view, m_dolphinModel); m_iconManager = new IconManager(view, m_proxyModel); m_iconManager->setShowPreview(m_showPreview);