diff -r 06ff229162e9 -r 11d3954df52a src/hbwidgets/itemviews/hblistitemcontainer_p.cpp --- a/src/hbwidgets/itemviews/hblistitemcontainer_p.cpp Fri May 14 16:09:54 2010 +0300 +++ b/src/hbwidgets/itemviews/hblistitemcontainer_p.cpp Thu May 27 13:10:59 2010 +0300 @@ -30,6 +30,7 @@ #include "hbabstractitemcontainer_p.h" #include "hbabstractitemview.h" #include "hblistviewitem.h" +#include "hblistview.h" #include "hbmodeliterator.h" #include @@ -129,7 +130,7 @@ bool HbListItemContainerPrivate::intoContainerBuffer(const QModelIndex &index) const { if (!mItems.isEmpty() - && mItems.first()->modelIndex().row() <= index.row() + && mItems.first()->modelIndex().row() <= index.row() && mItems.last()->modelIndex().row() >= index.row()){ return true; } else { @@ -237,17 +238,11 @@ if (animate) { Q_D(HbListItemContainer); - int itemCount = d->mItems.count(); - HbAbstractViewItem *item = 0; - for (int i = 0; i < itemCount; ++i) { - item = d->mItems.at(i); - if (item->modelIndex() == index) { - QPair pair(item, i); - d->mAnimatedItems.append(pair); - } - } - - if (!item) { + HbAbstractViewItem *viewItem = d->item(index); + if (viewItem) { + QPair pair(viewItem, d->mapToLayoutIndex(d->mItems.indexOf(viewItem))); + d->mAnimatedItems.append(pair); + } else { return; } } @@ -256,6 +251,19 @@ } /*! + Sets the modelIndexes of \a count container items starting from item at \a containerStartRow row of the container + to model's indexes starting from \a modelStartRow +*/ +void HbListItemContainer::setItemModelIndexes(int containerStartRow, int modelStartRow, int count) +{ + Q_D(HbListItemContainer); + + for (int i = 0; i <= count; ++i) { + setItemModelIndex(d->mItems.at(containerStartRow + i), d->mItemView->modelIterator()->index(modelStartRow + i)); + } +} + +/*! \reimp */ void HbListItemContainer::itemRemoved( HbAbstractViewItem *item, bool animate )