diff --git a/GUI/Model/Device/BeamDistributionItem.h b/GUI/Model/Device/BeamDistributionItem.h index c5dae1fd31fc00aa460016cc7300be6eec69cb78..e85044eeaa64daf4e50d7b4b3ca3336568ccc255 100644 --- a/GUI/Model/Device/BeamDistributionItem.h +++ b/GUI/Model/Device/BeamDistributionItem.h @@ -40,7 +40,6 @@ public: template <typename T> T* setDistributionType(); DistributionItem* currentDistribution() const { return m_distribution.currentItem(); } - void setDistribution(DistributionItem* d) { m_distribution.setCurrentItem(d); } const SelectionProperty<DistributionItemCatalog>& distribution() const { return m_distribution; } diff --git a/GUI/Model/FromCore/ItemizeSample.cpp b/GUI/Model/FromCore/ItemizeSample.cpp index 6e7d1c79dbff2700e47f21c2a6975cabffe33952..f59c2fcee873b0971d55fe4d7c0eb7132a988793 100644 --- a/GUI/Model/FromCore/ItemizeSample.cpp +++ b/GUI/Model/FromCore/ItemizeSample.cpp @@ -324,25 +324,25 @@ void setLayerItem(LayerItem* parent, const Layer* layer, const LayerInterface* t void setRotation(ItemWithParticles* parent, const IRotation* rotation) { if (!rotation) - parent->setRotation(nullptr); + parent->setCurrentRotation(nullptr); else if (const auto* r = dynamic_cast<const RotationX*>(rotation)) { auto* item = new XRotationItem(); item->setAngle(Units::rad2deg(r->angle())); - parent->setRotation(item); + parent->setCurrentRotation(item); } else if (const auto* r = dynamic_cast<const RotationY*>(rotation)) { auto* item = new YRotationItem(); item->setAngle(Units::rad2deg(r->angle())); - parent->setRotation(item); + parent->setCurrentRotation(item); } else if (const auto* r = dynamic_cast<const RotationZ*>(rotation)) { auto* item = new ZRotationItem(); item->setAngle(Units::rad2deg(r->angle())); - parent->setRotation(item); + parent->setCurrentRotation(item); } else if (const auto* r = dynamic_cast<const RotationEuler*>(rotation)) { auto* item = new EulerRotationItem(); item->setAlpha(Units::rad2deg(r->alpha())); item->setBeta(Units::rad2deg(r->beta())); item->setGamma(Units::rad2deg(r->gamma())); - parent->setRotation(item); + parent->setCurrentRotation(item); } } diff --git a/GUI/Model/Sample/ItemWithParticles.h b/GUI/Model/Sample/ItemWithParticles.h index 72cede8452f9f496baed37888fca3307d07a0c74..ebb9550762f619210e7a989219ba6c1fb3294666 100644 --- a/GUI/Model/Sample/ItemWithParticles.h +++ b/GUI/Model/Sample/ItemWithParticles.h @@ -37,11 +37,10 @@ public: const VectorProperty& position() const { return m_position; } void setPosition(const R3& position) { m_position.setR3(position); } - //! Returns selection descriptor for rotation methods. - SelectionDescriptor<RotationItem*> rotation() { return m_rotation; } + const SelectionProperty<RotationItemCatalog>& rotation() const { return m_rotation; } //! nullptr is allowed and sets to "no rotation" - void setRotation(RotationItem* p) { m_rotation.setCurrentItem(p); } + void setCurrentRotation(RotationItem* p) { m_rotation.setCurrentItem(p); } //! nullptr only if "no rotation". Can contain identity! std::unique_ptr<IRotation> createRotation() const; diff --git a/GUI/View/SampleDesigner/CompoundForm.cpp b/GUI/View/SampleDesigner/CompoundForm.cpp index 23ab4e5a883615e4b09c845d2ca931f560c3ed9a..9700eee4b2566de9134d8e2d4003f2911aa08d8a 100644 --- a/GUI/View/SampleDesigner/CompoundForm.cpp +++ b/GUI/View/SampleDesigner/CompoundForm.cpp @@ -33,7 +33,7 @@ CompoundForm::CompoundForm(QWidget* parent, CompoundItem* compositionItem, FormLayouter layouter(this, ec); layouter.setContentsMargins(30, 6, 0, 0); layouter.addVector(compositionItem->position(), false); - layouter.addSelection(compositionItem->rotation()); + layouter.addSelection(compositionItem->rotation().m_descriptor); layouter.addValue(compositionItem->abundance()); for (auto* particle : compositionItem->particles()) diff --git a/GUI/View/SampleDesigner/CoreAndShellForm.cpp b/GUI/View/SampleDesigner/CoreAndShellForm.cpp index 6c38086b00cada5260040275707e1146a27f5477..3f84c77c50c2133261fb073174ef0eaa164a98cc 100644 --- a/GUI/View/SampleDesigner/CoreAndShellForm.cpp +++ b/GUI/View/SampleDesigner/CoreAndShellForm.cpp @@ -58,7 +58,7 @@ CoreAndShellForm::CoreAndShellForm(QWidget* parent, CoreAndShellItem* item, FormLayouter layouter(this, ec); layouter.setContentsMargins(30, 6, 0, 0); layouter.addVector(item->position(), false); - layouter.addSelection(item->rotation()); + layouter.addSelection(item->rotation().m_descriptor); layouter.addValue(item->abundance()); // - core @@ -163,7 +163,7 @@ void CoreAndShellForm::createCoreWidgets() core.layouter->addGroupOfValues("Geometry", particle->formfactor()->geometryProperties()); core.layouter->addVector(particle->position(), false); - core.layouter->addSelection(particle->rotation()); + core.layouter->addSelection(particle->rotation().m_descriptor); // no abundance since this is handled in CoreShell itself! } @@ -179,7 +179,7 @@ void CoreAndShellForm::createShellWidgets() groupTitle += " (" + formfactor + ")"; shell.layouter->addGroupOfValues("Geometry", particle->formfactor()->geometryProperties()); - shell.layouter->addSelection(particle->rotation()); + shell.layouter->addSelection(particle->rotation().m_descriptor); // no position vector - not allowed in CoreShell // no abundance since this is handled in CoreShell itself! } diff --git a/GUI/View/SampleDesigner/MesocrystalForm.cpp b/GUI/View/SampleDesigner/MesocrystalForm.cpp index 2e35b64ccafc699788dfc3811d586b56e8b39684..a140299bd5610d3c44495f282516f36936745669 100644 --- a/GUI/View/SampleDesigner/MesocrystalForm.cpp +++ b/GUI/View/SampleDesigner/MesocrystalForm.cpp @@ -34,7 +34,7 @@ MesocrystalForm::MesocrystalForm(QWidget* parent, MesocrystalItem* item, SampleE m_layout = layouter.layout(); layouter.setContentsMargins(30, 6, 0, 0); layouter.addVector(item->position(), false); - layouter.addSelection(item->rotation()); + layouter.addSelection(item->rotation().m_descriptor); layouter.addValue(item->abundance()); layouter.addVector(item->vectorA(), false); layouter.addVector(item->vectorB(), false); diff --git a/GUI/View/SampleDesigner/ParticleForm.cpp b/GUI/View/SampleDesigner/ParticleForm.cpp index 5a12035217fc51173af451d2adac89a9db7214b1..3a99b17cf785867930703af44473d4686899b952 100644 --- a/GUI/View/SampleDesigner/ParticleForm.cpp +++ b/GUI/View/SampleDesigner/ParticleForm.cpp @@ -33,7 +33,7 @@ ParticleForm::ParticleForm(QWidget* parent, ParticleItem* particleItem, bool all layouter.addRow("Material", new MaterialInplaceForm(this, particleItem, ec)); layouter.addGroupOfValues("Geometry", particleItem->formfactor()->geometryProperties()); layouter.addVector(particleItem->position(), false); - layouter.addSelection(particleItem->rotation()); + layouter.addSelection(particleItem->rotation().m_descriptor); if (allowAbundance) layouter.addValue(particleItem->abundance());