BornAgain
1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Tracks changes in the model. More...
Public Types | |
using | callback_t = std::function< void()> |
Public Member Functions | |
ModelHasChangedController (SessionModel *model, callback_t callback={}) | |
Constructor of ModelHasChangedController. More... | |
bool | hasChanged () const |
Returns true if the model was changed since last call of resetChanged. More... | |
SessionModel * | model () const |
void | resetChanged () |
Reset has_changed flag. More... | |
void | setOnAboutToRemoveItem (Callbacks::item_tagrow_t f, Callbacks::slot_t client={}) override |
Sets callback to be notified when the item is about to be removed. More... | |
void | setOnDataChange (Callbacks::item_int_t f, Callbacks::slot_t client={}) override |
Sets callback to be notified on item's data change. More... | |
void | setOnItemInserted (Callbacks::item_tagrow_t f, Callbacks::slot_t client={}) override |
Sets callback to be notified on item insert. More... | |
void | setOnItemRemoved (Callbacks::item_tagrow_t f, Callbacks::slot_t client={}) override |
Sets callback to be notified on item remove. More... | |
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... | |
void | unsubscribe (Callbacks::slot_t client={}) override |
Removes given client from all subscriptions. More... | |
Protected Attributes | |
SessionModel * | m_model {nullptr} |
Private Member Functions | |
void | process_change () |
Sets 'has_changed' flag and reports back to client. More... | |
Private Attributes | |
callback_t | m_callback |
bool | m_has_changed {false} |
Tracks changes in the model.
Allows to check if model has been changed (e.g. modified, inserted or removed items) since last call of ::resetChanged().
Definition at line 27 of file modelhaschangedcontroller.h.
using ModelView::ModelHasChangedController::callback_t = std::function<void()> |
Definition at line 29 of file modelhaschangedcontroller.h.
ModelHasChangedController::ModelHasChangedController | ( | SessionModel * | model, |
callback_t | callback = {} |
||
) |
Constructor of ModelHasChangedController.
Acccept 'model' to listen, and a 'callback' to report about changes in a model.
Definition at line 22 of file modelhaschangedcontroller.cpp.
References process_change(), ModelView::ModelListenerBase::setOnDataChange(), ModelView::ModelListenerBase::setOnItemInserted(), ModelView::ModelListenerBase::setOnItemRemoved(), and ModelView::ModelListenerBase::setOnModelReset().
bool ModelHasChangedController::hasChanged | ( | ) | const |
Returns true if the model was changed since last call of resetChanged.
Definition at line 33 of file modelhaschangedcontroller.cpp.
References m_has_changed.
Referenced by TEST_F().
|
inlineinherited |
Definition at line 30 of file modellistener.h.
|
private |
Sets 'has_changed' flag and reports back to client.
Definition at line 47 of file modelhaschangedcontroller.cpp.
References m_callback, and m_has_changed.
Referenced by ModelHasChangedController().
void ModelHasChangedController::resetChanged | ( | ) |
Reset has_changed flag.
Definition at line 40 of file modelhaschangedcontroller.cpp.
References m_has_changed.
Referenced by TEST_F().
|
overridevirtualinherited |
Sets callback to be notified when the item is about to be removed.
The callback will be called with (SessionItem* parent, tagrow), where 'tagrow' denotes child position being removed.
Implements ModelView::ModelListenerInterface.
Definition at line 61 of file modellistenerbase.cpp.
References ModelView::ModelListenerBase::m_model, ModelView::SessionModel::mapper(), and ModelView::ModelMapper::setOnAboutToRemoveItem().
Referenced by ModelView::ItemMapper::ItemMapper(), and ModelView::ViewModelController::ViewModelController().
|
overridevirtualinherited |
Sets callback to be notified on item's data change.
The callback will be called with (SessionItem*, data_role).
Implements ModelView::ModelListenerInterface.
Definition at line 37 of file modellistenerbase.cpp.
References ModelView::ModelListenerBase::m_model, ModelView::SessionModel::mapper(), and ModelView::ModelMapper::setOnDataChange().
Referenced by gui2::ExperimentalDataController::ExperimentalDataController(), ModelView::ItemMapper::ItemMapper(), gui2::MaterialPropertyController::MaterialPropertyController(), ModelHasChangedController(), and ModelView::ViewModelController::ViewModelController().
|
overridevirtualinherited |
Sets callback to be notified on item insert.
The callback will be called with (SessionItem* parent, tagrow), where 'tagrow' denotes inserted child position.
Implements ModelView::ModelListenerInterface.
Definition at line 45 of file modellistenerbase.cpp.
References ModelView::ModelListenerBase::m_model, ModelView::SessionModel::mapper(), and ModelView::ModelMapper::setOnItemInserted().
Referenced by gui2::ExperimentalDataController::ExperimentalDataController(), ModelView::ItemMapper::ItemMapper(), gui2::MaterialPropertyController::MaterialPropertyController(), ModelHasChangedController(), and ModelView::ViewModelController::ViewModelController().
|
overridevirtualinherited |
Sets callback to be notified on item remove.
The callback will be called with (SessionItem* parent, tagrow), where 'tagrow' denotes child position before the removal.
Implements ModelView::ModelListenerInterface.
Definition at line 53 of file modellistenerbase.cpp.
References ModelView::ModelListenerBase::m_model, ModelView::SessionModel::mapper(), and ModelView::ModelMapper::setOnItemRemoved().
Referenced by gui2::ExperimentalDataController::ExperimentalDataController(), ModelView::ItemMapper::ItemMapper(), gui2::MaterialPropertyController::MaterialPropertyController(), ModelHasChangedController(), and ModelView::ViewModelController::ViewModelController().
|
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(), ModelHasChangedController(), and ModelView::ViewModelController::ViewModelController().
|
overridevirtualinherited |
Removes given client from all subscriptions.
Implements ModelView::ModelListenerInterface.
Definition at line 88 of file modellistenerbase.cpp.
References ModelView::ModelListenerBase::m_model, ModelView::SessionModel::mapper(), and ModelView::ModelMapper::unsubscribe().
Referenced by ModelView::ModelListenerBase::~ModelListenerBase().
|
private |
Definition at line 39 of file modelhaschangedcontroller.h.
Referenced by process_change().
|
private |
Definition at line 38 of file modelhaschangedcontroller.h.
Referenced by hasChanged(), process_change(), and resetChanged().
|
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().