diff --git a/GUI/coregui/Models/ParticleDistributionItem.cpp b/GUI/coregui/Models/ParticleDistributionItem.cpp index 45434d9a5eb0fe7b66a12d51d9901a78fa142120..df9ec6db891dbf5b6f674999bc4cf12bef45c371 100644 --- a/GUI/coregui/Models/ParticleDistributionItem.cpp +++ b/GUI/coregui/Models/ParticleDistributionItem.cpp @@ -63,10 +63,11 @@ std::unique_ptr<ParticleDistribution> ParticleDistributionItem::createParticleDi if (!P_particle) throw GUIHelpers::Error("DomainObjectBuilder::buildParticleDistribution()" " -> Error! No correct particle defined"); - auto distr_item = getGroupItem(ParticleDistributionItem::P_DISTRIBUTION); + auto distr_item = dynamic_cast<DistributionItem*>( + getGroupItem(ParticleDistributionItem::P_DISTRIBUTION)); Q_ASSERT(distr_item); - auto P_distribution = TransformToDomain::createDistribution(*distr_item); + auto P_distribution = distr_item->createDistribution(); auto prop = getItemValue(ParticleDistributionItem::P_DISTRIBUTED_PARAMETER).value<ComboProperty>(); diff --git a/GUI/coregui/Models/TransformFromDomain.cpp b/GUI/coregui/Models/TransformFromDomain.cpp index 7fcfccb54adc7dd4d6ceaaed7ef89bf2fd0b9118..8f65fbc05c5c71f7e84fb09b4b0fa985e6c6a95c 100644 --- a/GUI/coregui/Models/TransformFromDomain.cpp +++ b/GUI/coregui/Models/TransformFromDomain.cpp @@ -744,7 +744,8 @@ void setDistribution(SessionItem* item, ParameterDistribution par_distr, if (pdfItem) { pdfItem->setItemValue(DistributionItem::P_NUMBER_OF_SAMPLES, (int)par_distr.getNbrSamples()); - pdfItem->setItemValue(DistributionItem::P_SIGMA_FACTOR, + if(pdfItem->isTag(DistributionItem::P_SIGMA_FACTOR)) + pdfItem->setItemValue(DistributionItem::P_SIGMA_FACTOR, par_distr.getSigmaFactor()); } } diff --git a/GUI/coregui/Models/TransformToDomain.cpp b/GUI/coregui/Models/TransformToDomain.cpp index 9376eebbcd81f1154018a6c559737bf950af187e..b722592155a828a11c8ff9eb39491a79175643a2 100644 --- a/GUI/coregui/Models/TransformToDomain.cpp +++ b/GUI/coregui/Models/TransformToDomain.cpp @@ -142,14 +142,6 @@ std::unique_ptr<ParticleDistribution> TransformToDomain::createParticleDistribut return P_part_distr; } -std::unique_ptr<IDistribution1D> -TransformToDomain::createDistribution(const SessionItem& item) -{ - auto distr_item = dynamic_cast<const DistributionItem*>(&item); - Q_ASSERT(distr_item); - return distr_item->createDistribution(); -} - std::unique_ptr<Instrument> TransformToDomain::createInstrument(const SessionItem& item) { Q_UNUSED(item); diff --git a/GUI/coregui/Models/TransformToDomain.h b/GUI/coregui/Models/TransformToDomain.h index 423ae56a222927a34c1da7ed8c58e23bcc01f59f..d9378960879b53b0e2994bceec478deb97923a01 100644 --- a/GUI/coregui/Models/TransformToDomain.h +++ b/GUI/coregui/Models/TransformToDomain.h @@ -36,7 +36,6 @@ class SessionItem; namespace TransformToDomain { BA_CORE_API_ std::unique_ptr<Beam> createBeam(const SessionItem& item); -BA_CORE_API_ std::unique_ptr<IDistribution1D> createDistribution(const SessionItem& item); BA_CORE_API_ std::unique_ptr<IMaterial> createDomainMaterial(const SessionItem& item); BA_CORE_API_ std::unique_ptr<IParticle> createIParticle(const SessionItem& item); BA_CORE_API_ std::unique_ptr<Instrument> createInstrument(const SessionItem& item);