From 47a361805173b52bb898894149b116bb082ed85a 2018-01-08 15:51:12 From: Thibaud Rabillard Date: 2018-01-08 15:51:12 Subject: [PATCH] Closes all graphs of the selected zone in graph mode --- diff --git a/gui/include/Visualization/VisualizationZoneWidget.h b/gui/include/Visualization/VisualizationZoneWidget.h index daa2525..a54e1ef 100644 --- a/gui/include/Visualization/VisualizationZoneWidget.h +++ b/gui/include/Visualization/VisualizationZoneWidget.h @@ -68,6 +68,9 @@ public: /// Returns the first graph in the zone or nullptr if there is no graph inside VisualizationGraphWidget *firstGraph() const; + /// Closes all graphes inside the zone + void closeAllGraphs(); + // IVisualizationWidget interface void accept(IVisualizationWidgetVisitor *visitor) override; bool canDrop(const Variable &variable) const override; diff --git a/gui/src/Catalogue/CatalogueEventsWidget.cpp b/gui/src/Catalogue/CatalogueEventsWidget.cpp index 882d212..9299528 100644 --- a/gui/src/Catalogue/CatalogueEventsWidget.cpp +++ b/gui/src/Catalogue/CatalogueEventsWidget.cpp @@ -259,7 +259,7 @@ struct CatalogueEventsWidget::CatalogueEventsWidgetPrivate { return; } - // Close the previous graph and delete the asociated variables + // Closes the previous graph and delete the asociated variables for (auto graph : m_CustomGraphs) { graph->close(); auto variables = graph->variables().toVector(); @@ -270,6 +270,9 @@ struct CatalogueEventsWidget::CatalogueEventsWidgetPrivate { } m_CustomGraphs.clear(); + // Closes the remaining graphs inside the zone + zone->closeAllGraphs(); + // Calculates the range of each graph which will be created auto graphRange = getGraphRanges(event); diff --git a/gui/src/Visualization/VisualizationZoneWidget.cpp b/gui/src/Visualization/VisualizationZoneWidget.cpp index e7229cf..cadda87 100644 --- a/gui/src/Visualization/VisualizationZoneWidget.cpp +++ b/gui/src/Visualization/VisualizationZoneWidget.cpp @@ -336,6 +336,12 @@ VisualizationGraphWidget *VisualizationZoneWidget::firstGraph() const return firstGraph; } +void VisualizationZoneWidget::closeAllGraphs() +{ + processGraphs(*ui->dragDropContainer->layout(), + [](VisualizationGraphWidget &graphWidget) { graphWidget.close(); }); +} + void VisualizationZoneWidget::accept(IVisualizationWidgetVisitor *visitor) { if (visitor) {