diff --git a/core b/core index 65c558a..139d5f0 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 65c558a3025bc4ab1701c51a15427ccbf9d86cd3 +Subproject commit 139d5f0a7d64d6d6d1d20862d922cada26ed8df3 diff --git a/gui/src/Catalogue/CatalogueEventsWidget.cpp b/gui/src/Catalogue/CatalogueEventsWidget.cpp index 635f471..f51e8e9 100644 --- a/gui/src/Catalogue/CatalogueEventsWidget.cpp +++ b/gui/src/Catalogue/CatalogueEventsWidget.cpp @@ -289,7 +289,7 @@ struct CatalogueEventsWidget::CatalogueEventsWidgetPrivate { selectionZone); m_CustomGraphs << graph; - graph->setGraphRange(range, true); + graph->setGraphRange(range, true, true); // Removes the graph from the graph list if it is closed manually QObject::connect(graph, &VisualizationGraphWidget::destroyed, diff --git a/gui/src/Visualization/VisualizationGraphWidget.cpp b/gui/src/Visualization/VisualizationGraphWidget.cpp index 53d0a6f..ba271d9 100644 --- a/gui/src/Visualization/VisualizationGraphWidget.cpp +++ b/gui/src/Visualization/VisualizationGraphWidget.cpp @@ -892,13 +892,14 @@ void VisualizationGraphWidget::mouseMoveEvent(QMouseEvent *event) } else if(sqpApp->plotsInteractionMode() == SqpApplication::PlotsInteractionMode::SelectionZones) { - if(auto item = impl->m_plot->itemAt(event->pos())) + auto posInPlot = this->impl->m_plot->mapFromParent(event->pos()); + if(auto item = impl->m_plot->itemAt(posInPlot)) { if(qobject_cast(item)) { - QMouseEvent e{QEvent::MouseMove,this->impl->m_plot->mapFromParent(event->pos()),event->button(),event->buttons(),event->modifiers()}; + QMouseEvent e{QEvent::MouseMove, posInPlot, event->button(),event->buttons(),event->modifiers()}; sqpApp->sendEvent(this->impl->m_plot, &e); - this->impl->m_plot->replot(QCustomPlot::rpQueuedReplot); + this->impl->m_plot->replot(QCustomPlot::rpImmediateRefresh); } } diff --git a/gui/src/Visualization/VisualizationZoneWidget.cpp b/gui/src/Visualization/VisualizationZoneWidget.cpp index dbc3416..b3077fb 100644 --- a/gui/src/Visualization/VisualizationZoneWidget.cpp +++ b/gui/src/Visualization/VisualizationZoneWidget.cpp @@ -179,32 +179,17 @@ void VisualizationZoneWidget::addGraph(VisualizationGraphWidget *graphWidget) void VisualizationZoneWidget::insertGraph(int index, VisualizationGraphWidget *graphWidget) { DEPRECATE( - auto layout = ui->dragDropContainer->layout(); - for(int i=0;icount();i++) - { - auto graph = qobject_cast(layout->itemAt(i)->widget()); - connect(graphWidget, &VisualizationGraphWidget::setrange_sig, graph, &VisualizationGraphWidget::setGraphRange); - connect(graph, &VisualizationGraphWidget::setrange_sig, graphWidget, &VisualizationGraphWidget::setGraphRange); -// connect(graphWidget, &VisualizationGraphWidget::zoom_sig, graph, &VisualizationGraphWidget::zoom); -// connect(graphWidget, &VisualizationGraphWidget::transform_sig, graph, &VisualizationGraphWidget::transform); - -// connect(graphWidget, qOverload(&VisualizationGraphWidget::move_sig), -// graph, qOverload(&VisualizationGraphWidget::move)); -// connect(graphWidget, qOverload(&VisualizationGraphWidget::move_sig), -// graph, qOverload(&VisualizationGraphWidget::move)); - -// connect(graph, &VisualizationGraphWidget::zoom_sig, graphWidget, &VisualizationGraphWidget::zoom); -// connect(graph, &VisualizationGraphWidget::transform_sig, graphWidget, &VisualizationGraphWidget::transform); - -// connect(graph, qOverload(&VisualizationGraphWidget::move_sig), -// graphWidget, qOverload(&VisualizationGraphWidget::move)); -// connect(graph, qOverload(&VisualizationGraphWidget::move_sig), -// graphWidget, qOverload(&VisualizationGraphWidget::move)); - } - if(auto graph = firstGraph()) - { - graphWidget->setGraphRange(graph->graphRange(), true); - } + auto layout = ui->dragDropContainer->layout(); + for(int i=0;icount();i++) + { + auto graph = qobject_cast(layout->itemAt(i)->widget()); + connect(graphWidget, &VisualizationGraphWidget::setrange_sig, graph, &VisualizationGraphWidget::setGraphRange); + connect(graph, &VisualizationGraphWidget::setrange_sig, graphWidget, &VisualizationGraphWidget::setGraphRange); + } + if(auto graph = firstGraph()) + { + graphWidget->setGraphRange(graph->graphRange(), true); + } ) // Synchronize new graph with others in the zone @@ -232,65 +217,65 @@ VisualizationGraphWidget *VisualizationZoneWidget::createGraph(std::shared_ptrdragDropContainer->layout(); - for (auto i = 0; i < frameLayout->count(); ++i) { - auto graphChild - = dynamic_cast(frameLayout->itemAt(i)->widget()); - if (graphChild && (graphChild != graphWidget)) { - - auto graphChildRange = graphChild->graphRange(); - switch (zoomType) { - case TransformationType::ZoomIn: { - auto deltaLeft = graphRange.m_TStart - oldGraphRange.m_TStart; - auto deltaRight = oldGraphRange.m_TEnd - graphRange.m_TEnd; - graphChildRange.m_TStart += deltaLeft; - graphChildRange.m_TEnd -= deltaRight; - break; - } - - case TransformationType::ZoomOut: { - auto deltaLeft = oldGraphRange.m_TStart - graphRange.m_TStart; - auto deltaRight = graphRange.m_TEnd - oldGraphRange.m_TEnd; - graphChildRange.m_TStart -= deltaLeft; - graphChildRange.m_TEnd += deltaRight; - break; - } - case TransformationType::PanRight: { - auto deltaLeft = graphRange.m_TStart - oldGraphRange.m_TStart; - auto deltaRight = graphRange.m_TEnd - oldGraphRange.m_TEnd; - graphChildRange.m_TStart += deltaLeft; - graphChildRange.m_TEnd += deltaRight; - break; - } - case TransformationType::PanLeft: { - auto deltaLeft = oldGraphRange.m_TStart - graphRange.m_TStart; - auto deltaRight = oldGraphRange.m_TEnd - graphRange.m_TEnd; - graphChildRange.m_TStart -= deltaLeft; - graphChildRange.m_TEnd -= deltaRight; - break; - } - case TransformationType::Unknown: { - break; - } - default: - qCCritical(LOG_VisualizationZoneWidget()) - << tr("Impossible to synchronize: zoom type not take into account"); - // No action - break; - } - graphChild->setFlags(GraphFlag::DisableAll); - graphChild->setGraphRange(graphChildRange); - graphChild->setFlags(GraphFlag::EnableAll); - } - } - }; +// auto synchronizeZoneWidget = [this, graphWidget](const DateTimeRange &graphRange, +// const DateTimeRange &oldGraphRange) { + +// auto zoomType = DateTimeRangeHelper::getTransformationType(oldGraphRange, graphRange); +// auto frameLayout = ui->dragDropContainer->layout(); +// for (auto i = 0; i < frameLayout->count(); ++i) { +// auto graphChild +// = dynamic_cast(frameLayout->itemAt(i)->widget()); +// if (graphChild && (graphChild != graphWidget)) { + +// auto graphChildRange = graphChild->graphRange(); +// switch (zoomType) { +// case TransformationType::ZoomIn: { +// auto deltaLeft = graphRange.m_TStart - oldGraphRange.m_TStart; +// auto deltaRight = oldGraphRange.m_TEnd - graphRange.m_TEnd; +// graphChildRange.m_TStart += deltaLeft; +// graphChildRange.m_TEnd -= deltaRight; +// break; +// } + +// case TransformationType::ZoomOut: { +// auto deltaLeft = oldGraphRange.m_TStart - graphRange.m_TStart; +// auto deltaRight = graphRange.m_TEnd - oldGraphRange.m_TEnd; +// graphChildRange.m_TStart -= deltaLeft; +// graphChildRange.m_TEnd += deltaRight; +// break; +// } +// case TransformationType::PanRight: { +// auto deltaLeft = graphRange.m_TStart - oldGraphRange.m_TStart; +// auto deltaRight = graphRange.m_TEnd - oldGraphRange.m_TEnd; +// graphChildRange.m_TStart += deltaLeft; +// graphChildRange.m_TEnd += deltaRight; +// break; +// } +// case TransformationType::PanLeft: { +// auto deltaLeft = oldGraphRange.m_TStart - graphRange.m_TStart; +// auto deltaRight = oldGraphRange.m_TEnd - graphRange.m_TEnd; +// graphChildRange.m_TStart -= deltaLeft; +// graphChildRange.m_TEnd -= deltaRight; +// break; +// } +// case TransformationType::Unknown: { +// break; +// } +// default: +// qCCritical(LOG_VisualizationZoneWidget()) +// << tr("Impossible to synchronize: zoom type not take into account"); +// // No action +// break; +// } +// graphChild->setFlags(GraphFlag::DisableAll); +// graphChild->setGraphRange(graphChildRange, true); +// graphChild->setFlags(GraphFlag::EnableAll); +// } +// } +// }; // connection for synchronization - connect(graphWidget, &VisualizationGraphWidget::synchronize, synchronizeZoneWidget); + //connect(graphWidget, &VisualizationGraphWidget::synchronize, synchronizeZoneWidget); connect(graphWidget, &VisualizationGraphWidget::variableAdded, this, &VisualizationZoneWidget::onVariableAdded); connect(graphWidget, &VisualizationGraphWidget::variableAboutToBeRemoved, this,