#include "ShoppingTreeItem.h"\r
\r
\r
-ShoppingTreeItem::ShoppingTreeItem(QDomNode &node, int row, ShoppingTreeItem *parent)\r
+ShoppingTreeItem::ShoppingTreeItem(QDomNode &node, ShoppingTreeItem *parent)\r
{\r
domNode = node;\r
- rowNumber = row;\r
parentItem = parent;\r
}\r
\r
}\r
if (i >= 0 && i < childElementsList.count()) {\r
childNode = childElementsList.at(i);\r
- ShoppingTreeItem *childItem = new ShoppingTreeItem(childNode, i, this);\r
+ ShoppingTreeItem *childItem = new ShoppingTreeItem(childNode, this);\r
childItems[i] = childItem;\r
return childItem;\r
}\r
/*******************************************************************/\r
int ShoppingTreeItem::row()\r
{\r
- return rowNumber;\r
+ return parent()->childItems.key(this);\r
+}\r
+\r
+/*******************************************************************/\r
+bool ShoppingTreeItem::addChild(ShoppingTreeItem *item, int row)\r
+{\r
+ offsetChildAtAdd(row);\r
+ childItems.insert(row, item);\r
+ return true;\r
+}\r
+\r
+/*******************************************************************/\r
+bool ShoppingTreeItem::removeChild(int row)\r
+{\r
+ delete childItems[row];\r
+ childItems.remove(row);\r
+ offsetChildAtRemove(row);\r
+ return true;\r
+}\r
+\r
+/*******************************************************************/\r
+void ShoppingTreeItem::offsetChildAtAdd(int row)\r
+{\r
+ if(childItems.contains(row))\r
+ {\r
+ offsetChildAtAdd(row + 1);\r
+ childItems.insert(row + 1, childItems[row]);\r
+ }\r
+}\r
+\r
+/*******************************************************************/\r
+void ShoppingTreeItem::offsetChildAtRemove(int row)\r
+{\r
+ if(childItems.contains(row + 1))\r
+ {\r
+ childItems.insert(row, childItems[row + 1]);\r
+ offsetChildAtRemove(row + 1);\r
+ }\r
}\r