Спасибо, terlan, навёл на мысль.
Вот окончательный вариант.
Одна тонкость - чтобы у вьюхи не было глюкавостей с перерисовкой, переносимую(вырезаемую) ветку надо свернуть, вызвав вьюхин слот collapse(const QModelIndex & index)
void MainWindowImpl::on_actionCut_triggered()
{
QModelIndex idx = tree->model()->index(tree->currentIndex().row(), 0, tree->currentIndex().parent());
tree->collapse(idx);
item_cut = ((QStandardItemModel*) tree->model())->itemFromIndex(idx);
item_cut->setIcon(QIcon(":/new/prefix1/images/mozilla-firebird.png")); // Какая-то иконка, чтобы видно было, что переносим
}
void MainWindowImpl::on_actionPaste_triggered()
{
QModelIndex idx = tree->model()->index(tree->currentIndex().row(), 0, tree->currentIndex().parent());
QStandardItem *new_parent_item = item_cut->model()->itemFromIndex(idx);
QStandardItem *old_parent_item = item_cut->parent();
item_cut->setIcon(QIcon());
QList<QStandardItem*> list = old_parent_item->takeRow(item_cut->row());
new_parent_item->appendRow(list);
item_cut = NULL;
}
Переносится вся ветка целиком со всеми вложениями, так как было задумано.