BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
GISASInstrumentEditor.cpp
Go to the documentation of this file.
1 // ************************************************************************************************
2 //
3 // BornAgain: simulate and fit reflection and scattering
4 //
5 //! @file GUI/coregui/Views/InstrumentWidgets/GISASInstrumentEditor.cpp
6 //! @brief Implements class GISASInstrumentEditor
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 
23 #include <QVBoxLayout>
24 
26  : SessionItemWidget(parent)
27  , m_columnResizer(new ColumnResizer(this))
28  , m_beamEditor(new GISASBeamEditor(m_columnResizer))
29  , m_detectorEditor(new GISASDetectorEditor)
30  , m_environmentEditor(new EnvironmentEditor(m_columnResizer))
31  , m_polarizationAnalysisEditor(new PolarizationAnalysisEditor(m_columnResizer))
32 {
33  auto mainLayout = new QVBoxLayout;
34 
35  mainLayout->addWidget(StyleUtils::createDetailsWidget(m_beamEditor, "Beam parameters"));
36  mainLayout->addWidget(StyleUtils::createDetailsWidget(m_detectorEditor, "Detector parameters"));
37  mainLayout->addWidget(StyleUtils::createDetailsWidget(
38  m_polarizationAnalysisEditor, "Polarization analysis", /*expanded*/ false));
39  mainLayout->addWidget(
40  StyleUtils::createDetailsWidget(m_environmentEditor, "Environment", /*expanded*/ false));
41  mainLayout->addStretch();
42 
43  setLayout(mainLayout);
44 }
45 
47 {
52 }
53 
55 {
56  auto result = dynamic_cast<GISASInstrumentItem*>(currentItem());
57  ASSERT(result);
58  return result;
59 }
#define ASSERT(condition)
Definition: Assert.h:31
Defines class ColumnResizer.
Defines class EnvironmentEditor.
Defines class GISASBeamEditor.
Defines class GISASDetectorEditor.
Defines class GISASInstrumentEditor.
Defines InstrumentItems classes.
Defines class PolarizationAnalysisEditor.
DefinesStyleUtils namespace.
The ColumnResizer class provides vertically aligned widgets from diferent layouts.
Definition: ColumnResizer.h:37
Environment editor (i.e.
GISAS beam editor. Operates on GISASInstrumentItem.
GISAS detector editor.
EnvironmentEditor * m_environmentEditor
GISASDetectorEditor * m_detectorEditor
PolarizationAnalysisEditor * m_polarizationAnalysisEditor
GISASBeamEditor * m_beamEditor
GISASInstrumentItem * instrumentItem()
GISASInstrumentEditor(QWidget *parent=nullptr)
Polarization analysis editor (beam polarization, analyzer properies) for GISASInstrumentEditor.
The SessionItemWidget class is a base for all widgets representing the content of SessionItem.
SessionItem * currentItem()
virtual void setItem(SessionItem *item)
QWidget * createDetailsWidget(QWidget *content, const QString &name, bool expanded=true)
Creates details widget holding user content inside.
Definition: StyleUtils.cpp:96