BornAgain
1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Listens MaterialModel for changes in MaterialItems and then updates MaterialProperties in all related items in SampleModel. More...
Public Slots | |
void | onMaterialModelLoad () |
Special case when original MaterialModel was fully rebuild from MaterialEditor. More... | |
Public Member Functions | |
MaterialPropertyController (QObject *parent=nullptr) | |
void | setModels (MaterialModel *materialModel, SampleModel *sampleModel) |
Private Slots | |
void | onMaterialDataChanged (const QModelIndex &topLeft, const QModelIndex &, const QVector< int > &) |
On MaterialItem change: updates corresponding MaterialProperty in sample items. More... | |
void | onMaterialRowsAboutToBeRemoved (const QModelIndex &parent, int first, int last) |
On MaterialItem removal: updates corresponding MaterialProperty in sample items. More... | |
Private Member Functions | |
QVector< SessionItem * > | relatedSampleItems () |
Returns vector of SessionItems having MaterialProperty on board. More... | |
Private Attributes | |
MaterialModel * | m_materialModel |
SampleModel * | m_sampleModel |
Listens MaterialModel for changes in MaterialItems and then updates MaterialProperties in all related items in SampleModel.
Definition at line 27 of file MaterialPropertyController.h.
MaterialPropertyController::MaterialPropertyController | ( | QObject * | parent = nullptr | ) |
Definition at line 23 of file MaterialPropertyController.cpp.
|
privateslot |
On MaterialItem change: updates corresponding MaterialProperty in sample items.
Definition at line 66 of file MaterialPropertyController.cpp.
References ModelPath::ancestor(), ASSERT, SessionModel::itemForIndex(), m_materialModel, MaterialItemUtils::materialProperty(), MaterialItemUtils::materialTag(), relatedSampleItems(), and ExternalProperty::variant().
|
slot |
Special case when original MaterialModel was fully rebuild from MaterialEditor.
Full update of MaterialProperties.
Definition at line 46 of file MaterialPropertyController.cpp.
References ASSERT, m_materialModel, MaterialModel::materialFromIdentifier(), MaterialItemUtils::materialProperty(), MaterialItemUtils::materialTag(), relatedSampleItems(), and ExternalProperty::variant().
Referenced by ApplicationModels::readFrom(), and setModels().
|
privateslot |
On MaterialItem removal: updates corresponding MaterialProperty in sample items.
Definition at line 88 of file MaterialPropertyController.cpp.
References ASSERT, SessionModel::index(), SessionModel::itemForIndex(), m_materialModel, MaterialItemUtils::materialTag(), relatedSampleItems(), and ExternalProperty::variant().
|
private |
Returns vector of SessionItems having MaterialProperty on board.
Definition at line 118 of file MaterialPropertyController.cpp.
References SessionModel::itemForIndex(), ModelUtils::iterate(), m_sampleModel, and MaterialItemUtils::materialRelatedModelTypes().
Referenced by onMaterialDataChanged(), onMaterialModelLoad(), and onMaterialRowsAboutToBeRemoved().
void MaterialPropertyController::setModels | ( | MaterialModel * | materialModel, |
SampleModel * | sampleModel | ||
) |
Definition at line 28 of file MaterialPropertyController.cpp.
References m_materialModel, m_sampleModel, SessionModel::modelLoaded(), and onMaterialModelLoad().
Referenced by ApplicationModels::ApplicationModels().
|
private |
Definition at line 44 of file MaterialPropertyController.h.
Referenced by onMaterialDataChanged(), onMaterialModelLoad(), onMaterialRowsAboutToBeRemoved(), and setModels().
|
private |
Definition at line 45 of file MaterialPropertyController.h.
Referenced by relatedSampleItems(), and setModels().