git-svn-id: file:///svnroot/family-shop-mgr@27 26eb2498-383b-47a6-be48-5d6f36779e85
[family-shop-mgr] / code / family-shop-mgr / ShoppingTreeItem.cpp
index 6407767..c5a74e7 100644 (file)
@@ -69,7 +69,8 @@ QVariant ShoppingTreeItem::data(int column) const
 }\r
 \r
 /*******************************************************************/\r
-bool ShoppingTreeItem::insertChildren(int position, int count, int columns)\r
+bool ShoppingTreeItem::insertChildren(int position, int count, int columns,\r
+                                      ShoppingTreeModel* model)\r
 {\r
     if (position < 0 || position > childItems.size())\r
         return false;\r
@@ -78,7 +79,13 @@ bool ShoppingTreeItem::insertChildren(int position, int count, int columns)
         QVector<QVariant> data(columns);\r
         ShoppingTreeItem *item = new ShoppingTreeItem(data, this);\r
         childItems.insert(position, item);\r
-        emit childInserted(item);\r
+        if(model)\r
+        {\r
+            connect(item, SIGNAL(childItemSet(ShoppingTreeItem*)), model,\r
+                    SLOT(registerInsertedChild(ShoppingTreeItem*)));\r
+            connect(item, SIGNAL(childRemoved(ShoppingTreeItem*)), model,\r
+                    SLOT(deleteRemovedChild(ShoppingTreeItem*)));\r
+        }\r
     }\r
 \r
     return true;\r
@@ -158,10 +165,12 @@ bool ShoppingTreeItem::setItemType(ItemType type)
 \r
     m_itemType = type;\r
 \r
-    // release enough resources in case we call wait more than once\r
-    m_typeSemaphore.release(1000);\r
-\r
-    return (m_itemType == type) ? true : false;\r
+    if(m_itemType == type)\r
+    {\r
+        emit childItemSet(this);\r
+        return true;\r
+    }\r
+    return false;\r
 }\r
 \r
 /*******************************************************************/\r
@@ -169,9 +178,3 @@ ShoppingTreeItem::ItemType ShoppingTreeItem::getItemType() const
 {\r
     return m_itemType;\r
 }\r
-\r
-/*******************************************************************/\r
-void ShoppingTreeItem::waitItemTypeDefinition()\r
-{\r
-    m_typeSemaphore.acquire();\r
-}\r