##// END OF EJS Templates
QCustomPlot notify the graph widget when the xRange changed
Alexandre Leroux -
r227:8492fb1ed747
parent child
Show More
@@ -12,6 +12,7
12 12
13 13 Q_DECLARE_LOGGING_CATEGORY(LOG_VisualizationGraphWidget)
14 14
15 class QCPRange;
15 16 class Variable;
16 17
17 18 namespace Ui {
@@ -40,6 +41,9 private:
40 41 spimpl::unique_impl_ptr<VisualizationGraphWidgetPrivate> impl;
41 42
42 43 private slots:
44
45 void onRangeChanged(const QCPRange &t1, const QCPRange &t2);
46
43 47 /// Slot called when a mouse wheel was made, to perform some processing before the zoom is done
44 48 void onMouseWheel(QWheelEvent *event) noexcept;
45 49 };
@@ -4,7 +4,6
4 4 #include "ui_VisualizationGraphWidget.h"
5 5
6 6 #include <Variable/Variable.h>
7
8 7 #include <unordered_map>
9 8
10 9 Q_LOGGING_CATEGORY(LOG_VisualizationGraphWidget, "VisualizationGraphWidget")
@@ -42,8 +41,12 VisualizationGraphWidget::VisualizationGraphWidget(const QString &name, QWidget
42 41 ui->widget->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom);
43 42 ui->widget->axisRect()->setRangeDrag(Qt::Horizontal);
44 43 connect(ui->widget, &QCustomPlot::mouseWheel, this, &VisualizationGraphWidget::onMouseWheel);
44 connect(ui->widget->xAxis, static_cast<void (QCPAxis::*)(const QCPRange &, const QCPRange &)>(
45 &QCPAxis::rangeChanged),
46 this, &VisualizationGraphWidget::onRangeChanged);
45 47 }
46 48
49
47 50 VisualizationGraphWidget::~VisualizationGraphWidget()
48 51 {
49 52 delete ui;
@@ -93,6 +96,14 QString VisualizationGraphWidget::name() const
93 96 }
94 97 }
95 98
99 void VisualizationGraphWidget::onRangeChanged(const QCPRange &t1, const QCPRange &t2)
100 {
101 for (auto it = impl->m_VariableToPlotMap.cbegin(); it != impl->m_VariableToPlotMap.cend();
102 ++it) {
103 it->first->onXRangeChanged(SqpDateTime{t2.lower, t2.upper});
104 }
105 }
106
96 107 void VisualizationGraphWidget::onMouseWheel(QWheelEvent *event) noexcept
97 108 {
98 109 auto zoomOrientations = QFlags<Qt::Orientation>{};
General Comments 0
You need to be logged in to leave comments. Login now