From fae2d5d3e62cfc36be85abc48e4e75537de01542 2017-06-22 12:29:16 From: Alexandre Leroux Date: 2017-06-22 12:29:16 Subject: [PATCH] Implements visit of tab and zone When we visit a tab or a zone, we create (when entered) and close (when left) a menu (that has the name of the widget) --- 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)