本文整理汇总了C++中SourceItem::setNext方法的典型用法代码示例。如果您正苦于以下问题:C++ SourceItem::setNext方法的具体用法?C++ SourceItem::setNext怎么用?C++ SourceItem::setNext使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SourceItem
的用法示例。
在下文中一共展示了SourceItem::setNext方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: removeSubTree
void FlatProxyModel::removeSubTree(const QModelIndex &source_idx, bool emitRemove)
{
SourceItem *sourceItem = sourceToInternal(source_idx);
if (!sourceItem)
return;
SourceItem *prevItem = sourceItem->parent();
if (sourceItem->sourceRow() > 0) {
prevItem = prevItem->child(sourceItem->sourceRow() - 1);
while (prevItem->childCount() > 0) {
prevItem = prevItem->child(prevItem->childCount() - 1);
}
}
SourceItem *lastItem = sourceItem;
while (lastItem->childCount() > 0) {
lastItem = lastItem->child(lastItem->childCount() - 1);
}
if (emitRemove)
beginRemoveRows(QModelIndex(), sourceItem->pos(), lastItem->pos());
int nextPos = 0;
if (prevItem) {
prevItem->setNext(lastItem->next());
nextPos = prevItem->pos() + 1;
}
SourceItem *nextItem = lastItem->next();
while (nextItem) {
nextItem->setPos(nextPos);
nextPos++;
nextItem = nextItem->next();
}
sourceItem->parent()->removeChild(sourceItem);
delete sourceItem;
if (emitRemove)
endRemoveRows();
}