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

Mock widget to test ItemMapper functionality. More...

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

Public Member Functions

 MockWidgetForItem (ModelView::SessionItem *item)
 
 ~MockWidgetForItem ()
 
 MOCK_METHOD1 (onItemDestroy, void(ModelView::SessionItem *item))
 
 MOCK_METHOD2 (onAboutToRemoveItem, void(ModelView::SessionItem *item, ModelView::TagRow tagrow))
 
 MOCK_METHOD2 (onChildPropertyChange, void(ModelView::SessionItem *item, std::string name))
 
 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))
 
 MOCK_METHOD2 (onPropertyChange, void(ModelView::SessionItem *item, std::string name))
 
virtual void onAboutToRemoveItem (ModelView::SessionItem *item, ModelView::TagRow)=0
 
virtual void onDataChange (ModelView::SessionItem *item, int role)=0
 
virtual void onItemDestroy (ModelView::SessionItem *item)=0
 
virtual void onItemInserted (ModelView::SessionItem *item, ModelView::TagRow)=0
 
virtual void onPropertyChange (ModelView::SessionItem *item, std::string name)=0
 
void setItem (ModelView::SessionItem *item)
 

Private Attributes

ModelView::SessionItemm_item
 

Detailed Description

Mock widget to test ItemMapper functionality.

Definition at line 36 of file mockwidgets.h.

Constructor & Destructor Documentation

◆ MockWidgetForItem()

MockWidgetForItem::MockWidgetForItem ( ModelView::SessionItem item)

Definition at line 24 of file mockwidgets.cpp.

24  : m_item(nullptr)
25 {
26  setItem(item);
27 }
void setItem(ModelView::SessionItem *item)
Definition: mockwidgets.cpp:35
ModelView::SessionItem * m_item
Definition: mockwidgets.h:52

References setItem().

Here is the call graph for this function:

◆ ~MockWidgetForItem()

MockWidgetForItem::~MockWidgetForItem ( )

Definition at line 29 of file mockwidgets.cpp.

30 {
31  if (m_item)
32  m_item->mapper()->unsubscribe(this);
33 }
void unsubscribe(Callbacks::slot_t client) override
Removes given client from all subscriptions.
Definition: itemmapper.cpp:214
ItemMapper * mapper()
Returns item mapper. Allows subscribing to various events happening to the item.

References m_item, ModelView::SessionItem::mapper(), and ModelView::ItemMapper::unsubscribe().

Here is the call graph for this function:

Member Function Documentation

◆ MOCK_METHOD1()

MockWidgetForItem::MOCK_METHOD1 ( onItemDestroy  ,
void(ModelView::SessionItem *item)   
)

◆ MOCK_METHOD2() [1/6]

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

◆ MOCK_METHOD2() [2/6]

MockWidgetForItem::MOCK_METHOD2 ( onChildPropertyChange  ,
void(ModelView::SessionItem *item, std::string name)   
)

◆ MOCK_METHOD2() [3/6]

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

◆ MOCK_METHOD2() [4/6]

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

◆ MOCK_METHOD2() [5/6]

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

◆ MOCK_METHOD2() [6/6]

MockWidgetForItem::MOCK_METHOD2 ( onPropertyChange  ,
void(ModelView::SessionItem *item, std::string name)   
)

◆ onAboutToRemoveItem()

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

Referenced by setItem().

◆ onDataChange()

virtual void ItemTestWidgetInterface::onDataChange ( ModelView::SessionItem item,
int  role 
)
pure virtualinherited

Referenced by setItem().

◆ onItemDestroy()

virtual void ItemTestWidgetInterface::onItemDestroy ( ModelView::SessionItem item)
pure virtualinherited

Referenced by setItem().

◆ onItemInserted()

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

Referenced by setItem().

◆ onPropertyChange()

virtual void ItemTestWidgetInterface::onPropertyChange ( ModelView::SessionItem item,
std::string  name 
)
pure virtualinherited

Referenced by setItem().

◆ setItem()

void MockWidgetForItem::setItem ( ModelView::SessionItem item)

Definition at line 35 of file mockwidgets.cpp.

36 {
37  if (m_item == item)
38  return;
39 
40  if (m_item)
41  m_item->mapper()->unsubscribe(this);
42 
43  m_item = item;
44 
45  if (!m_item)
46  return;
47 
48  auto on_item_destroy = [this](ModelView::SessionItem* item) {
49  m_item = nullptr;
50  onItemDestroy(item);
51  };
52  m_item->mapper()->setOnItemDestroy(on_item_destroy, this);
53 
54  auto on_data_change = [this](ModelView::SessionItem* item, int role) {
55  onDataChange(item, role);
56  };
57  m_item->mapper()->setOnDataChange(on_data_change, this);
58 
59  auto on_property_change = [this](ModelView::SessionItem* item, std::string name) {
60  onPropertyChange(item, name);
61  };
62  m_item->mapper()->setOnPropertyChange(on_property_change, this);
63 
64  auto on_child_property_change = [this](ModelView::SessionItem* item, std::string name) {
65  onChildPropertyChange(item, name);
66  };
67  m_item->mapper()->setOnChildPropertyChange(on_child_property_change, this);
68 
69  auto on_item_inserted = [this](ModelView::SessionItem* item, ModelView::TagRow tagrow) {
70  onItemInserted(item, tagrow);
71  };
72  m_item->mapper()->setOnItemInserted(on_item_inserted, this);
73 
74  auto on_item_removed = [this](ModelView::SessionItem* item, ModelView::TagRow tagrow) {
75  onItemRemoved(item, tagrow);
76  };
77  m_item->mapper()->setOnItemRemoved(on_item_removed, this);
78 
79  auto on_about_to_remove_item = [this](ModelView::SessionItem* item, ModelView::TagRow tagrow) {
80  onAboutToRemoveItem(item, tagrow);
81  };
82  m_item->mapper()->setOnAboutToRemoveItem(on_about_to_remove_item, this);
83 }
virtual void onDataChange(ModelView::SessionItem *item, int role)=0
virtual void onItemDestroy(ModelView::SessionItem *item)=0
virtual void onItemInserted(ModelView::SessionItem *item, ModelView::TagRow)=0
virtual void onPropertyChange(ModelView::SessionItem *item, std::string name)=0
virtual void onAboutToRemoveItem(ModelView::SessionItem *item, ModelView::TagRow)=0
void setOnItemDestroy(Callbacks::item_t f, Callbacks::slot_t owner) override
Definition: itemmapper.cpp:179
void setOnItemRemoved(Callbacks::item_tagrow_t f, Callbacks::slot_t owner) override
Sets callback to be notified on child removal.
Definition: itemmapper.cpp:204
void setOnAboutToRemoveItem(Callbacks::item_tagrow_t f, Callbacks::slot_t owner) override
Sets callback to be notified when row is about to be removed.
Definition: itemmapper.cpp:209
void setOnItemInserted(Callbacks::item_tagrow_t f, Callbacks::slot_t owner) override
Sets callback to be notified on child insertion.
Definition: itemmapper.cpp:199
void setOnDataChange(Callbacks::item_int_t f, Callbacks::slot_t owner) override
Sets callback to be notified on item's data change.
Definition: itemmapper.cpp:184
void setOnPropertyChange(Callbacks::item_str_t f, Callbacks::slot_t owner) override
Sets callback to be notified on item's property change.
Definition: itemmapper.cpp:189
void setOnChildPropertyChange(Callbacks::item_str_t f, Callbacks::slot_t owner) override
Sets callback to be notified on item's children property change.
Definition: itemmapper.cpp:194
The main object representing an editable/displayable/serializable entity.
Definition: sessionitem.h:38
Aggregate to hold (tag, row) information for SessionModel.
Definition: tagrow.h:25
QString const & name(EShape k)
Definition: particles.cpp:21

References m_item, ModelView::SessionItem::mapper(), RealSpace::Particles::name(), ItemTestWidgetInterface::onAboutToRemoveItem(), ItemTestWidgetInterface::onDataChange(), ItemTestWidgetInterface::onItemDestroy(), ItemTestWidgetInterface::onItemInserted(), ItemTestWidgetInterface::onPropertyChange(), ModelView::ItemMapper::setOnAboutToRemoveItem(), ModelView::ItemMapper::setOnChildPropertyChange(), ModelView::ItemMapper::setOnDataChange(), ModelView::ItemMapper::setOnItemDestroy(), ModelView::ItemMapper::setOnItemInserted(), ModelView::ItemMapper::setOnItemRemoved(), ModelView::ItemMapper::setOnPropertyChange(), and ModelView::ItemMapper::unsubscribe().

Referenced by MockWidgetForItem().

Here is the call graph for this function:

Member Data Documentation

◆ m_item

ModelView::SessionItem* MockWidgetForItem::m_item
private

Definition at line 52 of file mockwidgets.h.

Referenced by ~MockWidgetForItem(), and setItem().


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