Skip to content
Snippets Groups Projects
Commit 6a0f411b authored by Yurov, Dmitry's avatar Yurov, Dmitry
Browse files

Eliminated isInFittingBlackList function

Redmine: #1981
parent fc266aa8
No related branches found
No related tags found
No related merge requests found
......@@ -13,11 +13,9 @@
// ************************************************************************** //
#include "ModelPath.h"
#include "InstrumentItems.h"
#include "JobItem.h"
#include "RectangularDetectorItem.h"
#include "SessionModel.h"
#include "SphericalDetectorItem.h"
QString ModelPath::getPathFromIndex(const QModelIndex& index)
{
......@@ -85,47 +83,6 @@ bool ModelPath::isValidItem(SessionModel* model, SessionItem* item, const QModel
return false;
}
//! Returns true when we know how to translate ParameterItem link to domain name.
bool ModelPath::isInFittingBlackList(const QString& par_name)
{
static const QStringList fitting_black_list {
// distribution types
Constants::DistributionGateType,
Constants::DistributionLorentzType,
Constants::DistributionGaussianType,
Constants::DistributionLogNormalType,
Constants::DistributionCosineType,
Constants::DistributionTrapezoidType,
// axes
SphericalDetectorItem::P_PHI_AXIS,
SphericalDetectorItem::P_ALPHA_AXIS,
RectangularDetectorItem::P_X_AXIS,
RectangularDetectorItem::P_Y_AXIS,
OffSpecInstrumentItem::P_ALPHA_AXIS,
// rectangular detector positioning
RectangularDetectorItem::P_ALIGNMENT,
RectangularDetectorItem::P_NORMAL,
RectangularDetectorItem::P_DIRECTION,
RectangularDetectorItem::P_U0,
RectangularDetectorItem::P_V0,
RectangularDetectorItem::P_DBEAM_U0,
RectangularDetectorItem::P_DBEAM_V0,
RectangularDetectorItem::P_DISTANCE,
// Detector resolution
Constants::ResolutionFunction2DGaussianType
};
for (const auto& name : fitting_black_list)
if (par_name.contains(name))
return false;
return true;
}
//! Returns ancestor of given modelType for given item.
//! For example, returns corresponding jobItem owning ParameterItem via ParameterContainer.
......
......@@ -34,8 +34,6 @@ BA_CORE_API_ SessionItem* getItemFromPath(const QString& relPath, const SessionI
BA_CORE_API_ bool isValidItem(SessionModel* model, SessionItem* item, const QModelIndex& parent);
BA_CORE_API_ bool isInFittingBlackList(const QString& par_name);
BA_CORE_API_ const SessionItem* ancestor(const SessionItem* item, const QString& requiredModelType);
BA_CORE_API_ QString itemPathTranslation(const SessionItem& item, const SessionItem* topItem = 0);
......
......@@ -15,8 +15,11 @@
#include "ParameterTreeItems.h"
#include "DistributionItems.h"
#include "FitParameterHelper.h"
#include "InstrumentItems.h"
#include "ModelPath.h"
#include "RectangularDetectorItem.h"
#include "SessionModel.h"
#include "SphericalDetectorItem.h"
// ----------------------------------------------------------------------------
......@@ -78,8 +81,45 @@ void ParameterItem::restoreFromBackup()
bool ParameterItem::isFittable() const
{
static const QStringList fitting_black_list {
// distribution types
Constants::DistributionGateType,
Constants::DistributionLorentzType,
Constants::DistributionGaussianType,
Constants::DistributionLogNormalType,
Constants::DistributionCosineType,
Constants::DistributionTrapezoidType,
// axes
SphericalDetectorItem::P_PHI_AXIS,
SphericalDetectorItem::P_ALPHA_AXIS,
RectangularDetectorItem::P_X_AXIS,
RectangularDetectorItem::P_Y_AXIS,
OffSpecInstrumentItem::P_ALPHA_AXIS,
// rectangular detector positioning
RectangularDetectorItem::P_ALIGNMENT,
RectangularDetectorItem::P_NORMAL,
RectangularDetectorItem::P_DIRECTION,
RectangularDetectorItem::P_U0,
RectangularDetectorItem::P_V0,
RectangularDetectorItem::P_DBEAM_U0,
RectangularDetectorItem::P_DBEAM_V0,
RectangularDetectorItem::P_DISTANCE,
// Detector resolution
Constants::ResolutionFunction2DGaussianType
};
Q_ASSERT(ModelPath::ancestor(this, Constants::JobItemType));
return ModelPath::isInFittingBlackList(FitParameterHelper::getParameterItemPath(this));
const QString& par_path = FitParameterHelper::getParameterItemPath(this);
for (const auto& name : fitting_black_list)
if (par_path.contains(name))
return false;
return true;
}
// ----------------------------------------------------------------------------
......
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