Привет. Такой вот вопрос. Есть модель, все работает отлично.
Есть sortProxy, задача которого фильтровать модель.
Проблема в следующем, при определенных условиях модель ловит сигнал и должна обновить определенную строку.
так вот когда фильтр задан, то эти строки не обновляются, если фильтр убрать - то данные в таблице обновляются. Как быть?
Вот обновление модели по сигналу
void CRailObjectListModel::updateItemAttach(QRailItem *item, const CInterfaceTag &roleTag)
{
Q_UNUSED(item)
Q_UNUSED(roleTag)
CViewToModelLink * link = qobject_cast<CViewToModelLink*>(sender());
Q_ASSERT(link);
int indexOfObject = farray->objects().values().indexOf(link->railObject());
if(indexOfObject>=0)
{
dataChanged(createIndex(indexOfObject,0),createIndex(indexOfObject,maxColumn)); //обновляем всю строку в модели
}
}
А вот устанавливаю прокси модель
fsortRailObjectModel.setSourceModel(&flistModel); //QSortFilterProxyModel...
connect(fform,SIGNAL(filterChange(QString)),&fsortRailObjectModel,SLOT(setFilterWildcard(QString)));
fform->setObjectModel(&fsortRailObjectModel);
Как сделать так, что бы при установленном фильтре корретно обновлялись строки в таблице?