@@ -40,7 +40,7 public: | |||||
40 | void removeVariable(std::shared_ptr<Variable> variable) noexcept; |
|
40 | void removeVariable(std::shared_ptr<Variable> variable) noexcept; | |
41 |
|
41 | |||
42 | void setRange(std::shared_ptr<Variable> variable, const SqpDateTime &range); |
|
42 | void setRange(std::shared_ptr<Variable> variable, const SqpDateTime &range); | |
43 | SqpDateTime graphRange(); |
|
43 | SqpDateTime graphRange() const noexcept; | |
44 | void setGraphRange(const SqpDateTime &range); |
|
44 | void setGraphRange(const SqpDateTime &range); | |
45 |
|
45 | |||
46 | // IVisualizationWidget interface |
|
46 | // IVisualizationWidget interface |
@@ -78,9 +78,9 public: | |||||
78 | auto buttonRect = QRect(progressRect.right(), option.rect.top(), cancelButtonWidth, |
|
78 | auto buttonRect = QRect(progressRect.right(), option.rect.top(), cancelButtonWidth, | |
79 | option.rect.height()); |
|
79 | option.rect.height()); | |
80 |
|
80 | |||
81 |
|
|
81 | auto e = (QMouseEvent *)event; | |
82 |
|
|
82 | auto clickX = e->x(); | |
83 |
|
|
83 | auto clickY = e->y(); | |
84 |
|
84 | |||
85 | auto x = buttonRect.left(); // the X coordinate |
|
85 | auto x = buttonRect.left(); // the X coordinate | |
86 | auto y = buttonRect.top(); // the Y coordinate |
|
86 | auto y = buttonRect.top(); // the Y coordinate | |
@@ -89,7 +89,6 public: | |||||
89 |
|
89 | |||
90 | if (clickX > x && clickX < x + w) { |
|
90 | if (clickX > x && clickX < x + w) { | |
91 | if (clickY > y && clickY < y + h) { |
|
91 | if (clickY > y && clickY < y + h) { | |
92 | qCritical(LOG_VariableInspectorWidget()) << tr("editorEvent CLIC"); |
|
|||
93 | auto variableModel = sqpApp->variableController().variableModel(); |
|
92 | auto variableModel = sqpApp->variableController().variableModel(); | |
94 | variableModel->abortProgress(index); |
|
93 | variableModel->abortProgress(index); | |
95 | } |
|
94 | } |
@@ -25,7 +25,7 const auto VERTICAL_ZOOM_MODIFIER = Qt::ControlModifier; | |||||
25 |
|
25 | |||
26 | struct VisualizationGraphWidget::VisualizationGraphWidgetPrivate { |
|
26 | struct VisualizationGraphWidget::VisualizationGraphWidgetPrivate { | |
27 |
|
27 | |||
28 |
explicit VisualizationGraphWidgetPrivate() : m_DoSynchronize |
|
28 | explicit VisualizationGraphWidgetPrivate() : m_DoSynchronize{true}, m_IsCalibration{false} {} | |
29 |
|
29 | |||
30 |
|
30 | |||
31 | // Return the operation when range changed |
|
31 | // Return the operation when range changed | |
@@ -106,8 +106,8 void VisualizationGraphWidget::addVariableUsingGraph(std::shared_ptr<Variable> v | |||||
106 |
|
106 | |||
107 | auto variableDateTimeWithTolerance = dateTime; |
|
107 | auto variableDateTimeWithTolerance = dateTime; | |
108 |
|
108 | |||
109 |
// add |
|
109 | // add 20% tolerance for each side | |
110 |
auto tolerance = 0. |
|
110 | auto tolerance = 0.2 * (dateTime.m_TEnd - dateTime.m_TStart); | |
111 | variableDateTimeWithTolerance.m_TStart -= tolerance; |
|
111 | variableDateTimeWithTolerance.m_TStart -= tolerance; | |
112 | variableDateTimeWithTolerance.m_TEnd += tolerance; |
|
112 | variableDateTimeWithTolerance.m_TEnd += tolerance; | |
113 |
|
113 | |||
@@ -142,6 +142,8 void VisualizationGraphWidget::removeVariable(std::shared_ptr<Variable> variable | |||||
142 | void VisualizationGraphWidget::setRange(std::shared_ptr<Variable> variable, |
|
142 | void VisualizationGraphWidget::setRange(std::shared_ptr<Variable> variable, | |
143 | const SqpDateTime &range) |
|
143 | const SqpDateTime &range) | |
144 | { |
|
144 | { | |
|
145 | // Note: in case of different axes that depends on variable, we could start with a code like | |||
|
146 | // that: | |||
145 | // auto componentsIt = impl->m_VariableToPlotMultiMap.equal_range(variable); |
|
147 | // auto componentsIt = impl->m_VariableToPlotMultiMap.equal_range(variable); | |
146 | // for (auto it = componentsIt.first; it != componentsIt.second;) { |
|
148 | // for (auto it = componentsIt.first; it != componentsIt.second;) { | |
147 | // } |
|
149 | // } | |
@@ -149,7 +151,7 void VisualizationGraphWidget::setRange(std::shared_ptr<Variable> variable, | |||||
149 | ui->widget->replot(); |
|
151 | ui->widget->replot(); | |
150 | } |
|
152 | } | |
151 |
|
153 | |||
152 | SqpDateTime VisualizationGraphWidget::graphRange() |
|
154 | SqpDateTime VisualizationGraphWidget::graphRange() const noexcept | |
153 | { |
|
155 | { | |
154 | auto grapheRange = ui->widget->xAxis->range(); |
|
156 | auto grapheRange = ui->widget->xAxis->range(); | |
155 | return SqpDateTime{grapheRange.lower, grapheRange.upper}; |
|
157 | return SqpDateTime{grapheRange.lower, grapheRange.upper}; |
@@ -146,7 +146,7 void VisualizationWidget::onVariableAboutToBeDeleted(std::shared_ptr<Variable> v | |||||
146 | void VisualizationWidget::onRangeChanged(std::shared_ptr<Variable> variable, |
|
146 | void VisualizationWidget::onRangeChanged(std::shared_ptr<Variable> variable, | |
147 | const SqpDateTime &range) noexcept |
|
147 | const SqpDateTime &range) noexcept | |
148 | { |
|
148 | { | |
149 |
// Calls the operation of re |
|
149 | // Calls the operation of rescaling all graph that contrains variable in the visualization | |
150 | auto rescaleVariableOperation = RescaleAxeOperation{variable, range}; |
|
150 | auto rescaleVariableOperation = RescaleAxeOperation{variable, range}; | |
151 | accept(&rescaleVariableOperation); |
|
151 | accept(&rescaleVariableOperation); | |
152 | } |
|
152 | } |
@@ -6,7 +6,7 Q_LOGGING_CATEGORY(LOG_RescaleAxeOperation, "RescaleAxeOperation") | |||||
6 | struct RescaleAxeOperation::RescaleAxeOperationPrivate { |
|
6 | struct RescaleAxeOperation::RescaleAxeOperationPrivate { | |
7 | explicit RescaleAxeOperationPrivate(std::shared_ptr<Variable> variable, |
|
7 | explicit RescaleAxeOperationPrivate(std::shared_ptr<Variable> variable, | |
8 | const SqpDateTime &range) |
|
8 | const SqpDateTime &range) | |
9 |
: m_Variable |
|
9 | : m_Variable{variable}, m_Range{range} | |
10 | { |
|
10 | { | |
11 | } |
|
11 | } | |
12 |
|
12 | |||
@@ -59,7 +59,7 void RescaleAxeOperation::visitLeave(VisualizationZoneWidget *zoneWidget) | |||||
59 | void RescaleAxeOperation::visit(VisualizationGraphWidget *graphWidget) |
|
59 | void RescaleAxeOperation::visit(VisualizationGraphWidget *graphWidget) | |
60 | { |
|
60 | { | |
61 | if (graphWidget) { |
|
61 | if (graphWidget) { | |
62 |
// If the widget contains the variable, re |
|
62 | // If the widget contains the variable, rescale it | |
63 | if (impl->m_Variable && graphWidget->contains(*impl->m_Variable)) { |
|
63 | if (impl->m_Variable && graphWidget->contains(*impl->m_Variable)) { | |
64 | graphWidget->setRange(impl->m_Variable, impl->m_Range); |
|
64 | graphWidget->setRange(impl->m_Variable, impl->m_Range); | |
65 | } |
|
65 | } |
@@ -156,11 +156,11 void TestAmdaResultParser::testReadTxt_data() | |||||
156 | QVector<double>{-2.71850, -2.52150}}; |
|
156 | QVector<double>{-2.71850, -2.52150}}; | |
157 |
|
157 | |||
158 | // Invalid files |
|
158 | // Invalid files | |
159 | QTest::newRow("Invalid file (unexisting file)") |
|
159 | QTest::newRow("Invalid file (unexisting file)") << QStringLiteral("UnexistingFile.txt") | |
160 | << QStringLiteral("UnexistingFile.txt") << ExpectedResults{}; |
|
160 | << ExpectedResults{}; | |
161 |
|
161 | |||
162 | QTest::newRow("Invalid file (file not found on server)") |
|
162 | QTest::newRow("Invalid file (file not found on server)") << QStringLiteral("FileNotFound.txt") | |
163 | << QStringLiteral("FileNotFound.txt") << ExpectedResults{}; |
|
163 | << ExpectedResults{}; | |
164 | } |
|
164 | } | |
165 |
|
165 | |||
166 | void TestAmdaResultParser::testReadTxt() |
|
166 | void TestAmdaResultParser::testReadTxt() |
General Comments 0
You need to be logged in to leave comments.
Login now