From 83e0633d3522d330027fa723be6c85ceb5603578 Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Sat, 28 Jul 2007 23:35:53 +0000 Subject: [PATCH] fix some drag & drop issues svn path=/trunk/KDE/kdebase/apps/; revision=693766 --- src/dolphincolumnview.cpp | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/src/dolphincolumnview.cpp b/src/dolphincolumnview.cpp index 3c8a43e2b..f7f348cdf 100644 --- a/src/dolphincolumnview.cpp +++ b/src/dolphincolumnview.cpp @@ -165,23 +165,24 @@ void ColumnWidget::updateSelection(const KUrl& url) setSelectionMode(SingleSelection); QItemSelectionModel* selModel = selectionModel(); if (url.isEmpty()) { - selModel->clear(); - return; - } - - const QAbstractProxyModel* proxyModel = static_cast(m_view->model()); - const KDirModel* dirModel = static_cast(proxyModel->sourceModel()); - const QModelIndex dirIndex = dirModel->indexForUrl(url); - const QModelIndex proxyIndex = proxyModel->mapFromSource(dirIndex); + if (!m_active) { + selModel->clear(); + } + } else { + const QAbstractProxyModel* proxyModel = static_cast(m_view->model()); + const KDirModel* dirModel = static_cast(proxyModel->sourceModel()); + const QModelIndex dirIndex = dirModel->indexForUrl(url); + const QModelIndex proxyIndex = proxyModel->mapFromSource(dirIndex); - const QItemSelection selection = selModel->selection(); - const bool isIndexSelected = selModel->isSelected(proxyIndex); + const QItemSelection selection = selModel->selection(); + const bool isIndexSelected = selModel->isSelected(proxyIndex); - if (!m_active && ((selection.count() > 1) || !isIndexSelected)) { - selModel->clear(); - } - if (!isIndexSelected) { - selModel->select(proxyIndex, QItemSelectionModel::Select); + if (!m_active && ((selection.count() > 1) || !isIndexSelected)) { + selModel->clear(); + } + if (!isIndexSelected) { + selModel->select(proxyIndex, QItemSelectionModel::Select); + } } } @@ -234,10 +235,6 @@ void ColumnWidget::dropEvent(QDropEvent* event) void ColumnWidget::mousePressEvent(QMouseEvent* event) { - if (m_active) { - selectionModel()->clear(); - } - QListView::mousePressEvent(event); const QModelIndex index = indexAt(event->pos()); -- 2.47.3