> I'm having an issue where my proxy model and its associated view aren't > updating live when changes are made in the source model. > > My proxy model simply is attempting to invert the rows of the source model. So > it inherits from a QSortFilterProxyModel and implements mapFromSource() and > mapToSource() as follows: > > QModelIndex invertRowsModel::mapFromSource(const QModelIndex > &sourceIndex) const > { > if(sourceIndex.isValid() && rowCount() > 0) > { > return this->index(rowCount() - sourceIndex.row() - 1, > sourceIndex.column()); > } > > return QModelIndex(); > } >
Small update here, but I'm not sure what it actually means... I added a debug statement at the top of my mapFromSource() function, so now that function reads like so: QModelIndex invertRowsModel::mapFromSource(const QModelIndex &sourceIndex) const { if(sourceIndex.isValid() && rowCount() > 0) { qDebug() << __FUNCTION__ << "valid index" << sourceIndex; return this->index(rowCount() - sourceIndex.row() - 1, sourceIndex.column()); } else { qDebug() << __FUNCTION__ << "invalid index" << sourceIndex; } return QModelIndex(); } With this in place, while modifying the data in the source view, I NEVER see the mapFromSource() "valid index" debug message from the proxy model. Right after setData() is called in the source model, I see a couple of these messages come out and that's it: invertRowsModel::mapFromSource invalid index QModelIndex(-1,-1,0x0,QObject(0x0)) I'm not sure exactly what that means or how to address it, but it is a new data point... Sean _______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest