BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
FitComparison1DViewController Class Reference
Inheritance diagram for FitComparison1DViewController:
[legend]
Collaboration diagram for FitComparison1DViewController:
[legend]

Public Member Functions

 FitComparison1DViewController (QObject *parent)
 
void clear ()
 
Data1DViewItemdiffItemView ()
 
void resetDiffView ()
 
void setItem (JobItem *job_item)
 
void updateDiffData ()
 

Private Member Functions

void createDiffViewItem (JobItem *job_item)
 
void deleteDiffViewItem ()
 

Private Attributes

PropertyRepeaterm_appearanceRepeater
 
DiffItemControllerm_diff_item_controller
 
Data1DViewItemm_diff_view_item
 
PropertyRepeaterm_xAxisRepeater
 

Detailed Description

Definition at line 44 of file FitComparisonViewController.h.

Constructor & Destructor Documentation

◆ FitComparison1DViewController()

FitComparison1DViewController::FitComparison1DViewController ( QObject *  parent)
explicit

Definition at line 31 of file FitComparisonViewController.cpp.

32  : QObject(parent)
33  , m_diff_item_controller(new DiffItemController("SpecularData", this))
34  , m_diff_view_item(nullptr)
37 {
38 }
FitComparisonController2D::DiffItemController DiffItemController
Tracks property change (axes range, units etc) for the collection of IntensityDataItems and sets same...

Member Function Documentation

◆ clear()

void FitComparison1DViewController::clear ( )

Definition at line 81 of file FitComparisonViewController.cpp.

References PropertyRepeater::clear(), deleteDiffViewItem(), m_appearanceRepeater, m_diff_item_controller, m_diff_view_item, m_xAxisRepeater, and DiffItemController::unsubscribe().

Referenced by setItem(), and FitComparisonWidget1D::unsubscribeFromItem().

Here is the call graph for this function:

◆ createDiffViewItem()

void FitComparison1DViewController::createDiffViewItem ( JobItem job_item)
private

Definition at line 90 of file FitComparisonViewController.cpp.

91 {
95  container->addItem(m_diff_item_controller->diffItem());
96 
97  m_diff_view_item->setJobItem(job_item);
98  auto job_data_view = job_item->dataItemView();
99  auto units_value = job_data_view->getItemValue(Data1DViewItem::P_AXES_UNITS);
101 }
View model for 1D DataItem.
static const QString P_AXES_UNITS
void setJobItem(JobItem *job_item)
Sets job item (for unit conversion) if DataItemView is dynamically created outside of JobModel.
static const QString T_DATA_PROPERTIES
Data1DViewItem * dataItemView()
Definition: JobItem.cpp:269
QVariant getItemValue(const QString &tag) const
Directly access value of item under given tag.
SessionModel * model() const
Returns model of this item.
Definition: SessionItem.cpp:66
void setItemValue(const QString &tag, const QVariant &variant)
Directly set value of item under given tag.
T * insertItem(SessionItem *parent=nullptr, int row=-1, QString tag="")
Definition: SessionModel.h:125

References JobItem::dataItemView(), DiffItemController::diffItem(), SessionItem::getItemValue(), SessionModel::insertItem(), m_diff_item_controller, m_diff_view_item, DiffItemController::model(), SessionItem::model(), Data1DViewItem::P_AXES_UNITS, SessionItem::setItemValue(), Data1DViewItem::setJobItem(), and Data1DViewItem::T_DATA_PROPERTIES.

Referenced by setItem().

Here is the call graph for this function:

◆ deleteDiffViewItem()

void FitComparison1DViewController::deleteDiffViewItem ( )
private

Definition at line 103 of file FitComparisonViewController.cpp.

104 {
105  auto parent = m_diff_view_item->parent();
106  auto old_view_item = parent->takeRow(parent->rowOfChild(m_diff_view_item));
107  ASSERT(old_view_item == m_diff_view_item);
108  delete (old_view_item);
109  m_diff_view_item = nullptr;
110 }
#define ASSERT(condition)
Definition: Assert.h:31
SessionItem * parent() const
Returns parent of this item.
Definition: SessionItem.cpp:73
SessionItem * takeRow(int row)
Removes row from item and returns the item.

References ASSERT, m_diff_view_item, SessionItem::parent(), and SessionItem::takeRow().

Referenced by clear().

Here is the call graph for this function:

◆ diffItemView()

Data1DViewItem * FitComparison1DViewController::diffItemView ( )

Definition at line 40 of file FitComparisonViewController.cpp.

41 {
42  return m_diff_view_item;
43 }

References m_diff_view_item.

Referenced by setItem(), and FitComparisonWidget1D::subscribeToItem().

◆ resetDiffView()

void FitComparison1DViewController::resetDiffView ( )

Definition at line 72 of file FitComparisonViewController.cpp.

73 {
74  if (!m_diff_view_item)
75  return;
77  m_diff_view_item->setLowerY(relative_diff_min_1d);
78  m_diff_view_item->setUpperY(relative_diff_max_1d);
79 }
void resetView()
Set axes viewport to original data.
void setUpperY(double value)
void setLowerY(double value)

References m_diff_view_item, Data1DViewItem::resetView(), Data1DViewItem::setLowerY(), and Data1DViewItem::setUpperY().

Referenced by FitComparisonWidget1D::onResetViewAction().

Here is the call graph for this function:

◆ setItem()

void FitComparison1DViewController::setItem ( JobItem job_item)

Definition at line 45 of file FitComparisonViewController.cpp.

46 {
47  ASSERT(job_item);
48 
49  clear();
51  createDiffViewItem(job_item);
52 
53  auto job_data_view = job_item->dataItemView();
54 
55  m_appearanceRepeater->addItem(job_data_view);
57 
58  m_xAxisRepeater->addItem(job_data_view->xAxisItem());
59  m_xAxisRepeater->addItem(diffItemView()->xAxisItem());
60 
61  m_diff_view_item->setXaxisTitle(job_data_view->getXaxisTitle());
62  m_diff_view_item->setYaxisTitle("Relative difference");
63  m_diff_view_item->setLowerY(relative_diff_min_1d);
64  m_diff_view_item->setUpperY(relative_diff_max_1d);
65 }
void setXaxisTitle(const QString &title)
void setYaxisTitle(const QString &title)
void setJobItem(JobItem *job_item)
void addItem(SessionItem *sessionItem)

References PropertyRepeater::addItem(), ASSERT, clear(), createDiffViewItem(), JobItem::dataItemView(), diffItemView(), m_appearanceRepeater, m_diff_item_controller, m_diff_view_item, m_xAxisRepeater, DiffItemController::setJobItem(), Data1DViewItem::setLowerY(), Data1DViewItem::setUpperY(), Data1DViewItem::setXaxisTitle(), and Data1DViewItem::setYaxisTitle().

Referenced by FitComparisonWidget1D::subscribeToItem().

Here is the call graph for this function:

◆ updateDiffData()

void FitComparison1DViewController::updateDiffData ( )

Definition at line 67 of file FitComparisonViewController.cpp.

References m_diff_item_controller, and DiffItemController::updateDiffData().

Here is the call graph for this function:

Member Data Documentation

◆ m_appearanceRepeater

PropertyRepeater* FitComparison1DViewController::m_appearanceRepeater
private

Definition at line 62 of file FitComparisonViewController.h.

Referenced by clear(), and setItem().

◆ m_diff_item_controller

DiffItemController* FitComparison1DViewController::m_diff_item_controller
private

Definition at line 60 of file FitComparisonViewController.h.

Referenced by clear(), createDiffViewItem(), setItem(), and updateDiffData().

◆ m_diff_view_item

Data1DViewItem* FitComparison1DViewController::m_diff_view_item
private

◆ m_xAxisRepeater

PropertyRepeater* FitComparison1DViewController::m_xAxisRepeater
private

Definition at line 63 of file FitComparisonViewController.h.

Referenced by clear(), and setItem().


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