src/hbwidgets/itemviews/hblistitemcontainer_p.cpp
changeset 3 11d3954df52a
parent 2 06ff229162e9
child 6 c3690ec91ef8
--- 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 )