BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
FitSessionManager Class Reference

Handles all activity related to the simultaneous running of fitting jobs. More...

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

Public Member Functions

 FitSessionManager (QObject *parent=nullptr)
 
void disableLogging ()
 
FitSessionControllersessionController (JobItem *item)
 
void setMessagePanel (JobMessagePanel *messagePanel)
 

Private Member Functions

FitSessionControllercreateController (JobItem *jobItem)
 
void removeController (SessionItem *jobItem)
 Fit controller which is currently attached to jobMessagePanel. More...
 

Private Attributes

FitSessionControllerm_activeController
 
QMap< SessionItem *, FitSessionController * > m_item_to_controller
 
JobMessagePanelm_jobMessagePanel
 

Detailed Description

Handles all activity related to the simultaneous running of fitting jobs.

Definition at line 29 of file FitSessionManager.h.

Constructor & Destructor Documentation

◆ FitSessionManager()

FitSessionManager::FitSessionManager ( QObject *  parent = nullptr)

Definition at line 22 of file FitSessionManager.cpp.

23  : QObject(parent), m_activeController(nullptr), m_jobMessagePanel(nullptr)
24 {
25 }
JobMessagePanel * m_jobMessagePanel
FitSessionController * m_activeController

Member Function Documentation

◆ createController()

FitSessionController * FitSessionManager::createController ( JobItem jobItem)
private

Definition at line 60 of file FitSessionManager.cpp.

61 {
62  jobItem->mapper()->setOnItemDestroy([this](SessionItem* item) { removeController(item); },
63  this);
64 
65  auto result = new FitSessionController(this);
66  result->setItem(jobItem);
67  return result;
68 }
Controls all activity related to the single fitting task for JobItem.
void removeController(SessionItem *jobItem)
Fit controller which is currently attached to jobMessagePanel.
void setOnItemDestroy(std::function< void(SessionItem *)> f, const void *caller=0)
Definition: ModelMapper.cpp:87
ModelMapper * mapper()
Returns the current model mapper of this item. Creates new one if necessary.

References SessionItem::mapper(), removeController(), and ModelMapper::setOnItemDestroy().

Referenced by sessionController().

Here is the call graph for this function:

◆ disableLogging()

void FitSessionManager::disableLogging ( )

Definition at line 52 of file FitSessionManager.cpp.

53 {
56 
58 }
void setMessagePanel(JobMessagePanel *messagePanel)
Definition: FitLog.cpp:20

References FitSessionController::fitLog(), m_activeController, m_jobMessagePanel, JobMessagePanel::onClearLog(), and FitLog::setMessagePanel().

Referenced by sessionController(), and FitActivityPanel::setItem().

Here is the call graph for this function:

◆ removeController()

void FitSessionManager::removeController ( SessionItem jobItem)
private

Fit controller which is currently attached to jobMessagePanel.

Removes manager for given jobItem.

Definition at line 72 of file FitSessionManager.cpp.

73 {
74  auto it = m_item_to_controller.find(jobItem);
75  if (it == m_item_to_controller.end())
76  throw GUIHelpers::Error("FitActivityManager::removeFitSession() -> Error. "
77  "Can't find fit session");
78 
79  if (m_activeController == it.value())
80  m_activeController = nullptr;
81  delete it.value();
82  m_item_to_controller.erase(it);
83 }
QMap< SessionItem *, FitSessionController * > m_item_to_controller

References m_activeController, and m_item_to_controller.

Referenced by createController().

◆ sessionController()

FitSessionController * FitSessionManager::sessionController ( JobItem item)

Definition at line 32 of file FitSessionManager.cpp.

33 {
34  FitSessionController* result(nullptr);
35 
36  auto it = m_item_to_controller.find(item);
37  if (it == m_item_to_controller.end()) {
38  result = createController(item);
39  m_item_to_controller.insert(item, result);
40  } else {
41  result = it.value();
42  }
43 
45 
46  result->fitLog()->setMessagePanel(m_jobMessagePanel);
47  m_activeController = result;
48 
49  return result;
50 }
FitSessionController * createController(JobItem *jobItem)

References createController(), disableLogging(), FitSessionController::fitLog(), m_activeController, m_item_to_controller, m_jobMessagePanel, and FitLog::setMessagePanel().

Referenced by FitActivityPanel::setItem().

Here is the call graph for this function:

◆ setMessagePanel()

void FitSessionManager::setMessagePanel ( JobMessagePanel messagePanel)

Definition at line 27 of file FitSessionManager.cpp.

28 {
29  m_jobMessagePanel = messagePanel;
30 }

References m_jobMessagePanel.

Referenced by FitActivityPanel::setJobMessagePanel().

Member Data Documentation

◆ m_activeController

FitSessionController* FitSessionManager::m_activeController
private

Definition at line 45 of file FitSessionManager.h.

Referenced by disableLogging(), removeController(), and sessionController().

◆ m_item_to_controller

QMap<SessionItem*, FitSessionController*> FitSessionManager::m_item_to_controller
private

Definition at line 47 of file FitSessionManager.h.

Referenced by removeController(), and sessionController().

◆ m_jobMessagePanel

JobMessagePanel* FitSessionManager::m_jobMessagePanel
private

Definition at line 46 of file FitSessionManager.h.

Referenced by disableLogging(), sessionController(), and setMessagePanel().


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