From fc4fb23b91c2f282239d312b502d5bfa8e98c660 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Thu, 16 Oct 2014 16:43:13 +0200 Subject: [PATCH] refs #335, nested menu for dockwidgetinfoarea, parent info areas can be accessed --- src/blackgui/dockwidgetinfoarea.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/blackgui/dockwidgetinfoarea.cpp b/src/blackgui/dockwidgetinfoarea.cpp index cf72f016a..510da36b8 100644 --- a/src/blackgui/dockwidgetinfoarea.cpp +++ b/src/blackgui/dockwidgetinfoarea.cpp @@ -68,10 +68,26 @@ namespace BlackGui // Dockable widget's context menu CDockWidget::addToContextMenu(contextMenu); + if (!contextMenu->isEmpty()) { contextMenu->addSeparator(); } - // from main component (info area) + // first info area, myself's direct parent info area + parentInfoAreas.first()->addToContextMenu(contextMenu); + + // top info areas other than direct parent + // (parent's parent when nested info areas are used) + if (parentInfoAreas.size() < 2) { return; } contextMenu->addSeparator(); - parentInfoAreas.last()->addToContextMenu(contextMenu); + for (int i = 1; i < parentInfoAreas.size(); i++) + { + const CInfoArea *infoArea = parentInfoAreas.at(i); + QString title(infoArea->windowTitle()); + if (title.isEmpty()) + { + title = infoArea->objectName(); + } + QMenu *m = contextMenu->addMenu(title); + infoArea->addToContextMenu(m); + } } void CDockWidgetInfoArea::initalFloating()