##// END OF EJS Templates
Removes VisualizationController::onVariableCreated() slot...
Alexandre Leroux -
r174:992eeb099247
parent child
Show More
@@ -1,43 +1,44
1 1 #ifndef SCIQLOP_VISUALIZATIONCONTROLLER_H
2 2 #define SCIQLOP_VISUALIZATIONCONTROLLER_H
3 3
4 4 #include <QLoggingCategory>
5 5 #include <QObject>
6 6 #include <QUuid>
7 7
8 8 #include <Common/spimpl.h>
9 9
10 10 Q_DECLARE_LOGGING_CATEGORY(LOG_VisualizationController)
11 11
12 12 class DataSourceItem;
13 13 class Variable;
14 14
15 15 /**
16 16 * @brief The VisualizationController class aims to make the link between SciQlop and its plugins.
17 17 * This is the intermediate class that SciQlop has to use in the way to connect a data source.
18 18 * Please first use register method to initialize a plugin specified by its metadata name (JSON
19 19 * plugin source) then others specifics method will be able to access it. You can load a data source
20 20 * driver plugin then create a data source.
21 21 */
22 22 class VisualizationController : public QObject {
23 23 Q_OBJECT
24 24 public:
25 25 explicit VisualizationController(QObject *parent = 0);
26 26 virtual ~VisualizationController();
27 27
28 public slots:
29 /// Slot called when a variable has been created in SciQlop
30 void onVariableCreated(std::shared_ptr<Variable> variable) noexcept;
28 signals:
29 /// Signal emitted when a variable has been created in SciQlop
30 void variableCreated(std::shared_ptr<Variable> variable);
31 31
32 public slots:
32 33 /// Manage init/end of the controller
33 34 void initialize();
34 35 void finalize();
35 36
36 37 private:
37 38 void waitForFinish();
38 39
39 40 class VisualizationControllerPrivate;
40 41 spimpl::unique_impl_ptr<VisualizationControllerPrivate> impl;
41 42 };
42 43
43 44 #endif // SCIQLOP_VISUALIZATIONCONTROLLER_H
@@ -1,54 +1,48
1 1 #include <Visualization/VisualizationController.h>
2 2
3 3 #include <Variable/Variable.h>
4 4
5 5 #include <QMutex>
6 6 #include <QThread>
7 7
8 8 #include <QDir>
9 9 #include <QStandardPaths>
10 10
11 11 Q_LOGGING_CATEGORY(LOG_VisualizationController, "VisualizationController")
12 12
13 13 class VisualizationController::VisualizationControllerPrivate {
14 14 public:
15 15 QMutex m_WorkingMutex;
16 16 };
17 17
18 18 VisualizationController::VisualizationController(QObject *parent)
19 19 : impl{spimpl::make_unique_impl<VisualizationControllerPrivate>()}
20 20 {
21 21 qCDebug(LOG_VisualizationController()) << tr("VisualizationController construction")
22 22 << QThread::currentThread();
23 23 }
24 24
25 25 VisualizationController::~VisualizationController()
26 26 {
27 27 qCDebug(LOG_VisualizationController()) << tr("VisualizationController destruction")
28 28 << QThread::currentThread();
29 29 this->waitForFinish();
30 30 }
31 31
32 void VisualizationController::onVariableCreated(std::shared_ptr<Variable> variable) noexcept
33 {
34 /// @todo ALX : make new graph for the variable
35 qCDebug(LOG_VisualizationController()) << "new variable to display";
36 }
37
38 32 void VisualizationController::initialize()
39 33 {
40 34 qCDebug(LOG_VisualizationController()) << tr("VisualizationController init")
41 35 << QThread::currentThread();
42 36 impl->m_WorkingMutex.lock();
43 37 qCDebug(LOG_VisualizationController()) << tr("VisualizationController init END");
44 38 }
45 39
46 40 void VisualizationController::finalize()
47 41 {
48 42 impl->m_WorkingMutex.unlock();
49 43 }
50 44
51 45 void VisualizationController::waitForFinish()
52 46 {
53 47 QMutexLocker locker{&impl->m_WorkingMutex};
54 48 }
@@ -1,109 +1,109
1 1 #include "SqpApplication.h"
2 2
3 3 #include <Data/IDataProvider.h>
4 4 #include <DataSource/DataSourceController.h>
5 5 #include <QThread>
6 6 #include <Variable/Variable.h>
7 7 #include <Variable/VariableController.h>
8 8 #include <Visualization/VisualizationController.h>
9 9
10 10 Q_LOGGING_CATEGORY(LOG_SqpApplication, "SqpApplication")
11 11
12 12 class SqpApplication::SqpApplicationPrivate {
13 13 public:
14 14 SqpApplicationPrivate()
15 15 : m_DataSourceController{std::make_unique<DataSourceController>()},
16 16 m_VariableController{std::make_unique<VariableController>()},
17 17 m_VisualizationController{std::make_unique<VisualizationController>()}
18 18 {
19 19 // /////////////////////////////// //
20 20 // Connections between controllers //
21 21 // /////////////////////////////// //
22 22
23 23 // VariableController <-> DataSourceController
24 24 qRegisterMetaType<std::shared_ptr<IDataProvider> >();
25 25 connect(m_DataSourceController.get(),
26 26 SIGNAL(variableCreationRequested(const QString &, std::shared_ptr<IDataProvider>)),
27 27 m_VariableController.get(),
28 28 SLOT(createVariable(const QString &, std::shared_ptr<IDataProvider>)));
29 29
30 30 // VariableController <-> VisualizationController
31 31 qRegisterMetaType<std::shared_ptr<Variable> >();
32 32 connect(m_VariableController.get(), SIGNAL(variableCreated(std::shared_ptr<Variable>)),
33 33 m_VisualizationController.get(),
34 SLOT(onVariableCreated(std::shared_ptr<Variable>)));
34 SIGNAL(variableCreated(std::shared_ptr<Variable>)));
35 35
36 36 m_DataSourceController->moveToThread(&m_DataSourceControllerThread);
37 37 m_VariableController->moveToThread(&m_VariableControllerThread);
38 38 m_VisualizationController->moveToThread(&m_VisualizationControllerThread);
39 39 }
40 40
41 41 virtual ~SqpApplicationPrivate()
42 42 {
43 43 qCInfo(LOG_SqpApplication()) << tr("SqpApplicationPrivate destruction");
44 44 m_DataSourceControllerThread.quit();
45 45 m_DataSourceControllerThread.wait();
46 46
47 47 m_VariableControllerThread.quit();
48 48 m_VariableControllerThread.wait();
49 49
50 50 m_VisualizationControllerThread.quit();
51 51 m_VisualizationControllerThread.wait();
52 52 }
53 53
54 54 std::unique_ptr<DataSourceController> m_DataSourceController;
55 55 std::unique_ptr<VariableController> m_VariableController;
56 56 std::unique_ptr<VisualizationController> m_VisualizationController;
57 57 QThread m_DataSourceControllerThread;
58 58 QThread m_VariableControllerThread;
59 59 QThread m_VisualizationControllerThread;
60 60 };
61 61
62 62
63 63 SqpApplication::SqpApplication(int &argc, char **argv)
64 64 : QApplication{argc, argv}, impl{spimpl::make_unique_impl<SqpApplicationPrivate>()}
65 65 {
66 66 qCInfo(LOG_SqpApplication()) << tr("SqpApplication construction");
67 67
68 68 connect(&impl->m_DataSourceControllerThread, &QThread::started,
69 69 impl->m_DataSourceController.get(), &DataSourceController::initialize);
70 70 connect(&impl->m_DataSourceControllerThread, &QThread::finished,
71 71 impl->m_DataSourceController.get(), &DataSourceController::finalize);
72 72
73 73 connect(&impl->m_VariableControllerThread, &QThread::started, impl->m_VariableController.get(),
74 74 &VariableController::initialize);
75 75 connect(&impl->m_VariableControllerThread, &QThread::finished, impl->m_VariableController.get(),
76 76 &VariableController::finalize);
77 77
78 78 connect(&impl->m_VisualizationControllerThread, &QThread::started,
79 79 impl->m_VisualizationController.get(), &VisualizationController::initialize);
80 80 connect(&impl->m_VisualizationControllerThread, &QThread::finished,
81 81 impl->m_VisualizationController.get(), &VisualizationController::finalize);
82 82
83 83 impl->m_DataSourceControllerThread.start();
84 84 impl->m_VariableControllerThread.start();
85 85 impl->m_VisualizationControllerThread.start();
86 86 }
87 87
88 88 SqpApplication::~SqpApplication()
89 89 {
90 90 }
91 91
92 92 void SqpApplication::initialize()
93 93 {
94 94 }
95 95
96 96 DataSourceController &SqpApplication::dataSourceController() noexcept
97 97 {
98 98 return *impl->m_DataSourceController;
99 99 }
100 100
101 101 VariableController &SqpApplication::variableController() noexcept
102 102 {
103 103 return *impl->m_VariableController;
104 104 }
105 105
106 106 VisualizationController &SqpApplication::visualizationController() noexcept
107 107 {
108 108 return *impl->m_VisualizationController;
109 109 }
General Comments 0
You need to be logged in to leave comments. Login now