QXRD  0.11.16
qxrdcalibrantdspacingsmodel.cpp
Go to the documentation of this file.
2 #include "qxrdcalibrantlibrary.h"
3 
5  : m_CalibrantLibrary(cal),
7 {
8 }
9 
11 {
12 
13 }
14 
15 int QxrdCalibrantDSpacingsModel::rowCount (const QModelIndex & parent) const
16 {
17  if (parent.isValid()) {
18  return 0;
19  }
20 
22 
23  if (spc) {
24  return spc->count(); /*m_Calibrant->countDSpacings();*/
25  } else {
26  return 0;
27  }
28 }
29 
30 int QxrdCalibrantDSpacingsModel::columnCount(const QModelIndex & parent) const
31 {
32  if (parent.isValid()) {
33  return 0;
34  }
35 
36  return NumColumns;
37 }
38 
39 QVariant QxrdCalibrantDSpacingsModel::headerData ( int section, Qt::Orientation orientation, int role) const
40 {
41  if (columnCount() == 1) {
42  return QVariant();
43  } else {
44  if (orientation==Qt::Horizontal && role==Qt::DisplayRole) {
45  switch (section) {
46  case IndexColumn:
47  return "Cal";
48 
49  case FlagsColumn:
50  return "F";
51 
52  case HColumn:
53  return "H";
54 
55  case KColumn:
56  return "K";
57 
58  case LColumn:
59  return "L";
60 
61  case NColumn:
62  return "N";
63 
64  case DColumn:
65  return "D (Angst)";
66 
67  case TTHColumn:
68  return "TTH (Deg)";
69  }
70  } else if (orientation==Qt::Vertical && role==Qt::DisplayRole) {
71  return section;
72  }
73  }
74 
75  return QVariant();
76 }
77 
78 QVariant QxrdCalibrantDSpacingsModel::data (const QModelIndex & index, int role) const
79 {
81 
82  if (spc) {
83  if (index.row() < 0 || index.row() >= spc->count()) {
84  return QVariant();
85  }
86  // if (role == Qt::DisplayRole) {
87  // return "X";
88  // }
89 
90  int col = index.column();
91  int row = index.row();
92 
93  QxrdCalibrantDSpacing dspc(spc->value(row));
94 
95  if (role == Qt::DisplayRole) {
96  if (dspc.isValid()) {
97  if (col == IndexColumn) {
98  QString res="";
99 
101 
102  if (lib) {
103  QxrdCalibrantPtr cal = lib->calibrant(dspc.index());
104 
105  if (cal) {
106  res = cal->get_Name();
107  }
108  }
109 
110  return res;
111  }
112 
113  if (col == FlagsColumn) {
114  return "X";
115  }
116 
117  if (col == HColumn) {
118  return dspc.h();
119  }
120 
121  if (col == KColumn) {
122  return dspc.k();
123  }
124 
125  if (col == LColumn) {
126  return dspc.l();
127  }
128 
129  if (col == NColumn) {
130  return dspc.n();
131  }
132 
133  if (col == DColumn) {
134  return dspc.d();
135  }
136 
137  if (col == TTHColumn) {
138  return dspc.tth();
139  }
140  }
141  }
142  }
143 
144  return QVariant();
145 }
146 
148 {
149 // emit dataChanged(QModelIndex(), QModelIndex());
150  beginResetModel();
151  endResetModel();
152 }
QxrdCalibrantLibraryWPtr m_CalibrantLibrary
virtual int columnCount(const QModelIndex &parent=QModelIndex()) const
QSharedPointer< QxrdCalibrantLibrary > QxrdCalibrantLibraryPtr
QxrdCalibrantDSpacingsWPtr m_CalibrantDSpacings
virtual QVariant data(const QModelIndex &index, int role) const
QxrdCalibrantDSpacingsModel(QxrdCalibrantLibraryPtr cal, QxrdCalibrantDSpacingsPtr vec)
QSharedPointer< QxrdCalibrant > QxrdCalibrantPtr
virtual QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const
QSharedPointer< QxrdCalibrantDSpacings > QxrdCalibrantDSpacingsPtr
virtual int rowCount(const QModelIndex &parent=QModelIndex()) const