#include "Visualization/operations/FindVariableOperation.h" #include "Visualization/VisualizationGraphWidget.h" #include "Visualization/VisualizationTabWidget.h" #include "Visualization/VisualizationWidget.h" #include "Visualization/VisualizationZoneWidget.h" #include struct FindVariableOperation::FindVariableOperationPrivate { explicit FindVariableOperationPrivate(std::shared_ptr variable) : m_Variable{variable} { } void visit(IVisualizationWidget *widget) { if (m_Variable && widget && widget->contains(*m_Variable)) { m_Containers.insert(widget); } } std::shared_ptr m_Variable; ///< Variable to find std::set m_Containers; ///< Containers found for the variable }; FindVariableOperation::FindVariableOperation(std::shared_ptr variable) : impl{spimpl::make_unique_impl(variable)} { } void FindVariableOperation::visitEnter(VisualizationWidget *widget) { impl->visit(widget); } void FindVariableOperation::visitLeave(VisualizationWidget *widget) { // Does nothing Q_UNUSED(widget); } void FindVariableOperation::visitEnter(VisualizationTabWidget *tabWidget) { impl->visit(tabWidget); } void FindVariableOperation::visitLeave(VisualizationTabWidget *tabWidget) { // Does nothing Q_UNUSED(tabWidget); } void FindVariableOperation::visitEnter(VisualizationZoneWidget *zoneWidget) { impl->visit(zoneWidget); } void FindVariableOperation::visitLeave(VisualizationZoneWidget *zoneWidget) { // Does nothing Q_UNUSED(zoneWidget); } void FindVariableOperation::visit(VisualizationGraphWidget *graphWidget) { impl->visit(graphWidget); } std::set FindVariableOperation::result() const noexcept { return impl->m_Containers; }