defuze.me  Client
editabletreeitem.hpp
00001 /**************************************************************************
00002 ** defuze.me Epitech Innovative Project
00003 **
00004 ** Copyright 2010-2012
00005 **   Athena Calmettes - Jocelyn De La Rosa - Francois Gaillard
00006 **   Adrien Jarthon - Alexandre Moore - Luc Peres - Arnaud Sellier
00007 **
00008 ** All rights reserved.
00009 **************************************************************************/
00010 
00011 #ifndef EDITABLETREEITEM_HPP
00012 #define EDITABLETREEITEM_HPP
00013 
00014 #include <QList>
00015 #include <QVariant>
00016 #include <QVector>
00017 #include <QModelIndex>
00018 
00019 class EditableTreeItem
00020 {
00021 public:
00022     EditableTreeItem(const QVector<QVariant> &data, EditableTreeItem *parent = 0);
00023     EditableTreeItem(const QString &title, EditableTreeItem *parent = 0);
00024     ~EditableTreeItem();
00025 
00026     EditableTreeItem *child(int number);
00027     int childCount() const;
00028     int columnCount() const;
00029     QVariant data(int column) const;
00030     bool insertChildren(int position, int count, int columns);
00031     bool insertColumns(int position, int columns);
00032     EditableTreeItem *parent();
00033     bool removeChildren(int position, int count);
00034     bool removeColumns(int position, int columns);
00035     int childNumber() const;
00036     bool setData(int column, const QVariant &value);
00037 
00038     QModelIndex index;
00039 
00040 protected:
00041     QList<EditableTreeItem*> childItems;
00042     QVector<QVariant> itemData;
00043     EditableTreeItem *parentItem;
00044 };
00045 
00046 #endif // EDITABLETREEITEM_HPP