BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
JobSelectorWidget.cpp
Go to the documentation of this file.
1 // ************************************************************************************************
2 //
3 // BornAgain: simulate and fit reflection and scattering
4 //
5 //! @file GUI/coregui/Views/JobWidgets/JobSelectorWidget.cpp
6 //! @brief Implements class JobSelectorWidget
7 //!
8 //! @homepage http://www.bornagainproject.org
9 //! @license GNU General Public License v3 or higher (see COPYING)
10 //! @copyright Forschungszentrum Jülich GmbH 2018
11 //! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12 //
13 // ************************************************************************************************
14 
24 #include <QHBoxLayout>
25 #include <QSplitter>
26 
28  : QWidget(parent)
29  , m_jobSelectorActions(new JobSelectorActions(jobModel, this))
30  , m_toolBar(new JobSelectorToolBar(m_jobSelectorActions, this))
31  , m_jobListWidget(new JobListWidget)
32  , m_jobProperties(new JobPropertiesWidget)
33  , m_jobModel(nullptr)
34 {
35  setWindowTitle(Constants::JobSelectorWidgetName);
36  setObjectName("JobSelectorWidget");
37 
38  setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
39 
40  setModel(jobModel);
41 
42  auto splitter = new QSplitter;
43  splitter->setOrientation(Qt::Vertical);
44  splitter->addWidget(m_jobListWidget);
45  splitter->addWidget(m_jobProperties);
46  splitter->setChildrenCollapsible(true);
47 
48  auto mainLayout = new QVBoxLayout;
49  mainLayout->setMargin(0);
50  mainLayout->setSpacing(0);
51  mainLayout->setContentsMargins(0, 0, 0, 0);
52  mainLayout->addWidget(m_toolBar);
53  mainLayout->addWidget(splitter);
54  setLayout(mainLayout);
55 
57 
62 }
63 
65 {
66  m_jobModel = jobModel;
68 }
69 
71 {
73 }
74 
76 {
78 }
79 
81 {
83 }
84 
86 {
87  ASSERT(item);
89 }
90 
92 {
93  m_jobProperties->setItem(jobItem);
94  emit selectionChanged(jobItem);
95 }
#define ASSERT(condition)
Definition: Assert.h:31
Defines class JobItem.
Defines class JobListWidget.
Defines class JobModel.
Defines class JobPropertiesWidget.
Defines class JobSelectorActions.
Defines class JobSelectorToolBar.
Defines class JobSelectorWidget.
DefinesStyleUtils namespace.
The JobListWidget class contains list view to select job items.
Definition: JobListWidget.h:31
void setModel(JobModel *model)
QItemSelectionModel * selectionModel()
void selectionChanged(JobItem *)
void makeJobItemSelected(JobItem *jobItem)
void contextMenuRequest(const QPoint &point, const QModelIndex &index)
const JobItem * currentJobItem() const
Returns currently selected JobItem.
The JobPropertiesWidget class holds component editor for JobItem.
The JobSelectorActions class contains actions to run/remove jobs.
void onContextMenuRequest(const QPoint &point, const QModelIndex &indexAtPoint={})
Generates context menu at given point.
void setSelectionModel(QItemSelectionModel *selectionModel)
Styled tool bar on top of JobSelector with run/remove job buttons.
void makeJobItemSelected(JobItem *)
JobPropertiesWidget * m_jobProperties
JobSelectorActions * m_jobSelectorActions
JobSelectorToolBar * m_toolBar
void setModel(JobModel *jobModel)
JobListWidget * m_jobListWidget
QSize minimumSizeHint() const
void selectionChanged(JobItem *)
void onSelectionChanged(JobItem *jobItem)
QSize sizeHint() const
const JobItem * currentJobItem() const
JobSelectorWidget(JobModel *jobModel, QWidget *parent=nullptr)
virtual void setItem(SessionItem *item)
Defines namespace Constants.
const QString JobSelectorWidgetName
int PropertyPanelWidth()
Returns typical width of the vertical property panel.
Definition: StyleUtils.cpp:121