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

Introduce SessionItem::setGroupPropertyType, a templated version of...

Introduce SessionItem::setGroupPropertyType, a templated version of SessionItem::setGroupProperty, to reduce the need for casting
parent a6cb9b35
No related branches found
No related tags found
1 merge request!92Refactor model: instrument, footprint and background items
......@@ -81,6 +81,8 @@ public:
// convenience functions for groups
SessionItem* addGroupProperty(const QString& groupTag, const QString& groupType);
SessionItem* setGroupProperty(const QString& groupTag, const QString& modelType) const;
template <typename T>
T* setGroupPropertyType(const QString& groupTag);
SessionItem* getGroupItem(const QString& groupName) const;
template <typename T> T& groupItem(const QString& groupName) const;
......@@ -181,6 +183,12 @@ template <typename T> T* SessionItem::addProperty(const QString& tagname)
return property;
}
template <typename T>
T* SessionItem::setGroupPropertyType(const QString& groupTag)
{
return dynamic_cast<T*>(setGroupProperty(groupTag, T::M_TYPE));
}
template <typename T> T& SessionItem::groupItem(const QString& groupName) const
{
T* t = dynamic_cast<T*>(getGroupItem(groupName));
......
......@@ -559,9 +559,8 @@ void TransformFromDomain::setBackground(InstrumentItem* instrument_item,
auto p_bg = simulation.background();
if (auto p_constant_bg = dynamic_cast<const ConstantBackground*>(p_bg)) {
ConstantBackgroundItem* constant_bg_item =
dynamic_cast<ConstantBackgroundItem*>
(instrument_item->setGroupProperty(InstrumentItem::P_BACKGROUND,
ConstantBackgroundItem::M_TYPE));
instrument_item->setGroupPropertyType<ConstantBackgroundItem>
(InstrumentItem::P_BACKGROUND);
double value = p_constant_bg->backgroundValue();
constant_bg_item->setBackgroundValue(value);
} else if (dynamic_cast<const PoissonNoiseBackground*>(p_bg)) {
......
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