@@ -27,6 +27,8 public: | |||||
27 | virtual ~VisualizationGraphWidget(); |
|
27 | virtual ~VisualizationGraphWidget(); | |
28 |
|
28 | |||
29 | void addVariable(std::shared_ptr<Variable> variable); |
|
29 | void addVariable(std::shared_ptr<Variable> variable); | |
|
30 | /// Removes a variable from the graph | |||
|
31 | void removeVariable(std::shared_ptr<Variable> variable) noexcept; | |||
30 |
|
32 | |||
31 | // IVisualizationWidget interface |
|
33 | // IVisualizationWidget interface | |
32 | void accept(IVisualizationWidgetVisitor *visitor) override; |
|
34 | void accept(IVisualizationWidgetVisitor *visitor) override; |
@@ -26,8 +26,7 const auto VERTICAL_ZOOM_MODIFIER = Qt::ControlModifier; | |||||
26 | struct VisualizationGraphWidget::VisualizationGraphWidgetPrivate { |
|
26 | struct VisualizationGraphWidget::VisualizationGraphWidgetPrivate { | |
27 |
|
27 | |||
28 | // 1 variable -> n qcpplot |
|
28 | // 1 variable -> n qcpplot | |
29 |
std:: |
|
29 | std::multimap<std::shared_ptr<Variable>, QCPAbstractPlottable *> m_VariableToPlotMultiMap; | |
30 | m_VariableToPlotMultiMap; |
|
|||
31 | }; |
|
30 | }; | |
32 |
|
31 | |||
33 | VisualizationGraphWidget::VisualizationGraphWidget(const QString &name, QWidget *parent) |
|
32 | VisualizationGraphWidget::VisualizationGraphWidget(const QString &name, QWidget *parent) | |
@@ -78,6 +77,10 void VisualizationGraphWidget::addVariable(std::shared_ptr<Variable> variable) | |||||
78 | connect(variable.get(), SIGNAL(dataCacheUpdated()), this, SLOT(onDataCacheVariableUpdated())); |
|
77 | connect(variable.get(), SIGNAL(dataCacheUpdated()), this, SLOT(onDataCacheVariableUpdated())); | |
79 | } |
|
78 | } | |
80 |
|
79 | |||
|
80 | void VisualizationGraphWidget::removeVariable(std::shared_ptr<Variable> variable) noexcept | |||
|
81 | { | |||
|
82 | } | |||
|
83 | ||||
81 | void VisualizationGraphWidget::accept(IVisualizationWidgetVisitor *visitor) |
|
84 | void VisualizationGraphWidget::accept(IVisualizationWidgetVisitor *visitor) | |
82 | { |
|
85 | { | |
83 | if (visitor) { |
|
86 | if (visitor) { | |
@@ -105,6 +108,14 void VisualizationGraphWidget::onGraphMenuRequested(const QPoint &pos) noexcept | |||||
105 | { |
|
108 | { | |
106 | QMenu graphMenu{}; |
|
109 | QMenu graphMenu{}; | |
107 |
|
110 | |||
|
111 | // Iterates on variables (unique keys) | |||
|
112 | for (auto it = impl->m_VariableToPlotMultiMap.cbegin(), | |||
|
113 | end = impl->m_VariableToPlotMultiMap.cend(); | |||
|
114 | it != end; it = impl->m_VariableToPlotMultiMap.upper_bound(it->first)) { | |||
|
115 | // 'Remove variable' action | |||
|
116 | graphMenu.addAction(tr("Remove variable %1").arg(it->first->name()), | |||
|
117 | [ this, var = it->first ]() { removeVariable(var); }); | |||
|
118 | } | |||
108 |
|
119 | |||
109 | if (!graphMenu.isEmpty()) { |
|
120 | if (!graphMenu.isEmpty()) { | |
110 | graphMenu.exec(mapToGlobal(pos)); |
|
121 | graphMenu.exec(mapToGlobal(pos)); |
General Comments 0
You need to be logged in to leave comments.
Login now