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

Widget holding standard QTreeView and intended for displaying all items of SessionModel. More...

Inheritance diagram for ModelView::AllItemsTreeView:
[legend]
Collaboration diagram for ModelView::AllItemsTreeView:
[legend]

Signals

void itemSelected (ModelView::SessionItem *)
 

Public Member Functions

 AllItemsTreeView (SessionModel *model, QWidget *parent=nullptr)
 
 ~AllItemsTreeView () override
 
void setRootSessionItem (SessionItem *item)
 
void setSelected (SessionItem *item)
 Make given item selected in QTreeView. More...
 
void setViewModel (std::unique_ptr< ViewModel > viewModel)
 
void setViewModelDelegate (std::unique_ptr< ViewModelDelegate > delegate)
 
QTreeView * treeView ()
 
ViewModelviewModel () const
 

Private Slots

void onSelectionChanged (const QItemSelection &, const QItemSelection &)
 Processes selections in QTreeView. More...
 

Private Member Functions

QItemSelectionModel * selectionModel ()
 
void set_connected (bool flag)
 

Private Attributes

bool m_block_selection
 
std::unique_ptr< ViewModelDelegatem_delegate
 
QTreeView * m_treeView {nullptr}
 
std::unique_ptr< ViewModelm_viewModel
 

Detailed Description

Widget holding standard QTreeView and intended for displaying all items of SessionModel.

Definition at line 26 of file allitemstreeview.h.

Constructor & Destructor Documentation

◆ AllItemsTreeView()

ModelView::AllItemsTreeView::AllItemsTreeView ( SessionModel model,
QWidget *  parent = nullptr 
)

Definition at line 20 of file allitemstreeview.cpp.

20  : ItemsTreeView(parent)
21 {
23 }
void setViewModel(std::unique_ptr< ViewModel > viewModel)
ItemsTreeView(QWidget *parent=nullptr)
MVVM_VIEWMODEL_EXPORT std::unique_ptr< ViewModel > CreateDefaultViewModel(SessionModel *model)
Creates view model to represent SessionModel for Qt views.

References ModelView::Factory::CreateDefaultViewModel(), and ModelView::ItemsTreeView::setViewModel().

Here is the call graph for this function:

◆ ~AllItemsTreeView()

ModelView::AllItemsTreeView::~AllItemsTreeView ( )
overridedefault

Member Function Documentation

◆ itemSelected

void ModelView::ItemsTreeView::itemSelected ( ModelView::SessionItem )
signalinherited

◆ onSelectionChanged

void ItemsTreeView::onSelectionChanged ( const QItemSelection &  ,
const QItemSelection &   
)
privateslotinherited

Processes selections in QTreeView.

Finds SessionItem corresponding to selected indexes and emit itemSelected signal.

Definition at line 79 of file itemstreeview.cpp.

80 {
82  return;
83 
84  auto indexes = m_treeView->selectionModel()->selectedIndexes();
85  if (!indexes.empty()) {
86  auto item = m_viewModel->sessionItemFromIndex(indexes.at(0));
87  m_block_selection = true;
88  itemSelected(item);
89  m_block_selection = false;
90  }
91 }
std::unique_ptr< ViewModel > m_viewModel
Definition: itemstreeview.h:66
void itemSelected(ModelView::SessionItem *)

References ModelView::ItemsTreeView::itemSelected(), ModelView::ItemsTreeView::m_block_selection, ModelView::ItemsTreeView::m_treeView, and ModelView::ItemsTreeView::m_viewModel.

Referenced by ModelView::ItemsTreeView::set_connected().

◆ selectionModel()

QItemSelectionModel * ItemsTreeView::selectionModel ( )
privateinherited

Definition at line 110 of file itemstreeview.cpp.

111 {
112  return m_treeView->selectionModel();
113 }

References ModelView::ItemsTreeView::m_treeView.

Referenced by ModelView::ItemsTreeView::set_connected(), and ModelView::ItemsTreeView::setSelected().

◆ set_connected()

void ItemsTreeView::set_connected ( bool  flag)
privateinherited

Definition at line 93 of file itemstreeview.cpp.

94 {
95  Q_ASSERT(selectionModel());
96 
97  if (flag)
98  connect(selectionModel(), &QItemSelectionModel::selectionChanged, this,
100  else
101  disconnect(selectionModel(), &QItemSelectionModel::selectionChanged, this,
103 }
QItemSelectionModel * selectionModel()
void onSelectionChanged(const QItemSelection &, const QItemSelection &)
Processes selections in QTreeView.

References ModelView::ItemsTreeView::onSelectionChanged(), and ModelView::ItemsTreeView::selectionModel().

Referenced by ModelView::ItemsTreeView::setViewModel().

Here is the call graph for this function:

◆ setRootSessionItem()

void ItemsTreeView::setRootSessionItem ( SessionItem item)
inherited

Definition at line 65 of file itemstreeview.cpp.

66 {
67  m_viewModel->setRootSessionItem(item);
68  m_treeView->expandAll();
69 }

References ModelView::ItemsTreeView::m_treeView, and ModelView::ItemsTreeView::m_viewModel.

◆ setSelected()

void ItemsTreeView::setSelected ( SessionItem item)
inherited

Make given item selected in QTreeView.

Definition at line 55 of file itemstreeview.cpp.

56 {
57  if (!m_viewModel)
58  return;
59 
60  auto indexes = m_viewModel->indexOfSessionItem(item);
61  if (!indexes.empty())
62  selectionModel()->select(indexes.at(0), QItemSelectionModel::SelectCurrent);
63 }

References ModelView::ItemsTreeView::m_viewModel, and ModelView::ItemsTreeView::selectionModel().

Here is the call graph for this function:

◆ setViewModel()

void ItemsTreeView::setViewModel ( std::unique_ptr< ViewModel viewModel)
inherited

Definition at line 38 of file itemstreeview.cpp.

39 {
40  m_viewModel = std::move(viewModel);
41  m_treeView->setItemDelegate(m_delegate.get());
42  m_treeView->setModel(m_viewModel.get());
43  m_treeView->expandAll();
44  m_treeView->resizeColumnToContents(0);
45  set_connected(true);
46 }
std::unique_ptr< ViewModelDelegate > m_delegate
Definition: itemstreeview.h:67
void set_connected(bool flag)
ViewModel * viewModel() const

References ModelView::ItemsTreeView::m_delegate, ModelView::ItemsTreeView::m_treeView, ModelView::ItemsTreeView::m_viewModel, ModelView::ItemsTreeView::set_connected(), and ModelView::ItemsTreeView::viewModel().

Referenced by AllItemsTreeView(), ModelView::TopItemsTreeView::TopItemsTreeView(), and ModelView::PropertyTreeView::setItem().

Here is the call graph for this function:

◆ setViewModelDelegate()

void ItemsTreeView::setViewModelDelegate ( std::unique_ptr< ViewModelDelegate delegate)
inherited

Definition at line 48 of file itemstreeview.cpp.

49 {
50  m_delegate = std::move(delegate);
51 }

References ModelView::ItemsTreeView::m_delegate.

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

◆ treeView()

QTreeView * ItemsTreeView::treeView ( )
inherited

◆ viewModel()

ViewModel * ItemsTreeView::viewModel ( ) const
inherited

Definition at line 71 of file itemstreeview.cpp.

72 {
73  return m_viewModel.get();
74 }

References ModelView::ItemsTreeView::m_viewModel.

Referenced by ModelView::PropertyTreeView::setItem(), and ModelView::ItemsTreeView::setViewModel().

Member Data Documentation

◆ m_block_selection

bool ModelView::ItemsTreeView::m_block_selection
privateinherited

Definition at line 68 of file itemstreeview.h.

Referenced by ModelView::ItemsTreeView::onSelectionChanged().

◆ m_delegate

std::unique_ptr<ViewModelDelegate> ModelView::ItemsTreeView::m_delegate
privateinherited

◆ m_treeView

◆ m_viewModel


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