diff --git a/GUI/Model/Sample/SamplesSet.cpp b/GUI/Model/Sample/SamplesSet.cpp index b7274747dad0200f4525910c12f01ed26c7c436b..7622b9f4b15f29a053c3ea13f87fb026079852fc 100644 --- a/GUI/Model/Sample/SamplesSet.cpp +++ b/GUI/Model/Sample/SamplesSet.cpp @@ -35,12 +35,6 @@ QVector<SampleItem*> SamplesSet::sampleItems() const return QVector<SampleItem*>(m_samples.begin(), m_samples.end()); } -SampleItem* SamplesSet::addSampleItem() -{ - addSampleItem(new SampleItem()); - return m_samples.back(); -} - void SamplesSet::addSampleItem(SampleItem* sample) { m_samples.push_back(sample); @@ -88,7 +82,9 @@ void SamplesSet::readFrom(QXmlStreamReader* r) // sample if (tag == Tag::Sample) { - addSampleItem()->readFrom(r); + auto* t = new SampleItem; + t->readFrom(r); + addSampleItem(t); XML::gotoEndElementOfTag(r, tag); // selected index diff --git a/GUI/Model/Sample/SamplesSet.h b/GUI/Model/Sample/SamplesSet.h index b860dbd1fc148ff1bb41cf8ca2ac5d3ee9c31bce..e28c9c2f5a5fd21c747dccdd08f2f0effe3bfe15 100644 --- a/GUI/Model/Sample/SamplesSet.h +++ b/GUI/Model/Sample/SamplesSet.h @@ -27,9 +27,7 @@ public: ~SamplesSet(); QVector<SampleItem*> sampleItems() const; - SampleItem* addSampleItem(); void addSampleItem(SampleItem* sample); - void removeSample(SampleItem* sample); QStringList sampleNames() const; diff --git a/GUI/View/List/SamplesQModel.cpp b/GUI/View/List/SamplesQModel.cpp index f813adad7109a7eb1b6b7db8378d33819c047c7c..f89d2228666bc378512474a40ea48bcfd9f63cf8 100644 --- a/GUI/View/List/SamplesQModel.cpp +++ b/GUI/View/List/SamplesQModel.cpp @@ -89,29 +89,35 @@ QModelIndex SamplesQModel::createSample() { const QStringList existingNames = gDoc->samples()->sampleNames(); + auto* t = new SampleItem; + t->setSampleName(GUI::Util::String::suggestName(existingNames, "Sample")); + t->addStandardMaterials(); + const int row = gDoc->samples()->sampleItems().size(); + beginInsertRows(QModelIndex(), row, row); - auto* sample_item = gDoc->samplesModifier()->addSampleItem(); - sample_item->setSampleName(GUI::Util::String::suggestName(existingNames, "Sample")); - sample_item->addStandardMaterials(); + gDoc->samplesModifier()->addSampleItem(t); endInsertRows(); - return indexForItem(sample_item); + + return indexForItem(t); } QModelIndex SamplesQModel::createSampleFromExamples(const QString& className, const QString& title, const QString& description) { - auto* sample = dynamic_cast<SampleItem*>(GUI::ExamplesFactory::itemizeSample(className)); - if (!sample) + auto* t = dynamic_cast<SampleItem*>(GUI::ExamplesFactory::itemizeSample(className)); + if (!t) return {}; - sample->setSampleName(title); - sample->setDescription(description); + t->setSampleName(title); + t->setDescription(description); const int row = gDoc->samples()->sampleItems().size(); + beginInsertRows(QModelIndex(), row, row); - gDoc->samplesModifier()->addSampleItem(sample); + gDoc->samplesModifier()->addSampleItem(t); endInsertRows(); - return indexForItem(sample); + + return indexForItem(t); } #ifdef BORNAGAIN_PYTHON @@ -121,16 +127,17 @@ QModelIndex SamplesQModel::createSampleFromPython() if (!sample) return {}; // any messages already shown to user - SampleItem* sampleItem = PyImportAssistant::itemizeSample(*sample); - if (!sampleItem) + SampleItem* t = PyImportAssistant::itemizeSample(*sample); + if (!t) return {}; // any messages already shown to user - - sampleItem->setDescription("Imported from python code"); + t->setDescription("Imported from python code"); const int row = gDoc->samples()->sampleItems().size(); + beginInsertRows(QModelIndex(), row, row); - gDoc->samplesModifier()->addSampleItem(sampleItem); + gDoc->samplesModifier()->addSampleItem(t); endInsertRows(); - return indexForItem(sampleItem); + + return indexForItem(t); } #endif