Review Request: Fix KWidgetItemeDelegate to correctly update widget positions when a row gets removed

Kevin Ottens ervin at kde.org
Tue Jan 25 06:59:44 GMT 2011


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://svn.reviewboard.kde.org/r/6401/#review9714
-----------------------------------------------------------


Sounds mostly good, I'm just wondering why you keep calling the updateRowRange in the slots connected to both rowsRemoved and rowsAboutToBeRemoved. Wouldn't doing it only once for one of those signals only be enough?


trunk/KDE/kdelibs/kdeui/itemviews/kwidgetitemdelegate.cpp
<http://svn.reviewboard.kde.org/r/6401/#comment10865>

    This whitespace should go away.



trunk/KDE/kdelibs/kdeui/itemviews/kwidgetitemdelegatepool_p.h
<http://svn.reviewboard.kde.org/r/6401/#comment10866>

    Wow! I can't believe we let this one in previously... using a QModelIndex there was so wrong! Good catch.


- Kevin


On Jan. 21, 2011, 6:21 p.m., Thomas Richard wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://svn.reviewboard.kde.org/r/6401/
> -----------------------------------------------------------
> 
> (Updated Jan. 21, 2011, 6:21 p.m.)
> 
> 
> Review request for kdelibs, Kevin Ottens and Rafael Fernández López.
> 
> 
> Summary
> -------
> 
> When a row other then the last got removed from a model, the widgets that are created by the itemdelegate are not moved. This is obviously a big problem when you start removing rows in between. The wrong widgets will show up in the wrong rows. This also happens when you insert a new row instead of appending it.
> 
> This patch will update the widgets position of the rows that come behind the one that is inserted/removed. I also had to change QModelIndex to QPersistentModelIndex at one place because the modelindex changes when your remove/insert a row in the middle and new widgets would get created.
> 
> 
> Diffs
> -----
> 
>   trunk/KDE/kdelibs/kdeui/itemviews/kwidgetitemdelegate.h 1214155 
>   trunk/KDE/kdelibs/kdeui/itemviews/kwidgetitemdelegate.cpp 1214155 
>   trunk/KDE/kdelibs/kdeui/itemviews/kwidgetitemdelegate_p.h 1214155 
>   trunk/KDE/kdelibs/kdeui/itemviews/kwidgetitemdelegatepool_p.h 1214155 
> 
> Diff: http://svn.reviewboard.kde.org/r/6401/diff
> 
> 
> Testing
> -------
> 
> *Compiling
> *Insert a row at the start/in the middle/at the end
> *Remove a row at the start/in the middle/at the end
> 
> Everything seems to work now.
> 
> 
> Thanks,
> 
> Thomas
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20110125/981bfbc6/attachment.htm>


More information about the kde-core-devel mailing list