BornAgain
1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Propagates changes from SessionModel to its ViewModelBase. More...
Classes | |
struct | ViewModelControllerImpl |
Public Member Functions | |
ViewModelController (SessionModel *session_model, ViewModelBase *view_model=nullptr) | |
~ViewModelController () | |
std::vector< ViewItem * > | findViews (const ModelView::SessionItem *item) const |
Returns all ViewItem's displaying given SessionItem. More... | |
QStringList | horizontalHeaderLabels () const |
SessionModel * | model () const |
SessionItem * | rootSessionItem () const |
SessionModel * | sessionModel () const |
Returns SessionModel handled by this controller. More... | |
void | setChildrenStrategy (std::unique_ptr< ChildrenStrategyInterface > children_strategy) |
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 | setRootSessionItem (SessionItem *item) |
void | setRowStrategy (std::unique_ptr< RowStrategyInterface > row_strategy) |
void | setViewModel (ViewModelBase *view_model) |
void | unsubscribe (Callbacks::slot_t client={}) override |
Removes given client from all subscriptions. More... | |
Protected Member Functions | |
virtual void | onAboutToRemoveItem (SessionItem *parent, TagRow tagrow) |
virtual void | onDataChange (SessionItem *item, int role) |
virtual void | onItemInserted (SessionItem *parent, TagRow tagrow) |
virtual void | onItemRemoved (SessionItem *parent, TagRow tagrow) |
void | update_branch (const SessionItem *item) |
Protected Attributes | |
SessionModel * | m_model {nullptr} |
Private Attributes | |
std::unique_ptr< ViewModelControllerImpl > | p_impl |
Propagates changes from SessionModel to its ViewModelBase.
Definition at line 38 of file viewmodelcontroller.h.
ViewModelController::ViewModelController | ( | SessionModel * | session_model, |
ViewModelBase * | view_model = nullptr |
||
) |
Definition at line 168 of file viewmodelcontroller.cpp.
References ModelView::Utils::ItemFromPath(), ModelView::ModelListener< SessionModel >::model(), onAboutToRemoveItem(), onDataChange(), onItemInserted(), onItemRemoved(), p_impl, ModelView::ModelListenerBase::setOnAboutToRemoveItem(), ModelView::ModelListenerBase::setOnDataChange(), ModelView::ModelListenerBase::setOnItemInserted(), ModelView::ModelListenerBase::setOnItemRemoved(), ModelView::ModelListenerBase::setOnModelAboutToBeReset(), ModelView::ModelListenerBase::setOnModelDestroyed(), and ModelView::ModelListenerBase::setOnModelReset().
|
default |
std::vector< ViewItem * > ViewModelController::findViews | ( | const ModelView::SessionItem * | item | ) | const |
Returns all ViewItem's displaying given SessionItem.
Definition at line 253 of file viewmodelcontroller.cpp.
References p_impl.
Referenced by onDataChange(), and update_branch().
QStringList ViewModelController::horizontalHeaderLabels | ( | ) | const |
Definition at line 258 of file viewmodelcontroller.cpp.
References p_impl.
|
inlineinherited |
Definition at line 30 of file modellistener.h.
|
protectedvirtual |
Definition at line 281 of file viewmodelcontroller.cpp.
References ModelView::SessionItem::getItem(), ModelView::Utils::IsItemAncestor(), p_impl, rootSessionItem(), ModelView::TagRow::row, and ModelView::TagRow::tag.
Referenced by ViewModelController().
|
protectedvirtual |
Reimplemented in ModelView::PropertyFlatViewModelController, and ModelView::PropertyViewModelController.
Definition at line 263 of file viewmodelcontroller.cpp.
References findViews(), ModelView::Utils::ItemRoleToQtRole(), and p_impl.
Referenced by ViewModelController(), ModelView::PropertyViewModelController::onDataChange(), and ModelView::PropertyFlatViewModelController::onDataChange().
|
protectedvirtual |
Definition at line 274 of file viewmodelcontroller.cpp.
References p_impl.
Referenced by ViewModelController().
|
protectedvirtual |
SessionItem * ViewModelController::rootSessionItem | ( | ) | const |
Definition at line 246 of file viewmodelcontroller.cpp.
References p_impl.
Referenced by ModelView::ViewModelController::ViewModelControllerImpl::init_view_model(), and onAboutToRemoveItem().
SessionModel * ViewModelController::sessionModel | ( | ) | const |
Returns SessionModel handled by this controller.
Definition at line 226 of file viewmodelcontroller.cpp.
References ModelView::ModelListener< SessionModel >::model().
void ViewModelController::setChildrenStrategy | ( | std::unique_ptr< ChildrenStrategyInterface > | children_strategy | ) |
Definition at line 213 of file viewmodelcontroller.cpp.
References p_impl.
Referenced by ModelView::DefaultViewModelController::DefaultViewModelController(), gui2::LayerViewModelController::LayerViewModelController(), ModelView::PropertyFlatViewModelController::PropertyFlatViewModelController(), ModelView::PropertyTableViewModelController::PropertyTableViewModelController(), ModelView::PropertyViewModelController::PropertyViewModelController(), and ModelView::TopItemsViewModelController::TopItemsViewModelController().
|
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 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(), ModelView::ModelHasChangedController::ModelHasChangedController(), and 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(), ModelView::ModelHasChangedController::ModelHasChangedController(), and 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(), ModelView::ModelHasChangedController::ModelHasChangedController(), and 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 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 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(), ModelView::ModelHasChangedController::ModelHasChangedController(), and ViewModelController().
void ViewModelController::setRootSessionItem | ( | SessionItem * | item | ) |
Definition at line 231 of file viewmodelcontroller.cpp.
References ModelView::SessionItem::model(), ModelView::ModelListener< SessionModel >::model(), and p_impl.
void ViewModelController::setRowStrategy | ( | std::unique_ptr< RowStrategyInterface > | row_strategy | ) |
Definition at line 219 of file viewmodelcontroller.cpp.
References p_impl.
Referenced by ModelView::DefaultViewModelController::DefaultViewModelController(), gui2::LayerViewModelController::LayerViewModelController(), ModelView::PropertyFlatViewModelController::PropertyFlatViewModelController(), ModelView::PropertyTableViewModelController::PropertyTableViewModelController(), ModelView::PropertyViewModelController::PropertyViewModelController(), and ModelView::TopItemsViewModelController::TopItemsViewModelController().
void ViewModelController::setViewModel | ( | ViewModelBase * | view_model | ) |
Definition at line 206 of file viewmodelcontroller.cpp.
References p_impl.
|
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().
|
protected |
Definition at line 298 of file viewmodelcontroller.cpp.
References findViews(), and p_impl.
Referenced by ModelView::PropertyViewModelController::onDataChange(), and ModelView::PropertyFlatViewModelController::onDataChange().
|
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().
|
private |
Definition at line 69 of file viewmodelcontroller.h.
Referenced by ViewModelController(), findViews(), horizontalHeaderLabels(), onAboutToRemoveItem(), onDataChange(), onItemInserted(), rootSessionItem(), setChildrenStrategy(), setRootSessionItem(), setRowStrategy(), setViewModel(), and update_branch().