BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
ModelView::ModelListenerBase Class Reference

Provides sets of methods to subscribe to various signals generated by SessionModel. More...

Inheritance diagram for ModelView::ModelListenerBase:
[legend]
Collaboration diagram for ModelView::ModelListenerBase:
[legend]

Public Member Functions

 ModelListenerBase (SessionModel *model)
 
 ~ModelListenerBase () override
 
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

SessionModelm_model {nullptr}
 

Detailed Description

Provides sets of methods to subscribe to various signals generated by SessionModel.

Automatically tracks the time of life of SessionModel. Unsubscribes from the model on own destruction.

Definition at line 28 of file modellistenerbase.h.

Constructor & Destructor Documentation

◆ ModelListenerBase()

ModelListenerBase::ModelListenerBase ( SessionModel model)

Definition at line 22 of file modellistenerbase.cpp.

22  : m_model(model)
23 {
24  if (!m_model)
25  throw std::runtime_error("Error in ModelListenerBase: no model defined");
26  setOnModelDestroyed([this](SessionModel*) { m_model = nullptr; });
27 }
void setOnModelDestroyed(Callbacks::model_t f, Callbacks::slot_t client={}) override
Sets the callback for notifications on model destruction.
Main class to hold hierarchy of SessionItem objects.
Definition: sessionmodel.h:37

References m_model, and setOnModelDestroyed().

Here is the call graph for this function:

◆ ~ModelListenerBase()

ModelListenerBase::~ModelListenerBase ( )
override

Definition at line 29 of file modellistenerbase.cpp.

30 {
31  unsubscribe();
32 }
void unsubscribe(Callbacks::slot_t client={}) override
Removes given client from all subscriptions.

References unsubscribe().

Here is the call graph for this function:

Member Function Documentation

◆ setOnAboutToRemoveItem()

void ModelListenerBase::setOnAboutToRemoveItem ( Callbacks::item_tagrow_t  f,
Callbacks::slot_t  client = {} 
)
overridevirtual

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.

63 {
65 }
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.
Definition: modelmapper.cpp:77
ModelMapper * mapper()
Returns model mapper. Can be used to subscribe to various model's signal.

References m_model, ModelView::SessionModel::mapper(), and ModelView::ModelMapper::setOnAboutToRemoveItem().

Referenced by ModelView::ItemMapper::ItemMapper(), and ModelView::ViewModelController::ViewModelController().

Here is the call graph for this function:

◆ setOnDataChange()

void ModelListenerBase::setOnDataChange ( Callbacks::item_int_t  f,
Callbacks::slot_t  client = {} 
)
overridevirtual

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.

38 {
39  m_model->mapper()->setOnDataChange(f, this);
40 }
void setOnDataChange(Callbacks::item_int_t f, Callbacks::slot_t client) override
Sets callback to be notified on item's data change.
Definition: modelmapper.cpp:53

References m_model, ModelView::SessionModel::mapper(), and ModelView::ModelMapper::setOnDataChange().

Referenced by gui2::ExperimentalDataController::ExperimentalDataController(), ModelView::ItemMapper::ItemMapper(), gui2::MaterialPropertyController::MaterialPropertyController(), ModelView::ModelHasChangedController::ModelHasChangedController(), and ModelView::ViewModelController::ViewModelController().

Here is the call graph for this function:

◆ setOnItemInserted()

void ModelListenerBase::setOnItemInserted ( Callbacks::item_tagrow_t  f,
Callbacks::slot_t  client = {} 
)
overridevirtual

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.

46 {
47  m_model->mapper()->setOnItemInserted(f, this);
48 }
void setOnItemInserted(Callbacks::item_tagrow_t f, Callbacks::slot_t client) override
Sets callback to be notified on item insert.
Definition: modelmapper.cpp:61

References m_model, ModelView::SessionModel::mapper(), and ModelView::ModelMapper::setOnItemInserted().

Referenced by gui2::ExperimentalDataController::ExperimentalDataController(), ModelView::ItemMapper::ItemMapper(), gui2::MaterialPropertyController::MaterialPropertyController(), ModelView::ModelHasChangedController::ModelHasChangedController(), and ModelView::ViewModelController::ViewModelController().

Here is the call graph for this function:

◆ setOnItemRemoved()

void ModelListenerBase::setOnItemRemoved ( Callbacks::item_tagrow_t  f,
Callbacks::slot_t  client = {} 
)
overridevirtual

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.

54 {
55  m_model->mapper()->setOnItemRemoved(f, this);
56 }
void setOnItemRemoved(Callbacks::item_tagrow_t f, Callbacks::slot_t client) override
Sets callback to be notified on item remove.
Definition: modelmapper.cpp:69

References m_model, ModelView::SessionModel::mapper(), and ModelView::ModelMapper::setOnItemRemoved().

Referenced by gui2::ExperimentalDataController::ExperimentalDataController(), ModelView::ItemMapper::ItemMapper(), gui2::MaterialPropertyController::MaterialPropertyController(), ModelView::ModelHasChangedController::ModelHasChangedController(), and ModelView::ViewModelController::ViewModelController().

Here is the call graph for this function:

◆ setOnModelAboutToBeReset()

void ModelListenerBase::setOnModelAboutToBeReset ( Callbacks::model_t  f,
Callbacks::slot_t  client = {} 
)
overridevirtual

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.

77 {
79 }
void setOnModelAboutToBeReset(Callbacks::model_t f, Callbacks::slot_t client) override
Sets the callback to be notified just before the reset of the root item.
Definition: modelmapper.cpp:91

References m_model, ModelView::SessionModel::mapper(), and ModelView::ModelMapper::setOnModelAboutToBeReset().

Referenced by ModelView::ViewModelController::ViewModelController().

Here is the call graph for this function:

◆ setOnModelDestroyed()

void ModelListenerBase::setOnModelDestroyed ( Callbacks::model_t  f,
Callbacks::slot_t  client = {} 
)
overridevirtual

Sets the callback for notifications on model destruction.

Implements ModelView::ModelListenerInterface.

Definition at line 69 of file modellistenerbase.cpp.

70 {
71  m_model->mapper()->setOnModelDestroyed(f, this);
72 }
void setOnModelDestroyed(Callbacks::model_t f, Callbacks::slot_t client) override
Sets the callback for notifications on model destruction.
Definition: modelmapper.cpp:84

References m_model, ModelView::SessionModel::mapper(), and ModelView::ModelMapper::setOnModelDestroyed().

Referenced by ModelListenerBase(), and ModelView::ViewModelController::ViewModelController().

Here is the call graph for this function:

◆ setOnModelReset()

void ModelListenerBase::setOnModelReset ( Callbacks::model_t  f,
Callbacks::slot_t  client = {} 
)
overridevirtual

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.

84 {
85  m_model->mapper()->setOnModelReset(f, this);
86 }
void setOnModelReset(Callbacks::model_t f, Callbacks::slot_t client) override
Sets the callback to be notified right after the root item recreation.
Definition: modelmapper.cpp:98

References m_model, ModelView::SessionModel::mapper(), and ModelView::ModelMapper::setOnModelReset().

Referenced by gui2::ExperimentalDataController::ExperimentalDataController(), gui2::MaterialPropertyController::MaterialPropertyController(), ModelView::ModelHasChangedController::ModelHasChangedController(), and ModelView::ViewModelController::ViewModelController().

Here is the call graph for this function:

◆ unsubscribe()

void ModelListenerBase::unsubscribe ( Callbacks::slot_t  client = {})
overridevirtual

Removes given client from all subscriptions.

Implements ModelView::ModelListenerInterface.

Definition at line 88 of file modellistenerbase.cpp.

89 {
90  if (m_model)
91  m_model->mapper()->unsubscribe(this);
92 }
void unsubscribe(Callbacks::slot_t client) override
Removes given client from all subscriptions.

References m_model, ModelView::SessionModel::mapper(), and ModelView::ModelMapper::unsubscribe().

Referenced by ~ModelListenerBase().

Here is the call graph for this function:

Member Data Documentation

◆ m_model


The documentation for this class was generated from the following files: