diff --git a/common/Types.hh b/common/Types.hh index 45355821edc2616532e8367bf78250202fdd6e2f..e06cf86f1f3abaf5ee04624264e305f7bc59a9d5 100644 --- a/common/Types.hh +++ b/common/Types.hh @@ -58,7 +58,7 @@ * type an object has, get the dataType from it. */ enum DataType { - /// Empty Objects (Should not be used) + /// None of the other Objects DATA_NONE = 0 , /// Items used for Grouping DATA_GROUP = 1 , diff --git a/widgets/coreWidget/ContextMenu.cc b/widgets/coreWidget/ContextMenu.cc index d93a59f8b8bed0f46b7128f406bfd1ed33d26c55..74b94c038df9fb90044c43b0849b61c6c1ffa7a6 100644 --- a/widgets/coreWidget/ContextMenu.cc +++ b/widgets/coreWidget/ContextMenu.cc @@ -140,8 +140,21 @@ void CoreWidget::updatePopupMenu(const QPoint& _point) { } } } else { - contextMenu_->removeAction(typeEntry); - contextMenu_->removeAction(entrySeparator); + + emit updateContextMenu(-1); + + // Add real context Menus first + for ( uint i = 0 ; i < contextMenus_.size(); ++i ) { + if ( contextMenus_[i].contextType == DATA_NONE ) { + contextMenu_->addMenu( contextMenus_[i].menu ); + topLevelAdded++; + } + } + + if ( topLevelAdded == 0 ) { + contextMenu_->removeAction(typeEntry); + contextMenu_->removeAction(entrySeparator); + } } if ( contextSelectionMenu_->isEmpty() )