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 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; }