\r
#include "ShoppingTreeItem.h"\r
\r
-ShoppingTreeItem::ShoppingTreeItem(const QVector<QVariant> &data, TreeItem *parent)\r
+ShoppingTreeItem::ShoppingTreeItem(const QVector<QVariant> &data, ShoppingTreeItem *parent)\r
{\r
parentItem = parent;\r
itemData = data;\r
{\r
qDeleteAll(childItems);\r
}\r
+\r
+ShoppingTreeItem *ShoppingTreeItem::child(int number)\r
+{\r
+ return childItems.value(number);\r
+}\r
+\r
+int ShoppingTreeItem::childCount() const\r
+{\r
+ return childItems.count();\r
+}\r
+\r
+int ShoppingTreeItem::childNumber() const\r
+{\r
+ if (parentItem)\r
+ return parentItem->childItems.indexOf(const_cast<ShoppingTreeItem*>(this));\r
+\r
+ return 0;\r
+}\r
+\r
+int ShoppingTreeItem::columnCount() const\r
+{\r
+ return itemData.count();\r
+}\r
+\r
+QVariant ShoppingTreeItem::data(int column) const\r
+{\r
+ return itemData.value(column);\r
+}\r
+\r
+bool ShoppingTreeItem::insertChildren(int position, int count, int columns)\r
+{\r
+ if (position < 0 || position > childItems.size())\r
+ return false;\r
+\r
+ for (int row = 0; row < count; ++row) {\r
+ QVector<QVariant> data(columns);\r
+ ShoppingTreeItem *item = new ShoppingTreeItem(data, this);\r
+ childItems.insert(position, item);\r
+ }\r
+\r
+ return true;\r
+}\r
+\r
+bool ShoppingTreeItem::insertColumns(int position, int columns)\r
+{\r
+ if (position < 0 || position > itemData.size())\r
+ return false;\r
+\r
+ for (int column = 0; column < columns; ++column)\r
+ itemData.insert(position, QVariant());\r
+\r
+ foreach (ShoppingTreeItem *child, childItems)\r
+ child->insertColumns(position, columns);\r
+\r
+ return true;\r
+}\r
+\r
+ShoppingTreeItem *ShoppingTreeItem::parent()\r
+{\r
+ return parentItem;\r
+}\r
+\r
+bool ShoppingTreeItem::removeChildren(int position, int count)\r
+{\r
+ if (position < 0 || position + count > childItems.size())\r
+ return false;\r
+\r
+ for (int row = 0; row < count; ++row)\r
+ delete childItems.takeAt(position);\r
+\r
+ return true;\r
+}\r
+\r
+bool ShoppingTreeItem::removeColumns(int position, int columns)\r
+{\r
+ if (position < 0 || position + columns > itemData.size())\r
+ return false;\r
+\r
+ for (int column = 0; column < columns; ++column)\r
+ itemData.remove(position);\r
+\r
+ foreach (ShoppingTreeItem *child, childItems)\r
+ child->removeColumns(position, columns);\r
+\r
+ return true;\r
+}\r
+\r
+bool ShoppingTreeItem::setData(int column, const QVariant &value)\r
+{\r
+ if (column < 0 || column >= itemData.size())\r
+ return false;\r
+\r
+ itemData[column] = value;\r
+ return true;\r
+}\r