diff --git a/GUI/coregui/Models/FormFactorItems.h b/GUI/coregui/Models/FormFactorItems.h index bb3a5bb8a2b6f0ffb92722e30009efa36425cdb3..718b1b28a8605f98ef273189d05a0758665cd70f 100644 --- a/GUI/coregui/Models/FormFactorItems.h +++ b/GUI/coregui/Models/FormFactorItems.h @@ -23,7 +23,8 @@ class BA_CORE_API_ FormFactorItem : public ParameterizedItem { Q_OBJECT public: - explicit FormFactorItem(const QString name, ParameterizedItem *parent) : ParameterizedItem(name, parent){} + explicit FormFactorItem(const QString name, ParameterizedItem *parent) + : ParameterizedItem(name, parent) {} virtual IFormFactor *createFormFactor() const{ return 0;} virtual ~FormFactorItem(){} }; diff --git a/GUI/coregui/Views/Components/SampleDesigner/ParticleDistributionView.cpp b/GUI/coregui/Views/Components/SampleDesigner/ParticleDistributionView.cpp new file mode 100644 index 0000000000000000000000000000000000000000..9079720e09fe5a340af6d637017ccd81f37e7690 --- /dev/null +++ b/GUI/coregui/Views/Components/SampleDesigner/ParticleDistributionView.cpp @@ -0,0 +1,26 @@ +#include "ParticleDistributionView.h" +#include "ParameterizedItem.h" +#include <QDebug> + + +ParticleDistributionView::ParticleDistributionView(QGraphicsItem *parent) + : ConnectableView(parent) +{ + setName(Constants::ParticleDistributionType); + setLabel("Distributed\nparticle"); + setColor(DesignerHelper::getDefaultParticleColor()); + setRectangle(DesignerHelper::getDefaultBoundingRect(Constants::ParticleDistributionType)); + addPort("out", NodeEditorPort::Output, NodeEditorPort::FormFactor); + addPort("core", NodeEditorPort::Input, NodeEditorPort::FormFactor); + addPort("shell", NodeEditorPort::Input, NodeEditorPort::FormFactor); + m_roundpar = 5; + m_label_vspace = 45; +} + + +void ParticleDistributionView::addView(IView *childView, int /* row */) +{ + int index = childView->getParameterizedItem()->getRegisteredProperty(ParameterizedItem::P_PORT).toInt(); + qDebug() << "ParticleDistributionType::addView()" << index; + connectInputPort(dynamic_cast<ConnectableView *>(childView), index); +} diff --git a/GUI/coregui/Views/Components/SampleDesigner/ParticleDistributionView.h b/GUI/coregui/Views/Components/SampleDesigner/ParticleDistributionView.h new file mode 100644 index 0000000000000000000000000000000000000000..8ef1f104efb2120db0d7d6104e7ae24c07073686 --- /dev/null +++ b/GUI/coregui/Views/Components/SampleDesigner/ParticleDistributionView.h @@ -0,0 +1,24 @@ +#ifndef PARTICLEDISTRIBUTIONVIEW_H +#define PARTICLEDISTRIBUTIONVIEW_H + +#include "ConnectableView.h" + +//! Class representing view of distributed particle item +class BA_CORE_API_ ParticleDistributionView : public ConnectableView +{ + Q_OBJECT + +public: + enum { Type = DesignerHelper::ParticleType }; + + ParticleDistributionView(QGraphicsItem *parent = 0); + + int type() const { return Type; } + + void addView(IView *childView, int row = 0); + +}; + + +#endif + diff --git a/GUI/coregui/Views/Components/SampleDesigner/SampleViewFactory.cpp b/GUI/coregui/Views/Components/SampleDesigner/SampleViewFactory.cpp index 178eac0cd500ab9861a59f309c11789b0b2a327d..24461676a4fc8b19338c4612b0cb967841c34366 100644 --- a/GUI/coregui/Views/Components/SampleDesigner/SampleViewFactory.cpp +++ b/GUI/coregui/Views/Components/SampleDesigner/SampleViewFactory.cpp @@ -6,6 +6,7 @@ #include "ParticleView.h" #include "TransformationView.h" #include "ParticleCoreShellView.h" +#include "ParticleDistributionView.h" #include "InterferenceFunctionViews.h" #include "GUIHelpers.h" #include <QDebug> @@ -18,6 +19,7 @@ QStringList SampleViewFactory::m_valid_item_names = QStringList() << Constants::ParticleType << Constants::TransformationType << Constants::ParticleCoreShellType + << Constants::ParticleDistributionType << Constants::InterferenceFunction1DParaCrystalType << Constants::InterferenceFunction2DParaCrystalType << Constants::InterferenceFunction2DLatticeType; @@ -53,6 +55,9 @@ IView *SampleViewFactory::createSampleView(const QString &name) else if (name==Constants::ParticleCoreShellType) { return new ParticleCoreShellView(); } + else if (name==Constants::ParticleDistributionType) { + return new ParticleDistributionView(); + } else if (name==Constants::InterferenceFunction1DParaCrystalType) { return new InterferenceFunction1DParaCrystalView(); } diff --git a/GUI/coregui/Views/Components/widgetbox/widgetbox.xml b/GUI/coregui/Views/Components/widgetbox/widgetbox.xml index 96dc842cb8e7c8c148a6dfe4acb481247c890286..50da41c35e18f01b5f30bec1f0b2316356600685 100644 --- a/GUI/coregui/Views/Components/widgetbox/widgetbox.xml +++ b/GUI/coregui/Views/Components/widgetbox/widgetbox.xml @@ -232,6 +232,14 @@ </widget> </categoryentry> + <categoryentry name="Distributed particle" icon="images/ParticleCoreShell.png"> + <widget class="ParticleDistribution"> + <property name="objectName"> + <string notr="true">somestring</string> + </property> + </widget> + </categoryentry> + </category> <category name="Standard samples">