| 350 | } |
| 351 | |
| 352 | void QmitkPropertiesTableModel::sort(int column, Qt::SortOrder order /*= Qt::AscendingOrder */) |
| 353 | { |
| 354 | bool sortDescending = (order == Qt::DescendingOrder) ? true : false; |
| 355 | |
| 356 | // do not sort twice !!! (dont know why, but qt calls this func twice. STUPID!) |
| 357 | if (sortDescending != m_SortDescending) |
| 358 | { |
| 359 | m_SortDescending = sortDescending; |
| 360 | |
| 361 | PropertyDataSetCompareFunction::CompareCriteria _CompareCriteria = PropertyDataSetCompareFunction::CompareByName; |
| 362 | |
| 363 | PropertyDataSetCompareFunction::CompareOperator _CompareOperator = |
| 364 | m_SortDescending ? PropertyDataSetCompareFunction::Greater : PropertyDataSetCompareFunction::Less; |
| 365 | |
| 366 | if (column == PROPERTY_VALUE_COLUMN) |
| 367 | _CompareCriteria = PropertyDataSetCompareFunction::CompareByValue; |
| 368 | |
| 369 | PropertyDataSetCompareFunction compareFunc(_CompareCriteria, _CompareOperator); |
| 370 | std::sort(m_SelectedProperties.begin(), m_SelectedProperties.end(), compareFunc); |
| 371 | |
| 372 | QAbstractTableModel::beginResetModel(); |
| 373 | QAbstractTableModel::endResetModel(); |
| 374 | } |
| 375 | } |
| 376 | |
| 377 | //# PROTECTED GETTER |
| 378 | int QmitkPropertiesTableModel::FindProperty(const mitk::BaseProperty *_Property) const |