From: Rafael Fernández López Date: Sat, 14 Jul 2007 04:01:58 +0000 (+0000) Subject: If we have different heights on the same row, make it possible to update taller items... X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/1bc9506260a42691ded588db1f708fc11913774d?ds=inline If we have different heights on the same row, make it possible to update taller items correctly when the mouse is over the part that goes "out of the little one" line svn path=/trunk/KDE/kdebase/apps/; revision=687625 --- diff --git a/src/kcategorizedview.cpp b/src/kcategorizedview.cpp index 3255de9a4..cc83e2de9 100644 --- a/src/kcategorizedview.cpp +++ b/src/kcategorizedview.cpp @@ -98,6 +98,17 @@ const QModelIndexList &KCategorizedView::Private::intersectionSet(const QRect &r intersectedIndexes.clear(); + int itemHeight; + + if (listView->gridSize().isEmpty()) + { + itemHeight = biggestItemSize.height(); + } + else + { + itemHeight = listView->gridSize().height(); + } + // Lets find out where we should start int top = proxyModel->rowCount() - 1; int bottom = 0; @@ -108,10 +119,13 @@ const QModelIndexList &KCategorizedView::Private::intersectionSet(const QRect &r index = elementDictionary[proxyModel->index(middle, 0)]; indexVisualRect = visualRect(index); + // We need the whole height (not only the visualRect). This will help us to update + // all needed indexes correctly (ereslibre) + indexVisualRect.setHeight(indexVisualRect.height() + (itemHeight - indexVisualRect.height())); if (qMax(indexVisualRect.topLeft().y(), indexVisualRect.bottomRight().y()) < qMin(rect.topLeft().y(), - rect.bottomRight().y())) + rect.bottomRight().y())) { bottom = middle + 1; }