Skip to content
Snippets Groups Projects
Commit 3cfa22fd authored by Mikhail Svechnikov's avatar Mikhail Svechnikov
Browse files

Models: nonXMLItems --> dataItems && SessionItem --> DataItem

parent f166a8c0
No related branches found
No related tags found
1 merge request!1062GUI: JobModel is refactored
...@@ -64,10 +64,10 @@ void ApplicationModels::readFrom(QXmlStreamReader* reader, MessageService* messa ...@@ -64,10 +64,10 @@ void ApplicationModels::readFrom(QXmlStreamReader* reader, MessageService* messa
} }
QVector<SessionItem*> ApplicationModels::nonXMLItems() const QVector<DataItem*> ApplicationModels::dataItems() const
{ {
ASSERT(m_realDataModel && m_jobModel); ASSERT(m_realDataModel && m_jobModel);
return QVector<SessionItem*>() << m_realDataModel->nonXMLItems() << m_jobModel->nonXMLItems(); return QVector<DataItem*>() << m_realDataModel->dataItems() << m_jobModel->dataItems();
} }
void ApplicationModels::connectModel(SessionModel* model) const void ApplicationModels::connectModel(SessionModel* model) const
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
#include <QObject> #include <QObject>
class SessionModel; class SessionModel;
class SessionItem; class DataItem;
class DocumentModel; class DocumentModel;
class InstrumentCollection; class InstrumentCollection;
class RealModel; class RealModel;
...@@ -36,8 +36,8 @@ public: ...@@ -36,8 +36,8 @@ public:
void writeTo(class QXmlStreamWriter* writer); void writeTo(class QXmlStreamWriter* writer);
void readFrom(class QXmlStreamReader* reader, MessageService* messageService); void readFrom(class QXmlStreamReader* reader, MessageService* messageService);
//! Returns all non-XML items //! Returns all data items
QVector<SessionItem*> nonXMLItems() const; QVector<DataItem*> dataItems() const;
signals: signals:
void modelChanged(); void modelChanged();
......
...@@ -109,9 +109,9 @@ void JobModel::clear() ...@@ -109,9 +109,9 @@ void JobModel::clear()
SessionModel::clear(); SessionModel::clear();
} }
QVector<SessionItem*> JobModel::nonXMLItems() const QVector<DataItem*> JobModel::dataItems() const
{ {
QVector<SessionItem*> result; QVector<DataItem*> result;
for (auto* jobItem : jobItems()) { for (auto* jobItem : jobItems()) {
if (auto* dataItem = jobItem->simulatedDataItem()) if (auto* dataItem = jobItem->simulatedDataItem())
......
...@@ -22,6 +22,7 @@ class JobItem; ...@@ -22,6 +22,7 @@ class JobItem;
class JobQueueData; class JobQueueData;
class MultiLayerItem; class MultiLayerItem;
class RealItem; class RealItem;
class DataItem;
class SimulationOptionsItem; class SimulationOptionsItem;
class JobModel : public SessionModel { class JobModel : public SessionModel {
...@@ -43,7 +44,7 @@ public: ...@@ -43,7 +44,7 @@ public:
bool hasUnfinishedJobs(); bool hasUnfinishedJobs();
void clear() override; void clear() override;
QVector<SessionItem*> nonXMLItems() const override; QVector<DataItem*> dataItems() const;
void readFrom(QXmlStreamReader* reader, MessageService* messageService = nullptr) override; void readFrom(QXmlStreamReader* reader, MessageService* messageService = nullptr) override;
void runJob(JobItem* jobItem); void runJob(JobItem* jobItem);
......
...@@ -26,9 +26,9 @@ RealModel::RealModel(QObject* parent) ...@@ -26,9 +26,9 @@ RealModel::RealModel(QObject* parent)
connect(this, &SessionModel::rowsRemoved, this, &RealModel::onRowsChange); connect(this, &SessionModel::rowsRemoved, this, &RealModel::onRowsChange);
} }
QVector<SessionItem*> RealModel::nonXMLItems() const QVector<DataItem*> RealModel::dataItems() const
{ {
QVector<SessionItem*> result; QVector<DataItem*> result;
for (auto* realData : realItems()) { for (auto* realData : realItems()) {
if (auto* intensityItem = realData->dataItem()) if (auto* intensityItem = realData->dataItem())
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include "GUI/Model/Model/SessionModel.h" #include "GUI/Model/Model/SessionModel.h"
class RealItem; class RealItem;
class DataItem;
//! The RealModel class is a model to store all imported RealItem's. //! The RealModel class is a model to store all imported RealItem's.
...@@ -27,7 +28,7 @@ class RealModel : public SessionModel { ...@@ -27,7 +28,7 @@ class RealModel : public SessionModel {
public: public:
explicit RealModel(QObject* parent = nullptr); explicit RealModel(QObject* parent = nullptr);
QVector<SessionItem*> nonXMLItems() const override; QVector<DataItem*> dataItems() const;
void readFrom(QXmlStreamReader* reader, MessageService* messageService = nullptr) override; void readFrom(QXmlStreamReader* reader, MessageService* messageService = nullptr) override;
RealItem* insertSpecularDataItem(); RealItem* insertSpecularDataItem();
......
...@@ -113,9 +113,9 @@ QVector<SaveLoadInterface*> DatafieldIOService::dataInterfaces() const ...@@ -113,9 +113,9 @@ QVector<SaveLoadInterface*> DatafieldIOService::dataInterfaces() const
if (!m_applicationModels) if (!m_applicationModels)
return result; return result;
for (auto* item : m_applicationModels->nonXMLItems()) for (auto* item : m_applicationModels->dataItems())
if (auto* non_xml_item = dynamic_cast<SaveLoadInterface*>(item)) if (auto* data_item = dynamic_cast<SaveLoadInterface*>(item))
result.push_back(non_xml_item); result.push_back(data_item);
return result; return result;
} }
......
...@@ -30,13 +30,13 @@ TEST_F(TestIOService, nonXMLData) ...@@ -30,13 +30,13 @@ TEST_F(TestIOService, nonXMLData)
ApplicationModels models; ApplicationModels models;
// initial state // initial state
auto dataItems = models.nonXMLItems(); auto dataItems = models.dataItems();
EXPECT_EQ(dataItems.size(), 0); EXPECT_EQ(dataItems.size(), 0);
// adding RealItem // adding RealItem
auto* realData = models.realModel()->insertIntensityDataItem(); auto* realData = models.realModel()->insertIntensityDataItem();
realData->setDatafield(UTest::GUI::createData().release()); realData->setDatafield(UTest::GUI::createData().release());
EXPECT_EQ(models.realModel()->nonXMLItems().size(), 1); EXPECT_EQ(models.realModel()->dataItems().size(), 1);
// adding JobItem // adding JobItem
auto* jobItem = models.jobModel()->insertItem<JobItem>(); auto* jobItem = models.jobModel()->insertItem<JobItem>();
...@@ -44,20 +44,20 @@ TEST_F(TestIOService, nonXMLData) ...@@ -44,20 +44,20 @@ TEST_F(TestIOService, nonXMLData)
jobItem->copyInstrumentIntoJob(instrumentItem); jobItem->copyInstrumentIntoJob(instrumentItem);
jobItem->createSumulatedDataItem(); jobItem->createSumulatedDataItem();
auto* dataItem = jobItem->simulatedDataItem(); auto* dataItem = jobItem->simulatedDataItem();
EXPECT_EQ(models.jobModel()->nonXMLItems().size(), 1); EXPECT_EQ(models.jobModel()->dataItems().size(), 1);
// adding RealItem to jobItem // adding RealItem to jobItem
RealItem* realData2 = jobItem->createRealItem(); RealItem* realData2 = jobItem->createRealItem();
EXPECT_EQ(models.jobModel()->nonXMLItems().size(), 1); EXPECT_EQ(models.jobModel()->dataItems().size(), 1);
realData2->setDatafield(UTest::GUI::createData(0.0, UTest::GUI::DIM::D1).release()); realData2->setDatafield(UTest::GUI::createData(0.0, UTest::GUI::DIM::D1).release());
EXPECT_EQ(models.jobModel()->nonXMLItems().size(), 2); EXPECT_EQ(models.jobModel()->dataItems().size(), 2);
// checking data items of DatafieldIOService // checking data items of DatafieldIOService
DatafieldIOService service(&models); DatafieldIOService service(&models);
EXPECT_EQ(service.dataInterfaces().size(), 3); EXPECT_EQ(service.dataInterfaces().size(), 3);
// checking data items of ApplicationModels // checking data items of ApplicationModels
dataItems = models.nonXMLItems(); dataItems = models.dataItems();
EXPECT_EQ(dataItems.size(), 3); EXPECT_EQ(dataItems.size(), 3);
EXPECT_EQ(dataItems.indexOf(realData->dataItem()), 0); EXPECT_EQ(dataItems.indexOf(realData->dataItem()), 0);
EXPECT_EQ(dataItems.indexOf(dataItem), 1); EXPECT_EQ(dataItems.indexOf(dataItem), 1);
...@@ -65,12 +65,12 @@ TEST_F(TestIOService, nonXMLData) ...@@ -65,12 +65,12 @@ TEST_F(TestIOService, nonXMLData)
// Replacing the data inside RealItem with the data of the same dimensions // Replacing the data inside RealItem with the data of the same dimensions
realData->setDatafield(UTest::GUI::createData(2.0).release()); realData->setDatafield(UTest::GUI::createData(2.0).release());
EXPECT_EQ(models.realModel()->nonXMLItems().size(), 1); EXPECT_EQ(models.realModel()->dataItems().size(), 1);
// Replacing the data inside RealItem with the data of different dimensions // Replacing the data inside RealItem with the data of different dimensions
auto data = UTest::GUI::createData(3.0, UTest::GUI::DIM::D1); auto data = UTest::GUI::createData(3.0, UTest::GUI::DIM::D1);
EXPECT_THROW(dynamic_cast<RealItem*>(realData)->setDatafield(data.get()), Error); EXPECT_THROW(dynamic_cast<RealItem*>(realData)->setDatafield(data.get()), Error);
EXPECT_EQ(models.realModel()->nonXMLItems().size(), 1); EXPECT_EQ(models.realModel()->dataItems().size(), 1);
} }
//! Tests DatafieldSaveInfo class intended for storing info about the last save. //! Tests DatafieldSaveInfo class intended for storing info about the last save.
...@@ -234,19 +234,19 @@ TEST_F(TestIOService, RealDataItemWithNativeData) ...@@ -234,19 +234,19 @@ TEST_F(TestIOService, RealDataItemWithNativeData)
ApplicationModels models; ApplicationModels models;
// initial state // initial state
auto dataItems = models.nonXMLItems(); auto dataItems = models.dataItems();
EXPECT_EQ(dataItems.size(), 0); EXPECT_EQ(dataItems.size(), 0);
// adding RealItem // adding RealItem
auto* realData = models.realModel()->insertIntensityDataItem(); auto* realData = models.realModel()->insertIntensityDataItem();
EXPECT_EQ(models.realModel()->nonXMLItems().size(), 1); EXPECT_EQ(models.realModel()->dataItems().size(), 1);
ImportDataInfo import_data(std::unique_ptr<Datafield>(m_data.clone()), "nbins"); ImportDataInfo import_data(std::unique_ptr<Datafield>(m_data.clone()), "nbins");
realData->setImportData(std::move(import_data)); realData->setImportData(std::move(import_data));
// TODO: setImportData tested here with 2D data while main code uses it for 1D only. // TODO: setImportData tested here with 2D data while main code uses it for 1D only.
EXPECT_TRUE(realData->isIntensityData()); EXPECT_TRUE(realData->isIntensityData());
EXPECT_EQ(models.realModel()->nonXMLItems().size(), 2); EXPECT_EQ(models.realModel()->dataItems().size(), 2);
realData->setDataName("RealData"); realData->setDataName("RealData");
// adding JobItem // adding JobItem
...@@ -256,11 +256,11 @@ TEST_F(TestIOService, RealDataItemWithNativeData) ...@@ -256,11 +256,11 @@ TEST_F(TestIOService, RealDataItemWithNativeData)
auto* instrumentItem = new GISASInstrumentItem(); auto* instrumentItem = new GISASInstrumentItem();
jobItem->copyInstrumentIntoJob(instrumentItem); jobItem->copyInstrumentIntoJob(instrumentItem);
jobItem->createSumulatedDataItem(); jobItem->createSumulatedDataItem();
EXPECT_EQ(models.jobModel()->nonXMLItems().size(), 1); EXPECT_EQ(models.jobModel()->dataItems().size(), 1);
// copying RealItem to JobItem // copying RealItem to JobItem
jobItem->copyRealItemIntoJob(realData); jobItem->copyRealItemIntoJob(realData);
EXPECT_EQ(models.jobModel()->nonXMLItems().size(), 3); EXPECT_EQ(models.jobModel()->dataItems().size(), 3);
// checking data items of DatafieldIOService // checking data items of DatafieldIOService
DatafieldIOService service(&models); DatafieldIOService service(&models);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment