C++ (Qt) // Определяется количество подветок у элемента int item_rows=item->childCount(); qDebug() << "paste_branch_smart() : Subbranch count " << item_rows; // Определяется QModelIndex из TreeItem QModelIndex item_index=knowTreeModel->get_index_by_item(item); // Проверка, правильно ли определен QModelIndex из TreeItem int n=knowTreeModel->getItem(item_index)->childCount(); qDebug() << "paste_branch_smart() : Subbranch count for item by index" << n; // Модель оповещается что будет добавление подветки knowTreeModel->beginInsertRows_middle(item_index, item_rows, item_rows); // Добавляется подветка в Item-представление knowTreeModel->paste_subbranch(item, (clipbbranch *)branch); // Модель оповещается, что добавление окончено knowTreeModel->endInsertRows_middle(); // Вид обновляется knowTree->update();
C++ (Qt)void KnowTreeModel::beginInsertRows_middle( const QModelIndex & parent, int first, int last ){ beginInsertRows(parent, first, last);} void KnowTreeModel::endInsertRows_middle(){ endInsertRows();}
C++ (Qt) qDebug() << "paste_branch_smart() : Row count for index, before" << knowTreeModel->rowCount(item_index); qDebug() << "paste_branch_smart() : Column, before" << item_index.column(); ... qDebug() << "paste_branch_smart() : Row count for index, after" << knowTreeModel->rowCount(item_index); qDebug() << "paste_branch_smart() : Column, after" << item_index.column();
knowTree->reset();
QMyItem * KnowTreeModel::addItem(QMyItem *parent, ...){... beginInsertRows(...); ... endInsertRows();}
int item_rows=item->childCount();
C++ (Qt)// Добавление новой подветки к указанной ветке из буфера обменаvoid KnowTreeModel::paste_new_child_branch(const QModelIndex &index, clipbbranch *subbranch){ // Получение ссылки на Item элемент по QModelIndex TreeItem *parent=getItem(index); beginInsertRows(index, parent->childCount(), parent->childCount()); paste_subbranch(parent, (clipbbranch *)subbranch); endInsertRows();} void KnowTreeModel::paste_new_sibling_branch(const QModelIndex &index, clipbbranch *subbranch){ // Получение ссылки на родительский Item элемент по QModelIndex TreeItem *current=getItem(index); TreeItem *parent=current->parent(); beginInsertRows(index.parent(), parent->childCount(), parent->childCount()); paste_subbranch(parent, (clipbbranch *)subbranch); endInsertRows();}