From 9fabd78ca3ee4dcb3b0e6b55f65592f809c0427d 2017-07-20 09:58:25 From: mperrinel Date: 2017-07-20 09:58:25 Subject: [PATCH] Add connection logical for the rescale operation --- diff --git a/app/src/MainWindow.cpp b/app/src/MainWindow.cpp index 05951cb..9b306a3 100644 --- a/app/src/MainWindow.cpp +++ b/app/src/MainWindow.cpp @@ -192,6 +192,10 @@ MainWindow::MainWindow(QWidget *parent) SIGNAL(variableAboutToBeDeleted(std::shared_ptr)), m_Ui->view, SLOT(onVariableAboutToBeDeleted(std::shared_ptr))); + connect(&sqpApp->visualizationController(), + SIGNAL(rangeChanged(std::shared_ptr, const SqpDateTime &)), m_Ui->view, + SLOT(onRangeChanged(std::shared_ptr, const SqpDateTime &))); + // Widgets / widgets connections // For the following connections, we use DirectConnection to allow each widget that can diff --git a/core/include/Variable/VariableController.h b/core/include/Variable/VariableController.h index 2ba9d00..c896d44 100644 --- a/core/include/Variable/VariableController.h +++ b/core/include/Variable/VariableController.h @@ -59,6 +59,9 @@ signals: /// Signal emitted when a variable is about to be deleted from the controller void variableAboutToBeDeleted(std::shared_ptr variable); + /// Signal emitted when a data acquisition is requested on a range for a variable + void rangeChanged(std::shared_ptr variable, const SqpDateTime &range); + public slots: /// Request the data loading of the variable whithin dateTime void onRequestDataLoading(std::shared_ptr variable, const SqpDateTime &dateTime); diff --git a/core/include/Visualization/VisualizationController.h b/core/include/Visualization/VisualizationController.h index fac9491..74ff980 100644 --- a/core/include/Visualization/VisualizationController.h +++ b/core/include/Visualization/VisualizationController.h @@ -1,6 +1,8 @@ #ifndef SCIQLOP_VISUALIZATIONCONTROLLER_H #define SCIQLOP_VISUALIZATIONCONTROLLER_H +#include + #include #include #include @@ -29,6 +31,9 @@ signals: /// Signal emitted when a variable is about to be deleted from SciQlop void variableAboutToBeDeleted(std::shared_ptr variable); + /// Signal emitted when a data acquisition is requested on a range for a variable + void rangeChanged(std::shared_ptr variable, const SqpDateTime &range); + public slots: /// Manage init/end of the controller void initialize(); diff --git a/core/src/Variable/VariableController.cpp b/core/src/Variable/VariableController.cpp index 27a4a0a..fb2c553 100644 --- a/core/src/Variable/VariableController.cpp +++ b/core/src/Variable/VariableController.cpp @@ -161,6 +161,7 @@ void VariableController::onDateTimeOnSelection(const SqpDateTime &dateTime) if (auto selectedVariable = impl->m_VariableModel->variable(selectedRow.row())) { selectedVariable->setDateTime(dateTime); this->onRequestDataLoading(selectedVariable, dateTime); + emit rangeChanged(selectedVariable, dateTime); } } } diff --git a/gui/include/Visualization/VisualizationGraphWidget.h b/gui/include/Visualization/VisualizationGraphWidget.h index ef0e800..c38c375 100644 --- a/gui/include/Visualization/VisualizationGraphWidget.h +++ b/gui/include/Visualization/VisualizationGraphWidget.h @@ -32,14 +32,15 @@ public: /// Removes a variable from the graph void removeVariable(std::shared_ptr variable) noexcept; + /// Rescale the X axe to range parameter + void setRange(std::shared_ptr variable, const SqpDateTime &range); + // IVisualizationWidget interface void accept(IVisualizationWidgetVisitor *visitor) override; bool canDrop(const Variable &variable) const override; bool contains(const Variable &variable) const override; QString name() const override; - void updateDisplay(std::shared_ptr variable); - signals: void requestDataLoading(std::shared_ptr variable, const SqpDateTime &dateTime); diff --git a/gui/include/Visualization/VisualizationWidget.h b/gui/include/Visualization/VisualizationWidget.h index 378b3e3..79e2538 100644 --- a/gui/include/Visualization/VisualizationWidget.h +++ b/gui/include/Visualization/VisualizationWidget.h @@ -2,6 +2,7 @@ #define SCIQLOP_VISUALIZATIONWIDGET_H #include "Visualization/IVisualizationWidget.h" +#include #include #include @@ -41,6 +42,8 @@ public slots: /// Slot called when a variable is about to be deleted from SciQlop void onVariableAboutToBeDeleted(std::shared_ptr variable) noexcept; + void onRangeChanged(std::shared_ptr variable, const SqpDateTime &range) noexcept; + private: Ui::VisualizationWidget *ui; }; diff --git a/gui/src/SqpApplication.cpp b/gui/src/SqpApplication.cpp index de830b8..89e0249 100644 --- a/gui/src/SqpApplication.cpp +++ b/gui/src/SqpApplication.cpp @@ -38,6 +38,11 @@ public: m_VisualizationController.get(), SIGNAL(variableAboutToBeDeleted(std::shared_ptr)), Qt::DirectConnection); + connect(m_VariableController.get(), + SIGNAL(rangeChanged(std::shared_ptr, const SqpDateTime &)), + m_VisualizationController.get(), + SIGNAL(rangeChanged(std::shared_ptr, const SqpDateTime &))); + m_DataSourceController->moveToThread(&m_DataSourceControllerThread); m_DataSourceControllerThread.setObjectName("DataSourceControllerThread"); diff --git a/gui/src/Visualization/VisualizationWidget.cpp b/gui/src/Visualization/VisualizationWidget.cpp index 2b29114..076ff3c 100644 --- a/gui/src/Visualization/VisualizationWidget.cpp +++ b/gui/src/Visualization/VisualizationWidget.cpp @@ -5,6 +5,7 @@ #include "Visualization/VisualizationZoneWidget.h" #include "Visualization/operations/GenerateVariableMenuOperation.h" #include "Visualization/operations/RemoveVariableOperation.h" +#include "Visualization/operations/RescaleAxeOperation.h" #include "Visualization/qcustomplot.h" #include "ui_VisualizationWidget.h" @@ -141,3 +142,11 @@ void VisualizationWidget::onVariableAboutToBeDeleted(std::shared_ptr v auto removeVariableOperation = RemoveVariableOperation{variable}; accept(&removeVariableOperation); } + +void VisualizationWidget::onRangeChanged(std::shared_ptr variable, + const SqpDateTime &range) noexcept +{ + // Calls the operation of removing all references to the variable in the visualization + auto rescaleVariableOperation = RescaleAxeOperation{variable, range}; + accept(&rescaleVariableOperation); +}