BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
ModelView::ProjectChangedController::ProjectChangedControllerImpl Struct Reference

Public Member Functions

 ProjectChangedControllerImpl (const std::vector< SessionModel * > &models, callback_t callback)
 
void create_controllers ()
 
bool hasChanged () const
 
void onProjectHasChanged ()
 
void resetChanged ()
 

Public Attributes

std::vector< std::unique_ptr< ModelHasChangedController > > change_controllers
 
std::vector< SessionModel * > m_models
 
callback_t m_project_changed_callback
 
bool m_project_has_changed {false}
 

Detailed Description

Definition at line 21 of file projectchangecontroller.cpp.

Constructor & Destructor Documentation

◆ ProjectChangedControllerImpl()

ModelView::ProjectChangedController::ProjectChangedControllerImpl::ProjectChangedControllerImpl ( const std::vector< SessionModel * > &  models,
callback_t  callback 
)
inline

Definition at line 27 of file projectchangecontroller.cpp.

References ModelView::ProjectChangedController::ProjectChangedControllerImpl::create_controllers().

Here is the call graph for this function:

Member Function Documentation

◆ create_controllers()

void ModelView::ProjectChangedController::ProjectChangedControllerImpl::create_controllers ( )
inline

Definition at line 33 of file projectchangecontroller.cpp.

34  {
35  auto on_model_changed = [this]() { onProjectHasChanged(); };
36  change_controllers.clear();
37  for (auto model : m_models)
38  change_controllers.emplace_back(
39  std::make_unique<ModelHasChangedController>(model, on_model_changed));
40  }
std::vector< std::unique_ptr< ModelHasChangedController > > change_controllers

References ModelView::ProjectChangedController::ProjectChangedControllerImpl::change_controllers, ModelView::ProjectChangedController::ProjectChangedControllerImpl::m_models, and ModelView::ProjectChangedController::ProjectChangedControllerImpl::onProjectHasChanged().

Referenced by ModelView::ProjectChangedController::ProjectChangedControllerImpl::ProjectChangedControllerImpl().

Here is the call graph for this function:

◆ hasChanged()

bool ModelView::ProjectChangedController::ProjectChangedControllerImpl::hasChanged ( ) const
inline

◆ onProjectHasChanged()

◆ resetChanged()

void ModelView::ProjectChangedController::ProjectChangedControllerImpl::resetChanged ( )
inline

Member Data Documentation

◆ change_controllers

std::vector<std::unique_ptr<ModelHasChangedController> > ModelView::ProjectChangedController::ProjectChangedControllerImpl::change_controllers

◆ m_models

std::vector<SessionModel*> ModelView::ProjectChangedController::ProjectChangedControllerImpl::m_models

◆ m_project_changed_callback

callback_t ModelView::ProjectChangedController::ProjectChangedControllerImpl::m_project_changed_callback

◆ m_project_has_changed


The documentation for this struct was generated from the following file: