X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Ftreemodel.cpp;h=0d35ef64936ecd64e2c4bd52678d52f83109b503;hp=6d6ea84105a93f96ef8ededf9c4d004066e4c5dc;hb=4604f6d6f0daa7980e36753b2a417ab709d9ce6a;hpb=d424e746952f9821cf1c015f4b0fad0e1b169680 diff --git a/src/client/treemodel.cpp b/src/client/treemodel.cpp index 6d6ea841..0d35ef64 100644 --- a/src/client/treemodel.cpp +++ b/src/client/treemodel.cpp @@ -57,6 +57,9 @@ bool AbstractTreeItem::newChild(int column, AbstractTreeItem *item) { _childItems[column] = QList(); } + // 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); @@ -308,6 +311,17 @@ TreeModel::TreeModel(const QList &data, QObject *parent) { 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() { @@ -538,3 +552,29 @@ void TreeModel::endRemoveChilds() { 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(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(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; +}