┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/klistview.cpp
diff options
context:
space:
mode:
authorRafael Fernández López <[email protected]>2007-06-28 23:29:47 +0000
committerRafael Fernández López <[email protected]>2007-06-28 23:29:47 +0000
commit71680def7f7c9b3e59d4bc93816b87e6131d35da (patch)
tree60f386ba8c936890370cb4cf60800874a67b2fb9 /src/klistview.cpp
parent123e5008ae1feba49a4a2d2ca5cf3bf97fda30ac (diff)
++optimization
svn path=/trunk/KDE/kdebase/apps/; revision=681449
Diffstat (limited to 'src/klistview.cpp')
-rw-r--r--src/klistview.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/klistview.cpp b/src/klistview.cpp
index fa78de638..403e984a2 100644
--- a/src/klistview.cpp
+++ b/src/klistview.cpp
@@ -409,6 +409,30 @@ void KListView::Private::drawDraggedItems(QPainter *painter)
}
}
+void KListView::Private::drawDraggedItems()
+{
+ int dx;
+ int dy;
+ QRect rectToUpdate;
+ QRect currentRect;
+ foreach (const QModelIndex &index, listView->selectionModel()->selectedIndexes())
+ {
+ dx = mousePosition.x() - initialPressPosition.x() + listView->horizontalOffset();
+ dy = mousePosition.y() - initialPressPosition.y() + listView->verticalOffset();
+
+ currentRect = visualRect(index);
+ currentRect.adjust(dx, dy, dx, dy);
+
+ rectToUpdate = rectToUpdate.united(currentRect);
+ }
+
+ listView->viewport()->update(lastDraggedItemsRect);
+
+ lastDraggedItemsRect = rectToUpdate;
+
+ listView->viewport()->update(rectToUpdate);
+}
+
//==============================================================================
@@ -890,6 +914,8 @@ void KListView::dragMoveEvent(QDragMoveEvent *event)
}
d->dragLeftViewport = false;
+
+ d->drawDraggedItems();
}
void KListView::dragLeaveEvent(QDragLeaveEvent *event)