BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
standardviewitems.cpp
Go to the documentation of this file.
1 // ************************************************************************************************
2 //
3 // qt-mvvm: Model-view-view-model framework for large GUI applications
4 //
5 //! @file mvvm/viewmodel/mvvm/viewmodel/standardviewitems.cpp
6 //! @brief Implements class CLASS?
7 //!
8 //! @homepage http://www.bornagainproject.org
9 //! @license GNU General Public License v3 or higher (see COPYING)
10 //! @copyright Forschungszentrum Jülich GmbH 2020
11 //! @authors Gennady Pospelov et al, Scientific Computing Group at MLZ (see CITATION, AUTHORS)
12 //
13 // ************************************************************************************************
14 
16 #include "mvvm/model/sessionitem.h"
18 
19 using namespace ModelView;
20 
21 RootViewItem::RootViewItem(SessionItem* item) : ViewItem(item, ItemDataRole::DATA) {}
22 
23 //! ---------------------------------------------------------------------------
24 
25 ViewLabelItem::ViewLabelItem(SessionItem* item) : ViewItem(item, ItemDataRole::DISPLAY) {}
26 
27 QVariant ViewLabelItem::data(int role) const
28 {
29  if (!item())
30  return QVariant();
31 
32  // use item's display role
33  if (role == Qt::DisplayRole || role == Qt::EditRole)
34  return QString::fromStdString(item()->displayName());
35 
36  return ViewItem::data(role);
37 }
38 
39 //! ---------------------------------------------------------------------------
40 
41 ViewDataItem::ViewDataItem(SessionItem* item) : ViewItem(item, ItemDataRole::DATA) {}
42 
43 Qt::ItemFlags ViewDataItem::flags() const
44 {
45  Qt::ItemFlags result = ViewItem::flags();
46  if (item() && item()->isEditable() && item()->isEnabled() && item()->data<QVariant>().isValid())
47  result |= Qt::ItemIsEditable;
48 
49  return result;
50 }
51 
52 QVariant ViewDataItem::data(int role) const
53 {
54  if (role == Qt::DecorationRole)
55  return Utils::DecorationRole(*item());
56  else if (role == Qt::CheckStateRole)
57  return Utils::CheckStateRole(*item());
58 
59  return ViewItem::data(role);
60 }
61 
63 
64 QVariant ViewEmptyItem::data(int) const
65 {
66  return QVariant();
67 }
RootViewItem(SessionItem *item)
The main object representing an editable/displayable/serializable entity.
Definition: sessionitem.h:38
ViewDataItem(SessionItem *item)
Qt::ItemFlags flags() const override
Returns Qt's item flags.
QVariant data(int role) const override
Returns the data for given role according to Qt::ItemDataRole namespace definitions.
QVariant data(int role) const override
Returns the data for given role according to Qt::ItemDataRole namespace definitions.
Represents the view of SessionItem's data in a single cell of ViewModel.
Definition: viewitem.h:29
virtual QVariant data(int qt_role) const
Returns the data for given role according to Qt::ItemDataRole namespace definitions.
Definition: viewitem.cpp:199
virtual Qt::ItemFlags flags() const
Returns Qt's item flags.
Definition: viewitem.cpp:231
SessionItem * item() const
Definition: viewitem.cpp:168
ViewLabelItem(SessionItem *item)
QVariant data(int role) const override
Returns the data for given role according to Qt::ItemDataRole namespace definitions.
const int DATA
main data role
Definition: mvvm_types.h:30
const int DISPLAY
display name
Definition: mvvm_types.h:31
MVVM_VIEWMODEL_EXPORT QVariant DecorationRole(const SessionItem &item)
Returns decoration role for given item.
MVVM_VIEWMODEL_EXPORT QVariant CheckStateRole(const SessionItem &item)
Returns check state role of given item.
materialitems.h Collection of materials to populate MaterialModel.
QVariant DecorationRole(const SessionItem &item)
Returns tooltip for given item.
QVariant CheckStateRole(const SessionItem &item)
Returns check state for given item.
Defines class CLASS?
Defines class CLASS?
Defines class CLASS?