Есть class NewSortFilterProxyModel : public QSortFilterProxyModel работающий с QSqlTableModel и осуществляющий сортировку по более чем одному столбцу сразу.
Потребовалось некоторым строкам в таблице определить бекграунд, для этого переопределяю метод data:
QVariant NewSortFilterProxyModel::data(const QModelIndex &index, int role) const
{
if(!index.isValid())
return QVariant();
bool val = sourceModel()->index(index.row(), 5).data(Qt::DisplayRole).toBool();
switch (role) {
case Qt::DisplayRole:
return sourceModel()->data(index);
case Qt::BackgroundRole:
if(!val)
return QBrush(Qt::gray);
default:
return QVariant();
}
}
Собственно после этого отваливается любая сортировка, так понимаю нужно что то вернуть по case Qt::InitialSortOrderRole но не пойму что именно -_- как сортировку починить?