Skip to content
Snippets Groups Projects
Commit 73f31bb2 authored by Wuttke, Joachim's avatar Wuttke, Joachim
Browse files

SamplesQModel use gDoc directly, rm member pointer

parent b265ff3a
No related branches found
No related tags found
1 merge request!2360simplify and unify samples & instruments list code
......@@ -23,17 +23,12 @@
#include "GUI/View/Manager/PyImportAssistant.h"
#include "Sample/Multilayer/MultiLayer.h"
SamplesQModel::SamplesQModel()
: m_sample_items(gDoc->samplesModifier())
{
}
int SamplesQModel::rowCount(const QModelIndex& parent) const
{
if (parent.isValid())
return 0;
return m_sample_items->sampleItems().size();
return gDoc->samples()->sampleItems().size();
}
QVariant SamplesQModel::data(const QModelIndex& index, int role) const
......@@ -82,12 +77,12 @@ SampleItem* SamplesQModel::itemForIndex(const QModelIndex& index) const
if (!index.isValid())
return nullptr;
return m_sample_items->sampleItems()[index.row()];
return gDoc->samples()->sampleItems()[index.row()];
}
QModelIndex SamplesQModel::indexForItem(SampleItem* item) const
{
if (auto row = m_sample_items->sampleItems().indexOf(item); row >= 0)
if (auto row = gDoc->samples()->sampleItems().indexOf(item); row >= 0)
return index(row, 0);
return {};
......@@ -100,31 +95,31 @@ void SamplesQModel::removeSample(SampleItem* item)
return;
beginRemoveRows(index.parent(), index.row(), index.row());
m_sample_items->removeSample(item);
gDoc->samplesModifier()->removeSample(item);
endRemoveRows();
}
QModelIndex SamplesQModel::copySample(SampleItem* item)
{
ASSERT(item);
const QStringList existingNames = m_sample_items->sampleNames();
const QStringList existingNames = gDoc->samples()->sampleNames();
const int row = m_sample_items->sampleItems().size();
const int row = gDoc->samples()->sampleItems().size();
beginInsertRows(QModelIndex(), row, row);
SampleItem* copied_item = item->clone();
copied_item->setSampleName(GUI::Util::String::suggestName(existingNames, item->sampleName()));
m_sample_items->addSampleItem(copied_item);
gDoc->samplesModifier()->addSampleItem(copied_item);
endInsertRows();
return indexForItem(copied_item);
}
QModelIndex SamplesQModel::createSample()
{
const QStringList existingNames = m_sample_items->sampleNames();
const QStringList existingNames = gDoc->samples()->sampleNames();
const int row = m_sample_items->sampleItems().size();
const int row = gDoc->samples()->sampleItems().size();
beginInsertRows(QModelIndex(), row, row);
auto* sample_item = m_sample_items->addSampleItem();
auto* sample_item = gDoc->samplesModifier()->addSampleItem();
sample_item->setSampleName(GUI::Util::String::suggestName(existingNames, "Sample"));
sample_item->addStandardMaterials();
endInsertRows();
......@@ -140,9 +135,9 @@ QModelIndex SamplesQModel::createSampleFromExamples(const QString& className, co
sample->setSampleName(title);
sample->setDescription(description);
const int row = m_sample_items->sampleItems().size();
const int row = gDoc->samples()->sampleItems().size();
beginInsertRows(QModelIndex(), row, row);
m_sample_items->addSampleItem(sample);
gDoc->samplesModifier()->addSampleItem(sample);
endInsertRows();
return indexForItem(sample);
}
......@@ -160,9 +155,9 @@ QModelIndex SamplesQModel::createSampleFromPython()
sampleItem->setDescription("Imported from python code");
const int row = m_sample_items->sampleItems().size();
const int row = gDoc->samples()->sampleItems().size();
beginInsertRows(QModelIndex(), row, row);
m_sample_items->addSampleItem(sampleItem);
gDoc->samplesModifier()->addSampleItem(sampleItem);
endInsertRows();
return indexForItem(sampleItem);
}
......
......@@ -18,14 +18,11 @@
#include <QAbstractItemModel>
class SampleItem;
class SamplesSet;
//! List model for sample selection (used in the left pane of SampleView)
class SamplesQModel : public QAbstractListModel {
Q_OBJECT
public:
SamplesQModel();
int rowCount(const QModelIndex& parent = QModelIndex()) const override;
QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
Qt::ItemFlags flags(const QModelIndex& index) const override;
......@@ -55,9 +52,6 @@ public:
//! Returns invalid index if anything went wrong.
QModelIndex createSampleFromPython();
#endif
private:
SamplesSet* m_sample_items = nullptr;
};
#endif // BORNAGAIN_GUI_VIEW_LIST_SAMPLESQMODEL_H
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