--- 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 <qmath.h>
@@ -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<HbAbstractViewItem *, int> pair(item, i);
- d->mAnimatedItems.append(pair);
- }
- }
-
- if (!item) {
+ HbAbstractViewItem *viewItem = d->item(index);
+ if (viewItem) {
+ QPair<HbAbstractViewItem *, int> 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 )