BornAgain
1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Classes | |
struct | ModelMapperImpl |
Public Slots | |
void | onBeginRemoveRows (const QModelIndex &parent, int first, int last) |
void | onDataChanged (const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector< int > &roles={}) |
void | onRowRemoved (const QModelIndex &parent, int first, int last) |
void | onRowsInserted (const QModelIndex &parent, int first, int last) |
Public Member Functions | |
ModelMapper (QObject *parent=0) | |
void | callOnItemDestroy () |
Notifies subscribers if an item owning given mapper is about to be destroyed. More... | |
void | setActive (bool state) |
void | setItem (SessionItem *item) |
void | setOnAboutToRemoveChild (std::function< void(SessionItem *)> f, const void *caller=0) |
void | setOnAnyChildChange (std::function< void(SessionItem *)> f, const void *caller=0) |
Calls back on any change in children (number of children or their properties), reports childItem. More... | |
void | setOnChildPropertyChange (std::function< void(SessionItem *, QString)> f, const void *caller=0) |
Calls back on child property change, report childItem and property name. More... | |
void | setOnChildrenChange (std::function< void(SessionItem *)> f, const void *caller=0) |
Calls back when number of children has changed, reports newChild. More... | |
void | setOnItemDestroy (std::function< void(SessionItem *)> f, const void *caller=0) |
void | setOnParentChange (std::function< void(SessionItem *)> f, const void *caller=0) |
Calls back when parent has changed, reports newParent. More... | |
void | setOnPropertyChange (std::function< void(QString)> f, const void *caller=0) |
void | setOnPropertyChange (std::function< void(SessionItem *, QString)> f, const void *caller=0) |
void | setOnSiblingsChange (std::function< void(void)> f, const void *caller=0) |
void | setOnValueChange (std::function< void(void)> f, const void *caller=0) |
void | unsubscribe (const void *caller) |
Cancells all subscribtion of given caller. More... | |
Private Types | |
using | call_item_str_t = std::pair< std::function< void(SessionItem *, QString)>, const void * > |
using | call_item_t = std::pair< std::function< void(SessionItem *)>, const void * > |
using | call_str_t = std::pair< std::function< void(QString)>, const void * > |
using | call_t = std::pair< std::function< void(void)>, const void * > |
Private Member Functions | |
void | callOnAboutToRemoveChild (SessionItem *item) |
void | callOnAnyChildChange (SessionItem *item) |
void | callOnChildPropertyChange (SessionItem *item, const QString &name) |
void | callOnChildrenChange (SessionItem *item) |
void | callOnParentChange (SessionItem *new_parent) |
void | callOnPropertyChange (const QString &name) |
void | callOnSiblingsChange () |
void | callOnValueChange () |
template<class U > | |
void | clean_container (U &v, const void *caller) |
removes all callbacks related to given caller More... | |
void | clearMapper () |
int | nestlingDepth (SessionItem *item, int level=0) |
void | setModel (SessionModel *model) |
Private Attributes | |
QModelIndex | m_aboutToDelete |
bool | m_active |
SessionItem * | m_item |
SessionModel * | m_model |
std::vector< call_item_t > | m_onAboutToRemoveChild |
std::vector< call_item_t > | m_onAnyChildChange |
std::vector< call_item_str_t > | m_onChildPropertyChange |
std::vector< call_item_t > | m_onChildrenChange |
std::vector< call_item_t > | m_onItemDestroy |
std::vector< call_item_t > | m_onParentChange |
std::vector< call_item_str_t > | m_onPropertyChange |
std::vector< call_t > | m_onSiblingsChange |
std::vector< call_t > | m_onValueChange |
Definition at line 24 of file ModelMapper.h.
|
private |
Definition at line 93 of file ModelMapper.h.
|
private |
Definition at line 92 of file ModelMapper.h.
|
private |
Definition at line 91 of file ModelMapper.h.
|
private |
Definition at line 90 of file ModelMapper.h.
ModelMapper::ModelMapper | ( | QObject * | parent = 0 | ) |
Definition at line 17 of file ModelMapper.cpp.
|
private |
Definition at line 189 of file ModelMapper.cpp.
References m_active, and m_onAboutToRemoveChild.
Referenced by onBeginRemoveRows().
|
private |
Definition at line 182 of file ModelMapper.cpp.
References m_active, and m_onAnyChildChange.
Referenced by onDataChanged(), onRowRemoved(), and onRowsInserted().
|
private |
Definition at line 154 of file ModelMapper.cpp.
References m_active, m_onChildPropertyChange, and RealSpace::Particles::name().
Referenced by onDataChanged().
|
private |
Definition at line 168 of file ModelMapper.cpp.
References m_active, and m_onChildrenChange.
Referenced by onRowRemoved(), and onRowsInserted().
void ModelMapper::callOnItemDestroy | ( | ) |
Notifies subscribers if an item owning given mapper is about to be destroyed.
Definition at line 197 of file ModelMapper.cpp.
References m_active, m_item, and m_onItemDestroy.
|
private |
Definition at line 161 of file ModelMapper.cpp.
References m_active, and m_onParentChange.
Referenced by onBeginRemoveRows(), and onRowsInserted().
|
private |
Definition at line 147 of file ModelMapper.cpp.
References m_active, m_item, m_onPropertyChange, and RealSpace::Particles::name().
Referenced by onDataChanged().
|
private |
Definition at line 175 of file ModelMapper.cpp.
References m_active, and m_onSiblingsChange.
Referenced by onRowRemoved(), and onRowsInserted().
|
private |
Definition at line 140 of file ModelMapper.cpp.
References m_active, and m_onValueChange.
Referenced by onDataChanged().
|
inlineprivate |
removes all callbacks related to given caller
Definition at line 107 of file ModelMapper.h.
Referenced by unsubscribe().
|
private |
Definition at line 204 of file ModelMapper.cpp.
References m_item, m_onAboutToRemoveChild, m_onAnyChildChange, m_onChildPropertyChange, m_onChildrenChange, m_onItemDestroy, m_onParentChange, m_onPropertyChange, m_onSiblingsChange, m_onValueChange, and setModel().
Referenced by onRowRemoved().
|
private |
Definition at line 130 of file ModelMapper.cpp.
References m_item, m_model, SessionItem::parent(), and SessionModel::rootItem().
Referenced by onBeginRemoveRows(), onDataChanged(), onRowRemoved(), and onRowsInserted().
|
slot |
Definition at line 275 of file ModelMapper.cpp.
References callOnAboutToRemoveChild(), callOnParentChange(), SessionModel::index(), SessionModel::itemForIndex(), m_aboutToDelete, m_item, m_model, and nestlingDepth().
Referenced by setModel().
|
slot |
Definition at line 219 of file ModelMapper.cpp.
References callOnAnyChildChange(), callOnChildPropertyChange(), callOnPropertyChange(), callOnValueChange(), SessionModel::itemForIndex(), m_item, m_model, nestlingDepth(), SessionItem::parent(), and SessionItem::tagFromItem().
Referenced by setModel().
|
slot |
Definition at line 292 of file ModelMapper.cpp.
References callOnAnyChildChange(), callOnChildrenChange(), callOnSiblingsChange(), clearMapper(), SessionModel::index(), SessionModel::itemForIndex(), m_aboutToDelete, m_item, m_model, nestlingDepth(), and SessionItem::parent().
Referenced by setModel().
|
slot |
Definition at line 253 of file ModelMapper.cpp.
References callOnAnyChildChange(), callOnChildrenChange(), callOnParentChange(), callOnSiblingsChange(), SessionModel::index(), SessionModel::itemForIndex(), m_item, m_model, SessionItem::modelType(), nestlingDepth(), and SessionItem::parent().
Referenced by setModel().
|
inline |
Definition at line 48 of file ModelMapper.h.
References m_active.
Referenced by RealDataItem::RealDataItem().
void ModelMapper::setItem | ( | SessionItem * | item | ) |
Definition at line 22 of file ModelMapper.cpp.
References m_item, SessionItem::model(), and setModel().
|
private |
Definition at line 111 of file ModelMapper.cpp.
References m_model, onBeginRemoveRows(), onDataChanged(), onRowRemoved(), and onRowsInserted().
Referenced by clearMapper(), and setItem().
void ModelMapper::setOnAboutToRemoveChild | ( | std::function< void(SessionItem *)> | f, |
const void * | caller = 0 |
||
) |
Definition at line 92 of file ModelMapper.cpp.
References m_onAboutToRemoveChild.
Referenced by ProjectionsPlot::subscribeToItem().
void ModelMapper::setOnAnyChildChange | ( | std::function< void(SessionItem *)> | f, |
const void * | caller = 0 |
||
) |
Calls back on any change in children (number of children or their properties), reports childItem.
childItem == nullptr denotes the case when child was removed.
Definition at line 82 of file ModelMapper.cpp.
References m_onAnyChildChange.
Referenced by ParticleDistributionItem::ParticleDistributionItem(), and ParticleLayoutItem::ParticleLayoutItem().
void ModelMapper::setOnChildPropertyChange | ( | std::function< void(SessionItem *, QString)> | f, |
const void * | caller = 0 |
||
) |
Calls back on child property change, report childItem and property name.
Definition at line 49 of file ModelMapper.cpp.
References m_onChildPropertyChange.
Referenced by BeamDistributionItem::BeamDistributionItem(), InterferenceFunction2DLatticeItem::InterferenceFunction2DLatticeItem(), InterferenceFunction2DParaCrystalItem::InterferenceFunction2DParaCrystalItem(), InterferenceFunctionFinite2DLatticeItem::InterferenceFunctionFinite2DLatticeItem(), JobItem::JobItem(), RealDataItem::RealDataItem(), SpecularBeamItem::SpecularBeamItem(), PropertyRepeater::addItem(), ProjectionsPlot::subscribeToItem(), ColorMap::subscribeToItem(), Plot1D::subscribeToItem(), and SpecularPlot::subscribeToItem().
void ModelMapper::setOnChildrenChange | ( | std::function< void(SessionItem *)> | f, |
const void * | caller = 0 |
||
) |
Calls back when number of children has changed, reports newChild.
newChild == nullptr denotes the case when number of children has decreased.
Definition at line 68 of file ModelMapper.cpp.
References m_onChildrenChange.
Referenced by MultiLayerItem::MultiLayerItem(), ParticleLayoutItem::ParticleLayoutItem(), RealDataItem::RealDataItem(), and ProjectionsPlot::subscribeToItem().
void ModelMapper::setOnItemDestroy | ( | std::function< void(SessionItem *)> | f, |
const void * | caller = 0 |
||
) |
Definition at line 87 of file ModelMapper.cpp.
References m_onItemDestroy.
Referenced by FitParameterProxyModel::FitParameterProxyModel(), PropertyRepeater::addItem(), FitSessionManager::createController(), DistributionWidget::setItem(), RealDataPropertiesWidget::setItem(), SessionItemController::setItem(), IShape2DView::setParameterizedItem(), and IView::setParameterizedItem().
void ModelMapper::setOnParentChange | ( | std::function< void(SessionItem *)> | f, |
const void * | caller = 0 |
||
) |
Calls back when parent has changed, reports newParent.
If newParent=0, the item is about being to be removed from children. Method parent() will still report old parent. If newParent!=0, it is just the same as parent().
Definition at line 60 of file ModelMapper.cpp.
References m_onParentChange.
Referenced by LayerItem::LayerItem(), MesoCrystalItem::MesoCrystalItem(), ParticleCompositionItem::ParticleCompositionItem(), ParticleCoreShellItem::ParticleCoreShellItem(), and ParticleItem::ParticleItem().
void ModelMapper::setOnPropertyChange | ( | std::function< void(QString)> | f, |
const void * | caller = 0 |
||
) |
Definition at line 35 of file ModelMapper.cpp.
References m_onPropertyChange.
Referenced by AmplitudeAxisItem::AmplitudeAxisItem(), Data1DViewItem::Data1DViewItem(), DataItem::DataItem(), DetectorItem::DetectorItem(), FitParameterItem::FitParameterItem(), InterferenceFunction2DLatticeItem::InterferenceFunction2DLatticeItem(), InterferenceFunction2DParaCrystalItem::InterferenceFunction2DParaCrystalItem(), InterferenceFunctionFinite2DLatticeItem::InterferenceFunctionFinite2DLatticeItem(), JobItem::JobItem(), ParticleDistributionItem::ParticleDistributionItem(), PointwiseAxisItem::PointwiseAxisItem(), RealDataItem::RealDataItem(), RectangularDetectorItem::RectangularDetectorItem(), SimulationOptionsItem::SimulationOptionsItem(), VectorItem::VectorItem(), PropertyRepeater::addItem(), DistributionWidget::setItem(), FitSessionController::setItem(), RealDataPropertiesWidget::setItem(), IShape2DView::setParameterizedItem(), IView::setParameterizedItem(), DiffItemController::subscribe(), FitFlowWidget::subscribeToItem(), RunFitControlWidget::subscribeToItem(), DistributionEditor::subscribeToItem(), GISASDetectorEditor::subscribeToItem(), PolarizationAnalysisEditor::subscribeToItem(), RectangularDetectorEditor::subscribeToItem(), IntensityDataCanvas::subscribeToItem(), ProjectionsPlot::subscribeToItem(), JobPropertiesWidget::subscribeToItem(), ParameterTuningWidget::subscribeToItem(), FitComparisonWidget::subscribeToItem(), FitComparisonWidget1D::subscribeToItem(), ColorMap::subscribeToItem(), Plot1D::subscribeToItem(), and SpecularPlot::subscribeToItem().
void ModelMapper::setOnPropertyChange | ( | std::function< void(SessionItem *, QString)> | f, |
const void * | caller = 0 |
||
) |
Definition at line 41 of file ModelMapper.cpp.
References m_onPropertyChange.
void ModelMapper::setOnSiblingsChange | ( | std::function< void(void)> | f, |
const void * | caller = 0 |
||
) |
Definition at line 73 of file ModelMapper.cpp.
References m_onSiblingsChange.
Referenced by IView::setParameterizedItem().
void ModelMapper::setOnValueChange | ( | std::function< void(void)> | f, |
const void * | caller = 0 |
||
) |
Definition at line 30 of file ModelMapper.cpp.
References m_onValueChange.
Referenced by DataItem::DataItem(), GroupItem::GroupItem(), SpecularBeamItem::SpecularBeamItem(), DiffItemController::subscribe(), ProjectionsPlot::subscribeToItem(), ColorMap::subscribeToItem(), and SpecularPlot::subscribeToItem().
void ModelMapper::unsubscribe | ( | const void * | caller | ) |
Cancells all subscribtion of given caller.
Definition at line 98 of file ModelMapper.cpp.
References clean_container(), m_onAboutToRemoveChild, m_onAnyChildChange, m_onChildPropertyChange, m_onChildrenChange, m_onItemDestroy, m_onParentChange, m_onPropertyChange, m_onSiblingsChange, and m_onValueChange.
Referenced by DistributionWidget::~DistributionWidget(), FitParameterProxyModel::~FitParameterProxyModel(), IShape2DView::~IShape2DView(), IView::~IView(), SessionItemController::onControllerDestroy(), DistributionWidget::setItem(), RealDataPropertiesWidget::setItem(), SessionItemController::setItem(), IShape2DView::setParameterizedItem(), SessionItemController::unsubscribe(), DiffItemController::unsubscribe(), RunFitControlWidget::unsubscribeFromChildren(), and ProjectionsPlot::unsubscribeFromChildren().
|
private |
Definition at line 104 of file ModelMapper.h.
Referenced by onBeginRemoveRows(), and onRowRemoved().
|
private |
Definition at line 86 of file ModelMapper.h.
Referenced by callOnAboutToRemoveChild(), callOnAnyChildChange(), callOnChildPropertyChange(), callOnChildrenChange(), callOnItemDestroy(), callOnParentChange(), callOnPropertyChange(), callOnSiblingsChange(), callOnValueChange(), and setActive().
|
private |
Definition at line 88 of file ModelMapper.h.
Referenced by callOnItemDestroy(), callOnPropertyChange(), clearMapper(), nestlingDepth(), onBeginRemoveRows(), onDataChanged(), onRowRemoved(), onRowsInserted(), and setItem().
|
private |
Definition at line 87 of file ModelMapper.h.
Referenced by nestlingDepth(), onBeginRemoveRows(), onDataChanged(), onRowRemoved(), onRowsInserted(), and setModel().
|
private |
Definition at line 103 of file ModelMapper.h.
Referenced by callOnAboutToRemoveChild(), clearMapper(), setOnAboutToRemoveChild(), and unsubscribe().
|
private |
Definition at line 101 of file ModelMapper.h.
Referenced by callOnAnyChildChange(), clearMapper(), setOnAnyChildChange(), and unsubscribe().
|
private |
Definition at line 97 of file ModelMapper.h.
Referenced by callOnChildPropertyChange(), clearMapper(), setOnChildPropertyChange(), and unsubscribe().
|
private |
Definition at line 99 of file ModelMapper.h.
Referenced by callOnChildrenChange(), clearMapper(), setOnChildrenChange(), and unsubscribe().
|
private |
Definition at line 102 of file ModelMapper.h.
Referenced by callOnItemDestroy(), clearMapper(), setOnItemDestroy(), and unsubscribe().
|
private |
Definition at line 98 of file ModelMapper.h.
Referenced by callOnParentChange(), clearMapper(), setOnParentChange(), and unsubscribe().
|
private |
Definition at line 96 of file ModelMapper.h.
Referenced by callOnPropertyChange(), clearMapper(), setOnPropertyChange(), and unsubscribe().
|
private |
Definition at line 100 of file ModelMapper.h.
Referenced by callOnSiblingsChange(), clearMapper(), setOnSiblingsChange(), and unsubscribe().
|
private |
Definition at line 95 of file ModelMapper.h.
Referenced by callOnValueChange(), clearMapper(), setOnValueChange(), and unsubscribe().