| 220 | } |
| 221 | |
| 222 | void DatasetProxyModel::initializeDatasetDecriptors( |
| 223 | const DatasetDescriptionVector &inConfiguration, |
| 224 | const int sourceCount, |
| 225 | DatasetDescriptionVector &outSourceToProxyMap, |
| 226 | DatasetDescriptionVector &outProxyToSourceMap) |
| 227 | { |
| 228 | // in the current mapping implementation, the proxy-to-source map is |
| 229 | // identical to the configuration vector: |
| 230 | outProxyToSourceMap = inConfiguration; |
| 231 | outSourceToProxyMap.fill(-1, sourceCount); |
| 232 | |
| 233 | for (int index = 0; index < inConfiguration.size(); ++index) { |
| 234 | // make sure the values in inConfiguration point to columns in the |
| 235 | // source model: |
| 236 | |
| 237 | if (inConfiguration[index] == -1) { |
| 238 | continue; |
| 239 | } |
| 240 | |
| 241 | Q_ASSERT_X(inConfiguration[index] >= 0 && inConfiguration[index] < sourceCount, |
| 242 | "DatasetProxyModel::initializeDatasetDecriptors", |
| 243 | "column index outside of source model"); |
| 244 | Q_ASSERT_X(outSourceToProxyMap[inConfiguration[index]] == -1, |
| 245 | "DatasetProxyModel::initializeDatasetDecriptors", |
| 246 | "no duplicates allowed in mapping configuration, mapping has to be reversible"); |
| 247 | |
| 248 | outSourceToProxyMap[inConfiguration[index]] = index; |
| 249 | } |
| 250 | } |
| 251 | |
| 252 | void DatasetProxyModel::setSourceModel(QAbstractItemModel *m) |
| 253 | { |