/*****************************************
* Buffer Items stored in the Tree Model
*****************************************/
-TreeItem::TreeItem(const QList<QVariant> &data, TreeItem *parent) : QObject(parent) {
- itemData = data;
- parentItem = parent;
+TreeItem::TreeItem(const QList<QVariant> &data, TreeItem *parent)
+ : QObject(parent),
+ parentItem(parent),
+ itemData(data),
+ _flags(Qt::ItemIsSelectable | Qt::ItemIsEnabled)
+{
}
TreeItem::TreeItem(TreeItem *parent) {
}
QVariant TreeItem::data(int column, int role) const {
- if(role == Qt::DisplayRole and column < itemData.count())
+ if(role == Qt::DisplayRole && column < itemData.count())
return itemData[column];
else
return QVariant();
}
+Qt::ItemFlags TreeItem::flags() const {
+ // some sane defaults
+ return _flags;
+}
+
+void TreeItem::setFlags(Qt::ItemFlags flags) {
+ _flags = flags;
+}
+
/*****************************************
* TreeModel
*****************************************/
-TreeModel::TreeModel(const QList<QVariant> &data, QObject *parent) : QAbstractItemModel(parent) {
+TreeModel::TreeModel(const QList<QVariant> &data, QObject *parent)
+ : QAbstractItemModel(parent)
+{
rootItem = new TreeItem(data, 0);
}
}
Qt::ItemFlags TreeModel::flags(const QModelIndex &index) const {
+ TreeItem *item;
if(!index.isValid())
- return 0;
+ item = rootItem;
else
- return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
+ item = static_cast<TreeItem *>(index.internalPointer());
+ return item->flags();
}
QVariant TreeModel::headerData(int section, Qt::Orientation orientation, int role) const {