_childItems[column] = QList<AbstractTreeItem *>();
}
+ // check if a child with that ID is already known
+ Q_ASSERT(childById(item->id()) == 0);
+
int newRow = _childItems[column].count();
emit beginAppendChilds(column, newRow, newRow);
_childItems[column].append(item);
_flags = flags;
}
+void AbstractTreeItem::dumpChildList() {
+ AbstractTreeItem *child;
+
+ qDebug() << "==== Childlist for Item:" << this << id() << "====";
+ QHash<int, QList<AbstractTreeItem *> >::iterator columnIter = _childItems.begin();
+ while(columnIter != _childItems.end()) {
+ if(columnIter->count() > 0) {
+ QList<AbstractTreeItem *>::const_iterator childIter = columnIter->constBegin();
+ while(childIter != columnIter->constEnd()) {
+ child = *childIter;
+ qDebug() << "Column:" << columnIter.key() << "Row:" << child->row() << child << child->id() << child->data(0, Qt::DisplayRole);
+ childIter++;
+ }
+ }
+ columnIter++;
+ }
+ qDebug() << "==== End Of Childlist ====";
+}
+
/*****************************************
* SimpleTreeItem
*****************************************/
}
QVariant PropertyMapItem::data(int column, int role) const {
- if(column >= columnCount() || role != Qt::DisplayRole)
+ if(column >= columnCount())
return QVariant();
- return property(_propertyOrder[column].toAscii());
+ switch(role) {
+ case Qt::ToolTipRole:
+ return toolTip(column);
+ case Qt::DisplayRole:
+ return property(_propertyOrder[column].toAscii());
+ default:
+ return QVariant();
+ }
+
}
bool PropertyMapItem::setData(int column, const QVariant &value, int role) {
{
rootItem = new SimpleTreeItem(data, 0);
connectItem(rootItem);
+
+ /*
+ connect(this, SIGNAL(rowsAboutToBeInserted(const QModelIndex &, int, int)),
+ this, SLOT(debug_rowsAboutToBeInserted(const QModelIndex &, int, int)));
+ connect(this, SIGNAL(rowsAboutToBeRemoved(const QModelIndex &, int, int)),
+ this, SLOT(debug_rowsAboutToBeRemoved(const QModelIndex &, int, int)));
+ connect(this, SIGNAL(rowsInserted(const QModelIndex &, int, int)),
+ this, SLOT(debug_rowsInserted(const QModelIndex &, int, int)));
+ connect(this, SIGNAL(rowsRemoved(const QModelIndex &, int, int)),
+ this, SLOT(debug_rowsRemoved(const QModelIndex &, int, int)));
+ */
}
TreeModel::~TreeModel() {
void TreeModel::clear() {
rootItem->removeAllChilds();
}
+
+void TreeModel::debug_rowsAboutToBeInserted(const QModelIndex &parent, int start, int end) {
+ qDebug() << "debug_rowsAboutToBeInserted" << parent << parent.internalPointer() << parent.data().toString() << rowCount(parent) << start << end;
+}
+
+void TreeModel::debug_rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end) {
+ qDebug() << "debug_rowsAboutToBeRemoved" << parent << parent.internalPointer() << parent.data().toString() << rowCount(parent) << start << end;
+ QModelIndex child;
+ for(int i = start; i <= end; i++) {
+ child = parent.child(i, 0);
+ qDebug() << " " << child << child.data().toString(); // << static_cast<AbstractTreeItem *>(parent.child(i, 0).internalPointer())->id();
+ }
+}
+
+void TreeModel::debug_rowsInserted(const QModelIndex &parent, int start, int end) {
+ qDebug() << "debug_rowsInserted" << parent << parent.internalPointer() << parent.data().toString() << rowCount(parent) << start << end;
+ QModelIndex child;
+ for(int i = start; i <= end; i++) {
+ child = parent.child(i, 0);
+ qDebug() << " " << child << child.data().toString(); // << static_cast<AbstractTreeItem *>(parent.child(i, 0).internalPointer())->id();
+ }
+}
+
+void TreeModel::debug_rowsRemoved(const QModelIndex &parent, int start, int end) {
+ qDebug() << "debug_rowsRemoved" << parent << parent.internalPointer() << parent.data().toString() << rowCount(parent) << start << end;
+}