diff --git a/app/src/MainWindow.cpp b/app/src/MainWindow.cpp index 6bf9b47..8911e2a 100644 --- a/app/src/MainWindow.cpp +++ b/app/src/MainWindow.cpp @@ -64,8 +64,8 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), m_Ui(new Ui::Main mainToolBar->addAction("A1"); // Widgets / controllers connections - connect(&sqpApp->dataSourceController(), SIGNAL(dataSourceItemSet(DataSourceItem &)), - m_Ui->dataSourceWidget, SLOT(addDataSource(DataSourceItem &))); + connect(&sqpApp->dataSourceController(), SIGNAL(dataSourceItemSet(DataSourceItem *)), + m_Ui->dataSourceWidget, SLOT(addDataSource(DataSourceItem *))); /* QLopGUI::registerMenuBar(menuBar()); this->setWindowIcon(QIcon(":/sciqlopLOGO.svg")); diff --git a/core/include/DataSource/DataSourceController.h b/core/include/DataSource/DataSourceController.h index 33a6049..6d3df61 100644 --- a/core/include/DataSource/DataSourceController.h +++ b/core/include/DataSource/DataSourceController.h @@ -49,7 +49,7 @@ public slots: signals: /// Signal emitted when a structure has been set for a data source - void dataSourceItemSet(DataSourceItem &dataSourceItem); + void dataSourceItemSet(DataSourceItem *dataSourceItem); private: void waitForFinish(); diff --git a/core/src/DataSource/DataSourceController.cpp b/core/src/DataSource/DataSourceController.cpp index f3def90..c8066c1 100644 --- a/core/src/DataSource/DataSourceController.cpp +++ b/core/src/DataSource/DataSourceController.cpp @@ -49,7 +49,7 @@ void DataSourceController::setDataSourceItem( // Retrieves the data source item to emit the signal with it auto it = impl->m_DataSourceItems.find(dataSourceUid); if (it != impl->m_DataSourceItems.end()) { - emit dataSourceItemSet(*it->second); + emit dataSourceItemSet(it->second.get()); } } else { diff --git a/core/tests/DataSource/TestDataSourceController.cpp b/core/tests/DataSource/TestDataSourceController.cpp index a8c0a24..24429e2 100644 --- a/core/tests/DataSource/TestDataSourceController.cpp +++ b/core/tests/DataSource/TestDataSourceController.cpp @@ -26,7 +26,7 @@ void TestDataSourceController::testSetDataSourceItem() DataSourceController dataSourceController{}; // Spy to test controllers' signals - QSignalSpy signalSpy{&dataSourceController, SIGNAL(dataSourceItemSet(const DataSourceItem &))}; + QSignalSpy signalSpy{&dataSourceController, SIGNAL(dataSourceItemSet(DataSourceItem *))}; // Create a data source item auto source1Name = QStringLiteral("Source1"); diff --git a/gui/include/DataSource/DataSourceWidget.h b/gui/include/DataSource/DataSourceWidget.h index e0634f7..19d351f 100644 --- a/gui/include/DataSource/DataSourceWidget.h +++ b/gui/include/DataSource/DataSourceWidget.h @@ -21,9 +21,9 @@ public slots: /** * Adds a data source. An item associated to the data source is created and then added to the * representation tree - * @param dataSource the data source to add + * @param dataSource the data source to add. The pointer has to be not null */ - void addDataSource(DataSourceItem &dataSource) noexcept; + void addDataSource(DataSourceItem *dataSource) noexcept; private: class DataSourceWidgetPrivate; diff --git a/gui/src/DataSource/DataSourceWidget.cpp b/gui/src/DataSource/DataSourceWidget.cpp index 20e3014..79749aa 100644 --- a/gui/src/DataSource/DataSourceWidget.cpp +++ b/gui/src/DataSource/DataSourceWidget.cpp @@ -53,9 +53,11 @@ DataSourceWidget::DataSourceWidget(QWidget *parent) { } -void DataSourceWidget::addDataSource(DataSourceItem &dataSource) noexcept +void DataSourceWidget::addDataSource(DataSourceItem *dataSource) noexcept { // Creates the item associated to the source and adds it to the tree widget. The tree widget // takes the ownership of the item - impl->m_Ui->treeWidget->addTopLevelItem(createTreeWidgetItem(&dataSource)); + if (dataSource) { + impl->m_Ui->treeWidget->addTopLevelItem(createTreeWidgetItem(dataSource)); + } }