@@ -101,7 +101,9 struct AxisSetter<T, typename std::enable_if_t<std::is_base_of<ScalarSeries, T>: | |||
|
101 | 101 | auto valuesUnit = dataSeries.valuesUnit(); |
|
102 | 102 | dataSeries.unlock(); |
|
103 | 103 | |
|
104 | setAxisProperties(*plot.xAxis, xAxisUnit); | |
|
104 | // setAxisProperties(*plot.xAxis, xAxisUnit); | |
|
105 | // This is cheating but it's ok ;) | |
|
106 | setAxisProperties(*plot.xAxis, Unit{"s", true}); | |
|
105 | 107 | setAxisProperties(*plot.yAxis, valuesUnit); |
|
106 | 108 | } |
|
107 | 109 | }; |
@@ -138,7 +140,9 struct AxisSetter<T, typename std::enable_if_t<std::is_base_of<SpectrogramSeries | |||
|
138 | 140 | auto valuesUnit = dataSeries.valuesUnit(); |
|
139 | 141 | dataSeries.unlock(); |
|
140 | 142 | |
|
141 | setAxisProperties(*plot.xAxis, xAxisUnit); | |
|
143 | //setAxisProperties(*plot.xAxis, xAxisUnit); | |
|
144 | // This is cheating but it's ok ;) | |
|
145 | setAxisProperties(*plot.xAxis, Unit{"s", true}); | |
|
142 | 146 | setAxisProperties(*plot.yAxis, yAxisUnit, QCPAxis::stLogarithmic); |
|
143 | 147 | setAxisProperties(*colorScale.m_Scale->axis(), valuesUnit, QCPAxis::stLogarithmic); |
|
144 | 148 | } |
@@ -471,12 +471,23 void VisualizationGraphWidget::addVariable(std::shared_ptr<Variable> variable, D | |||
|
471 | 471 | |
|
472 | 472 | impl->m_VariableToPlotMultiMap.insert({variable, std::move(createdPlottables)}); |
|
473 | 473 | |
|
474 | setGraphRange(range); | |
|
474 | 475 | // If the variable already has its data loaded, load its units and its range in the graph |
|
475 | 476 | if (variable->dataSeries() != nullptr) { |
|
476 | 477 | impl->m_RenderingDelegate->setAxesUnits(*variable); |
|
477 | this->setFlags(GraphFlag::DisableAll); | |
|
478 | setGraphRange(range); | |
|
479 | this->setFlags(GraphFlag::EnableAll); | |
|
478 | } | |
|
479 | else | |
|
480 | { | |
|
481 | auto context = new QObject{this}; | |
|
482 | connect(variable.get(), &Variable::updated, context, | |
|
483 | [this, variable, context, range](QUuid) | |
|
484 | { | |
|
485 | this->impl->m_RenderingDelegate->setAxesUnits(*variable); | |
|
486 | this->impl->rescaleY(); | |
|
487 | this->impl->m_plot->replot(QCustomPlot::rpQueuedReplot); | |
|
488 | delete context; | |
|
489 | } | |
|
490 | ); | |
|
480 | 491 | } |
|
481 | 492 | //@TODO this is bad! when variable is moved to another graph it still fires |
|
482 | 493 | // even if this has been deleted |
@@ -528,10 +528,26 void VisualizationZoneWidget::dropMimeDataOnGraph(VisualizationDragWidget *dragW | |||
|
528 | 528 | mimeData->data(MIME_TYPE_PRODUCT_LIST)); |
|
529 | 529 | |
|
530 | 530 | auto context = new QObject{this}; |
|
531 | auto range = TimeController::timeRangeForMimeData(mimeData->data(MIME_TYPE_TIME_RANGE)); | |
|
532 | // BTW this is really dangerous, this assumes the next created variable will be this one... | |
|
531 | 533 | connect(&sqpApp->variableController(), &VariableController2::variableAdded, context, |
|
532 | [this, graphWidget, context](auto variable) { | |
|
533 | graphWidget->addVariable(variable, graphWidget->graphRange()); | |
|
534 | delete context; // removes the connection | |
|
534 | [this, graphWidget, context, range](auto variable) { | |
|
535 | if(sqpApp->variableController().isReady(variable)) | |
|
536 | { | |
|
537 | graphWidget->addVariable(variable, range); | |
|
538 | delete context; | |
|
539 | } | |
|
540 | else | |
|
541 | { | |
|
542 | // -> this is pure insanity! this is a workaround to make a bad design work | |
|
543 | QObject::connect(variable.get(), &Variable::updated,context, | |
|
544 | [graphWidget, context, range, variable]() | |
|
545 | { | |
|
546 | graphWidget->addVariable(variable, range); | |
|
547 | delete context; | |
|
548 | }); | |
|
549 | } | |
|
550 | ||
|
535 | 551 | }, |
|
536 | 552 | Qt::QueuedConnection); |
|
537 | 553 |
General Comments 0
You need to be logged in to leave comments.
Login now