#include <QList>\r
#include <QVariant>\r
#include <QVector>\r
+#include <QSemaphore>\r
\r
-class ShoppingTreeItem\r
+class ShoppingTreeItem : public QObject\r
{\r
+Q_OBJECT\r
+\r
public:\r
+\r
+ enum ItemType\r
+ {\r
+ Category = 0,\r
+ Item = 1,\r
+\r
+ NotDefined = -1\r
+ };\r
+\r
ShoppingTreeItem(const QVector<QVariant> &data, ShoppingTreeItem *parent = 0);\r
~ShoppingTreeItem();\r
\r
int columnCount() const;\r
QVariant data(int column) const;\r
bool insertChildren(int position, int count, int columns);\r
+ bool insertColumns(int position, int columns);\r
ShoppingTreeItem *parent();\r
bool removeChildren(int position, int count);\r
+ bool removeColumns(int position, int columns);\r
int childNumber() const;\r
bool setData(int column, const QVariant &value);\r
+ bool setItemType(const ItemType type);\r
+ ItemType getItemType() const;\r
+ void waitItemTypeDefinition();\r
+\r
+signals:\r
+ void childInserted(ShoppingTreeItem *item);\r
+ void dataChanged(int column);\r
+ void childRemoved(ShoppingTreeItem *item);\r
\r
private:\r
QList<ShoppingTreeItem*> childItems;\r
QVector<QVariant> itemData;\r
ShoppingTreeItem *parentItem;\r
+\r
+ ItemType m_itemType;\r
+ QSemaphore m_typeSemaphore;\r
};\r
\r
#endif // SHOPPINGTREEITEM_H\r