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

Provides decorations (text color, icons, etc) for SessionModel in SessionModelView context. More...

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

Public Member Functions

 SessionDecorationModel (QObject *parent, SessionModel *model=nullptr)
 
QVariant data (const QModelIndex &index, int role) const
 
void setSessionModel (SessionModel *model)
 

Private Member Functions

QVariant createIcon (const QModelIndex &index) const
 
QVariant textColor (const QModelIndex &index) const
 Returns text color. Disabled SessionItem's will appear in gray. More...
 

Private Attributes

SessionModelm_model
 

Detailed Description

Provides decorations (text color, icons, etc) for SessionModel in SessionModelView context.

It is implemented as identity proxy model, so it has one-to-one data structure as in source SessionModel.

Definition at line 27 of file SessionDecorationModel.h.

Constructor & Destructor Documentation

◆ SessionDecorationModel()

SessionDecorationModel::SessionDecorationModel ( QObject *  parent,
SessionModel model = nullptr 
)
explicit

Definition at line 84 of file SessionDecorationModel.cpp.

85  : QIdentityProxyModel(parent), m_model(nullptr)
86 {
87  setSessionModel(model);
88 }
void setSessionModel(SessionModel *model)

References setSessionModel().

Here is the call graph for this function:

Member Function Documentation

◆ createIcon()

QVariant SessionDecorationModel::createIcon ( const QModelIndex &  index) const
private

Definition at line 113 of file SessionDecorationModel.cpp.

114 {
115  if (SessionItem* item = m_model->itemForIndex(index))
116  return QVariant(itemIcon(item));
117 
118  return QVariant();
119 }
SessionItem * itemForIndex(const QModelIndex &index) const

References SessionModel::itemForIndex(), and m_model.

Referenced by data().

Here is the call graph for this function:

◆ data()

QVariant SessionDecorationModel::data ( const QModelIndex &  index,
int  role 
) const

Definition at line 96 of file SessionDecorationModel.cpp.

97 {
98  if (role == Qt::DecorationRole) {
99  QVariant result = createIcon(index);
100  if (result.isValid())
101  return result;
102  }
103 
104  if (role == Qt::ForegroundRole) {
105  QVariant result = textColor(index);
106  if (result.isValid())
107  return result;
108  }
109 
110  return QIdentityProxyModel::data(index, role);
111 }
QVariant textColor(const QModelIndex &index) const
Returns text color. Disabled SessionItem's will appear in gray.
QVariant createIcon(const QModelIndex &index) const
QVariant DecorationRole(const SessionItem &item)
Returns tooltip for given item.
QVariant ForegroundRole(const SessionItem &item)
Returns text color for given item.

References createIcon(), SessionItemUtils::DecorationRole(), SessionItemUtils::ForegroundRole(), and textColor().

Here is the call graph for this function:

◆ setSessionModel()

void SessionDecorationModel::setSessionModel ( SessionModel model)

Definition at line 90 of file SessionDecorationModel.cpp.

91 {
92  QIdentityProxyModel::setSourceModel(model);
93  m_model = model;
94 }

References m_model.

Referenced by ModelTreeView::ModelTreeView(), and SessionDecorationModel().

◆ textColor()

QVariant SessionDecorationModel::textColor ( const QModelIndex &  index) const
private

Returns text color. Disabled SessionItem's will appear in gray.

Definition at line 123 of file SessionDecorationModel.cpp.

124 {
125  QVariant result;
126 
127  if (SessionItem* item = m_model->itemForIndex(index)) {
128  if (item->isEnabled() == false)
129  return QColor(Qt::gray);
130  }
131 
132  return result;
133 }

References SessionItem::isEnabled(), SessionModel::itemForIndex(), and m_model.

Referenced by data().

Here is the call graph for this function:

Member Data Documentation

◆ m_model

SessionModel* SessionDecorationModel::m_model
private

Definition at line 40 of file SessionDecorationModel.h.

Referenced by createIcon(), setSessionModel(), and textColor().


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