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

The DistributionEditor class, being a child of DistributionDialog, contains a widget to show Distribution1D and property editor to change distribution parameters. More...

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

Public Member Functions

 DistributionEditor (QWidget *parent=nullptr)
 
virtual QList< QAction * > actionList ()
 
SessionItemcurrentItem ()
 
const SessionItemcurrentItem () const
 
virtual void setItem (SessionItem *item)
 
void setNameOfEditor (QString name)
 

Protected Member Functions

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

Private Member Functions

DistributionItemdistributionItem ()
 
GroupItemgroupItem ()
 
void onPropertyChanged (const QString &property_name)
 

Private Attributes

QGroupBox * m_box
 
GroupItemm_item
 
SessionItemControllerm_itemController
 
QString m_nameOfEditor
 
DistributionWidgetm_plotwidget
 
ComponentFlatViewm_propertyEditor
 

Detailed Description

The DistributionEditor class, being a child of DistributionDialog, contains a widget to show Distribution1D and property editor to change distribution parameters.

Definition at line 29 of file DistributionEditor.h.

Constructor & Destructor Documentation

◆ DistributionEditor()

DistributionEditor::DistributionEditor ( QWidget *  parent = nullptr)

Definition at line 26 of file DistributionEditor.cpp.

27  : SessionItemWidget(parent)
29  , m_item(nullptr)
31  , m_box(new QGroupBox)
32 {
33 
34  auto boxLayout = new QVBoxLayout;
35  m_propertyEditor->setMaximumWidth(minimum_width);
36  boxLayout->addWidget(m_propertyEditor);
37  boxLayout->setContentsMargins(0, 0, 0, 0);
38  m_box->setLayout(boxLayout);
39 
40  auto verticalLayout = new QVBoxLayout;
41  verticalLayout->addWidget(m_box);
42  verticalLayout->addStretch(1);
43 
44  auto mainLayout = new QHBoxLayout;
45  mainLayout->addWidget(m_plotwidget, 1);
46  mainLayout->addSpacing(5);
47  mainLayout->addLayout(verticalLayout);
48 
49  setLayout(mainLayout);
50 }
Component property widget for SessionItems.
ComponentFlatView * m_propertyEditor
DistributionWidget * m_plotwidget
The DistributionWidget class plots 1d functions corresponding to domain's Distribution1D.
SessionItemWidget(QWidget *parent=0)

References m_box, m_plotwidget, and m_propertyEditor.

Member Function Documentation

◆ actionList()

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

◆ 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(), groupItem(), DepthProbeInstrumentEditor::instrumentItem(), EnvironmentEditor::instrumentItem(), GISASBeamEditor::instrumentItem(), GISASDetectorEditor::instrumentItem(), GISASInstrumentEditor::instrumentItem(), OffSpecularBeamEditor::instrumentItem(), OffSpecularInstrumentEditor::instrumentItem(), PolarizationAnalysisEditor::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(), subscribeToItem(), GISASDetectorEditor::subscribeToItem(), PolarizationAnalysisEditor::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:

◆ distributionItem()

DistributionItem * DistributionEditor::distributionItem ( )
private

Definition at line 76 of file DistributionEditor.cpp.

77 {
78  auto result = dynamic_cast<DistributionItem*>(groupItem()->currentItem());
79  ASSERT(result);
80  return result;
81 }
#define ASSERT(condition)
Definition: Assert.h:31
SessionItem * currentItem() const
Definition: GroupItem.cpp:41

References ASSERT, GroupItem::currentItem(), and groupItem().

Referenced by onPropertyChanged(), and subscribeToItem().

Here is the call graph for this function:

◆ groupItem()

GroupItem * DistributionEditor::groupItem ( )
private

Definition at line 69 of file DistributionEditor.cpp.

70 {
71  auto result = dynamic_cast<GroupItem*>(currentItem());
72  ASSERT(result);
73  return result;
74 }

References ASSERT, and SessionItemWidget::currentItem().

Referenced by distributionItem().

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:

◆ onPropertyChanged()

void DistributionEditor::onPropertyChanged ( const QString &  property_name)
private

Definition at line 63 of file DistributionEditor.cpp.

64 {
65  if (property_name == GroupItem::T_ITEMS)
67 }
DistributionItem * distributionItem()
void setItem(DistributionItem *item)
static const QString T_ITEMS
Definition: GroupItem.h:27

References distributionItem(), m_plotwidget, DistributionWidget::setItem(), and GroupItem::T_ITEMS.

Referenced by subscribeToItem().

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:

◆ setNameOfEditor()

void DistributionEditor::setNameOfEditor ( QString  name)

Definition at line 83 of file DistributionEditor.cpp.

84 {
85  m_box->setTitle(name);
87 }
void setXAxisName(const QString &xAxisName)
QString const & name(EShape k)
Definition: particles.cpp:21

References m_box, m_plotwidget, RealSpace::Particles::name(), and DistributionWidget::setXAxisName().

Referenced by DistributionDialog::setNameOfEditor().

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 DistributionEditor::subscribeToItem ( )
protectedvirtual

Reimplemented from SessionItemWidget.

Definition at line 52 of file DistributionEditor.cpp.

53 {
56 
58  [this](const QString& name) { onPropertyChanged(name); }, this);
59 
61 }
void setItem(SessionItem *item)
void onPropertyChanged(const QString &property_name)
void setOnPropertyChange(std::function< void(QString)> f, const void *caller=0)
Definition: ModelMapper.cpp:35
ModelMapper * mapper()
Returns the current model mapper of this item. Creates new one if necessary.

References ComponentFlatView::clearEditor(), SessionItemWidget::currentItem(), distributionItem(), m_plotwidget, m_propertyEditor, SessionItem::mapper(), RealSpace::Particles::name(), onPropertyChanged(), DistributionWidget::setItem(), ComponentFlatView::setItem(), and ModelMapper::setOnPropertyChange().

Here is the call graph for this function:

◆ unsubscribeFromItem()

Member Data Documentation

◆ m_box

QGroupBox* DistributionEditor::m_box
private

Definition at line 48 of file DistributionEditor.h.

Referenced by DistributionEditor(), and setNameOfEditor().

◆ m_item

GroupItem* DistributionEditor::m_item
private

Definition at line 45 of file DistributionEditor.h.

◆ m_itemController

◆ m_nameOfEditor

QString DistributionEditor::m_nameOfEditor
private

Definition at line 47 of file DistributionEditor.h.

◆ m_plotwidget

DistributionWidget* DistributionEditor::m_plotwidget
private

◆ m_propertyEditor

ComponentFlatView* DistributionEditor::m_propertyEditor
private

Definition at line 44 of file DistributionEditor.h.

Referenced by DistributionEditor(), and subscribeToItem().


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