MenuItem* MenuItem::copy() const { MenuItem* root = new MenuItem; root->setCommand(command()); QList<MenuItem*> items = getItems(); for (QList<MenuItem*>::ConstIterator it = items.begin(); it != items.end(); ++it) { root->appendItem((*it)->copy()); } return root; }