forked from teamnwah/openmw-tes3coop
Add ColumnId role to the IdTree data methods
This commit is contained in:
parent
5e8718d8b2
commit
602f33bd91
1 changed files with 12 additions and 11 deletions
|
@ -35,28 +35,26 @@ QVariant CSMWorld::IdTree::data (const QModelIndex & index, int role) const
|
|||
if (!index.isValid())
|
||||
return QVariant();
|
||||
|
||||
if ((role!=Qt::DisplayRole && role!=Qt::EditRole) || index.row() < 0 || index.column() < 0)
|
||||
return QVariant();
|
||||
|
||||
if (index.internalId() != 0)
|
||||
{
|
||||
std::pair<int, int> parentAddress(unfoldIndexAddress(index.internalId()));
|
||||
const NestableColumn *parentColumn = mNestedCollection->getNestableColumn(parentAddress.second);
|
||||
|
||||
if (role == Qt::EditRole &&
|
||||
!mNestedCollection->getNestableColumn(parentAddress.second)->nestedColumn(index.column()).isEditable())
|
||||
{
|
||||
if (role == ColumnBase::Role_ColumnId)
|
||||
return parentColumn->nestedColumn(index.column()).mColumnId;
|
||||
|
||||
if (role == Qt::EditRole && !parentColumn->nestedColumn(index.column()).isEditable())
|
||||
return QVariant();
|
||||
|
||||
if (role != Qt::DisplayRole && role != Qt::EditRole)
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
return mNestedCollection->getNestedData(parentAddress.first,
|
||||
parentAddress.second, index.row(), index.column());
|
||||
}
|
||||
else
|
||||
{
|
||||
if (role==Qt::EditRole && !idCollection()->getColumn (index.column()).isEditable())
|
||||
return QVariant();
|
||||
|
||||
return idCollection()->getData (index.row(), index.column());
|
||||
return IdTable::data(index, role);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -79,6 +77,9 @@ QVariant CSMWorld::IdTree::nestedHeaderData(int section, int subSection, Qt::Ori
|
|||
if (role==ColumnBase::Role_Display)
|
||||
return parentColumn->nestedColumn(subSection).mDisplayType;
|
||||
|
||||
if (role==ColumnBase::Role_ColumnId)
|
||||
return parentColumn->nestedColumn(subSection).mColumnId;
|
||||
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue