src/gui/widgets/qmenu.cpp
changeset 22 79de32ba3296
parent 19 fcece45ef507
child 23 89e065397ea6
equal deleted inserted replaced
19:fcece45ef507 22:79de32ba3296
  1404     Destroys the menu.
  1404     Destroys the menu.
  1405 */
  1405 */
  1406 QMenu::~QMenu()
  1406 QMenu::~QMenu()
  1407 {
  1407 {
  1408     Q_D(QMenu);
  1408     Q_D(QMenu);
  1409     QHash<QAction *, QWidget *>::iterator it = d->widgetItems.begin();
  1409     if (!d->widgetItems.isEmpty()) {  // avoid detach on shared null hash
  1410     for (; it != d->widgetItems.end(); ++it) {
  1410         QHash<QAction *, QWidget *>::iterator it = d->widgetItems.begin();
  1411         if (QWidget *widget = it.value()) {
  1411         for (; it != d->widgetItems.end(); ++it) {
  1412             QWidgetAction *action = static_cast<QWidgetAction *>(it.key());
  1412             if (QWidget *widget = it.value()) {
  1413             action->releaseWidget(widget);
  1413                 QWidgetAction *action = static_cast<QWidgetAction *>(it.key());
  1414             *it = 0;
  1414                 action->releaseWidget(widget);
       
  1415                 *it = 0;
       
  1416             }
  1415         }
  1417         }
  1416     }
  1418     }
  1417 
  1419 
  1418     if (d->eventLoop)
  1420     if (d->eventLoop)
  1419         d->eventLoop->exit();
  1421         d->eventLoop->exit();