BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
VectorParameterTranslator Class Reference
Inheritance diagram for VectorParameterTranslator:
[legend]
Collaboration diagram for VectorParameterTranslator:
[legend]

Public Member Functions

 VectorParameterTranslator (QString gui_name, std::string base_name, QStringList additional_names={})
 
 ~VectorParameterTranslator () override
 
VectorParameterTranslatorclone () const override
 
QStringList translate (const QStringList &list) const override
 

Private Attributes

QStringList m_additional_names
 
std::string m_base_name
 
QString m_gui_name
 

Detailed Description

Definition at line 92 of file ParameterTranslators.h.

Constructor & Destructor Documentation

◆ VectorParameterTranslator()

VectorParameterTranslator::VectorParameterTranslator ( QString  gui_name,
std::string  base_name,
QStringList  additional_names = {} 
)

Definition at line 135 of file ParameterTranslators.cpp.

137  : m_gui_name{std::move(gui_name)}
138  , m_base_name{std::move(base_name)}
139  , m_additional_names{std::move(additional_names)}
140 {
141 }
MVVM_MODEL_EXPORT std::string base_name(const std::string &path)
Provide the filename of a file path.
Definition: fileutils.cpp:78

Referenced by clone().

◆ ~VectorParameterTranslator()

VectorParameterTranslator::~VectorParameterTranslator ( )
inlineoverride

Definition at line 96 of file ParameterTranslators.h.

96 {}

Member Function Documentation

◆ clone()

VectorParameterTranslator * VectorParameterTranslator::clone ( ) const
overridevirtual

Implements IPathTranslator.

Definition at line 143 of file ParameterTranslators.cpp.

144 {
146 }
VectorParameterTranslator(QString gui_name, std::string base_name, QStringList additional_names={})

References VectorParameterTranslator(), m_additional_names, m_base_name, and m_gui_name.

Here is the call graph for this function:

◆ translate()

QStringList VectorParameterTranslator::translate ( const QStringList &  list) const
overridevirtual

Implements IPathTranslator.

Definition at line 148 of file ParameterTranslators.cpp.

149 {
150  if (list.empty())
151  return {};
152 
153  if (list.back() != m_gui_name)
154  return list;
155 
156  ASSERT(list.size() == 2);
157 
158  QStringList result;
159  if (list.front() == VectorItem::P_X) {
160  result << QString::fromStdString(IParametricComponent::XComponentName(m_base_name));
161  } else if (list.front() == VectorItem::P_Y) {
162  result << QString::fromStdString(IParametricComponent::YComponentName(m_base_name));
163  } else if (list.front() == VectorItem::P_Z) {
164  result << QString::fromStdString(IParametricComponent::ZComponentName(m_base_name));
165  } else {
166  GUIHelpers::Error("VectorParameterTranslator::translate() -> Unexpected list structure");
167  }
168  for (auto add_name : m_additional_names) {
169  result << add_name;
170  }
171  return result;
172 }
#define ASSERT(condition)
Definition: Assert.h:31
static std::string XComponentName(const std::string &base_name)
static std::string ZComponentName(const std::string &base_name)
static std::string YComponentName(const std::string &base_name)
static const QString P_Z
Definition: VectorItem.h:26
static const QString P_Y
Definition: VectorItem.h:25
static const QString P_X
Definition: VectorItem.h:24

References ASSERT, m_additional_names, m_base_name, m_gui_name, VectorItem::P_X, VectorItem::P_Y, VectorItem::P_Z, IParametricComponent::XComponentName(), IParametricComponent::YComponentName(), and IParametricComponent::ZComponentName().

Here is the call graph for this function:

Member Data Documentation

◆ m_additional_names

QStringList VectorParameterTranslator::m_additional_names
private

Definition at line 105 of file ParameterTranslators.h.

Referenced by clone(), and translate().

◆ m_base_name

std::string VectorParameterTranslator::m_base_name
private

Definition at line 104 of file ParameterTranslators.h.

Referenced by clone(), and translate().

◆ m_gui_name

QString VectorParameterTranslator::m_gui_name
private

Definition at line 103 of file ParameterTranslators.h.

Referenced by clone(), and translate().


The documentation for this class was generated from the following files: