]> cloud.milkyroute.net Git - dolphin.git/commitdiff
fix some drag & drop issues
authorPeter Penz <peter.penz19@gmail.com>
Sat, 28 Jul 2007 23:35:53 +0000 (23:35 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Sat, 28 Jul 2007 23:35:53 +0000 (23:35 +0000)
svn path=/trunk/KDE/kdebase/apps/; revision=693766

src/dolphincolumnview.cpp

index 3c8a43e2bb2bf014b30cbe042516bd09526b3c98..f7f348cdffac5c0a3d18ab72c6d0d5826750fe86 100644 (file)
@@ -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<const QAbstractProxyModel*>(m_view->model());
-    const KDirModel* dirModel = static_cast<const KDirModel*>(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<const QAbstractProxyModel*>(m_view->model());
+        const KDirModel* dirModel = static_cast<const KDirModel*>(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());