Проблема такая:
Есть модель, наследующая 
QAbstractItemModel (
ItemsModel). Она имеет древовидную структуру и используется в 
QTreeView. Нужно использовать ее через proxy(используется класс 
QSortFilterProxyModel(
ItemsProxyModel)) в 
QTableView. 
В искомой модели:
C++ (Qt)
int ItemsModel::columnCount(QModelIndex& parent) const
{
	return 1;
}
А в proxy модели, т.к. я исользую ее в 
QTableView мне нужны несколько колонок в которых будет разная информация из соответствующего item-a из оригинальной модели:
C++ (Qt)
int ItemsProxyModel::columnCount(QModelIndex& parent) const
{
	return 5;
}
Потому:
C++ (Qt)
QVariant ItemsProxyModel::data(QModelIndex& index, int role)
{
	const int  r = index.row(),
				  c = index.column();
	QModelIndex itemIndex = itemIndex = this->index(r, 0, index.parent());
	itemIndex = mapToSource(itemIndex);
	ItemsModel model = dynamic_cast<ItemsModel*>(sourceModel());
	Item* item = model->getItem(itemIndex);
	if(role == Qt::DisplayRole)
	{
		  if(c == 0)
		  {
				return model->data(itemIndex, role);
		  }
		  return item->infoForColumn(c);
	}
	return QSortFilterProxyModel::data(index, role)
}
Я не знаю почему, но в функцию 
ItemsProxyModel::data(QModelIndex& index, int role) приходят индексы, в которых c < 1. Т.е не приходят индексы других колонок.
Вместе с тем 
QTreeView рисует таблицу с 5 столбцами(Которые нельзя пометить, они disabled).
Побовал переопределить 
Qt::ItemFlags QAbstractProxyModel::flags ( const QModelIndex & index ) const. Не помогло.
Вопрос: как мне добиться, чтобы и в других колонках показывалась нужная мне информация?