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

The JobView class is a main view to show list of jobs, job results and widgets for real time and fitting activities. More...

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

Public Slots

void onFocusRequest (JobItem *jobItem)
 
void onSelectionChanged (JobItem *jobItem)
 Propagates change in JobItem's selection down into main widgets. More...
 
void setActivity (int activity)
 Sets docks visibility in accordance with required activity. More...
 

Signals

void activityChanged (int activity)
 
void focusRequest (int)
 

Public Member Functions

 JobView (MainWindow *mainWindow)
 
void fillViewMenu (QMenu *menu)
 

Private Member Functions

void connectActivityRelated ()
 Connects signal related to activity change. More...
 
void connectJobRelated ()
 Connects signals related to JobItem. More...
 
void connectSignals ()
 
void createActions ()
 
void createSubWindows ()
 
void resetLayout ()
 
void setAppropriateActivityForJob (JobItem *jobItem)
 Sets appropriate activity for new JobItem. More...
 

Private Attributes

QActionGroup m_activityActions
 
JobItemm_currentItem
 
DocksControllerm_docks
 
FitActivityPanelm_fitActivityPanel = nullptr
 
JobMessagePanelm_jobMessagePanel = nullptr
 
JobOutputDataWidgetm_jobOutputDataWidget = nullptr
 
JobRealTimeWidgetm_jobRealTimeWidget = nullptr
 
JobSelectorWidgetm_jobSelector = nullptr
 
MainWindowm_mainWindow
 
JobProgressAssistantm_progressAssistant
 

Detailed Description

The JobView class is a main view to show list of jobs, job results and widgets for real time and fitting activities.

Definition at line 35 of file JobView.h.

Constructor & Destructor Documentation

◆ JobView()

JobView::JobView ( MainWindow mainWindow)

Definition at line 31 of file JobView.cpp.

32  : m_docks(new DocksController(this))
33  , m_progressAssistant(new JobProgressAssistant(mainWindow))
34  , m_currentItem(nullptr)
35  , m_mainWindow(mainWindow)
36  , m_activityActions(this)
37 {
38 
39  setObjectName("JobView");
40  createActions();
43 }
Handles creation and appearance of docked widgets in the context of QMainWindow.
The JobProgressAssistant class helps JobView to visualize current progress.
void createActions()
Definition: JobView.cpp:122
DocksController * m_docks
Definition: JobView.h:62
JobProgressAssistant * m_progressAssistant
Definition: JobView.h:63
MainWindow * m_mainWindow
Definition: JobView.h:65
JobItem * m_currentItem
Definition: JobView.h:64
void connectSignals()
Definition: JobView.cpp:135
void createSubWindows()
Definition: JobView.cpp:98
QActionGroup m_activityActions
Definition: JobView.h:73

References connectSignals(), createActions(), and createSubWindows().

Here is the call graph for this function:

Member Function Documentation

◆ activityChanged

void JobView::activityChanged ( int  activity)
signal

◆ connectActivityRelated()

void JobView::connectActivityRelated ( )
private

Connects signal related to activity change.

Definition at line 143 of file JobView.cpp.

144 {
145  // Activity was changed: this -> JobOutputDataWidget
148 }
void onActivityChanged(int activity)
JobOutputDataWidget * m_jobOutputDataWidget
Definition: JobView.h:68
void activityChanged(int activity)

References activityChanged(), m_jobOutputDataWidget, and JobOutputDataWidget::onActivityChanged().

Referenced by connectSignals().

Here is the call graph for this function:

◆ connectJobRelated()

void JobView::connectJobRelated ( )
private

Connects signals related to JobItem.

Definition at line 152 of file JobView.cpp.

153 {
154  // Focus request: JobModel -> this
156 
157  // JobItem selection: JobSelectorWidget -> this
160 }
void focusRequest(JobItem *item)
void selectionChanged(JobItem *)
void onSelectionChanged(JobItem *jobItem)
Propagates change in JobItem's selection down into main widgets.
Definition: JobView.cpp:91
void onFocusRequest(JobItem *jobItem)
Definition: JobView.cpp:60
JobSelectorWidget * m_jobSelector
Definition: JobView.h:67
JobModel * jobModel()
Definition: mainwindow.cpp:154

References JobModel::focusRequest(), MainWindow::jobModel(), m_jobSelector, m_mainWindow, onFocusRequest(), onSelectionChanged(), and JobSelectorWidget::selectionChanged().

Referenced by connectSignals().

Here is the call graph for this function:

◆ connectSignals()

void JobView::connectSignals ( )
private

Definition at line 135 of file JobView.cpp.

136 {
139 }
void connectJobRelated()
Connects signals related to JobItem.
Definition: JobView.cpp:152
void connectActivityRelated()
Connects signal related to activity change.
Definition: JobView.cpp:143

References connectActivityRelated(), and connectJobRelated().

Referenced by JobView().

Here is the call graph for this function:

◆ createActions()

void JobView::createActions ( )
private

Definition at line 122 of file JobView.cpp.

123 {
124  int activity = 0;
125  for (auto activityName : JobViewActivities::activityList()) {
126  QAction* action = new QAction(this);
127  action->setText(activityName);
128  action->setCheckable(true);
129  connect(action, &QAction::triggered, [=]() { setActivity(activity); });
130  m_activityActions.addAction(action);
131  activity++;
132  }
133 }
static QStringList activityList()
Returns list of available activity names.
void setActivity(int activity)
Sets docks visibility in accordance with required activity.
Definition: JobView.cpp:75

References JobViewActivities::activityList(), m_activityActions, and setActivity().

Referenced by JobView().

Here is the call graph for this function:

◆ createSubWindows()

void JobView::createSubWindows ( )
private

Definition at line 98 of file JobView.cpp.

99 {
105 
106  m_docks->addWidget(JobViewFlags::JOB_LIST_DOCK, m_jobSelector, Qt::LeftDockWidgetArea);
110 
113 
116 
117  setCentralWidget(m_jobOutputDataWidget);
118 
119  resetLayout();
120 }
void setDockHeightForWidget(int height)
A hack to request update of QDockWidget size if its child (e.g.
void addWidget(int id, QWidget *widget, Qt::DockWidgetArea area)
The FitActivityPanel class is a main widget to run the fitting.
void setJobMessagePanel(JobMessagePanel *jobMessagePanel)
void setRealTimeWidget(JobRealTimeWidget *realTimeWidget)
void widgetHeightRequest(int)
The JobMessagePanel class shows log messages from FitActivityPanel at the bottom part of JobView.
The JobOutputDataWidget class is a central widget of JobView, shows results of the simulation.
The JobRealTimeWidget class provides tuning of sample parameters in real time.
The JobSelectorWidget class represents left panel of JobView.
FitActivityPanel * m_fitActivityPanel
Definition: JobView.h:70
JobRealTimeWidget * m_jobRealTimeWidget
Definition: JobView.h:69
JobMessagePanel * m_jobMessagePanel
Definition: JobView.h:71
void resetLayout()
Definition: JobView.cpp:173

References DocksController::addWidget(), JobViewFlags::FIT_PANEL_DOCK, JobViewFlags::JOB_LIST_DOCK, JobViewFlags::JOB_MESSAGE_DOCK, MainWindow::jobModel(), m_docks, m_fitActivityPanel, m_jobMessagePanel, m_jobOutputDataWidget, m_jobRealTimeWidget, m_jobSelector, m_mainWindow, JobViewFlags::REAL_TIME_DOCK, resetLayout(), DocksController::setDockHeightForWidget(), FitActivityPanel::setJobMessagePanel(), FitActivityPanel::setRealTimeWidget(), and InfoPanel::widgetHeightRequest().

Referenced by JobView().

Here is the call graph for this function:

◆ fillViewMenu()

void JobView::fillViewMenu ( QMenu *  menu)

Definition at line 45 of file JobView.cpp.

46 {
47  menu->addActions(m_activityActions.actions());
48  menu->addSeparator();
49 
51 
52  menu->addSeparator();
53 
54  QAction* action = new QAction(menu);
55  action->setText("Reset to default layout");
56  connect(action, &QAction::triggered, this, &JobView::resetLayout);
57  menu->addAction(action);
58 }
void addDockActionsToMenu(QMenu *menu)

References DocksController::addDockActionsToMenu(), m_activityActions, m_docks, and resetLayout().

Here is the call graph for this function:

◆ focusRequest

void JobView::focusRequest ( int  )
signal

◆ onFocusRequest

void JobView::onFocusRequest ( JobItem jobItem)
slot

Definition at line 60 of file JobView.cpp.

61 {
62  if (jobItem->runInBackground())
63  return;
64 
65  if (jobItem != m_jobSelector->currentJobItem()) {
68  }
69 
71 }
bool runInBackground() const
Definition: JobItem.cpp:214
void makeJobItemSelected(JobItem *)
const JobItem * currentJobItem() const
void setAppropriateActivityForJob(JobItem *jobItem)
Sets appropriate activity for new JobItem.
Definition: JobView.cpp:164
void focusRequest(int)

References JobSelectorWidget::currentJobItem(), focusRequest(), MainWindow::JOB, m_jobSelector, JobSelectorWidget::makeJobItemSelected(), JobItem::runInBackground(), and setAppropriateActivityForJob().

Referenced by connectJobRelated().

Here is the call graph for this function:

◆ onSelectionChanged

void JobView::onSelectionChanged ( JobItem jobItem)
slot

Propagates change in JobItem's selection down into main widgets.

Definition at line 91 of file JobView.cpp.

92 {
94  m_jobRealTimeWidget->setItem(jobItem);
95  m_fitActivityPanel->setItem(jobItem);
96 }
void setItem(JobItem *item)
void setItem(JobItem *jobItem)
void setItem(JobItem *jobItem)

References m_fitActivityPanel, m_jobOutputDataWidget, m_jobRealTimeWidget, FitActivityPanel::setItem(), JobOutputDataWidget::setItem(), and JobRealTimeWidget::setItem().

Referenced by connectJobRelated().

Here is the call graph for this function:

◆ resetLayout()

void JobView::resetLayout ( )
private

Definition at line 173 of file JobView.cpp.

174 {
175  m_docks->resetLayout();
176  setActivity(static_cast<int>(JobViewFlags::JOB_VIEW_ACTIVITY));
177 }

References JobViewFlags::JOB_VIEW_ACTIVITY, m_docks, DocksController::resetLayout(), and setActivity().

Referenced by createSubWindows(), and fillViewMenu().

Here is the call graph for this function:

◆ setActivity

void JobView::setActivity ( int  activity)
slot

Sets docks visibility in accordance with required activity.

Definition at line 75 of file JobView.cpp.

76 {
77  QVector<JobViewFlags::Dock> docksToShow =
78  JobViewActivities::activeDocks(JobViewFlags::Activity(activity));
79 
80  std::vector<int> docks_id;
81  for (auto x : docksToShow)
82  docks_id.push_back(static_cast<int>(x));
83 
84  m_docks->setVisibleDocks(docks_id);
85  m_activityActions.actions()[activity]->setChecked(true);
86  emit activityChanged(activity);
87 }
void setVisibleDocks(const std::vector< int > &visibleDocks)
Show docks with id's from the list. Other docks will be hidden.
static QVector< JobViewFlags::Dock > activeDocks(JobViewFlags::Activity activity)
Returns vector of JobView's dockId which have to be shown for given activity.

References JobViewActivities::activeDocks(), activityChanged(), m_activityActions, m_docks, and DocksController::setVisibleDocks().

Referenced by createActions(), resetLayout(), and setAppropriateActivityForJob().

Here is the call graph for this function:

◆ setAppropriateActivityForJob()

void JobView::setAppropriateActivityForJob ( JobItem jobItem)
private

Sets appropriate activity for new JobItem.

Definition at line 164 of file JobView.cpp.

165 {
166  if (!jobItem)
167  return;
168 
169  if (jobItem->isValidForFitting())
171 }
bool isValidForFitting()
Definition: JobItem.cpp:165

References JobViewFlags::FITTING_ACTIVITY, JobItem::isValidForFitting(), and setActivity().

Referenced by onFocusRequest().

Here is the call graph for this function:

Member Data Documentation

◆ m_activityActions

QActionGroup JobView::m_activityActions
private

Definition at line 73 of file JobView.h.

Referenced by createActions(), fillViewMenu(), and setActivity().

◆ m_currentItem

JobItem* JobView::m_currentItem
private

Definition at line 64 of file JobView.h.

◆ m_docks

DocksController* JobView::m_docks
private

Definition at line 62 of file JobView.h.

Referenced by createSubWindows(), fillViewMenu(), resetLayout(), and setActivity().

◆ m_fitActivityPanel

FitActivityPanel* JobView::m_fitActivityPanel = nullptr
private

Definition at line 70 of file JobView.h.

Referenced by createSubWindows(), and onSelectionChanged().

◆ m_jobMessagePanel

JobMessagePanel* JobView::m_jobMessagePanel = nullptr
private

Definition at line 71 of file JobView.h.

Referenced by createSubWindows().

◆ m_jobOutputDataWidget

JobOutputDataWidget* JobView::m_jobOutputDataWidget = nullptr
private

Definition at line 68 of file JobView.h.

Referenced by connectActivityRelated(), createSubWindows(), and onSelectionChanged().

◆ m_jobRealTimeWidget

JobRealTimeWidget* JobView::m_jobRealTimeWidget = nullptr
private

Definition at line 69 of file JobView.h.

Referenced by createSubWindows(), and onSelectionChanged().

◆ m_jobSelector

JobSelectorWidget* JobView::m_jobSelector = nullptr
private

Definition at line 67 of file JobView.h.

Referenced by connectJobRelated(), createSubWindows(), and onFocusRequest().

◆ m_mainWindow

MainWindow* JobView::m_mainWindow
private

Definition at line 65 of file JobView.h.

Referenced by connectJobRelated(), and createSubWindows().

◆ m_progressAssistant

JobProgressAssistant* JobView::m_progressAssistant
private

Definition at line 63 of file JobView.h.


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