1 #ifndef __libquark_gui_BasicTreeModel_hxx 2 #define __libquark_gui_BasicTreeModel_hxx 21 template<
class T,
class IS = QDataStream,
class OS = QDataStream>
30 virtual int rowCount(
const QModelIndex &
parent = QModelIndex())
const;
32 virtual QVariant
headerData(
int section, Qt::Orientation orientation,
33 int role = Qt::DisplayRole)
const;
35 virtual QVariant
data(
const QModelIndex &
index,
int role = Qt::DisplayRole)
37 virtual bool setData(
const QModelIndex &index,
const QVariant &value,
38 int role = Qt::EditRole);
41 virtual QModelIndex
index(
int row,
int column,
42 const QModelIndex &
parent = QModelIndex())
const;
43 virtual QModelIndex
parent(
const QModelIndex &index)
const;
45 virtual bool canFetchMore(
const QModelIndex &index)
const;
46 virtual void fetchMore(
const QModelIndex &index);
48 virtual Qt::ItemFlags
flags(
const QModelIndex & index)
const;
51 const QModelIndex &parent = QModelIndex());
54 virtual QMimeData *
mimeData(
const QModelIndexList &indexes)
const;
55 virtual bool dropMimeData(
const QMimeData *mimeData, Qt::DropAction action,
56 int row,
int column,
const QModelIndex &parent);
60 void addItem(T *parent, T *item);
62 void setItems(T *parent, QList<T *> items);
63 T *
getItemAt(
const T *parent,
int index)
const;
71 int indexOf(
const T *parent,
const T *item)
const;
79 virtual bool isLeaf(
const T &item)
const = 0;
81 virtual QVariant
getFieldValue(
const T &item,
int field)
const = 0;
83 virtual bool write(OS &stream)
const;
84 virtual bool read(IS &stream);
89 typedef BasicTreeModelBase::Options
Options;
91 BasicTreeModel(T *root, Options options = 0, QObject *parent = NULL);
93 virtual QIcon
getIcon(
const T &item)
const;
98 virtual bool setFieldValue(T *item,
int field,
const QVariant &value);
103 virtual bool isDynamic(
const T &item)
const;
110 Qt::DropAction action,
int row,
111 int column,
const QModelIndex &parent);
116 virtual void writeItem(
const T &item, OS &stream)
const;
117 virtual void writeEndItem(
const T &item, OS &stream)
const;
129 bool readInto(IS &stream,
const QModelIndex &parent,
int row);
130 inline Node *nodeForIndex(
const QModelIndex &index)
const;
131 QModelIndex indexForNode(
const Node *node)
const;
132 bool serialize(
const Node *node, OS &stream,
bool childrenOnly =
false)
134 bool deserialize(Node *node, IS &stream);
135 void addNodesToMap(Node *node);
136 void removeNodesFromMap(Node *node);
139 QMap<const T *, Node *> _nodeMap;
142 #include <quark/BasicTreeModelImpl.h++> 147 #endif // __libquark_gui_BasicTableModel_hxx T * getItemAt(const T *parent, int index) const
virtual bool write(OS &stream) const
virtual bool dropMimeData(const QMimeData *mimeData, Qt::DropAction action, int row, int column, const QModelIndex &parent)
virtual Qt::ItemFlags flags(const QModelIndex &index) const
virtual bool setFieldValue(T *item, int field, const QVariant &value)
virtual void readEndItem(T *item, IS &stream)
virtual bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole)
Definition: BasicTreeModel.h++:22
virtual bool hasChildren(const QModelIndex &parent=QModelIndex()) const
virtual QStringList otherMimeTypes() const
int itemCount(const T *parent) const
Option
Definition: BasicTreeModelBase.h++:19
virtual bool readEpilog(IS &stream)
virtual Qt::AlignmentFlag getFieldAlignment(const T &item, int field) const
virtual ~BasicTreeModel()
Destructor.
BasicTreeModel(T *root, Options options=0, QObject *parent=NULL)
virtual bool isDraggable(const T &item) const
virtual bool isRootDroppable() const
virtual bool isLeaf(const T &item) const =0
virtual void writeItem(const T &item, OS &stream) const
virtual QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const
virtual bool dropOtherMimeData(const QMimeData *mimeData, Qt::DropAction action, int row, int column, const QModelIndex &parent)
QModelIndex getIndexForItem(const T *item) const
Definition: BasicTreeModelBase.h++:13
void removeChildItem(T *parent, int index)
virtual T * readItem(IS &stream)
virtual void loadChildren(T *parent)
virtual void writeEndItem(const T &item, OS &stream) const
virtual QVariant getFieldValue(const T &item, int field) const =0
virtual bool removeRows(int row, int count, const QModelIndex &parent=QModelIndex())
virtual bool readProlog(IS &stream)
virtual QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const
Definition: BarChartView.h++:6
virtual QIcon getIcon(const T &item) const
virtual QModelIndex parent(const QModelIndex &index) const
int indexOf(const T *parent, const T *item) const
void unloadItemsForIndex(const QModelIndex &parent)
virtual int rowCount(const QModelIndex &parent=QModelIndex()) const
T * takeItemAt(const T *parent, int index)
virtual bool isDynamic(const T &item) const
virtual QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const
BasicTreeModelBase::Option Option
Definition: BasicTreeModel.h++:88
virtual void writeProlog(OS &stream) const
virtual void writeEpilog(OS &stream) const
virtual void fetchMore(const QModelIndex &index)
virtual int columnCount(const QModelIndex &parent=QModelIndex()) const
void setItems(T *parent, QList< T *> items)
void insertItemAt(T *parent, int index, T *item)
virtual QMimeData * mimeData(const QModelIndexList &indexes) const
virtual QString itemMimeType() const
T * getItemForIndex(const QModelIndex &index) const
virtual QString getFieldToolTip(const T &item, int field) const
void addItem(T *parent, T *item)
T * getParentItem(const T *item) const
virtual bool canFetchMore(const QModelIndex &index) const
virtual bool isDroppable(const T &item) const
virtual void onItemReparented(T *item, T *parent)
virtual bool read(IS &stream)
BasicTreeModelBase::Options Options
Definition: BasicTreeModel.h++:89
virtual QStringList mimeTypes() const