diff -r 397d00875918 -r 156f692b1687 contentstorage/caclient/src/caitemmodel.cpp --- a/contentstorage/caclient/src/caitemmodel.cpp Thu May 27 13:11:12 2010 +0300 +++ b/contentstorage/caclient/src/caitemmodel.cpp Fri Jun 11 13:58:37 2010 +0300 @@ -955,6 +955,7 @@ void CaItemModelPrivate::updateModelItem(int id, ChangeType changeType) { CACLIENTTEST_FUNC_ENTRY("CaItemModelPrivate::updateModelItem"); + int previousCount = rowCount(); switch (changeType) { case AddChangeType: addItem(id); @@ -966,6 +967,7 @@ updateItemData(id); break; } + emitEmpty(previousCount); CACLIENTTEST_FUNC_EXIT("CaItemModelPrivate::updateModelItem"); } @@ -976,6 +978,8 @@ void CaItemModelPrivate::updateModelContent(int id) { Q_UNUSED(id); + int previousCount = rowCount(); + CACLIENTTEST_FUNC_ENTRY("CaItemModelPrivate::updateModelContent"); QList ids = mService->getEntryIds(mQuery); @@ -984,5 +988,20 @@ } else { removeItems(ids); } + emitEmpty(previousCount); CACLIENTTEST_FUNC_EXIT("CaItemModelPrivate::updateModelContent"); } + +/*! + Emits empty signal if model state was changed + \param id of parent + */ +void CaItemModelPrivate::emitEmpty(int previousCount) +{ + if ( previousCount && !rowCount()) { + emit m_q->empty(true); + } + if ( !previousCount && rowCount()) { + emit m_q->empty(false); + } +}