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

Polarization analysis editor (beam polarization, analyzer properies) for GISASInstrumentEditor. More...

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

Public Member Functions

 PolarizationAnalysisEditor (ColumnResizer *columnResizer, QWidget *parent=nullptr)
 
virtual QList< QAction * > actionList ()
 
SessionItemcurrentItem ()
 
const SessionItemcurrentItem () const
 
virtual void setItem (SessionItem *item)
 

Protected Member Functions

virtual void hideEvent (QHideEvent *)
 
virtual void showEvent (QShowEvent *)
 
void subscribeToItem ()
 
void unsubscribeFromItem ()
 

Private Member Functions

BeamItembeamItem ()
 
DetectorItemdetectorItem ()
 
GISASInstrumentIteminstrumentItem ()
 
void updateAnalyserEditor ()
 Updates analyser editor to display properties of currently selected detector (spherical/rectangular). More...
 

Private Attributes

ComponentEditorm_analyserDirectionEditor
 
ComponentEditorm_analyserPropertiesEditor
 
ColumnResizerm_columnResizer
 
QGridLayout * m_gridLayout
 
SessionItemControllerm_itemController
 
ComponentEditorm_polarizationEditor
 

Detailed Description

Polarization analysis editor (beam polarization, analyzer properies) for GISASInstrumentEditor.

Operates on GISASInstrumentItem.

Definition at line 30 of file PolarizationAnalysisEditor.h.

Constructor & Destructor Documentation

◆ PolarizationAnalysisEditor()

PolarizationAnalysisEditor::PolarizationAnalysisEditor ( ColumnResizer columnResizer,
QWidget *  parent = nullptr 
)

Definition at line 30 of file PolarizationAnalysisEditor.cpp.

32  : SessionItemWidget(parent)
33  , m_columnResizer(columnResizer)
36  new ComponentEditor(ComponentEditor::GroupWidget, analyzer_orientation_title))
38  new ComponentEditor(ComponentEditor::GroupWidget, analyzer_properties_title))
39  , m_gridLayout(new QGridLayout)
40 {
41  m_gridLayout->addWidget(m_polarizationEditor, 0, 0);
42  m_gridLayout->addWidget(m_analyserDirectionEditor, 0, 1);
43  m_gridLayout->addWidget(m_analyserPropertiesEditor, 0, 2);
44 
45  auto mainLayout = new QVBoxLayout;
46  mainLayout->addLayout(m_gridLayout);
47  mainLayout->addStretch();
48  setLayout(mainLayout);
49 
53 }
void addWidgetsFromGridLayout(QGridLayout *, int column)
Component editor for SessionItem.
SessionItemWidget(QWidget *parent=0)

References ColumnResizer::addWidgetsFromGridLayout(), m_analyserDirectionEditor, m_analyserPropertiesEditor, m_columnResizer, m_gridLayout, and m_polarizationEditor.

Here is the call graph for this function:

Member Function Documentation

◆ actionList()

QList< QAction * > SessionItemWidget::actionList ( )
virtualinherited

◆ beamItem()

BeamItem * PolarizationAnalysisEditor::beamItem ( )
private

Definition at line 83 of file PolarizationAnalysisEditor.cpp.

84 {
85  return instrumentItem()->beamItem();
86 }
virtual BeamItem * beamItem() const
GISASInstrumentItem * instrumentItem()

References InstrumentItem::beamItem(), and instrumentItem().

Referenced by subscribeToItem().

Here is the call graph for this function:

◆ currentItem() [1/2]

SessionItem * SessionItemWidget::currentItem ( )
inherited

Definition at line 41 of file SessionItemWidget.cpp.

42 {
43  return const_cast<SessionItem*>(static_cast<const SessionItemWidget*>(this)->currentItem());
44 }
The SessionItemWidget class is a base for all widgets representing the content of SessionItem.
SessionItem * currentItem()

Referenced by RectangularDetectorEditor::detectorItem(), SphericalDetectorEditor::detectorItem(), FitFlowWidget::fitSuiteItem(), DistributionEditor::groupItem(), DepthProbeInstrumentEditor::instrumentItem(), EnvironmentEditor::instrumentItem(), GISASBeamEditor::instrumentItem(), GISASDetectorEditor::instrumentItem(), GISASInstrumentEditor::instrumentItem(), OffSpecularBeamEditor::instrumentItem(), OffSpecularInstrumentEditor::instrumentItem(), instrumentItem(), SpecularBeamEditor::instrumentItem(), SpecularInstrumentEditor::instrumentItem(), RealDataMaskWidget::intensityDataItem(), IntensityDataCanvas::intensityDataItem(), IntensityDataProjectionsWidget::intensityDataItem(), IntensityDataWidget::intensityDataItem(), ProjectionsPlot::intensityItem(), ColorMap::intensityItem(), DetectorPresenter::itemPresentation(), InstrumentPresenter::itemPresentation(), JobResultsPresenter::itemPresentation(), FitComparisonWidget::jobItem(), FitComparisonWidget1D::jobItem(), FitParameterWidget::jobItem(), RunFitControlWidget::jobItem(), JobPropertiesWidget::jobItem(), ParameterTuningWidget::jobItem(), SpecularDataImportWidget::realDataItem(), ItemComboWidget::setPresentation(), JobResultsPresenter::setPresentation(), SpecularDataCanvas::specularDataItem(), SpecularDataImportWidget::specularDataItem(), SpecularDataWidget::specularDataItem(), SpecularPlot::specularItem(), ItemComboWidget::subscribeToItem(), DistributionEditor::subscribeToItem(), GISASDetectorEditor::subscribeToItem(), subscribeToItem(), IntensityDataPropertyWidget::subscribeToItem(), JobPropertiesWidget::subscribeToItem(), ProjectionsPropertyPanel::subscribeToItem(), ProjectionsPlot::unsubscribeFromChildren(), and Plot1D::viewItem().

◆ currentItem() [2/2]

const SessionItem * SessionItemWidget::currentItem ( ) const
inherited

Definition at line 46 of file SessionItemWidget.cpp.

47 {
48  return m_itemController->currentItem();
49 }
SessionItemController * m_itemController

References SessionItemController::currentItem(), and SessionItemWidget::m_itemController.

Here is the call graph for this function:

◆ detectorItem()

DetectorItem * PolarizationAnalysisEditor::detectorItem ( )
private

Definition at line 88 of file PolarizationAnalysisEditor.cpp.

89 {
90  return instrumentItem()->detectorItem();
91 }
DetectorItem * detectorItem() const

References Instrument2DItem::detectorItem(), and instrumentItem().

Referenced by updateAnalyserEditor().

Here is the call graph for this function:

◆ hideEvent()

void SessionItemWidget::hideEvent ( QHideEvent *  )
protectedvirtualinherited

Definition at line 56 of file SessionItemWidget.cpp.

57 {
59 }
void unsubscribe()
Fully unsubscribes the parent from listening item's signals.

References SessionItemWidget::m_itemController, and SessionItemController::unsubscribe().

Here is the call graph for this function:

◆ instrumentItem()

GISASInstrumentItem * PolarizationAnalysisEditor::instrumentItem ( )
private

Definition at line 76 of file PolarizationAnalysisEditor.cpp.

77 {
78  auto result = dynamic_cast<GISASInstrumentItem*>(currentItem());
79  ASSERT(result);
80  return result;
81 }
#define ASSERT(condition)
Definition: Assert.h:31

References ASSERT, and SessionItemWidget::currentItem().

Referenced by beamItem(), and detectorItem().

Here is the call graph for this function:

◆ setItem()

void SessionItemWidget::setItem ( SessionItem item)
virtualinherited

Reimplemented in SpecularPlotCanvas, SpecularDataImportWidget, SpecularDataWidget, IntensityDataWidget, SpecularDataCanvas, ProjectionsWidget, IntensityDataCanvas, ColorMapCanvas, and Plot1DCanvas.

Definition at line 28 of file SessionItemWidget.cpp.

29 {
31 
32  if (isVisible())
34 }
void setItem(SessionItem *item)
void subscribe()
Subscribe parent to item's signals.

References SessionItemWidget::m_itemController, SessionItemController::setItem(), and SessionItemController::subscribe().

Referenced by IntensityDataWidget::onFFTAction(), JobSelectorWidget::onSelectionChanged(), ProjectionsEditor::resetContext(), ProjectionsEditor::setContext(), MaskGraphicsProxy::setIntensityItem(), FitSessionWidget::setItem(), Plot1DCanvas::setItem(), InstrumentEditorWidget::setItem(), ColorMapCanvas::setItem(), IntensityDataCanvas::setItem(), ProjectionsWidget::setItem(), SpecularDataCanvas::setItem(), DistributionDialog::setItem(), IntensityDataWidget::setItem(), SpecularDataWidget::setItem(), SpecularDataImportWidget::setItem(), SpecularPlotCanvas::setItem(), ItemComboWidget::setPresentation(), GISASInstrumentEditor::subscribeToItem(), OffSpecularInstrumentEditor::subscribeToItem(), SpecularInstrumentEditor::subscribeToItem(), FitComparisonWidget::subscribeToItem(), FitComparisonWidget1D::subscribeToItem(), and GISASDetectorEditor::updateDetectorPresenter().

Here is the call graph for this function:

◆ showEvent()

void SessionItemWidget::showEvent ( QShowEvent *  )
protectedvirtualinherited

Definition at line 51 of file SessionItemWidget.cpp.

52 {
54 }

References SessionItemWidget::m_itemController, and SessionItemController::subscribe().

Here is the call graph for this function:

◆ subscribeToItem()

void PolarizationAnalysisEditor::subscribeToItem ( )
protectedvirtual

Reimplemented from SessionItemWidget.

Definition at line 55 of file PolarizationAnalysisEditor.cpp.

56 {
58 
60  [this](const QString& name) {
63  },
64  this);
65 
67 }
static const QString P_POLARIZATION
Definition: BeamItems.h:32
void setItem(SessionItem *item)
static const QString P_DETECTOR
void setOnPropertyChange(std::function< void(QString)> f, const void *caller=0)
Definition: ModelMapper.cpp:35
void updateAnalyserEditor()
Updates analyser editor to display properties of currently selected detector (spherical/rectangular).
ModelMapper * mapper()
Returns the current model mapper of this item. Creates new one if necessary.
QString const & name(EShape k)
Definition: particles.cpp:21

References beamItem(), SessionItemWidget::currentItem(), m_polarizationEditor, SessionItem::mapper(), RealSpace::Particles::name(), Instrument2DItem::P_DETECTOR, BeamItem::P_POLARIZATION, ComponentEditor::setItem(), ModelMapper::setOnPropertyChange(), and updateAnalyserEditor().

Here is the call graph for this function:

◆ unsubscribeFromItem()

void PolarizationAnalysisEditor::unsubscribeFromItem ( )
protectedvirtual

Reimplemented from SessionItemWidget.

Definition at line 69 of file PolarizationAnalysisEditor.cpp.

References ComponentEditor::clearEditor(), m_analyserDirectionEditor, m_analyserPropertiesEditor, and m_polarizationEditor.

Here is the call graph for this function:

◆ updateAnalyserEditor()

void PolarizationAnalysisEditor::updateAnalyserEditor ( )
private

Updates analyser editor to display properties of currently selected detector (spherical/rectangular).

Definition at line 96 of file PolarizationAnalysisEditor.cpp.

References ComponentEditor::addItem(), ComponentEditor::clearEditor(), detectorItem(), m_analyserDirectionEditor, m_analyserPropertiesEditor, DetectorItem::P_ANALYZER_DIRECTION, DetectorItem::P_ANALYZER_EFFICIENCY, and DetectorItem::P_ANALYZER_TOTAL_TRANSMISSION.

Referenced by subscribeToItem().

Here is the call graph for this function:

Member Data Documentation

◆ m_analyserDirectionEditor

ComponentEditor* PolarizationAnalysisEditor::m_analyserDirectionEditor
private

◆ m_analyserPropertiesEditor

ComponentEditor* PolarizationAnalysisEditor::m_analyserPropertiesEditor
private

◆ m_columnResizer

ColumnResizer* PolarizationAnalysisEditor::m_columnResizer
private

Definition at line 46 of file PolarizationAnalysisEditor.h.

Referenced by PolarizationAnalysisEditor().

◆ m_gridLayout

QGridLayout* PolarizationAnalysisEditor::m_gridLayout
private

Definition at line 50 of file PolarizationAnalysisEditor.h.

Referenced by PolarizationAnalysisEditor().

◆ m_itemController

◆ m_polarizationEditor

ComponentEditor* PolarizationAnalysisEditor::m_polarizationEditor
private

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