diff --git a/gui/src/Catalogue/CatalogueEventsWidget.cpp b/gui/src/Catalogue/CatalogueEventsWidget.cpp index 6d360f1..6ed95d9 100644 --- a/gui/src/Catalogue/CatalogueEventsWidget.cpp +++ b/gui/src/Catalogue/CatalogueEventsWidget.cpp @@ -6,10 +6,15 @@ #include #include #include +#include +#include #include +#include +#include #include #include #include +#include #include #include @@ -28,6 +33,7 @@ struct CatalogueEventsWidget::CatalogueEventsWidgetPrivate { QString m_ZoneForGraphMode; QVector > m_DisplayedCatalogues; bool m_AllEventDisplayed = false; + QVector m_CustomGraphs; VisualizationWidget *m_VisualizationWidget = nullptr; @@ -187,7 +193,29 @@ struct CatalogueEventsWidget::CatalogueEventsWidgetPrivate { if (m_VisualizationWidget) { if (auto tab = m_VisualizationWidget->currentTabWidget()) { if (auto zone = tab->getZoneWithName(m_ZoneForGraphMode)) { - // TODO + + for (auto graph : m_CustomGraphs) { + graph->close(); + } + m_CustomGraphs.clear(); + + for (auto eventProduct : event->getEventProducts()) { + auto productId = eventProduct.getProductId(); + + auto context = new QObject{treeView}; + QObject::connect(&sqpApp->variableController(), + &VariableController::variableAdded, context, + [this, zone, context](auto variable) { + auto graph = zone->createGraph(variable); + m_CustomGraphs << graph; + delete context; // removes the connection + }, + Qt::QueuedConnection); + + QMetaObject::invokeMethod( + &sqpApp->dataSourceController(), "requestVariableFromProductIdKey", + Qt::QueuedConnection, Q_ARG(QString, productId)); + } } } else { diff --git a/gui/ui/Catalogue/CatalogueEventsWidget.ui b/gui/ui/Catalogue/CatalogueEventsWidget.ui index 3ebde47..355c5f1 100644 --- a/gui/ui/Catalogue/CatalogueEventsWidget.ui +++ b/gui/ui/Catalogue/CatalogueEventsWidget.ui @@ -85,9 +85,6 @@ - - false - G