Already changed in next commits
@@ -60,7 +60,7 void Variable::setDataSeries(std::shared_ptr<IDataSeries> dataSeries) noexcept | |||||
60 | impl->m_DataSeries->merge(dataSeries.get()); |
|
60 | impl->m_DataSeries->merge(dataSeries.get()); | |
61 | impl->m_DataSeries->unlock(); |
|
61 | impl->m_DataSeries->unlock(); | |
62 | dataSeries->unlock(); |
|
62 | dataSeries->unlock(); | |
63 | emit updated(); |
|
63 | // emit updated(); | |
64 | } |
|
64 | } | |
65 | } |
|
65 | } | |
66 |
|
66 |
@@ -139,6 +139,7 void VariableController::createVariable(const QString &name, const QVariantHash | |||||
139 | if (varIdentifier == identifier) { |
|
139 | if (varIdentifier == identifier) { | |
140 | impl->m_VariableCacheController->addDateTime(variable, dateTimeToPutInCache); |
|
140 | impl->m_VariableCacheController->addDateTime(variable, dateTimeToPutInCache); | |
141 | variable->setDataSeries(dataSeriesAcquired); |
|
141 | variable->setDataSeries(dataSeriesAcquired); | |
|
142 | emit variable->updated(); | |||
142 | } |
|
143 | } | |
143 | } |
|
144 | } | |
144 | }; |
|
145 | }; |
@@ -177,7 +177,7 void VisualizationGraphWidget::onGraphMenuRequested(const QPoint &pos) noexcept | |||||
177 |
|
177 | |||
178 | void VisualizationGraphWidget::onRangeChanged(const QCPRange &t1) |
|
178 | void VisualizationGraphWidget::onRangeChanged(const QCPRange &t1) | |
179 | { |
|
179 | { | |
180 |
qC |
|
180 | qCInfo(LOG_VisualizationGraphWidget()) << tr("VisualizationGraphWidget::onRangeChanged") | |
181 |
|
|
181 | << QThread::currentThread()->objectName(); | |
182 |
|
182 | |||
183 | for (auto it = impl->m_VariableToPlotMultiMap.cbegin(); |
|
183 | for (auto it = impl->m_VariableToPlotMultiMap.cbegin(); | |
@@ -185,29 +185,40 void VisualizationGraphWidget::onRangeChanged(const QCPRange &t1) | |||||
185 |
|
185 | |||
186 | auto variable = it->first; |
|
186 | auto variable = it->first; | |
187 | auto dateTime = SqpDateTime{t1.lower, t1.upper}; |
|
187 | auto dateTime = SqpDateTime{t1.lower, t1.upper}; | |
|
188 | auto dateTimeRange = dateTime; | |||
188 |
|
189 | |||
189 | if (!variable->contains(dateTime)) { |
|
190 | auto tolerance = 0.2 * (dateTime.m_TEnd - dateTime.m_TStart); | |
|
191 | auto variableDateTimeWithTolerance = dateTime; | |||
|
192 | variableDateTimeWithTolerance.m_TStart -= tolerance; | |||
|
193 | variableDateTimeWithTolerance.m_TEnd += tolerance; | |||
|
194 | ||||
|
195 | qCInfo(LOG_VisualizationGraphWidget()) << "v" << dateTime; | |||
|
196 | qCInfo(LOG_VisualizationGraphWidget()) << "vtol" << variableDateTimeWithTolerance; | |||
|
197 | // If new range with tol is upper than variable datetime parameters. we need to request new | |||
|
198 | // data | |||
|
199 | if (!variable->contains(variableDateTimeWithTolerance)) { | |||
190 |
|
200 | |||
191 | auto variableDateTimeWithTolerance = dateTime; |
|
201 | auto variableDateTimeWithTolerance = dateTime; | |
192 | if (!variable->isInside(dateTime)) { |
|
202 | if (!variable->isInside(dateTime)) { | |
193 | auto variableDateTime = variable->dateTime(); |
|
203 | auto variableDateTime = variable->dateTime(); | |
194 | if (variableDateTime.m_TStart < dateTime.m_TStart) { |
|
204 | if (variableDateTime.m_TStart < dateTime.m_TStart) { | |
195 |
qC |
|
205 | qCInfo(LOG_VisualizationGraphWidget()) << tr("TORM: Detection pan to right:"); | |
196 |
|
206 | |||
197 | auto diffEndToKeepDelta = dateTime.m_TEnd - variableDateTime.m_TEnd; |
|
207 | auto diffEndToKeepDelta = dateTime.m_TEnd - variableDateTime.m_TEnd; | |
198 | dateTime.m_TStart = variableDateTime.m_TStart + diffEndToKeepDelta; |
|
208 | dateTime.m_TStart = variableDateTime.m_TStart + diffEndToKeepDelta; | |
199 | // Tolerance have to be added to the right |
|
209 | // Tolerance have to be added to the right | |
200 | // add 10% tolerance for right (end) side |
|
210 | // add 10% tolerance for right (end) side | |
201 |
auto tolerance = 0.1 * (dateTime.m_TEnd - |
|
211 | // auto tolerance = 0.1 * (dateTime.m_TEnd - | |
|
212 | // dateTime.m_TStart); | |||
202 | variableDateTimeWithTolerance.m_TEnd += tolerance; |
|
213 | variableDateTimeWithTolerance.m_TEnd += tolerance; | |
203 | } |
|
214 | } | |
204 | else if (variableDateTime.m_TEnd > dateTime.m_TEnd) { |
|
215 | else if (variableDateTime.m_TEnd > dateTime.m_TEnd) { | |
205 |
qC |
|
216 | qCInfo(LOG_VisualizationGraphWidget()) << tr("TORM: Detection pan to left: "); | |
206 | auto diffStartToKeepDelta = variableDateTime.m_TStart - dateTime.m_TStart; |
|
217 | auto diffStartToKeepDelta = variableDateTime.m_TStart - dateTime.m_TStart; | |
207 | dateTime.m_TEnd = variableDateTime.m_TEnd - diffStartToKeepDelta; |
|
218 | dateTime.m_TEnd = variableDateTime.m_TEnd - diffStartToKeepDelta; | |
208 | // Tolerance have to be added to the left |
|
219 | // Tolerance have to be added to the left | |
209 | // add 10% tolerance for left (start) side |
|
220 | // add 10% tolerance for left (start) side | |
210 |
|
|
221 | tolerance = 0.2 * (dateTime.m_TEnd - dateTime.m_TStart); | |
211 | variableDateTimeWithTolerance.m_TStart -= tolerance; |
|
222 | variableDateTimeWithTolerance.m_TStart -= tolerance; | |
212 | } |
|
223 | } | |
213 | else { |
|
224 | else { | |
@@ -216,19 +227,23 void VisualizationGraphWidget::onRangeChanged(const QCPRange &t1) | |||||
216 | } |
|
227 | } | |
217 | } |
|
228 | } | |
218 | else { |
|
229 | else { | |
219 |
qC |
|
230 | qCInfo(LOG_VisualizationGraphWidget()) << tr("Detection zoom out: "); | |
220 | // add 10% tolerance for each side |
|
231 | // add 10% tolerance for each side | |
221 |
|
|
232 |
tolerance = 0.2 * (dateTime.m_TEnd - dateTime.m_TStart);
|
|
222 | variableDateTimeWithTolerance.m_TStart -= tolerance; |
|
233 | variableDateTimeWithTolerance.m_TStart -= tolerance; | |
223 | variableDateTimeWithTolerance.m_TEnd += tolerance; |
|
234 | variableDateTimeWithTolerance.m_TEnd += tolerance; | |
224 | } |
|
235 | } | |
|
236 | if (!variable->contains(dateTimeRange)) { | |||
|
237 | qCInfo(LOG_VisualizationGraphWidget()) << "newv" << dateTime; | |||
225 | variable->setDateTime(dateTime); |
|
238 | variable->setDateTime(dateTime); | |
|
239 | } | |||
226 |
|
240 | |||
|
241 | qCInfo(LOG_VisualizationGraphWidget()) << tr("Request data detection: "); | |||
227 | // CHangement detected, we need to ask controller to request data loading |
|
242 | // CHangement detected, we need to ask controller to request data loading | |
228 | emit requestDataLoading(variable, variableDateTimeWithTolerance); |
|
243 | emit requestDataLoading(variable, variableDateTimeWithTolerance); | |
229 | } |
|
244 | } | |
230 | else { |
|
245 | else { | |
231 |
qC |
|
246 | qCInfo(LOG_VisualizationGraphWidget()) << tr("Detection zoom in: "); | |
232 | } |
|
247 | } | |
233 | } |
|
248 | } | |
234 | } |
|
249 | } | |
@@ -262,13 +277,24 void VisualizationGraphWidget::onDataCacheVariableUpdated() | |||||
262 | // - use an ordered_multimap and the algos of std to group the values by key |
|
277 | // - use an ordered_multimap and the algos of std to group the values by key | |
263 | // - use a map (unique keys) and store as values directly the list of components |
|
278 | // - use a map (unique keys) and store as values directly the list of components | |
264 |
|
279 | |||
|
280 | auto grapheRange = ui->widget->xAxis->range(); | |||
|
281 | auto dateTime = SqpDateTime{grapheRange.lower, grapheRange.upper}; | |||
|
282 | ||||
265 | for (auto it = impl->m_VariableToPlotMultiMap.cbegin(); |
|
283 | for (auto it = impl->m_VariableToPlotMultiMap.cbegin(); | |
266 | it != impl->m_VariableToPlotMultiMap.cend(); ++it) { |
|
284 | it != impl->m_VariableToPlotMultiMap.cend(); ++it) { | |
267 | auto variable = it->first; |
|
285 | auto variable = it->first; | |
|
286 | qCInfo(LOG_VisualizationGraphWidget()) | |||
|
287 | << "TORM: VisualizationGraphWidget::onDataCacheVariableUpdated S" | |||
|
288 | << variable->dateTime(); | |||
|
289 | qCInfo(LOG_VisualizationGraphWidget()) | |||
|
290 | << "TORM: VisualizationGraphWidget::onDataCacheVariableUpdated E" << dateTime; | |||
|
291 | if (dateTime.contains(variable->dateTime()) || dateTime.intersect(variable->dateTime())) { | |||
|
292 | ||||
268 | VisualizationGraphHelper::updateData(QVector<QCPAbstractPlottable *>{} << it->second, |
|
293 | VisualizationGraphHelper::updateData(QVector<QCPAbstractPlottable *>{} << it->second, | |
269 | variable->dataSeries(), variable->dateTime()); |
|
294 | variable->dataSeries(), variable->dateTime()); | |
270 | } |
|
295 | } | |
271 | } |
|
296 | } | |
|
297 | } | |||
272 |
|
298 | |||
273 | void VisualizationGraphWidget::updateDisplay(std::shared_ptr<Variable> variable) |
|
299 | void VisualizationGraphWidget::updateDisplay(std::shared_ptr<Variable> variable) | |
274 | { |
|
300 | { |
General Comments 3
Pull request updated. Auto status change to "Under Review"
Changed commits: * 3 added * 0 removed Changed files: * A plugins/amda/tests-resources/TestAmdaResultParser/FileNotFound.txt * M gui/src/Visualization/operations/RescaleAxeOperation.cpp * M app/src/MainWindow.cpp * M core/include/Data/IDataProvider.h * M core/include/DataSource/DataSourceItemAction.h * M core/include/Variable/VariableController.h * M core/include/Variable/VariableModel.h * M core/include/Visualization/VisualizationController.h * M core/src/Network/NetworkController.cpp * M core/src/Variable/Variable.cpp * M core/src/Variable/VariableController.cpp * M core/src/Variable/VariableModel.cpp * M gui/include/Visualization/VisualizationGraphWidget.h * M gui/include/Visualization/VisualizationWidget.h * M gui/src/SqpApplication.cpp * M gui/src/Variable/VariableInspectorWidget.cpp * M gui/src/Visualization/VisualizationGraphHelper.cpp * M gui/src/Visualization/VisualizationGraphWidget.cpp * M gui/src/Visualization/VisualizationWidget.cpp * M gui/src/Visualization/VisualizationZoneWidget.cpp * M plugins/amda/include/AmdaProvider.h * M plugins/amda/src/AmdaProvider.cpp * M plugins/amda/src/AmdaResultParser.cpp * M plugins/amda/tests/TestAmdaResultParser.cpp * M plugins/mockplugin/include/CosinusProvider.h * M plugins/mockplugin/src/CosinusProvider.cpp * R COPYING * R app/ui/MainWindow.ui * R cmake/sciqlop_package_qt.cmake * R core/include/Common/MetaTypes.h * R core/include/Data/ArrayData.h * R core/include/Data/DataProviderParameters.h * R core/include/Data/DataSeries.h * R core/include/Data/IDataSeries.h * R core/include/Data/ScalarSeries.h * R core/include/Data/SqpDateTime.h * R core/include/Network/NetworkController.h * R core/include/Plugin/PluginManager.h * R core/include/Time/TimeController.h * R core/include/Variable/Variable.h * R core/include/Variable/VariableCacheController.h * R core/src/Data/ScalarSeries.cpp * R core/src/DataSource/DataSourceItemAction.cpp * R core/src/Plugin/PluginManager.cpp * R core/src/Time/TimeController.cpp * R core/src/Variable/VariableCacheController.cpp * R core/src/Visualization/VisualizationController.cpp * R core/tests/Variable/TestVariableCacheController.cpp * R gui/include/DataSource/DataSourceTreeWidgetItem.h * R gui/include/DataSource/DataSourceWidget.h * R gui/include/SidePane/SqpSidePane.h * R gui/include/TimeWidget/TimeWidget.h * R gui/include/Variable/VariableInspectorWidget.h * R gui/include/Variable/VariableMenuHeaderWidget.h * R gui/include/Visualization/IVariableContainer.h * R gui/include/Visualization/IVisualizationWidget.h * R gui/include/Visualization/IVisualizationWidgetVisitor.h * R gui/include/Visualization/VisualizationGraphHelper.h * R gui/include/Visualization/VisualizationTabWidget.h * R gui/include/Visualization/VisualizationZoneWidget.h * R gui/include/Visualization/operations/GenerateVariableMenuOperation.h * R gui/include/Visualization/operations/MenuBuilder.h * R gui/include/Visualization/operations/RemoveVariableOperation.h * R gui/include/Visualization/qcustomplot.h * R gui/resources/icones/dataSourceComponent.png * R gui/resources/icones/dataSourceNode.png * R gui/resources/icones/dataSourceProduct.png * R gui/resources/icones/dataSourceRoot.png * R gui/resources/icones/delete.png * R gui/resources/icones/next.png * R gui/resources/icones/openInspector.png * R gui/resources/icones/plot.png * R gui/resources/icones/previous.png * R gui/resources/icones/sciqlop2PNG_1024.png * R gui/resources/icones/unplot.png * R gui/resources/sqpguiresources.qrc * R gui/src/DataSource/DataSourceTreeWidgetItem.cpp * R gui/src/DataSource/DataSourceWidget.cpp * R gui/src/SidePane/SqpSidePane.cpp * R gui/src/TimeWidget/TimeWidget.cpp * R gui/src/Variable/VariableMenuHeaderWidget.cpp * R gui/src/Visualization/VisualizationTabWidget.cpp * R gui/src/Visualization/operations/GenerateVariableMenuOperation.cpp * R gui/src/Visualization/operations/MenuBuilder.cpp * R gui/src/Visualization/operations/RemoveVariableOperation.cpp * R gui/src/Visualization/qcustomplot.cpp * R gui/ui/DataSource/DataSourceWidget.ui * R gui/ui/SidePane/SqpSidePane.ui * R gui/ui/TimeWidget/TimeWidget.ui * R gui/ui/Variable/VariableInspectorWidget.ui * R gui/ui/Variable/VariableMenuHeaderWidget.ui * R gui/ui/Visualization/VisualizationGraphWidget.ui * R gui/ui/Visualization/VisualizationTabWidget.ui * R gui/ui/Visualization/VisualizationWidget.ui * R gui/ui/Visualization/VisualizationZoneWidget.ui * R gui/vera-exclusions/exclusions.txt * R plugin/CMakeLists.txt * R plugin/cmake/Findsciqlop-plugin.cmake * R plugin/include/Plugin/IPlugin.h * R plugins/amda/CMakeLists.txt * R plugins/amda/cmake/Findsciqlop-amda.cmake * R plugins/amda/include/AmdaDefs.h * R plugins/amda/include/AmdaGlobal.h * R plugins/amda/include/AmdaParser.h * R plugins/amda/include/AmdaPlugin.h * R plugins/amda/include/AmdaResultParser.h * R plugins/amda/resources/amda.json * R plugins/amda/resources/amdaresources.qrc * R plugins/amda/resources/samples/AmdaSample.json * R plugins/amda/src/AmdaDefs.cpp * R plugins/amda/src/AmdaParser.cpp * R plugins/amda/src/AmdaPlugin.cpp * R plugins/amda/tests-resources/TestAmdaParser/TwoRootsFile.json * R plugins/amda/tests-resources/TestAmdaParser/ValidFile1.json * R plugins/amda/tests-resources/TestAmdaParser/WrongRootKey.json * R plugins/amda/tests-resources/TestAmdaParser/WrongRootType.json * R plugins/amda/tests-resources/TestAmdaResultParser/NaNValue.txt * R plugins/amda/tests-resources/TestAmdaResultParser/NoUnit.txt * R plugins/amda/tests-resources/TestAmdaResultParser/TooManyValues.txt * R plugins/amda/tests-resources/TestAmdaResultParser/ValidScalar1.txt * R plugins/amda/tests-resources/TestAmdaResultParser/WrongDate.txt * R plugins/amda/tests-resources/TestAmdaResultParser/WrongUnit.txt * R plugins/amda/tests-resources/TestAmdaResultParser/WrongValue.txt * R plugins/amda/tests/TestAmdaParser.cpp * R plugins/mockplugin/CMakeLists.txt * R plugins/mockplugin/cmake/Findsciqlop-mockplugin.cmake * R plugins/mockplugin/include/MockPlugin.h * R plugins/mockplugin/include/MockPluginGlobal.h * R plugins/mockplugin/resources/mockplugin.json * R plugins/mockplugin/src/MockPlugin.cpp * R README.md * R app/CMakeLists.txt * R app/include/MainWindow.h * R app/src/Main.cpp * R app/vera-exclusions/exclusions.txt * R cmake/sciqlop.cmake * R cmake/sciqlop_applications.cmake * R cmake/sciqlop_package.cmake * R cmake/sciqlop_params.cmake * R core/CMakeLists.txt * R core/include/Common/spimpl.h * R core/include/DataSource/DataSourceController.h * R core/include/DataSource/DataSourceItem.h * R core/src/DataSource/DataSourceController.cpp * R core/src/DataSource/DataSourceItem.cpp * R core/tests/DataSource/TestDataSourceController.cpp * R core/vera-exclusions/exclusions.txt * R formatting/cmake/use_clangformat.cmake * R formatting/vera-exclusions/exclusions.txt * R gui/CMakeLists.txt * R gui/include/SqpApplication.h * R LICENSE * R app/src/mainwindow.cpp * R app/src/mainwindow.ui
Status change > Approved
You need to be logged in to leave comments.
Login now