diff -r 82b66994846c -r dbb8300717f7 contentstorage/caclient/src/caitemmodel.cpp --- a/contentstorage/caclient/src/caitemmodel.cpp Fri Apr 30 15:22:08 2010 +0300 +++ b/contentstorage/caclient/src/caitemmodel.cpp Fri May 14 17:24:44 2010 +0300 @@ -712,10 +712,6 @@ && ids.indexOf(id) == mEntries.indexOf(id)) { emit m_q->dataChanged(index(mEntries.indexOf(id)), index( mEntries.indexOf(id))); - } else if (ids.indexOf(id) < 0){ - removeItem(id); - } else if (mEntries.indexOf(id) < 0){ - addItem(id); } else if (mParentEntry && id == mParentEntry->id()) { updateParentEntry(); m_q->reset(); @@ -737,9 +733,17 @@ //we use beginInsertRows and endInsertRows to emit proper signal //(see Qt documentation of QAbstractItemModel) if (mEntries.indexOf(id) < 0 && row >= 0) { - m_q->beginInsertRows(QModelIndex(), row, row); - mEntries.insert(row, id); + if (row > mEntries.count()) { + m_q->beginInsertRows(QModelIndex(), mEntries.count(), mEntries.count()); + mEntries.insert(mEntries.count(), id); + } else { + m_q->beginInsertRows(QModelIndex(), row , row); + mEntries.insert(row, id); + } m_q->endInsertRows(); + } else if (row == -1) { + //we udpade whole model because we do not know parent collecion for given item + updateModel(); } CACLIENTTEST_FUNC_EXIT("CaItemModelPrivate::addItem"); }