Russian Qt Forum

Qt => Model-View (MV) => Тема начата: unkeep от Ноябрь 04, 2013, 18:15



Название: [РЕШЕНО] mapToSource при QAbstractItemModel в QAbstractItemModel.
Отправлено: unkeep от Ноябрь 04, 2013, 18:15
нужно ли преобразовывать индексы если  QAbstractItemModel инкапсулирует другую QAbstractItemModel? Обе без сортировки

если да то что должно быть в моём mapToSource?


Название: Re: mapToSource при QAbstractItemModel в QAbstractItemModel.
Отправлено: unkeep от Ноябрь 05, 2013, 10:06
в общем так должно быть. Для меня правда немножко странно, ведь индекс посути тот же остаётся: тот же row, column и даже internalPointer, но тем не менее без преобразования вылетает...
Код
C++ (Qt)
QModelIndex SqlModulesModelAdapter::mapFromSource(const QModelIndex &sourceIndex) const
{
   if(!sourceIndex.isValid())
   {
       return QModelIndex();
   }
   return createIndex(sourceIndex.row(), sourceIndex.column(), sourceIndex.internalPointer());
}
 
QModelIndex SqlModulesModelAdapter::mapToSource(const QModelIndex &proxyIndex) const
{
   if(!proxyIndex.isValid())
   {
       return QModelIndex();
   }
 
   return _sqlModulesModelPtr->index(proxyIndex.row(), proxyIndex.column(),
                                        mapToSource(proxyIndex.parent()));
}