diff --git a/GUI/coregui/Models/GroupPropertyRegistry.cpp b/GUI/coregui/Models/GroupPropertyRegistry.cpp deleted file mode 100644 index 7cd615e340b1b9ac3a165a346e89e1311655ea66..0000000000000000000000000000000000000000 --- a/GUI/coregui/Models/GroupPropertyRegistry.cpp +++ /dev/null @@ -1,34 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file GUI/coregui/Models/GroupPropertyRegistry.cpp -//! @brief Implements class GroupPropertyRegistry -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2016 -//! @authors Scientific Computing Group at MLZ Garching -//! @authors Céline Durniak, Marina Ganeva, David Li, Gennady Pospelov -//! @authors Walter Van Herck, Joachim Wuttke -// -// ************************************************************************** // - -#include "GroupPropertyRegistry.h" -#include "GroupInfoCatalogue.h" - -bool GroupPropertyRegistry::isValidGroup(const QString& group_type) -{ - return catalogue().containsGroup(group_type); -} - -GroupInfo GroupPropertyRegistry::groupInfo(const Constants::ModelType& group_type) -{ - return catalogue().groupInfo(group_type); -} - -const GroupInfoCatalogue& GroupPropertyRegistry::catalogue() -{ - static GroupInfoCatalogue s_catalogue = GroupInfoCatalogue(); - return s_catalogue; -} diff --git a/GUI/coregui/Models/GroupPropertyRegistry.h b/GUI/coregui/Models/GroupPropertyRegistry.h deleted file mode 100644 index 67237b5b12a1fcc5d64b6ed3827f9d13ee71e904..0000000000000000000000000000000000000000 --- a/GUI/coregui/Models/GroupPropertyRegistry.h +++ /dev/null @@ -1,36 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file GUI/coregui/Models/GroupPropertyRegistry.h -//! @brief Defines class GroupPropertyRegistry -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2016 -//! @authors Scientific Computing Group at MLZ Garching -//! @authors Céline Durniak, Marina Ganeva, David Li, Gennady Pospelov -//! @authors Walter Van Herck, Joachim Wuttke -// -// ************************************************************************** // - -#ifndef GROUPPROPERTYREGISTRY_H -#define GROUPPROPERTYREGISTRY_H - -#include "GroupItemController.h" -#include "GroupInfoCatalogue.h" -#include "item_constants.h" - -//! Constructs GroupProperty objects according to the given group type. - -class BA_CORE_API_ GroupPropertyRegistry -{ -public: - static bool isValidGroup(const QString& group_type); - - static GroupInfo groupInfo(const Constants::ModelType& group_type); -private: - static const GroupInfoCatalogue& catalogue(); -}; - -#endif // GROUPPROPERTYREGISTRY_H diff --git a/GUI/coregui/Models/SessionItem.cpp b/GUI/coregui/Models/SessionItem.cpp index fcac2af5e305cb13f523bff4b3ba2d525f71790a..954c7c4ca1df99e4433bb6eb33b49221f5cbaa4c 100644 --- a/GUI/coregui/Models/SessionItem.cpp +++ b/GUI/coregui/Models/SessionItem.cpp @@ -16,11 +16,11 @@ #include "GUIHelpers.h" #include "GroupItem.h" -#include "GroupPropertyRegistry.h" #include "ItemFactory.h" #include "ParameterTranslators.h" #include "SessionModel.h" #include "VectorItem.h" +#include "SessionItemUtils.h" class SessionItemData { @@ -356,9 +356,9 @@ SessionItem* SessionItem::addGroupProperty(const QString& groupTag, const QStrin { SessionItem* result(0); - if(GroupPropertyRegistry::isValidGroup(groupType)) { + if(SessionItemUtils::IsValidGroup(groupType)) { // create group item - GroupInfo groupInfo = GroupPropertyRegistry::groupInfo(groupType); + GroupInfo groupInfo = SessionItemUtils::GetGroupInfo(groupType); GroupItem* groupItem = dynamic_cast<GroupItem*>( ItemFactory::createItem(Constants::GroupItemType)); Q_ASSERT(groupItem); diff --git a/GUI/coregui/Models/SessionItemUtils.cpp b/GUI/coregui/Models/SessionItemUtils.cpp index 581b049c85466e9d81b3c5d4fe8debb38bae4c36..7f30e2434d7120bfcf6760aedea8a4ab608e6700 100644 --- a/GUI/coregui/Models/SessionItemUtils.cpp +++ b/GUI/coregui/Models/SessionItemUtils.cpp @@ -19,10 +19,19 @@ #include "VectorItem.h" #include "MaterialItem.h" #include "ExternalProperty.h" +#include "GroupInfoCatalogue.h" #include <QColor> #include <QIcon> #include <QPixmap> +namespace { +const GroupInfoCatalogue& groupInfoCatalogue() +{ + static GroupInfoCatalogue s_catalogue = GroupInfoCatalogue(); + return s_catalogue; +} +} + int SessionItemUtils::ParentRow(const SessionItem& item) { if (item.parent()) @@ -98,3 +107,13 @@ QVariant SessionItemUtils::CheckStateRole(const SessionItem& item) return item.value().toBool() ? Qt::Checked : Qt::Unchecked; return QVariant(); } + +bool SessionItemUtils::IsValidGroup(const QString& group_type) +{ + return groupInfoCatalogue().containsGroup(group_type); +} + +GroupInfo SessionItemUtils::GetGroupInfo(const QString& group_type) +{ + return groupInfoCatalogue().groupInfo(group_type); +} diff --git a/GUI/coregui/Models/SessionItemUtils.h b/GUI/coregui/Models/SessionItemUtils.h index 345d615a460b2a60b2c494b88f69ef498d916c90..4741d9343c99e2676a9920c4fc7991ebdecb143e 100644 --- a/GUI/coregui/Models/SessionItemUtils.h +++ b/GUI/coregui/Models/SessionItemUtils.h @@ -23,6 +23,7 @@ #include <QVariant> class SessionItem; +class GroupInfo; namespace SessionItemUtils { @@ -51,6 +52,12 @@ BA_CORE_API_ QVariant DecorationRole(const SessionItem& item); //! Returns check state for given item. BA_CORE_API_ QVariant CheckStateRole(const SessionItem& item); +//! Returns true if there is registered group. +BA_CORE_API_ bool IsValidGroup(const QString& group_type); + +//! Returns GroupInfo for group property construction +BA_CORE_API_ GroupInfo GetGroupInfo(const QString& group_type); + } // namespace SessionItemUtils #endif // SESSIONITEMUTILS_H diff --git a/Tests/UnitTests/GUI/TestGroupItem.h b/Tests/UnitTests/GUI/TestGroupItem.h index 7c9d66d3802249275cd27924a471b03995179c96..0be51d2d2e2e0263845a8c19c350664fab74b438 100644 --- a/Tests/UnitTests/GUI/TestGroupItem.h +++ b/Tests/UnitTests/GUI/TestGroupItem.h @@ -3,9 +3,9 @@ #include "GroupInfo.h" #include "GroupItem.h" #include "ComboProperty.h" -#include "GroupPropertyRegistry.h" #include "GUIHelpers.h" #include "SessionModel.h" +#include "SessionItemUtils.h" class TestGroupItem : public QObject { Q_OBJECT @@ -51,7 +51,7 @@ inline void TestGroupItem::test_CreateGroup() { SessionModel model("TestModel"); - GroupInfo groupInfo = GroupPropertyRegistry::groupInfo(Constants::FormFactorGroup); + GroupInfo groupInfo = SessionItemUtils::GetGroupInfo(Constants::FormFactorGroup); QCOMPARE(groupInfo.defaultType(), Constants::CylinderType); auto groupItem = dynamic_cast<GroupItem*>(model.insertNewItem(Constants::GroupItemType)); @@ -103,7 +103,7 @@ inline void TestGroupItem::test_CreateGroup() inline void TestGroupItem::test_groupPropertyWithDisplayNames() { - GroupInfo groupInfo = GroupPropertyRegistry::groupInfo(Constants::DistributionGroup); + GroupInfo groupInfo = SessionItemUtils::GetGroupInfo(Constants::DistributionGroup); GroupItem groupItem; groupItem.setGroupInfo(groupInfo);