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

Establishes communication between QCPColorScale and ViewportAxisItem. More...

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

Classes

struct  ColorScalePlotControllerImpl
 

Public Member Functions

 ColorScalePlotController (QCPColorScale *color_scale)
 
 ~ColorScalePlotController () override
 
ViewportAxisItemcurrentItem () const
 
void setItem (SessionItem *item)
 
void setOnAboutToRemoveItem (Callbacks::item_tagrow_t f)
 
void setOnChildPropertyChange (Callbacks::item_str_t f)
 Sets callback to be notified on item's children property change. More...
 
void setOnDataChange (Callbacks::item_int_t f)
 Sets callback to be notified on item's data change. More...
 
void setOnItemDestroy (Callbacks::item_t f)
 
void setOnItemInserted (Callbacks::item_tagrow_t f)
 Sets callback to be notified on child insertion. More...
 
void setOnItemRemoved (Callbacks::item_tagrow_t f)
 Sets callback to be notified on child removal. More...
 
void setOnPropertyChange (Callbacks::item_str_t f)
 Sets callback to be notified on item's property change. More...
 

Public Attributes

std::unique_ptr< ColorScalePlotControllerImplp_impl
 

Protected Member Functions

SessionItemitem () const
 For necessary manipulations on unsubscription. More...
 
void subscribe () override
 
virtual void unsubscribe ()
 For necessary manipulations on new item. More...
 

Private Member Functions

void unsubscribe_from_current ()
 

Private Attributes

SessionItemm_item {nullptr}
 

Detailed Description

Establishes communication between QCPColorScale and ViewportAxisItem.

Definition at line 30 of file colorscaleplotcontroller.h.

Constructor & Destructor Documentation

◆ ColorScalePlotController()

ColorScalePlotController::ColorScalePlotController ( QCPColorScale *  color_scale)
explicit

Definition at line 89 of file colorscaleplotcontroller.cpp.

90  : p_impl(std::make_unique<ColorScalePlotControllerImpl>(this, color_scale))
91 
92 {
93 }
std::unique_ptr< ColorScalePlotControllerImpl > p_impl

◆ ~ColorScalePlotController()

ColorScalePlotController::~ColorScalePlotController ( )
overridedefault

Member Function Documentation

◆ currentItem()

ViewportAxisItem * ModelView::ItemListener< ViewportAxisItem >::currentItem ( ) const
inlineinherited

Definition at line 28 of file itemlistener.h.

28 { return static_cast<T*>(item()); }
SessionItem * item() const
For necessary manipulations on unsubscription.

◆ item()

◆ setItem()

void ModelView::ItemListenerBase::setItem ( ModelView::SessionItem item)
inherited

Definition at line 30 of file itemlistenerbase.cpp.

31 {
32  if (m_item == item)
33  return;
34 
36 
37  m_item = item;
38 
39  if (!m_item)
40  return;
41 
42  auto on_item_destroy = [this](auto) {
43  m_item = nullptr;
44  unsubscribe();
45  };
46  m_item->mapper()->setOnItemDestroy(on_item_destroy, this);
47 
48  subscribe();
49 }
virtual void unsubscribe()
For necessary manipulations on new item.
void setOnItemDestroy(Callbacks::item_t f, Callbacks::slot_t owner) override
Definition: itemmapper.cpp:179
ItemMapper * mapper()
Returns item mapper. Allows subscribing to various events happening to the item.

Referenced by ModelView::ItemListenerBase::ItemListenerBase(), and TEST_F().

◆ setOnAboutToRemoveItem()

void ModelView::ItemListenerBase::setOnAboutToRemoveItem ( Callbacks::item_tagrow_t  f)
inherited

Definition at line 102 of file itemlistenerbase.cpp.

103 {
104  item()->mapper()->setOnAboutToRemoveItem(f, this);
105 }
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

Referenced by ModelView::GraphViewportPlotController::subscribe().

◆ setOnChildPropertyChange()

void ModelView::ItemListenerBase::setOnChildPropertyChange ( Callbacks::item_str_t  f)
inherited

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.

Definition at line 77 of file itemlistenerbase.cpp.

78 {
79  item()->mapper()->setOnChildPropertyChange(f, this);
80 }
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

◆ setOnDataChange()

void ModelView::ItemListenerBase::setOnDataChange ( Callbacks::item_int_t  f)
inherited

Sets callback to be notified on item's data change.

Callback will be called with (SessionItem*, data_role).

Definition at line 59 of file itemlistenerbase.cpp.

60 {
61  item()->mapper()->setOnDataChange(f, this);
62 }
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

Referenced by ModelView::Data2DPlotController::subscribe().

◆ setOnItemDestroy()

void ModelView::ItemListenerBase::setOnItemDestroy ( Callbacks::item_t  f)
inherited

Definition at line 51 of file itemlistenerbase.cpp.

52 {
53  item()->mapper()->setOnItemDestroy(f, this);
54 }

◆ setOnItemInserted()

void ModelView::ItemListenerBase::setOnItemInserted ( Callbacks::item_tagrow_t  f)
inherited

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.

Definition at line 87 of file itemlistenerbase.cpp.

88 {
89  item()->mapper()->setOnItemInserted(f, this);
90 }
void setOnItemInserted(Callbacks::item_tagrow_t f, Callbacks::slot_t owner) override
Sets callback to be notified on child insertion.
Definition: itemmapper.cpp:199

Referenced by ModelView::ColorMapViewportPlotController::subscribe(), and ModelView::GraphViewportPlotController::subscribe().

◆ setOnItemRemoved()

void ModelView::ItemListenerBase::setOnItemRemoved ( Callbacks::item_tagrow_t  f)
inherited

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.

Definition at line 97 of file itemlistenerbase.cpp.

98 {
99  item()->mapper()->setOnItemRemoved(f, this);
100 }
void setOnItemRemoved(Callbacks::item_tagrow_t f, Callbacks::slot_t owner) override
Sets callback to be notified on child removal.
Definition: itemmapper.cpp:204

◆ setOnPropertyChange()

void ModelView::ItemListenerBase::setOnPropertyChange ( Callbacks::item_str_t  f)
inherited

Sets callback to be notified on item's property change.

Callback will be called with (compound_item, property_name).

Definition at line 67 of file itemlistenerbase.cpp.

68 {
69  item()->mapper()->setOnPropertyChange(f, this);
70 }
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

Referenced by ModelView::AxisTitleController::subscribe(), ModelView::ColorMapPlotController::subscribe(), subscribe(), ModelView::Data1DPlotController::subscribe(), ModelView::GraphPlotController::subscribe(), ModelView::PenController::subscribe(), and ModelView::ViewportAxisPlotController::subscribe().

◆ subscribe()

void ColorScalePlotController::subscribe ( )
overrideprotectedvirtual

Reimplemented from ModelView::ItemListenerBase.

Definition at line 97 of file colorscaleplotcontroller.cpp.

98 {
99  auto on_property_change = [this](SessionItem*, std::string property_name) {
100  if (property_name == ViewportAxisItem::P_IS_LOG)
101  p_impl->update_log_scale();
102  };
103  setOnPropertyChange(on_property_change);
104 
105  p_impl->setup_components();
106 }
void setOnPropertyChange(Callbacks::item_str_t f)
Sets callback to be notified on item's property change.
The main object representing an editable/displayable/serializable entity.
Definition: sessionitem.h:38
static const std::string P_IS_LOG
Definition: axisitems.h:46

References p_impl, ModelView::ViewportAxisItem::P_IS_LOG, and ModelView::ItemListenerBase::setOnPropertyChange().

Here is the call graph for this function:

◆ unsubscribe()

virtual void ModelView::ItemListenerBase::unsubscribe ( )
inlineprotectedvirtualinherited

◆ unsubscribe_from_current()

void ModelView::ItemListenerBase::unsubscribe_from_current ( )
privateinherited

Definition at line 117 of file itemlistenerbase.cpp.

118 {
119  if (!m_item)
120  return;
121 
122  unsubscribe();
123 
124  m_item->mapper()->unsubscribe(this);
125 }
void unsubscribe(Callbacks::slot_t client) override
Removes given client from all subscriptions.
Definition: itemmapper.cpp:214

Member Data Documentation

◆ m_item

SessionItem* ModelView::ItemListenerBase::m_item {nullptr}
privateinherited

Definition at line 56 of file itemlistenerbase.h.

◆ p_impl

std::unique_ptr<ColorScalePlotControllerImpl> ModelView::ColorScalePlotController::p_impl

Definition at line 40 of file colorscaleplotcontroller.h.

Referenced by subscribe().


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