diff --git a/gui/src/Visualization/operations/GenerateVariableMenuOperation.cpp b/gui/src/Visualization/operations/GenerateVariableMenuOperation.cpp index 6152a66..fa5bb1b 100644 --- a/gui/src/Visualization/operations/GenerateVariableMenuOperation.cpp +++ b/gui/src/Visualization/operations/GenerateVariableMenuOperation.cpp @@ -68,6 +68,19 @@ struct GenerateVariableMenuOperation::GenerateVariableMenuOperationPrivate { { } + void visitNodeEnter(const IVisualizationWidget &container) + { + // Opens a new menu associated to the node + m_MenuBuilder.addMenu(container.name()); + } + + template + void visitNodeLeave() + { + // Closes the menu associated to the node + m_MenuBuilder.closeMenu(); + } + std::shared_ptr m_Variable; MenuBuilder m_MenuBuilder; }; @@ -92,22 +105,30 @@ void GenerateVariableMenuOperation::visitLeave(VisualizationWidget *widget) void GenerateVariableMenuOperation::visitEnter(VisualizationTabWidget *tabWidget) { - /// @todo ALX + if (tabWidget) { + impl->visitNodeEnter(*tabWidget); + } } void GenerateVariableMenuOperation::visitLeave(VisualizationTabWidget *tabWidget) { - /// @todo ALX + if (tabWidget) { + impl->visitNodeLeave(); + } } void GenerateVariableMenuOperation::visitEnter(VisualizationZoneWidget *zoneWidget) { - /// @todo ALX + if (zoneWidget) { + impl->visitNodeEnter(*zoneWidget); + } } void GenerateVariableMenuOperation::visitLeave(VisualizationZoneWidget *zoneWidget) { - /// @todo ALX + if (zoneWidget) { + impl->visitNodeLeave(); + } } void GenerateVariableMenuOperation::visit(VisualizationGraphWidget *graphWidget)