}\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
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
\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
{\r
return m_itemType;\r
}\r
-\r
-/*******************************************************************/\r
-void ShoppingTreeItem::waitItemTypeDefinition()\r
-{\r
- m_typeSemaphore.acquire();\r
-}\r