BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
MockWidgetForModel Class Referenceabstract

Mock class to test ModelMapper functionality. More...

Inheritance diagram for MockWidgetForModel:
[legend]
Collaboration diagram for MockWidgetForModel:
[legend]

Public Member Functions

 MockWidgetForModel (ModelView::SessionModel *model)
 
 ~MockWidgetForModel ()
 
 MOCK_METHOD1 (onModelAboutToBeReset, void(ModelView::SessionModel *model))
 
 MOCK_METHOD1 (onModelDestroyed, void(ModelView::SessionModel *model))
 
 MOCK_METHOD1 (onModelReset, void(ModelView::SessionModel *model))
 
 MOCK_METHOD2 (onAboutToRemoveItem, void(ModelView::SessionItem *item, ModelView::TagRow tagrow))
 
 MOCK_METHOD2 (onDataChange, void(ModelView::SessionItem *item, int role))
 
 MOCK_METHOD2 (onItemInserted, void(ModelView::SessionItem *item, ModelView::TagRow tagrow))
 
 MOCK_METHOD2 (onItemRemoved, void(ModelView::SessionItem *item, ModelView::TagRow tagrow))
 
virtual void onAboutToRemoveItem (ModelView::SessionItem *, ModelView::TagRow)=0
 
virtual void onDataChange (ModelView::SessionItem *, int)=0
 
virtual void onItemInserted (ModelView::SessionItem *, ModelView::TagRow)=0
 
virtual void onItemRemoved (ModelView::SessionItem *, ModelView::TagRow)=0
 
virtual void onModelAboutToBeReset (ModelView::SessionModel *)=0
 
virtual void onModelDestroyed (ModelView::SessionModel *)=0
 
virtual void onModelReset (ModelView::SessionModel *)=0
 
void setModel (ModelView::SessionModel *model)
 

Private Attributes

ModelView::SessionModelm_model
 

Detailed Description

Mock class to test ModelMapper functionality.

Definition at line 57 of file mockwidgets.h.

Constructor & Destructor Documentation

◆ MockWidgetForModel()

MockWidgetForModel::MockWidgetForModel ( ModelView::SessionModel model)

Definition at line 87 of file mockwidgets.cpp.

87  : m_model(nullptr)
88 {
89  setModel(model);
90 }
ModelView::SessionModel * m_model
Definition: mockwidgets.h:73
void setModel(ModelView::SessionModel *model)
Definition: mockwidgets.cpp:98

References setModel().

Here is the call graph for this function:

◆ ~MockWidgetForModel()

MockWidgetForModel::~MockWidgetForModel ( )

Definition at line 92 of file mockwidgets.cpp.

93 {
94  if (m_model)
95  m_model->mapper()->unsubscribe(this);
96 }
void unsubscribe(Callbacks::slot_t client) override
Removes given client from all subscriptions.
ModelMapper * mapper()
Returns model mapper. Can be used to subscribe to various model's signal.

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

Here is the call graph for this function:

Member Function Documentation

◆ MOCK_METHOD1() [1/3]

MockWidgetForModel::MOCK_METHOD1 ( onModelAboutToBeReset  ,
void(ModelView::SessionModel *model)   
)

◆ MOCK_METHOD1() [2/3]

MockWidgetForModel::MOCK_METHOD1 ( onModelDestroyed  ,
void(ModelView::SessionModel *model)   
)

◆ MOCK_METHOD1() [3/3]

MockWidgetForModel::MOCK_METHOD1 ( onModelReset  ,
void(ModelView::SessionModel *model)   
)

◆ MOCK_METHOD2() [1/4]

MockWidgetForModel::MOCK_METHOD2 ( onAboutToRemoveItem  ,
void(ModelView::SessionItem *item, ModelView::TagRow tagrow)   
)

◆ MOCK_METHOD2() [2/4]

MockWidgetForModel::MOCK_METHOD2 ( onDataChange  ,
void(ModelView::SessionItem *item, int role)   
)

◆ MOCK_METHOD2() [3/4]

MockWidgetForModel::MOCK_METHOD2 ( onItemInserted  ,
void(ModelView::SessionItem *item, ModelView::TagRow tagrow)   
)

◆ MOCK_METHOD2() [4/4]

MockWidgetForModel::MOCK_METHOD2 ( onItemRemoved  ,
void(ModelView::SessionItem *item, ModelView::TagRow tagrow)   
)

◆ onAboutToRemoveItem()

virtual void ModelTestWidgetInterface::onAboutToRemoveItem ( ModelView::SessionItem ,
ModelView::TagRow   
)
pure virtualinherited

Referenced by setModel().

◆ onDataChange()

virtual void ModelTestWidgetInterface::onDataChange ( ModelView::SessionItem ,
int   
)
pure virtualinherited

Referenced by setModel().

◆ onItemInserted()

virtual void ModelTestWidgetInterface::onItemInserted ( ModelView::SessionItem ,
ModelView::TagRow   
)
pure virtualinherited

Referenced by setModel().

◆ onItemRemoved()

virtual void ModelTestWidgetInterface::onItemRemoved ( ModelView::SessionItem ,
ModelView::TagRow   
)
pure virtualinherited

Referenced by setModel().

◆ onModelAboutToBeReset()

virtual void ModelTestWidgetInterface::onModelAboutToBeReset ( ModelView::SessionModel )
pure virtualinherited

Referenced by setModel().

◆ onModelDestroyed()

virtual void ModelTestWidgetInterface::onModelDestroyed ( ModelView::SessionModel )
pure virtualinherited

Referenced by setModel().

◆ onModelReset()

virtual void ModelTestWidgetInterface::onModelReset ( ModelView::SessionModel )
pure virtualinherited

Referenced by setModel().

◆ setModel()

void MockWidgetForModel::setModel ( ModelView::SessionModel model)

Definition at line 98 of file mockwidgets.cpp.

99 {
100  if (m_model == model)
101  return;
102 
103  if (m_model)
104  m_model->mapper()->unsubscribe(this);
105 
106  m_model = model;
107 
108  if (!m_model)
109  return;
110 
111  auto on_data_change = [this](ModelView::SessionItem* item, int role) {
112  onDataChange(item, role);
113  };
114  m_model->mapper()->setOnDataChange(on_data_change, this);
115 
116  auto on_item_inserted = [this](ModelView::SessionItem* item, ModelView::TagRow tagrow) {
117  onItemInserted(item, tagrow);
118  };
119  m_model->mapper()->setOnItemInserted(on_item_inserted, this);
120 
121  auto on_item_removed = [this](ModelView::SessionItem* item, ModelView::TagRow tagrow) {
122  onItemRemoved(item, tagrow);
123  };
124  m_model->mapper()->setOnItemRemoved(on_item_removed, this);
125 
126  auto on_about_to_remove_item = [this](ModelView::SessionItem* item, ModelView::TagRow tagrow) {
127  onAboutToRemoveItem(item, tagrow);
128  };
129  m_model->mapper()->setOnAboutToRemoveItem(on_about_to_remove_item, this);
130 
131  auto on_model_destroyed = [this](ModelView::SessionModel* model) {
132  m_model = nullptr;
133  onModelDestroyed(model);
134  };
135  m_model->mapper()->setOnModelDestroyed(on_model_destroyed, this);
136 
137  auto on_model_about_reset = [this](ModelView::SessionModel* model) {
138  onModelAboutToBeReset(model);
139  };
140  m_model->mapper()->setOnModelAboutToBeReset(on_model_about_reset, this);
141 
142  auto on_model_reset = [this](ModelView::SessionModel* model) { onModelReset(model); };
143  m_model->mapper()->setOnModelReset(on_model_reset, this);
144 }
virtual void onModelAboutToBeReset(ModelView::SessionModel *)=0
virtual void onDataChange(ModelView::SessionItem *, int)=0
virtual void onItemRemoved(ModelView::SessionItem *, ModelView::TagRow)=0
virtual void onModelDestroyed(ModelView::SessionModel *)=0
virtual void onItemInserted(ModelView::SessionItem *, ModelView::TagRow)=0
virtual void onAboutToRemoveItem(ModelView::SessionItem *, ModelView::TagRow)=0
virtual void onModelReset(ModelView::SessionModel *)=0
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
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
void setOnItemRemoved(Callbacks::item_tagrow_t f, Callbacks::slot_t client) override
Sets callback to be notified on item remove.
Definition: modelmapper.cpp:69
void setOnItemInserted(Callbacks::item_tagrow_t f, Callbacks::slot_t client) override
Sets callback to be notified on item insert.
Definition: modelmapper.cpp:61
void setOnModelDestroyed(Callbacks::model_t f, Callbacks::slot_t client) override
Sets the callback for notifications on model destruction.
Definition: modelmapper.cpp:84
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
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
The main object representing an editable/displayable/serializable entity.
Definition: sessionitem.h:38
Main class to hold hierarchy of SessionItem objects.
Definition: sessionmodel.h:37
Aggregate to hold (tag, row) information for SessionModel.
Definition: tagrow.h:25

References m_model, ModelView::SessionModel::mapper(), ModelTestWidgetInterface::onAboutToRemoveItem(), ModelTestWidgetInterface::onDataChange(), ModelTestWidgetInterface::onItemInserted(), ModelTestWidgetInterface::onItemRemoved(), ModelTestWidgetInterface::onModelAboutToBeReset(), ModelTestWidgetInterface::onModelDestroyed(), ModelTestWidgetInterface::onModelReset(), ModelView::ModelMapper::setOnAboutToRemoveItem(), ModelView::ModelMapper::setOnDataChange(), ModelView::ModelMapper::setOnItemInserted(), ModelView::ModelMapper::setOnItemRemoved(), ModelView::ModelMapper::setOnModelAboutToBeReset(), ModelView::ModelMapper::setOnModelDestroyed(), ModelView::ModelMapper::setOnModelReset(), and ModelView::ModelMapper::unsubscribe().

Referenced by MockWidgetForModel(), and TEST().

Here is the call graph for this function:

Member Data Documentation

◆ m_model

ModelView::SessionModel* MockWidgetForModel::m_model
private

Definition at line 73 of file mockwidgets.h.

Referenced by ~MockWidgetForModel(), and setModel().


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