git-svn-id: file:///svnroot/family-shop-mgr@11 26eb2498-383b-47a6-be48-5d6f36779e85
[family-shop-mgr] / code / family-shop-mgr / ShoppingTreeItem.h
index 71b71fe..2ff73b0 100644 (file)
 #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
@@ -37,15 +49,28 @@ public:
     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