Bug #820 ยป 0009-Qt-Use-QMenu-clear-instead-of-our-own-implementation.patch
client/gui-qt/menu.cpp | ||
---|---|---|
instances.remove(this);
|
||
}
|
||
/**********************************************************************//**
|
||
Empty a menu of all its items and sub menues.
|
||
**************************************************************************/
|
||
static void reset_menu_and_sub_menues(QMenu *menu)
|
||
{
|
||
QAction *action;
|
||
/* Delete each existing menu item. */
|
||
foreach(action, menu->actions()) {
|
||
if (action->menu() != nullptr) {
|
||
/* Delete the sub menu */
|
||
reset_menu_and_sub_menues(action->menu());
|
||
action->menu()->deleteLater();
|
||
}
|
||
menu->removeAction(action);
|
||
action->deleteLater();
|
||
}
|
||
}
|
||
/**********************************************************************//**
|
||
Reset the goto and act menu so it will be recreated.
|
||
**************************************************************************/
|
||
void go_act_menu::reset()
|
||
{
|
||
/* Clear menu item to action ID mapping. */
|
||
// Clear menu item to action ID mapping.
|
||
items.clear();
|
||
/* Remove the menu items */
|
||
reset_menu_and_sub_menues(this);
|
||
// Remove the menu items
|
||
clear();
|
||
}
|
||
/**********************************************************************//**
|