diff --git a/GUI/Models/BeamDistributionItem.cpp b/GUI/Models/BeamDistributionItem.cpp index 3d26dde3d725ec55e9b4de72a043db0cdb7d6a5e..28384ff373d6437dc902bedd268ca4b523c52498 100644 --- a/GUI/Models/BeamDistributionItem.cpp +++ b/GUI/Models/BeamDistributionItem.cpp @@ -61,7 +61,7 @@ void BeamDistributionItem::initDistributionItem(bool show_mean) auto groupItem = item<GroupItem>(P_DISTRIBUTION); DistributionNoneItem* distributionNone = nullptr; - for (auto item : groupItem->getItems(GroupItem::T_ITEMS)) { + for (auto item : groupItem->groupItems()) { if (item->modelType() == DistributionNoneItem::M_TYPE) { distributionNone = dynamic_cast<DistributionNoneItem*>(item); break; @@ -74,7 +74,7 @@ void BeamDistributionItem::initDistributionItem(bool show_mean) const RealLimits limits = distributionNone->meanItem()->limits(); const QString editor_type = distributionNone->meanItem()->editorType(); - for (auto item : groupItem->getItems(GroupItem::T_ITEMS)) { + for (auto item : groupItem->groupItems()) { DistributionItem* distrItem = dynamic_cast<DistributionItem*>(item); distrItem->showMean(show_mean); diff --git a/GUI/Models/GroupItem.cpp b/GUI/Models/GroupItem.cpp index 0a839ca8cd7bb0cc80e49c9dfd647e91de7192e1..a500ce1ad5606616804d3195415bdc72370438a0 100644 --- a/GUI/Models/GroupItem.cpp +++ b/GUI/Models/GroupItem.cpp @@ -61,6 +61,16 @@ SessionItem* GroupItem::getItemOfType(const QString& type) return m_controller->getItemOfType(type); } +QVector<SessionItem*> GroupItem::groupItems() const +{ + return getItems(T_ITEMS); +} + +bool GroupItem::isItemsTagName(const QString& name) +{ + return name == T_ITEMS; +} + void GroupItem::onValueChange() { if (!value().canConvert<ComboProperty>()) diff --git a/GUI/Models/GroupItem.h b/GUI/Models/GroupItem.h index e94fa4788b750fd429410dc2f82463af27e4ff52..69c87216c692797e1f3828fd92fd1f793d21cb26 100644 --- a/GUI/Models/GroupItem.h +++ b/GUI/Models/GroupItem.h @@ -24,10 +24,12 @@ class GroupInfo; class GroupItemController; class BA_CORE_API_ GroupItem : public SessionItem { +private: + static const QString T_ITEMS; + public: static const QString M_TYPE; - static const QString T_ITEMS; GroupItem(); ~GroupItem(); @@ -42,6 +44,9 @@ public: template <typename T> T* itemOfType() const; + QVector<SessionItem*> groupItems() const; + static bool isItemsTagName(const QString& name); + private: void onValueChange(); void updateComboValue(); diff --git a/GUI/Models/InterferenceFunctionItems.cpp b/GUI/Models/InterferenceFunctionItems.cpp index a8e006a683f956002b0dc055fa729a4fe0f1effb..d5123fd47f732db702df9fc7130e918d26a666f9 100644 --- a/GUI/Models/InterferenceFunctionItems.cpp +++ b/GUI/Models/InterferenceFunctionItems.cpp @@ -206,7 +206,7 @@ InterferenceFunction2DParaCrystalItem::InterferenceFunction2DParaCrystalItem() ->setToolTip("Probability distribution in second lattice direction"); mapper()->setOnChildPropertyChange([this](SessionItem* item, const QString& property) { - if (item->hasModelType<GroupItem>() && property == GroupItem::T_ITEMS + if (item->hasModelType<GroupItem>() && GroupItem::isItemsTagName(property) && isTag(P_PDF1) && isTag(P_PDF2)) update_distribution_displaynames(); }); diff --git a/GUI/Views/InfoWidgets/DistributionEditor.cpp b/GUI/Views/InfoWidgets/DistributionEditor.cpp index 83d7643dd12b0df050251db17cd34d50a94a007f..18f5f3ac340177687e00b491cd7826e5c2955549 100644 --- a/GUI/Views/InfoWidgets/DistributionEditor.cpp +++ b/GUI/Views/InfoWidgets/DistributionEditor.cpp @@ -62,7 +62,7 @@ void DistributionEditor::subscribeToItem() void DistributionEditor::onPropertyChanged(const QString& property_name) { - if (property_name == GroupItem::T_ITEMS) + if (GroupItem::isItemsTagName(property_name)) m_plotwidget->setItem(distributionItem()); }