Skip to content
Snippets Groups Projects
Commit c979730c authored by Van Herck, Walter's avatar Van Herck, Walter
Browse files

Remove MesoCrystalTranslator in favor of VectorParameterTranslator

parent 65001f3f
No related branches found
No related tags found
No related merge requests found
......@@ -89,7 +89,14 @@ MesoCrystalItem::MesoCrystalItem() : SessionGraphicsItem(Constants::MesoCrystalT
addTranslator(VectorParameterTranslator(ParticleItem::P_POSITION, BornAgain::Position));
addTranslator(RotationTranslator());
addTranslator(MesoCrystalTranslator());
QStringList additional_names { QString::fromStdString(BornAgain::LatticeType),
QString::fromStdString(BornAgain::CrystalType) };
addTranslator(VectorParameterTranslator(P_VECTOR_A, BornAgain::BasisVector_A,
additional_names));
addTranslator(VectorParameterTranslator(P_VECTOR_B, BornAgain::BasisVector_B,
additional_names));
addTranslator(VectorParameterTranslator(P_VECTOR_C, BornAgain::BasisVector_C,
additional_names));
mapper()->setOnParentChange(
[this](SessionItem *parent) {
......
......@@ -96,66 +96,16 @@ int RoughnessTranslator::numberOfLayers() const
return list.size();
}
//! Translates the basis vector coordinates
QStringList MesoCrystalTranslator::translate(const QStringList& list) const
{
if (list.size()!=2)
return list;
if (!list.back().contains(MesoCrystalItem::LATTICE_VECTOR))
return list;
QString basis_coordinate;
if (list.back()==MesoCrystalItem::P_VECTOR_A) {
if (list.front()==VectorItem::P_X) {
basis_coordinate = QString::fromStdString(
IParameterized::XComponentName(BornAgain::BasisVector_A));
} else if (list.front()==VectorItem::P_Y) {
basis_coordinate = QString::fromStdString(
IParameterized::YComponentName(BornAgain::BasisVector_A));
} else if (list.front()==VectorItem::P_Z) {
basis_coordinate = QString::fromStdString(
IParameterized::ZComponentName(BornAgain::BasisVector_A));
}
} else if (list.back()==MesoCrystalItem::P_VECTOR_B) {
if (list.front()==VectorItem::P_X) {
basis_coordinate = QString::fromStdString(
IParameterized::XComponentName(BornAgain::BasisVector_B));
} else if (list.front()==VectorItem::P_Y) {
basis_coordinate = QString::fromStdString(
IParameterized::YComponentName(BornAgain::BasisVector_B));
} else if (list.front()==VectorItem::P_Z) {
basis_coordinate = QString::fromStdString(
IParameterized::ZComponentName(BornAgain::BasisVector_B));
}
} else if (list.back()==MesoCrystalItem::P_VECTOR_C) {
if (list.front()==VectorItem::P_X) {
basis_coordinate = QString::fromStdString(
IParameterized::XComponentName(BornAgain::BasisVector_C));
} else if (list.front()==VectorItem::P_Y) {
basis_coordinate = QString::fromStdString(
IParameterized::YComponentName(BornAgain::BasisVector_C));
} else if (list.front()==VectorItem::P_Z) {
basis_coordinate = QString::fromStdString(
IParameterized::ZComponentName(BornAgain::BasisVector_C));
}
}
if (basis_coordinate.isEmpty())
return list;
QStringList result;
result << basis_coordinate
<< QString::fromStdString(BornAgain::LatticeType)
<< QString::fromStdString(BornAgain::CrystalType);
return result;
}
VectorParameterTranslator::VectorParameterTranslator(QString gui_name, std::string base_name)
: m_gui_name { gui_name }
, m_base_name { base_name }
VectorParameterTranslator::VectorParameterTranslator(QString gui_name, std::string base_name,
QStringList additional_names)
: m_gui_name { std::move(gui_name) }
, m_base_name { std::move(base_name) }
, m_additional_names { std::move(additional_names) }
{}
VectorParameterTranslator*VectorParameterTranslator::clone() const
VectorParameterTranslator* VectorParameterTranslator::clone() const
{
return new VectorParameterTranslator(m_gui_name, m_base_name);
return new VectorParameterTranslator(m_gui_name, m_base_name, m_additional_names);
}
QStringList VectorParameterTranslator::translate(const QStringList& list) const
......@@ -175,5 +125,8 @@ QStringList VectorParameterTranslator::translate(const QStringList& list) const
} else {
GUIHelpers::Error("VectorParameterTranslator::translate() -> Unexpected list structure");
}
for (auto add_name : m_additional_names ) {
result << add_name;
}
return result;
}
......@@ -61,19 +61,10 @@ private:
const SessionItem* mp_parent;
};
class MesoCrystalTranslator : public IPathTranslator {
public:
~MesoCrystalTranslator() override {}
MesoCrystalTranslator* clone() const override { return new MesoCrystalTranslator; }
virtual QStringList translate(const QStringList& list) const override;
};
class VectorParameterTranslator : public IPathTranslator {
public:
VectorParameterTranslator(QString gui_name, std::string base_name);
VectorParameterTranslator(QString gui_name, std::string base_name,
QStringList additional_names=QStringList());
~VectorParameterTranslator() override {}
VectorParameterTranslator* clone() const override;
......@@ -82,6 +73,7 @@ public:
private:
QString m_gui_name;
std::string m_base_name;
QStringList m_additional_names;
};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment