BornAgain
1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Provides notifications on various changes for a specific item. More...
Classes | |
struct | ItemMapperImpl |
Public Member Functions | |
ItemMapper (SessionItem *item) | |
~ItemMapper () | |
void | setActive (bool value) |
Sets activity flag to given value. Will disable all callbacks if false. More... | |
void | setOnAboutToRemoveItem (Callbacks::item_tagrow_t f, Callbacks::slot_t owner) override |
Sets callback to be notified when row is about to be removed. More... | |
void | setOnChildPropertyChange (Callbacks::item_str_t f, Callbacks::slot_t owner) override |
Sets callback to be notified on item's children property change. More... | |
void | setOnDataChange (Callbacks::item_int_t f, Callbacks::slot_t owner) override |
Sets callback to be notified on item's data change. More... | |
void | setOnItemDestroy (Callbacks::item_t f, Callbacks::slot_t owner) override |
void | setOnItemInserted (Callbacks::item_tagrow_t f, Callbacks::slot_t owner) override |
Sets callback to be notified on child insertion. More... | |
void | setOnItemRemoved (Callbacks::item_tagrow_t f, Callbacks::slot_t owner) override |
Sets callback to be notified on child removal. More... | |
void | setOnPropertyChange (Callbacks::item_str_t f, Callbacks::slot_t owner) override |
Sets callback to be notified on item's property change. More... | |
void | unsubscribe (Callbacks::slot_t client) override |
Removes given client from all subscriptions. More... | |
Private Member Functions | |
void | callOnItemDestroy () |
Calls all callbacks subscribed to "item is destroyed" event. More... | |
SessionModel * | model () const |
void | setOnModelAboutToBeReset (Callbacks::model_t f, Callbacks::slot_t client={}) override |
Sets the callback to be notified before model's full reset (root item recreated). More... | |
void | setOnModelDestroyed (Callbacks::model_t f, Callbacks::slot_t client={}) override |
Sets the callback for notifications on model destruction. More... | |
void | setOnModelReset (Callbacks::model_t f, Callbacks::slot_t client={}) override |
Sets the callback to be notified after model was fully reset (root item recreated). More... | |
Private Attributes | |
SessionModel * | m_model {nullptr} |
std::unique_ptr< ItemMapperImpl > | p_impl |
Friends | |
class | SessionItem |
Provides notifications on various changes for a specific item.
ItemMapper listens signals coming from the model (i.e. via ModelMapper) and processes only whose signals which are related to the given item. Notifies all interested subscribers about things going with the item and its relatives.
Definition at line 31 of file itemmapper.h.
ItemMapper::ItemMapper | ( | SessionItem * | item | ) |
Definition at line 147 of file itemmapper.cpp.
References ModelView::SessionItem::model(), p_impl, ModelView::ModelListenerBase::setOnAboutToRemoveItem(), ModelView::ModelListenerBase::setOnDataChange(), ModelView::ModelListenerBase::setOnItemInserted(), and ModelView::ModelListenerBase::setOnItemRemoved().
|
default |
|
private |
|
inlineinherited |
Definition at line 30 of file modellistener.h.
void ItemMapper::setActive | ( | bool | value | ) |
Sets activity flag to given value. Will disable all callbacks if false.
Definition at line 221 of file itemmapper.cpp.
References p_impl.
|
overridevirtual |
Sets callback to be notified when row is about to be removed.
Callback will be called with (compound_item, tagrow). For MultiLayer containing the T_LAYERS tag, the signal will be triggered on layer deletion with (multilayer*, {T_LAYER, row}) as callback parameters.
Implements ModelView::ItemListenerInterface.
Definition at line 209 of file itemmapper.cpp.
References p_impl.
Referenced by MockWidgetForItem::setItem().
|
overridevirtual |
Sets callback to be notified on item's children property change.
Callback will be called with (compound_item, property_name). For MultiLayer containing the layer with "thickness" property, the signal will be triggered on thickness change using (layeritem*, "thickness") as callback parameters.
Implements ModelView::ItemListenerInterface.
Definition at line 194 of file itemmapper.cpp.
References p_impl.
Referenced by MockWidgetForItem::setItem().
|
overridevirtual |
Sets callback to be notified on item's data change.
Callback will be called with (SessionItem*, data_role).
Implements ModelView::ItemListenerInterface.
Definition at line 184 of file itemmapper.cpp.
References p_impl.
Referenced by MockWidgetForItem::setItem().
|
overridevirtual |
Implements ModelView::ItemListenerInterface.
Definition at line 179 of file itemmapper.cpp.
References p_impl.
Referenced by MockWidgetForItem::setItem().
|
overridevirtual |
Sets callback to be notified on child insertion.
Callback will be called with (compound_item, tag, row). For MultiLayer containing the T_LAYERS tag, the signal will be triggered on layer insertion with (multilayer*, {T_LAYER, row}) as callback parameters.
Implements ModelView::ItemListenerInterface.
Definition at line 199 of file itemmapper.cpp.
References p_impl.
Referenced by gui2::MultiLayerItem::activate(), and MockWidgetForItem::setItem().
|
overridevirtual |
Sets callback to be notified on child removal.
Callback will be called with (compound_item, tag, row). For MultiLayer containing the T_LAYERS tag, the signal will be triggered on layer removal with (multilayer*, {T_LAYER, oldrow}) as callback parameters.
Implements ModelView::ItemListenerInterface.
Definition at line 204 of file itemmapper.cpp.
References p_impl.
Referenced by gui2::MultiLayerItem::activate(), and MockWidgetForItem::setItem().
|
overridevirtualinherited |
Sets the callback to be notified before model's full reset (root item recreated).
Implements ModelView::ModelListenerInterface.
Definition at line 76 of file modellistenerbase.cpp.
References ModelView::ModelListenerBase::m_model, ModelView::SessionModel::mapper(), and ModelView::ModelMapper::setOnModelAboutToBeReset().
Referenced by ModelView::ViewModelController::ViewModelController().
|
overridevirtualinherited |
Sets the callback for notifications on model destruction.
Implements ModelView::ModelListenerInterface.
Definition at line 69 of file modellistenerbase.cpp.
References ModelView::ModelListenerBase::m_model, ModelView::SessionModel::mapper(), and ModelView::ModelMapper::setOnModelDestroyed().
Referenced by ModelView::ModelListenerBase::ModelListenerBase(), and ModelView::ViewModelController::ViewModelController().
|
overridevirtualinherited |
Sets the callback to be notified after model was fully reset (root item recreated).
Implements ModelView::ModelListenerInterface.
Definition at line 83 of file modellistenerbase.cpp.
References ModelView::ModelListenerBase::m_model, ModelView::SessionModel::mapper(), and ModelView::ModelMapper::setOnModelReset().
Referenced by gui2::ExperimentalDataController::ExperimentalDataController(), gui2::MaterialPropertyController::MaterialPropertyController(), ModelView::ModelHasChangedController::ModelHasChangedController(), and ModelView::ViewModelController::ViewModelController().
|
overridevirtual |
Sets callback to be notified on item's property change.
Callback will be called with (compound_item, property_name).
Implements ModelView::ItemListenerInterface.
Definition at line 189 of file itemmapper.cpp.
References p_impl.
Referenced by ModelView::VectorItem::activate(), ToyItems::LatticeItem::activate(), gui2::LayerElementController::connectToModel(), and MockWidgetForItem::setItem().
|
overridevirtual |
Removes given client from all subscriptions.
Implements ModelView::ItemListenerInterface.
Definition at line 214 of file itemmapper.cpp.
References p_impl.
Referenced by MockWidgetForItem::~MockWidgetForItem(), gui2::LayerElementController::disconnectFormModel(), and MockWidgetForItem::setItem().
|
friend |
Definition at line 50 of file itemmapper.h.
|
protectedinherited |
Definition at line 46 of file modellistenerbase.h.
Referenced by ModelView::ModelListenerBase::ModelListenerBase(), ModelView::ModelListener< T >::model(), ModelView::ModelListenerBase::setOnAboutToRemoveItem(), ModelView::ModelListenerBase::setOnDataChange(), ModelView::ModelListenerBase::setOnItemInserted(), ModelView::ModelListenerBase::setOnItemRemoved(), ModelView::ModelListenerBase::setOnModelAboutToBeReset(), ModelView::ModelListenerBase::setOnModelDestroyed(), ModelView::ModelListenerBase::setOnModelReset(), and ModelView::ModelListenerBase::unsubscribe().
|
private |
Definition at line 54 of file itemmapper.h.
Referenced by ItemMapper(), callOnItemDestroy(), setActive(), setOnAboutToRemoveItem(), setOnChildPropertyChange(), setOnDataChange(), setOnItemDestroy(), setOnItemInserted(), setOnItemRemoved(), setOnPropertyChange(), and unsubscribe().