Skip to content
Snippets Groups Projects
Commit 148c693e authored by Matthias Puchner's avatar Matthias Puchner
Browse files

reduce SessionModel usage for SampleModel

parent 5f520874
No related branches found
No related tags found
1 merge request!513Refactor sample model
......@@ -132,7 +132,7 @@ void GUIDomainSampleVisitor::visit(const Layer* node)
void GUIDomainSampleVisitor::visit(const MultiLayer* node)
{
auto* multilayer_item = m_sampleModel->insertItem<MultiLayerItem>();
auto* multilayer_item = m_sampleModel->addMultiLayer();
multilayer_item->setItemName(node->sampleName().c_str());
multilayer_item->crossCorrLength().set(node->crossCorrLength());
multilayer_item->setExternalField(node->externalField());
......
......@@ -13,6 +13,7 @@
// ************************************************************************************************
#include "GUI/Model/From/SampleListModel.h"
#include "Base/Util/Assert.h"
#include "GUI/Model/From/GUIExamplesFactory.h"
#include "GUI/Model/Sample/MultiLayerItem.h"
#include "GUI/Model/Sample/SampleModel.h"
......@@ -32,7 +33,8 @@ SampleListModel::SampleListModel(QObject* parent, SampleModel* model)
MultiLayerItem* SampleListModel::topMostItem() const
{
return m_sampleModel->topItem<MultiLayerItem>();
ASSERT(!m_sampleModel->multiLayerItems().isEmpty());
return m_sampleModel->multiLayerItems().first();
}
int SampleListModel::rowCount(const QModelIndex& parent) const
......@@ -131,7 +133,7 @@ QModelIndex SampleListModel::createSample()
const int row = m_sampleModel->multiLayerItems().size();
beginInsertRows(QModelIndex(), row, row);
auto* multilayer_item = m_sampleModel->insertItem<MultiLayerItem>();
auto* multilayer_item = m_sampleModel->addMultiLayer();
multilayer_item->setItemName(suggestName(topItemNames(m_sampleModel), "Sample"));
endInsertRows();
return indexForItem(multilayer_item);
......
......@@ -77,6 +77,11 @@ QVector<ItemWithMaterial*> SampleModel::itemsWithMaterial() const
return result;
}
MultiLayerItem* SampleModel::addMultiLayer()
{
return insertItem<MultiLayerItem>();
}
void SampleModel::removeMultiLayer(MultiLayerItem* item)
{
removeItem(item);
......
......@@ -38,6 +38,8 @@ public:
//! Returns vector of SessionItems having MaterialProperty on board.
QVector<ItemWithMaterial*> itemsWithMaterial() const;
//! Adds a multilayer and returns the new item.
MultiLayerItem* addMultiLayer();
void removeMultiLayer(MultiLayerItem* item);
signals:
......
......@@ -111,7 +111,7 @@ QString ScriptPanel::generateCodeSnippet()
m_cautionSign->clear();
QString result;
for (const MultiLayerItem* sampleItem : m_sampleModel->topItems<MultiLayerItem>()) {
for (const MultiLayerItem* sampleItem : m_sampleModel->multiLayerItems()) {
try {
auto multilayer = GUI::Model::DomainObjectBuilder::buildMultiLayer(*sampleItem);
if (!result.isEmpty())
......
......@@ -236,7 +236,7 @@ void SimulationView::updateFunctionalityNarrowing()
QVector<MultiLayerItem*> SimulationView::multiLayerItems() const
{
return m_document->sampleModel()->topItems<MultiLayerItem>();
return m_document->sampleModel()->multiLayerItems();
}
QVector<InstrumentItem*> SimulationView::instrumentItems() const
......
......@@ -16,7 +16,7 @@ TEST_F(TestMultiLayerItem, twoLayerSystem)
{
SampleModel model;
auto* multilayer = model.insertItem<MultiLayerItem>();
auto* multilayer = model.addMultiLayer();
auto* top = model.insertItem<LayerItem>(multilayer);
auto* bottom = model.insertItem<LayerItem>(multilayer);
......@@ -45,7 +45,7 @@ TEST_F(TestMultiLayerItem, threeLayerSystem)
{
SampleModel model;
auto* multilayer = model.insertItem<MultiLayerItem>();
auto* multilayer = model.addMultiLayer();
auto* top = model.insertItem<LayerItem>(multilayer);
auto* middle = model.insertItem<LayerItem>(multilayer);
auto* bottom = model.insertItem<LayerItem>(multilayer);
......@@ -80,7 +80,7 @@ TEST_F(TestMultiLayerItem, movingMiddleLayerOnTop)
{
SampleModel model;
auto* multilayer = model.insertItem<MultiLayerItem>();
auto* multilayer = model.addMultiLayer();
auto* top = model.insertItem<LayerItem>(multilayer);
auto* middle = model.insertItem<LayerItem>(multilayer);
auto* bottom = model.insertItem<LayerItem>(multilayer);
......@@ -128,7 +128,7 @@ TEST_F(TestMultiLayerItem, movingLayerOnCanvas)
{
SampleModel model;
auto* multilayer = model.insertItem<MultiLayerItem>();
auto* multilayer = model.addMultiLayer();
auto* top = model.insertItem<LayerItem>(multilayer);
model.insertItem<LayerItem>(multilayer);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment