qse  0.5.4
qsegraphcolumnsmodel.cpp
Go to the documentation of this file.
1 #include "qsegraphcolumnsmodel.h"
2 #include "qsedataset.h"
3 #include "qsegraphcontroller.h"
4 #include <QTableView>
5 
7 (QseGraphController* controller, QTableView *table, QObject *parent)
8  : QAbstractTableModel(parent),
9  m_Controller(controller),
10  m_DataSet(NULL),
11  m_TableView(table)
12 {
13  if (m_Controller) {
14  m_DataSet = m_Controller->dataSet();
15  }
16 }
17 
18 // void
19 // QseGraphColumnsModel::dataChanged()
20 // {
21 // }
22 
23 void
25 (const QModelIndex & topLeft, const QModelIndex & bottomRight)
26 {
27  emit dataChanged(topLeft, bottomRight);
28 }
29 
30 void
32 {
33 // reset();
34  beginResetModel();
35  endResetModel();
36 
37  m_TableView -> resizeRowsToContents();
38  m_TableView -> resizeColumnsToContents();
39 }
40 
41 int
42 QseGraphColumnsModel::rowCount(const QModelIndex &parent) const
43 {
44  if (parent.column() > 0) {
45  return 0;
46  }
47 
48  int res = m_Controller->selectedColumnCount();
49 
50  return res;
51 }
52 
53 int
54 QseGraphColumnsModel::columnCount(const QModelIndex &parent) const
55 {
56  return 4;
57 }
58 
59 QVariant
60 QseGraphColumnsModel::data(const QModelIndex &index, int role) const
61 {
62  if (!index.isValid()) {
63  return QVariant();
64  }
65 
66 // if (role != Qt::DisplayRole) {
67 // return QVariant();
68 // }
69 
70  int row = index.row();
71  int col = index.column();
72 
73  switch (role) {
74  case Qt::DisplayRole:
75  switch (col) {
76  case 0:
77  return m_Controller->selectedColumn(row);
78  break;
79  case 1: // X?
80  return m_Controller->selectedPlotX(row) ? "X" : " ";
81  break;
82  case 2: // Y1?
83  return m_Controller->selectedPlotY(row) ? "Y" : " ";
84  break;
85  case 3: // Y2?
86  return m_Controller->selectedPlotY2(row) ? "Y2" : " ";
87  break;
88 // case 4: // NRM?
89 // return m_Controller->selectedPlotNorm(row) ? "NRM" : " ";
90 // break;
91  default:
92  return QVariant();
93  }
94 
95  case Qt::DecorationRole:
96  switch (col) {
97  case 2:
98  return m_Controller->selectedPlotY(row) ? QIcon(":/images/ok.png") : QIcon(":/images/up.png");
99  break;
100  default:
101  return QVariant();
102  }
103  break;
104 
105  default:
106  return QVariant();
107  }
108 }
109 
110 QVariant
112 (int section, Qt::Orientation orientation, int role) const
113 {
114  if (orientation == Qt::Horizontal && role == Qt::DisplayRole) {
115  switch (section) {
116  case 0:
117  return "Col";
118  break;
119  case 1:
120  return "X";
121  break;
122  case 2:
123  return "Y1";
124  break;
125  case 3:
126  return "Y2";
127  break;
128 // case 4:
129 // return "NRM";
130 // break;
131  default:
132  return QVariant();
133  }
134  }
135 
136  if (orientation == Qt::Vertical && role == Qt::DisplayRole) {
137  return section;
138  }
139 
140  return QVariant();
141 }
QString selectedColumn(int i) const
QVariant data(const QModelIndex &index, int role) const
QseGraphColumnsModel(QseGraphController *controller, QTableView *table, QObject *parent=0)
QseGraphController * m_Controller
bool selectedPlotY(int i) const
int columnCount(const QModelIndex &parent=QModelIndex()) const
void emitDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight)
bool selectedPlotX(int i) const
int rowCount(const QModelIndex &parent=QModelIndex()) const
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const
int selectedColumnCount() const
bool selectedPlotY2(int i) const