QAbstractItemModel::endInsertRows: Invalid index ( 1 , 0 ) in model StatTreeCtrl(0xfb3f087e80)
StatTreeCtrl наследник QAbstractItemModel
.h
virtual bool canFetchMore(const QModelIndex &parent) const;
virtual void fetchMore(const QModelIndex & parent);
virtual bool hasChildren(const QModelIndex &parent) const;
virtual bool insertRows(int row, int count, const QModelIndex &parent /* = QModelIndex() */);
virtual bool removeRows(int position, int rows, const QModelIndex & parent = QModelIndex());
.cpp
void StatTreeCtrl::fetchMore(const QModelIndex & parent)
{
StatisticItem* item = getItem(parent);
beginInsertRows(parent, 0, item->children().size() - 1);
endInsertRows();
}
bool StatTreeCtrl::hasChildren(const QModelIndex & parent) const
{
if (!parent.isValid())
{
StatisticItem* item = getItem(parent);
if (item->children().count() > 0)
return true;
}
return QAbstractItemModel::hasChildren(parent);
}
bool StatTreeCtrl::canFetchMore(const QModelIndex & parent) const
{
StatisticItem* item = getItem(parent);
if (item->children().count() > 0)
return true;
else return false;
}
bool StatTreeCtrl::insertRows(int position, int rows, const QModelIndex& parent /* = QModelIndex() */)
{
StatisticItem* parentItem = getItem(parent);
bool success;
beginInsertRows(parent, position, position + rows - 1);
success = parentItem->insertChildren(position, rows);
endInsertRows();
return success;
}
bool StatTreeCtrl::removeRows(int position, int rows, const QModelIndex & parent)
{
StatisticItem *parentItem = getItem(parent);//static_cast<StatisticItem*>(parent.internalPointer());
bool success = true;
beginRemoveRows(parent, position, position + rows - 1);
success = parentItem->removeChildren(position, rows);
endRemoveRows();
return success;
}
StatisticItem * StatTreeCtrl::getItem(const QModelIndex & index) const
{
if (index.isValid()) {
StatisticItem *item = static_cast<StatisticItem*>(index.internalPointer());
if (item)
return item;
}
return rootItem;
}
StatisticItem - контейнер данных
самый первый элемент(корневой) добавил, при наведении показывает кот такую ошибку
у итема показывает чайлда. а так просто развернуть не хочет...
не хочет равернуть данные взятые из xml