diff --git a/GUI/Model/Sample/InterferenceItems.cpp b/GUI/Model/Sample/InterferenceItems.cpp index 7361f676a0732f6b0c93d8343e0f9f4051d09e94..e6c987ae2ec3123ac20477910c7c871fe44284fd 100644 --- a/GUI/Model/Sample/InterferenceItems.cpp +++ b/GUI/Model/Sample/InterferenceItems.cpp @@ -16,7 +16,6 @@ #include "Base/Const/Units.h" #include "GUI/Model/CatSample/Lattice2DItemCatalog.h" #include "GUI/Model/CatSample/ProfileItemCatalogs.h" -#include "GUI/Model/Descriptor/UIntDescriptor.h" #include "GUI/Model/Sample/Lattice2DItems.h" #include "GUI/Model/Sample/ProfileItems.h" #include "GUI/Support/XML/Serialize.h" @@ -258,11 +257,13 @@ void Interference2DParacrystalItem::setPDF2Type(Profile2DItem* p) InterferenceFinite2DLatticeItem::InterferenceFinite2DLatticeItem() : Interference2DAbstractLatticeItem(false) + , m_domainSize1(100) + , m_domainSize2(100) { - m_domainSize1.init("Domain size 1", "Domain size 1 in number of unit cells", 100, - Unit::unitless, "size1"); - m_domainSize2.init("Domain size 2", "Domain size 2 in number of unit cells", 100, - Unit::unitless, "size2"); +// m_domainSize1.init("Domain size 1", "Domain size 1 in number of unit cells", 100, +// Unit::unitless, "size1"); +// m_domainSize2.init("Domain size 2", "Domain size 2 in number of unit cells", 100, +// Unit::unitless, "size2"); } std::unique_ptr<IInterference> InterferenceFinite2DLatticeItem::createInterference() const @@ -283,28 +284,28 @@ void InterferenceFinite2DLatticeItem::serialize(Streamer& s) Serialize::rwProperty(s, m_positionVariance); Serialize::rwValue(s, "integrate", m_xiIntegration); Serialize::rwSelected<Lattice2DItemCatalog>(s, m_latticeType); - Serialize::rwProperty(s, m_domainSize1); - Serialize::rwProperty(s, m_domainSize2); + Serialize::rwValue(s, "domainsize1", m_domainSize1); + Serialize::rwValue(s, "domainsize2", m_domainSize2); } -UIntDescriptor InterferenceFinite2DLatticeItem::domainSize1() const +uint InterferenceFinite2DLatticeItem::domainSize1() const { return m_domainSize1; } -void InterferenceFinite2DLatticeItem::setDomainSize1(const unsigned int size) +void InterferenceFinite2DLatticeItem::setDomainSize1(uint size) { - m_domainSize1.set(size); + m_domainSize1 = size; } -UIntDescriptor InterferenceFinite2DLatticeItem::domainSize2() const +uint InterferenceFinite2DLatticeItem::domainSize2() const { return m_domainSize2; } -void InterferenceFinite2DLatticeItem::setDomainSize2(const unsigned int size) +void InterferenceFinite2DLatticeItem::setDomainSize2(uint size) { - m_domainSize2.set(size); + m_domainSize2 = size; } // --------------------------------------------------------------------------------------------- // diff --git a/GUI/Model/Sample/InterferenceItems.h b/GUI/Model/Sample/InterferenceItems.h index b208ac8cdb4de6b3c78d8c1775990f663ecc2a45..123329acb750bc5aaf19c4aa4a988d9cacc963f0 100644 --- a/GUI/Model/Sample/InterferenceItems.h +++ b/GUI/Model/Sample/InterferenceItems.h @@ -17,7 +17,6 @@ #include "GUI/Model/Descriptor/DoubleProperty.h" #include "GUI/Model/Descriptor/SelectionProperty.h" -#include "GUI/Model/Descriptor/UIntProperty.h" #include "GUI/Model/Sample/Lattice2DItems.h" #include "GUI/Model/Sample/ProfileItems.h" #include <memory> @@ -130,14 +129,14 @@ public: std::unique_ptr<IInterference> createInterference() const override; void serialize(Streamer& s) override; - UIntDescriptor domainSize1() const; - void setDomainSize1(unsigned int domain_size1); - UIntDescriptor domainSize2() const; - void setDomainSize2(unsigned int domain_size2); + uint domainSize1() const; + void setDomainSize1(uint domain_size1); + uint domainSize2() const; + void setDomainSize2(uint domain_size2); private: - UIntProperty m_domainSize1; - UIntProperty m_domainSize2; + uint m_domainSize1; + uint m_domainSize2; }; // ------------------------------------------------------------------------------------------------ diff --git a/GUI/View/SampleDesigner/InterferenceForm.cpp b/GUI/View/SampleDesigner/InterferenceForm.cpp index 576edc31649976601b1f3e854bf7fff9d47fcd2b..d3df0e30d359361eba41ab613cc364ed10090270 100644 --- a/GUI/View/SampleDesigner/InterferenceForm.cpp +++ b/GUI/View/SampleDesigner/InterferenceForm.cpp @@ -12,17 +12,18 @@ // // ************************************************************************************************ -#include "GUI/View/SampleDesigner/InterferenceForm.h" #include "GUI/Model/Descriptor/UIntDescriptor.h" #include "GUI/Model/Sample/InterferenceItems.h" #include "GUI/Model/Sample/Lattice2DItems.h" #include "GUI/Model/Sample/ParticleLayoutItem.h" #include "GUI/View/Common/CustomEventFilters.h" #include "GUI/View/SampleDesigner/FormLayouter.h" +#include "GUI/View/SampleDesigner/InterferenceForm.h" #include "GUI/View/SampleDesigner/LatticeTypeSelectionForm.h" #include "GUI/View/SampleDesigner/SampleEditorController.h" #include "GUI/View/SampleDesigner/SelectionContainerForm.h" #include "GUI/View/Tool/GroupBoxCollapser.h" +#include "GUI/View/Tool/WidgetUtils.h" InterferenceForm::InterferenceForm(QWidget* parent, ParticleLayoutItem* layoutItem, SampleEditorController* ec) @@ -104,8 +105,17 @@ void InterferenceForm::createInterferenceWidgets() layouter.addSelection(itf->decayFunction()); } else if (auto* itf = dynamic_cast<InterferenceFinite2DLatticeItem*>(interference)) { layouter.addValue(itf->positionVariance()); - layouter.addValue(itf->domainSize1()); - layouter.addValue(itf->domainSize2()); + layouter.addRow("Domain size 1:", + GUI::Util::createIntSpinbox([=] { return itf->domainSize1(); }, + [=](int v) { itf->setDomainSize1(v); emit m_ec->modified();}, + RealLimits::lowerLimited(1), + "Domain size 1 in number of unit cells")); + layouter.addRow("Domain size 2:", + GUI::Util::createIntSpinbox([=] { return itf->domainSize2(); }, + [=](int v) { itf->setDomainSize2(v); emit m_ec->modified();}, + RealLimits::lowerLimited(1), + "Domain size 2 in number of unit cells")); + auto* w = new LatticeTypeSelectionForm(this, itf, m_ec); layouter.addRow(itf->latticeType().label, w); } else if (auto* itf = dynamic_cast<Interference2DParacrystalItem*>(interference)) {