Skip to content
Snippets Groups Projects
Commit 8fdf1b2f authored by t.knopff's avatar t.knopff
Browse files

Make MaterialItemContainer::T_MATERIALS private

parent 895e2e42
No related branches found
No related tags found
1 merge request!61Refactor model
...@@ -180,8 +180,8 @@ void JobModelFunctions::muteMagnetizationData(JobItem* jobItem) ...@@ -180,8 +180,8 @@ void JobModelFunctions::muteMagnetizationData(JobItem* jobItem)
{ {
MaterialItemContainer* container = MaterialItemContainer* container =
static_cast<MaterialItemContainer*>(jobItem->getItem(JobItem::T_MATERIAL_CONTAINER)); static_cast<MaterialItemContainer*>(jobItem->getItem(JobItem::T_MATERIAL_CONTAINER));
for (SessionItem* item : container->getItems(MaterialItemContainer::T_MATERIALS)) for (MaterialItem* material : container->getMaterials())
static_cast<MaterialItem*>(item)->hideMagnetization(); material->hideMagnetization();
MultiLayerItem* sample = static_cast<MultiLayerItem*>(jobItem->getItem(JobItem::T_SAMPLE)); MultiLayerItem* sample = static_cast<MultiLayerItem*>(jobItem->getItem(JobItem::T_SAMPLE));
sample->getItem(MultiLayerItem::P_EXTERNAL_FIELD)->setVisible(false); sample->getItem(MultiLayerItem::P_EXTERNAL_FIELD)->setVisible(false);
......
...@@ -49,3 +49,8 @@ const MaterialItem* MaterialItemContainer::findMaterialById(QString id) const ...@@ -49,3 +49,8 @@ const MaterialItem* MaterialItemContainer::findMaterialById(QString id) const
} }
return nullptr; return nullptr;
} }
QVector<MaterialItem*> MaterialItemContainer::getMaterials()
{
return items<MaterialItem>(T_MATERIALS);
}
...@@ -20,9 +20,10 @@ ...@@ -20,9 +20,10 @@
class MaterialItem; class MaterialItem;
class MaterialItemContainer : public SessionItem { class MaterialItemContainer : public SessionItem {
public: private:
static const QString T_MATERIALS; static const QString T_MATERIALS;
public:
MaterialItemContainer(); MaterialItemContainer();
//! Copies MaterialItem, inserts it into the container //! Copies MaterialItem, inserts it into the container
...@@ -31,6 +32,8 @@ public: ...@@ -31,6 +32,8 @@ public:
const MaterialItem* findMaterialById(QString id) const; const MaterialItem* findMaterialById(QString id) const;
MaterialItem* findMaterialById(QString id); MaterialItem* findMaterialById(QString id);
QVector<MaterialItem*> getMaterials();
}; };
#endif // BORNAGAIN_GUI_COREGUI_MODELS_MATERIALITEMCONTAINER_H #endif // BORNAGAIN_GUI_COREGUI_MODELS_MATERIALITEMCONTAINER_H
...@@ -65,6 +65,7 @@ public: ...@@ -65,6 +65,7 @@ public:
SessionItem* getItem(const QString& tag = "", int row = 0) const; SessionItem* getItem(const QString& tag = "", int row = 0) const;
template <typename T> T* item(const QString& tag) const; template <typename T> T* item(const QString& tag) const;
QVector<SessionItem*> getItems(const QString& tag = "") const; QVector<SessionItem*> getItems(const QString& tag = "") const;
template <typename T> QVector<T*> items(const QString& tag = "") const;
bool insertItem(int row, SessionItem* item, const QString& tag = ""); bool insertItem(int row, SessionItem* item, const QString& tag = "");
SessionItem* takeItem(int row, const QString& tag); SessionItem* takeItem(int row, const QString& tag);
...@@ -155,6 +156,17 @@ template <typename T> T* SessionItem::item(const QString& tag) const ...@@ -155,6 +156,17 @@ template <typename T> T* SessionItem::item(const QString& tag) const
return t; return t;
} }
template <typename T>
QVector<T*> SessionItem::items(const QString& tag) const
{
QVector<T*> result;
for ( SessionItem* item : getItems(tag) )
if (T* titem = dynamic_cast<T*>(item))
result.push_back(titem);
return result;
}
template <typename T> T* SessionItem::addProperty(const QString& tagname) template <typename T> T* SessionItem::addProperty(const QString& tagname)
{ {
auto property = new T; auto property = new T;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment