From 2515c8235d1e24d0f0ff9e62e95f5fe186ad2ba8 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sat, 26 Mar 2016 23:40:04 +0100 Subject: [PATCH] refs #618, adjusted menus * new signal slot syntax * sub menu --- src/blackgui/views/aircraftmodelview.cpp | 18 ++++++++++++++---- src/blackgui/views/viewdbobjects.cpp | 2 +- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/blackgui/views/aircraftmodelview.cpp b/src/blackgui/views/aircraftmodelview.cpp index 1390d80a3..7d11749cb 100644 --- a/src/blackgui/views/aircraftmodelview.cpp +++ b/src/blackgui/views/aircraftmodelview.cpp @@ -265,27 +265,37 @@ namespace BlackGui void CAircraftModelView::customMenu(QMenu &menu) const { + QMenu *stashMenu = new QMenu("Stash", &menu); if (this->m_menus.testFlag(MenuCanStashModels)) { - menu.addAction(CIcons::appDbStash16(), "Stash", this, SLOT(ps_requestStash())); - QAction *a = menu.addAction(CIcons::appDbStash16(), "Stashing clears selection (on/off)", this, SLOT(ps_stashingClearsSelection())); + stashMenu->addAction(CIcons::appDbStash16(), "Stash", this, &CAircraftModelView::ps_requestStash); + QAction *a = stashMenu->addAction(CIcons::appDbStash16(), "Stashing clears selection (on/off)", this, &CAircraftModelView::ps_stashingClearsSelection); a->setCheckable(true); a->setChecked(m_stashingClearsSelection); } if (this->m_menus.testFlag(MenuHighlightStashed)) { // this function requires that someone provides the model strings to be highlighted - QAction *a = menu.addAction(CIcons::appDbStash16(), "Highlight stashed (on/off)", this, SLOT(ps_toggleHighlightStashedModels())); + QAction *a = stashMenu->addAction(CIcons::appDbStash16(), "Highlight stashed (on/off)", this, &CAircraftModelView::ps_toggleHighlightStashedModels); a->setCheckable(true); a->setChecked(this->derivedModel()->highlightModelStrings()); } if (this->m_menus.testFlag(MenuHighlightInvalid)) { // this function requires that someone provides the model strings to be highlighted - QAction *a = menu.addAction(CIcons::appDbStash16(), "Highlight invalid models (on/off)", this, SLOT(ps_toggleHighlightDbData())); + QAction *a = stashMenu->addAction(CIcons::appDbStash16(), "Highlight invalid models (on/off)", this, &CAircraftModelView::ps_toggleHighlightDbData); a->setCheckable(true); a->setChecked(this->derivedModel()->highlightDbData()); } + if (stashMenu->isEmpty()) + { + stashMenu->deleteLater(); + } + else + { + menu.addMenu(stashMenu); + stashMenu->setIcon(CIcons::appDbStash16()); + } CViewWithDbObjects::customMenu(menu); } diff --git a/src/blackgui/views/viewdbobjects.cpp b/src/blackgui/views/viewdbobjects.cpp index 2b3f9c4ea..8d9f17ee2 100644 --- a/src/blackgui/views/viewdbobjects.cpp +++ b/src/blackgui/views/viewdbobjects.cpp @@ -86,7 +86,7 @@ namespace BlackGui { if (this->m_menus.testFlag(CViewBase::MenuHighlightDbData)) { - QAction *a = menu.addAction(CIcons::database16(), "Highlight DB data", this, SLOT(ps_toggleHighlightDbData())); + QAction *a = menu.addAction(CIcons::database16(), "Highlight DB data", this, &CViewWithDbObjects::ps_toggleHighlightDbData); a->setCheckable(true); a->setChecked(this->derivedModel()->highlightDbData()); }