Version: 0.7.91>=20030909 (using KDE 3.1.3) Installed from: compiled sources Compiler: gcc version 3.2.2 OS: Linux (i686) release 2.4.22.2-mark-athlon- this is just some silly thing, but if u hide something (offline users, empty groups), the contact list tree shows up strange: under the [+], [-] or left of the contact icon, there are these dots. Simply reproducable: 1. Make sure you have some empty groups and the bottom group is empty 2. Hide empty groups 3. Check the side of the tree! shows up v. weird. i'll make a screenshot if i have time.
Subject: Re: [Kopete-devel] New: contact list hiding mistake (cosmetical) Bug in QListView. Known already to TT. I don't expect a fix though as QListView will disappear in Qt 4. Feel free to submit your own patch :)
not an expert at this...
*** Bug 65976 has been marked as a duplicate of this bug. ***
*sigh*...not fixed...invalid.
QT bug.
Actually not. QListView drawing for KDE styles is done by code in kdelibs/kdefx. Qt is broken too, of course, but we can fix this.
Created attachment 3362 [details] do not extend dotlinery for a hidden item Patch attached. Not sure whether I want to touch this before 3.2, though --- the code is non-trivial, while the bug is very minor.
Subject: kdelibs/kdefx CVS commit by orlovich: Fully skip invisible items to avoid drawing "extra" lines if some end items are invisible. (#64083) CCMAIL:64083-done@bugs.kde.org M +14 -2 kstyle.cpp 1.47 --- kdelibs/kdefx/kstyle.cpp #1.46:1.47 @@ -985,4 +985,16 @@ int KStyle::pixelMetric(PixelMetric m, c } +//Helper to find the next sibling that's not hidden +static QListViewItem* nextVisibleSibling(QListViewItem* item) +{ + QListViewItem* sibling = item; + do + { + sibling = sibling->nextSibling(); + } + while (sibling && !sibling->isVisible()); + + return sibling; +} void KStyle::drawComplexControl( ComplexControl control, @@ -1213,8 +1225,8 @@ void KStyle::drawComplexControl( Complex y += child->totalHeight(); - child = child->nextSibling(); + child = nextVisibleSibling(child); } - if ( child ) // there's a child, so move linebot to edge of rectangle + if ( child ) // there's a child to draw, so move linebot to edge of rectangle linebot = r.height();