BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
gui2::LayerEditorWidget Class Reference

Widget to hold layer tree (LayerTreeView) and all corresponding models and delegates. More...

Inheritance diagram for gui2::LayerEditorWidget:
[legend]
Collaboration diagram for gui2::LayerEditorWidget:
[legend]

Public Member Functions

 LayerEditorWidget (QWidget *parent=nullptr)
 
 ~LayerEditorWidget ()
 
LayerSelectionModelselectionModel () const
 
void setModels (ApplicationModels *models)
 

Private Attributes

std::unique_ptr< ModelView::ViewModelDelegatem_delegate
 
LayerTreeViewm_layerView {nullptr}
 
LayerSelectionModelm_selectionModel {nullptr}
 
std::unique_ptr< LayerViewModelm_viewModel
 

Detailed Description

Widget to hold layer tree (LayerTreeView) and all corresponding models and delegates.

Belongs to LayerEditor.

Definition at line 36 of file layereditorwidget.h.

Constructor & Destructor Documentation

◆ LayerEditorWidget()

gui2::LayerEditorWidget::LayerEditorWidget ( QWidget *  parent = nullptr)

Definition at line 28 of file layereditorwidget.cpp.

29  : QWidget(parent)
30  , m_layerView(new LayerTreeView)
31  , m_delegate(std::make_unique<ModelView::ViewModelDelegate>())
32 {
33  auto layout = new QVBoxLayout;
34  layout->setContentsMargins(0, 0, 0, 0);
35  layout->addWidget(m_layerView);
36  setLayout(layout);
37  m_layerView->setItemDelegate(m_delegate.get());
38 }
LayerTreeView * m_layerView
std::unique_ptr< ModelView::ViewModelDelegate > m_delegate

References m_delegate, and m_layerView.

◆ ~LayerEditorWidget()

gui2::LayerEditorWidget::~LayerEditorWidget ( )
default

Member Function Documentation

◆ selectionModel()

LayerSelectionModel * gui2::LayerEditorWidget::selectionModel ( ) const

Definition at line 53 of file layereditorwidget.cpp.

54 {
55  return m_selectionModel;
56 }
LayerSelectionModel * m_selectionModel

References m_selectionModel.

Referenced by gui2::LayerEditor::selectionChanged(), and gui2::LayerEditor::setModels().

◆ setModels()

void gui2::LayerEditorWidget::setModels ( ApplicationModels models)

Definition at line 42 of file layereditorwidget.cpp.

43 {
44  m_viewModel = std::make_unique<LayerViewModel>(models->sampleModel());
45  m_selectionModel = new LayerSelectionModel(m_viewModel.get(), this);
46 
47  m_delegate->setEditorFactory(std::make_unique<CustomLayerTreeEditorFactory>(models));
48  m_viewModel->setRootSessionItem(models->sampleModel()->topItem<MultiLayerItem>());
50  m_layerView->setSelectionModel(m_selectionModel);
51 }
SampleModel * sampleModel()
T * topItem() const
Returns first item in list of topItems.
Definition: SessionModel.h:141
std::unique_ptr< LayerViewModel > m_viewModel
void setModel(QAbstractItemModel *model) override

References m_delegate, m_layerView, m_selectionModel, m_viewModel, gui2::ApplicationModels::sampleModel(), gui2::LayerTreeView::setModel(), and ModelView::SessionModel::topItem().

Referenced by gui2::LayerEditor::setModels().

Here is the call graph for this function:

Member Data Documentation

◆ m_delegate

std::unique_ptr<ModelView::ViewModelDelegate> gui2::LayerEditorWidget::m_delegate
private

Definition at line 51 of file layereditorwidget.h.

Referenced by LayerEditorWidget(), and setModels().

◆ m_layerView

LayerTreeView* gui2::LayerEditorWidget::m_layerView {nullptr}
private

Definition at line 50 of file layereditorwidget.h.

Referenced by LayerEditorWidget(), and setModels().

◆ m_selectionModel

LayerSelectionModel* gui2::LayerEditorWidget::m_selectionModel {nullptr}
private

Definition at line 49 of file layereditorwidget.h.

Referenced by selectionModel(), and setModels().

◆ m_viewModel

std::unique_ptr<LayerViewModel> gui2::LayerEditorWidget::m_viewModel
private

Definition at line 48 of file layereditorwidget.h.

Referenced by setModels().


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