@@ -29,6 +29,7 | |||||
29 | #include <Time/TimeController.h> |
|
29 | #include <Time/TimeController.h> | |
30 | #include <TimeWidget/TimeWidget.h> |
|
30 | #include <TimeWidget/TimeWidget.h> | |
31 | #include <Variable/Variable.h> |
|
31 | #include <Variable/Variable.h> | |
|
32 | #include <Variable/VariableController.h> | |||
32 | #include <Visualization/VisualizationController.h> |
|
33 | #include <Visualization/VisualizationController.h> | |
33 |
|
34 | |||
34 | #include <QAction> |
|
35 | #include <QAction> | |
@@ -182,6 +183,10 MainWindow::MainWindow(QWidget *parent) | |||||
182 | connect(timeWidget, SIGNAL(timeUpdated(SqpDateTime)), &sqpApp->timeController(), |
|
183 | connect(timeWidget, SIGNAL(timeUpdated(SqpDateTime)), &sqpApp->timeController(), | |
183 | SLOT(onTimeToUpdate(SqpDateTime))); |
|
184 | SLOT(onTimeToUpdate(SqpDateTime))); | |
184 |
|
185 | |||
|
186 | qRegisterMetaType<SqpDateTime>(); | |||
|
187 | connect(&sqpApp->timeController(), SIGNAL(timeUpdated(SqpDateTime)), | |||
|
188 | &sqpApp->variableController(), SLOT(onDateTimeOnSelection(SqpDateTime))); | |||
|
189 | ||||
185 | // Widgets / widgets connections |
|
190 | // Widgets / widgets connections | |
186 | qRegisterMetaType<std::shared_ptr<Variable> >(); |
|
191 | qRegisterMetaType<std::shared_ptr<Variable> >(); | |
187 |
|
192 |
@@ -44,7 +44,6 public slots: | |||||
44 | signals: |
|
44 | signals: | |
45 | void updated(); |
|
45 | void updated(); | |
46 |
|
46 | |||
47 |
|
||||
48 | private: |
|
47 | private: | |
49 | class VariablePrivate; |
|
48 | class VariablePrivate; | |
50 | spimpl::unique_impl_ptr<VariablePrivate> impl; |
|
49 | spimpl::unique_impl_ptr<VariablePrivate> impl; |
@@ -8,8 +8,8 | |||||
8 |
|
8 | |||
9 | #include <Common/spimpl.h> |
|
9 | #include <Common/spimpl.h> | |
10 |
|
10 | |||
11 |
|
||||
12 | class IDataProvider; |
|
11 | class IDataProvider; | |
|
12 | class QItemSelectionModel; | |||
13 | class TimeController; |
|
13 | class TimeController; | |
14 | class Variable; |
|
14 | class Variable; | |
15 | class VariableModel; |
|
15 | class VariableModel; | |
@@ -26,6 +26,7 public: | |||||
26 | virtual ~VariableController(); |
|
26 | virtual ~VariableController(); | |
27 |
|
27 | |||
28 | VariableModel *variableModel() noexcept; |
|
28 | VariableModel *variableModel() noexcept; | |
|
29 | QItemSelectionModel *variableSelectionModel() noexcept; | |||
29 |
|
30 | |||
30 | void setTimeController(TimeController *timeController) noexcept; |
|
31 | void setTimeController(TimeController *timeController) noexcept; | |
31 |
|
32 | |||
@@ -44,6 +45,9 public slots: | |||||
44 | */ |
|
45 | */ | |
45 | void createVariable(const QString &name, std::shared_ptr<IDataProvider> provider) noexcept; |
|
46 | void createVariable(const QString &name, std::shared_ptr<IDataProvider> provider) noexcept; | |
46 |
|
47 | |||
|
48 | /// Update the temporal parameters of every selected variable to dateTime | |||
|
49 | void onDateTimeOnSelection(const SqpDateTime &dateTime); | |||
|
50 | ||||
47 | void initialize(); |
|
51 | void initialize(); | |
48 | void finalize(); |
|
52 | void finalize(); | |
49 |
|
53 |
@@ -11,6 +11,7 | |||||
11 | #include <QDateTime> |
|
11 | #include <QDateTime> | |
12 | #include <QMutex> |
|
12 | #include <QMutex> | |
13 | #include <QThread> |
|
13 | #include <QThread> | |
|
14 | #include <QtCore/QItemSelectionModel> | |||
14 |
|
15 | |||
15 | #include <unordered_map> |
|
16 | #include <unordered_map> | |
16 |
|
17 | |||
@@ -34,6 +35,7 struct VariableController::VariableControllerPrivate { | |||||
34 | explicit VariableControllerPrivate(VariableController *parent) |
|
35 | explicit VariableControllerPrivate(VariableController *parent) | |
35 | : m_WorkingMutex{}, |
|
36 | : m_WorkingMutex{}, | |
36 | m_VariableModel{new VariableModel{parent}}, |
|
37 | m_VariableModel{new VariableModel{parent}}, | |
|
38 | m_VariableSelectionModel{new QItemSelectionModel{m_VariableModel, parent}}, | |||
37 | m_VariableCacheController{std::make_unique<VariableCacheController>()} |
|
39 | m_VariableCacheController{std::make_unique<VariableCacheController>()} | |
38 | { |
|
40 | { | |
39 | } |
|
41 | } | |
@@ -41,6 +43,7 struct VariableController::VariableControllerPrivate { | |||||
41 | QMutex m_WorkingMutex; |
|
43 | QMutex m_WorkingMutex; | |
42 | /// Variable model. The VariableController has the ownership |
|
44 | /// Variable model. The VariableController has the ownership | |
43 | VariableModel *m_VariableModel; |
|
45 | VariableModel *m_VariableModel; | |
|
46 | QItemSelectionModel *m_VariableSelectionModel; | |||
44 |
|
47 | |||
45 |
|
48 | |||
46 | TimeController *m_TimeController{nullptr}; |
|
49 | TimeController *m_TimeController{nullptr}; | |
@@ -69,6 +72,11 VariableModel *VariableController::variableModel() noexcept | |||||
69 | return impl->m_VariableModel; |
|
72 | return impl->m_VariableModel; | |
70 | } |
|
73 | } | |
71 |
|
74 | |||
|
75 | QItemSelectionModel *VariableController::variableSelectionModel() noexcept | |||
|
76 | { | |||
|
77 | return impl->m_VariableSelectionModel; | |||
|
78 | } | |||
|
79 | ||||
72 | void VariableController::setTimeController(TimeController *timeController) noexcept |
|
80 | void VariableController::setTimeController(TimeController *timeController) noexcept | |
73 | { |
|
81 | { | |
74 | impl->m_TimeController = timeController; |
|
82 | impl->m_TimeController = timeController; | |
@@ -110,6 +118,17 void VariableController::createVariable(const QString &name, | |||||
110 | } |
|
118 | } | |
111 | } |
|
119 | } | |
112 |
|
120 | |||
|
121 | void VariableController::onDateTimeOnSelection(const SqpDateTime &dateTime) | |||
|
122 | { | |||
|
123 | auto selectedRows = impl->m_VariableSelectionModel->selectedRows(); | |||
|
124 | ||||
|
125 | for (const auto &selectedRow : qAsConst(selectedRows)) { | |||
|
126 | if (auto selectedVariable = impl->m_VariableModel->variable(selectedRow.row())) { | |||
|
127 | selectedVariable->setDateTime(dateTime); | |||
|
128 | } | |||
|
129 | } | |||
|
130 | } | |||
|
131 | ||||
113 |
|
132 | |||
114 | void VariableController::onRequestDataLoading(std::shared_ptr<Variable> variable, |
|
133 | void VariableController::onRequestDataLoading(std::shared_ptr<Variable> variable, | |
115 | const SqpDateTime &dateTime) |
|
134 | const SqpDateTime &dateTime) |
@@ -20,6 +20,16 TimeWidget::TimeWidget(QWidget *parent) : QWidget{parent}, ui{new Ui::TimeWidget | |||||
20 |
|
20 | |||
21 | connect(ui->applyToolButton, &QToolButton::clicked, &sqpApp->timeController(), |
|
21 | connect(ui->applyToolButton, &QToolButton::clicked, &sqpApp->timeController(), | |
22 | &TimeController::onTimeNotify); |
|
22 | &TimeController::onTimeNotify); | |
|
23 | ||||
|
24 | // Initialisation | |||
|
25 | ui->startDateTimeEdit->setDateTime( | |||
|
26 | QDateTime::currentDateTime().addSecs(-3600)); // one hour berefore | |||
|
27 | ui->endDateTimeEdit->setDateTime(QDateTime::currentDateTime()); | |||
|
28 | ||||
|
29 | auto dateTime | |||
|
30 | = SqpDateTime{QDateTime::currentDateTime().addSecs(-3600).toMSecsSinceEpoch() / 1000.0, | |||
|
31 | QDateTime::currentDateTime().toMSecsSinceEpoch() / 1000.0}; | |||
|
32 | sqpApp->timeController().onTimeToUpdate(dateTime); | |||
23 | } |
|
33 | } | |
24 |
|
34 | |||
25 |
|
35 |
@@ -18,10 +18,11 VariableInspectorWidget::VariableInspectorWidget(QWidget *parent) | |||||
18 | ui->setupUi(this); |
|
18 | ui->setupUi(this); | |
19 |
|
19 | |||
20 | // Sets model for table |
|
20 | // Sets model for table | |
21 | auto sortFilterModel = new QSortFilterProxyModel{this}; |
|
21 | // auto sortFilterModel = new QSortFilterProxyModel{this}; | |
22 | sortFilterModel->setSourceModel(sqpApp->variableController().variableModel()); |
|
22 | // sortFilterModel->setSourceModel(sqpApp->variableController().variableModel()); | |
23 |
|
23 | |||
24 |
ui->tableView->setModel(s |
|
24 | ui->tableView->setModel(sqpApp->variableController().variableModel()); | |
|
25 | ui->tableView->setSelectionModel(sqpApp->variableController().variableSelectionModel()); | |||
25 |
|
26 | |||
26 | // Fixes column sizes |
|
27 | // Fixes column sizes | |
27 | auto model = ui->tableView->model(); |
|
28 | auto model = ui->tableView->model(); |
General Comments 0
You need to be logged in to leave comments.
Login now