BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
FitActivityPanel.cpp
Go to the documentation of this file.
1 // ************************************************************************************************
2 //
3 // BornAgain: simulate and fit reflection and scattering
4 //
5 //! @file GUI/coregui/Views/FitWidgets/FitActivityPanel.cpp
6 //! @brief Implements class FitActivityPanel
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 <QPushButton>
25 #include <QVBoxLayout>
26 
27 namespace {
28 const bool reuse_widget = true;
29 }
30 
31 FitActivityPanel::FitActivityPanel(JobModel* jobModel, QWidget* parent)
32  : QWidget(parent)
33  , m_stackedWidget(new ItemStackPresenter<FitSessionWidget>(reuse_widget))
34  , m_realTimeWidget(nullptr)
35  , m_jobMessagePanel(nullptr)
36  , m_fitSessionManager(new FitSessionManager(this))
37 {
38  setWindowTitle(Constants::JobFitPanelName);
39  setObjectName("FitActivityPanel");
40  setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
41 
42  auto mainLayout = new QVBoxLayout;
43  mainLayout->setMargin(0);
44  mainLayout->setSpacing(0);
45 
46  mainLayout->addWidget(m_stackedWidget);
47 
48  setLayout(mainLayout);
49 
50  m_stackedWidget->setModel(jobModel);
51 }
52 
54 {
55  ASSERT(realTimeWidget);
56  m_realTimeWidget = realTimeWidget;
57 }
58 
60 {
61  m_jobMessagePanel = jobMessagePanel;
63 }
64 
66 {
68 }
69 
71 {
72  return QSize(80, 80);
73 }
74 
76 {
77 
78  if (!isValidJobItem(item)) {
82  return;
83  }
84 
85  m_stackedWidget->setItem(item);
89 }
90 
92 {
93  return item ? item->isValidForFitting() : false;
94 }
95 
97 {
99 }
#define ASSERT(condition)
Definition: Assert.h:31
Defines class FitActivityPanel.
Defines class FitSessionManager.
Defines class FitSessionWidget.
Defines class JobItem.
Defines class JobMessagePanel.
Defines class JobModel.
Defines class JobRealTimeWidget.
Defines class RunFitControlWidget.
QSize sizeHint() const
FitActivityPanel(JobModel *jobModel, QWidget *parent=0)
bool isValidJobItem(JobItem *item)
FitSessionWidget * currentFitSuiteWidget()
QSize minimumSizeHint() const
void setJobMessagePanel(JobMessagePanel *jobMessagePanel)
void setRealTimeWidget(JobRealTimeWidget *realTimeWidget)
void setItem(JobItem *item)
JobMessagePanel * m_jobMessagePanel
JobRealTimeWidget * m_realTimeWidget
FitSessionManager * m_fitSessionManager
ItemStackPresenter< FitSessionWidget > * m_stackedWidget
Handles all activity related to the simultaneous running of fitting jobs.
FitSessionController * sessionController(JobItem *item)
void setMessagePanel(JobMessagePanel *messagePanel)
Contains all fit settings for given JobItem (fit parameters, minimizer settings).
void setModelTuningWidget(ParameterTuningWidget *tuningWidget)
void setSessionController(FitSessionController *sessionController)
The ItemStackPresenter templated class extends ItemStackWidget so it could operate with SesionItem ed...
void setItem(U *item, bool *isNew=0)
Shows the widget for given item (and hides previous one).
void setModel(SessionModel *model)
bool isValidForFitting()
Definition: JobItem.cpp:165
The JobMessagePanel class shows log messages from FitActivityPanel at the bottom part of JobView.
The JobRealTimeWidget class provides tuning of sample parameters in real time.
ParameterTuningWidget * parameterTuningWidget(JobItem *jobItem)
Defines namespace Constants.
const unsigned int REALTIME_WIDGET_WIDTH_HINT
const unsigned int FIT_ACTIVITY_PANEL_HEIGHT
const QString JobFitPanelName