qse  0.5.4
qsedatasetmodel.cpp
Go to the documentation of this file.
1 #include "qsedatasetmodel.h"
2 #include "qsedataset.h"
3 
4 #include <stdio.h>
5 
7 (QseDataSet *dataSet, QObject *parent)
8  : QAbstractTableModel(parent),
9  m_DataSet(dataSet)
10 {
11 // printf("Dataset Model Constructed %p, Model Thread %p\n", dataSet->thread(), this->thread());
12 
13  connect(dataSet, SIGNAL(operationCompleted()),
14  this, SLOT(operationCompleted()));
15 
16 // connect(dataSet, SIGNAL(dataChanged()),
17 // this, SLOT(dataChanged()));
18 
19 // connect(dataSet, SIGNAL(dataCleared()),
20 // this, SLOT(dataCleared()));
21 
22 // connect(dataSet, SIGNAL(dataChanged()),
23 // this, SIGNAL(modelReset()));
24 
25 // connect(dataSet, SIGNAL(scanAdded(int)),
26 // this, SLOT(scanAdded(int)));
27 }
28 
29 int
30 QseDataSetModel::rowCount(const QModelIndex &parent) const
31 {
32  if (parent.column() > 0) {
33  return 0;
34  }
35 
36  int res = m_DataSet -> scanCount();
37 
38 // printf("QseDataSetModel::rowCount = %d\n", res);
39 
40  return res;
41 }
42 
43 // Qt::ItemFlags
44 // QseDataSetModel::flags(const QModelIndex & index ) const
45 // {
46 // if (!index.isValid()) {
47 // return Qt::ItemIsEnabled;
48 // }
49 
50 // return inherited::flags(index) | Qt::ItemIsUserCheckable | Qt::ItemIsEditable;
51 // }
52 
53 int
54 QseDataSetModel::columnCount(const QModelIndex &parent) const
55 {
56  int res = 3 + m_DataSet->maxColumnCount();
57 
58 // printf("QseDataSetModel::columnCount = %d\n", res);
59 
60  return res;
61 }
62 
63 QVariant
64 QseDataSetModel::data(const QModelIndex &index, int role) const
65 {
66  if (!index.isValid()) {
67  return QVariant();
68  }
69 
70  if (role != Qt::DisplayRole) {
71  return QVariant();
72  }
73 
74  int row = index.row();
75  int col = index.column();
76 
77  QseScan *scan = m_DataSet->scan(row);
78 
79  switch (col) {
80  case 0:
81  return scan -> name();
82  break;
83  case 1:
84  return scan -> maxRowCount();
85  break;
86  case 2:
87  return scan -> columnCount();
88  break;
89  default:
90  QseColumn *c = scan->column(col-3);
91 
92  if (c) {
93  return c -> name();
94  } else {
95  return QVariant();
96  }
97  }
98 }
99 
100 QVariant
102 (int section, Qt::Orientation orientation, int role) const
103 {
104  if (orientation == Qt::Horizontal && role == Qt::DisplayRole) {
105  switch (section) {
106  case 0:
107  return "Scan Name";
108  break;
109  case 1:
110  return "Rows";
111  break;
112  case 2:
113  return "Columns";
114  break;
115  default:
116  return tr("Col %1").arg(section-3);
117  }
118  }
119 
120  if (orientation == Qt::Vertical && role == Qt::DisplayRole) {
121  return section;
122  }
123 
124  return QVariant();
125 }
126 
127 // QModelIndex
128 // QseDataSetModel::index(int row, int column,
129 // const QModelIndex &parent) const
130 // {
131 // if (!hasIndex(row, column, parent)) {
132 // return QModelIndex();
133 // }
134 
135 // return createIndex(row, column, row);
136 // }
137 
138 // QModelIndex
139 // QseDataSetModel::parent(const QModelIndex &parent) const
140 // {
141 // return QModelIndex();
142 // }
143 
144 void
146 {
147 // printf("QseDataSetModel::dataChanged\n");
148 // reset();
149  beginResetModel();
150  endResetModel();
151 }
152 
153 void
155 {
156 // printf("QseDataSetModel::dataCleared\n");
157 
158 // reset();
159  beginResetModel();
160  endResetModel();
161 }
162 
163 void
165 {
166 // printf("%s: QseDataSetModel::scanAdded(%d)\n", qPrintable(m_DataSet->objectName()), n);
167 
168 // insertRows(n, 1, QModelIndex());
169 
170 // printf("Row Count = %d\n", rowCount());
171 }
172 
173 
174 // bool
175 // QseDataSetModel::insertRows(int row, int count,
176 // const QModelIndex &parent)
177 // {
178 // beginInsertRows(parent, row, row+count-1);
179 // endInsertRows();
180 
181 // return true;
182 // }
183 
184 // bool
185 // QseDataSetModel::removeRows(int row, int count,
186 // const QModelIndex &parent)
187 // {
188 // beginRemoveRows(parent, row, row+count-1);
189 // endRemoveRows();
190 
191 // return true;
192 // }
193 
194 // bool
195 // QseDataSetModel::insertColumns(int col, int count,
196 // const QModelIndex &parent)
197 // {
198 // beginInsertColumns(parent, col, col+count-1);
199 // endInsertColumns();
200 
201 // return true;
202 // }
203 
204 // bool
205 // QseDataSetModel::removeColumns(int col, int count,
206 // const QModelIndex &parent)
207 // {
208 // beginRemoveColumns(parent, col, col+count-1);
209 // endRemoveColumns();
210 
211 // return true;
212 // }
QseScan * scan(int n) const
Definition: qsedataset.cpp:70
QVariant data(const QModelIndex &index, int role) const
QseDataSet * m_DataSet
int columnCount(const QModelIndex &parent=QModelIndex()) const
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const
void scanAdded(int n)
QseDataSetModel(QseDataSet *dataSet, QObject *parent=0)
int rowCount(const QModelIndex &parent=QModelIndex()) const
int maxColumnCount() const
Definition: qsedataset.cpp:82
QseColumn * column(int n) const
Definition: qsescan.cpp:104