contentstorage/caclient/src/caitemmodel.cpp
changeset 83 156f692b1687
parent 80 397d00875918
child 103 b99b84bcd2d1
--- 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<int> 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);
+    }
+}