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

Handles all data roles for SessionItem. More...

Classes

class  ItemData
 

Public Member Functions

QVariant data (int role) const
 
QVector< int > roles () const
 
bool setData (int role, const QVariant &value)
 Sets the data for given role. Returns true if data was changed. More...
 

Private Attributes

QVector< ItemDatam_values
 

Detailed Description

Handles all data roles for SessionItem.

Definition at line 23 of file SessionItemData.h.

Member Function Documentation

◆ data()

QVariant SessionItemData::data ( int  role) const

Definition at line 33 of file SessionItemData.cpp.

34 {
35  role = (role == Qt::EditRole) ? Qt::DisplayRole : role;
36  for (const auto& value : m_values) {
37  if (value.role == role)
38  return value.data;
39  }
40  return QVariant();
41 }
QVector< ItemData > m_values

References m_values.

Referenced by SessionItemData::ItemData::operator==().

◆ roles()

QVector< int > SessionItemData::roles ( ) const

Definition at line 25 of file SessionItemData.cpp.

26 {
27  QVector<int> result;
28  for (const auto& value : m_values)
29  result.push_back(value.role);
30  return result;
31 }

References m_values.

◆ setData()

bool SessionItemData::setData ( int  role,
const QVariant &  value 
)

Sets the data for given role. Returns true if data was changed.

Definition at line 45 of file SessionItemData.cpp.

46 {
47  role = (role == Qt::EditRole) ? Qt::DisplayRole : role;
48  for (auto it = m_values.begin(); it != m_values.end(); ++it) {
49  if (it->role == role) {
50  if (value.isValid()) {
51  if (SessionItemUtils::IsTheSame(it->data, value))
52  return false;
53  it->data = value;
54  } else {
55  m_values.erase(it);
56  }
57  return true;
58  }
59  }
60  m_values.push_back(ItemData(role, value));
61  return true;
62 }
bool IsTheSame(const QVariant &var1, const QVariant &var2)
Returns true if given variants have same type and value.

References SessionItemUtils::IsTheSame(), and m_values.

Here is the call graph for this function:

Member Data Documentation

◆ m_values

QVector<ItemData> SessionItemData::m_values
private

Definition at line 40 of file SessionItemData.h.

Referenced by data(), roles(), and setData().


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