Exemplo n.º 1
0
void ItemTreeViewImpl::copySelectedItemsSub(Item* item, ItemPtr& duplicated, set<Item*>& items)
{
    for(Item* childItem = item->childItem(); childItem; childItem = childItem->nextItem()){
        set<Item*>::iterator p = items.find(childItem);
        if(p != items.end()){
            ItemPtr duplicatedChild;
            if(childItem->isSubItem()){
                duplicatedChild = duplicated->findItem(childItem->name());
            } else {
                duplicatedChild = childItem->duplicate();
                if(duplicatedChild){
                    duplicated->addChildItem(duplicatedChild);
                }
            }
            if(duplicatedChild){
                copySelectedItemsSub(childItem, duplicatedChild, items);
            }
        }
    }
}