┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/dolphinmainwindow.cpp
diff options
context:
space:
mode:
authorFrank Reininghaus <[email protected]>2016-01-10 11:18:30 +0100
committerFrank Reininghaus <[email protected]>2016-01-14 20:36:28 +0100
commitddc050f23596493e8debd2dfd523fd572c098d63 (patch)
treeeef36b9d322c04a26715bb95535006d5f9324648 /src/dolphinmainwindow.cpp
parent508ad6cbd0c4f0d3b50d1da24522c1a90acd75d5 (diff)
Do not delete sub menus of the control menu explicitly
This is not necessary because the sub menus are children of the main menu, such that they are deleted together with the other actions by QMenu::clear(). This prevents a crash that can happen if a sub menu is open while another menu action is clicked. Thanks to Fabian Vogt and Wolfgang Bauer for investigating this issue! BUG: 354558 FIXED-IN: 15.12.2 REVIEW: 126693
Diffstat (limited to 'src/dolphinmainwindow.cpp')
-rw-r--r--src/dolphinmainwindow.cpp7
1 files changed, 2 insertions, 5 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp
index 9b05168fd..81c55e814 100644
--- a/src/dolphinmainwindow.cpp
+++ b/src/dolphinmainwindow.cpp
@@ -789,8 +789,8 @@ void DolphinMainWindow::updateControlMenu()
QMenu* menu = qobject_cast<QMenu*>(sender());
Q_ASSERT(menu);
- // All actions get cleared by QMenu::clear(). The sub-menus are deleted
- // by connecting to the aboutToHide() signal from the parent-menu.
+ // All actions get cleared by QMenu::clear(). This includes the sub-menus
+ // because 'menu' is their parent.
menu->clear();
KActionCollection* ac = actionCollection();
@@ -840,7 +840,6 @@ void DolphinMainWindow::updateControlMenu()
// Add "Go" menu
QMenu* goMenu = new QMenu(i18nc("@action:inmenu", "Go"), menu);
- connect(menu, &QMenu::aboutToHide, goMenu, &QMenu::deleteLater);
goMenu->addAction(ac->action(KStandardAction::name(KStandardAction::Back)));
goMenu->addAction(ac->action(KStandardAction::name(KStandardAction::Forward)));
goMenu->addAction(ac->action(KStandardAction::name(KStandardAction::Up)));
@@ -850,7 +849,6 @@ void DolphinMainWindow::updateControlMenu()
// Add "Tool" menu
QMenu* toolsMenu = new QMenu(i18nc("@action:inmenu", "Tools"), menu);
- connect(menu, &QMenu::aboutToHide, toolsMenu, &QMenu::deleteLater);
toolsMenu->addAction(ac->action("show_filter_bar"));
toolsMenu->addAction(ac->action("compare_files"));
toolsMenu->addAction(ac->action("open_terminal"));
@@ -864,7 +862,6 @@ void DolphinMainWindow::updateControlMenu()
// Add "Help" menu
QMenu* helpMenu = new QMenu(i18nc("@action:inmenu", "Help"), menu);
- connect(menu, &QMenu::aboutToHide, helpMenu, &QMenu::deleteLater);
helpMenu->addAction(ac->action(KStandardAction::name(KStandardAction::HelpContents)));
helpMenu->addAction(ac->action(KStandardAction::name(KStandardAction::WhatsThis)));
helpMenu->addSeparator();