bool QPropertyModel::setData( const QModelIndex& pIndex, const QVariant& pValue, int role ) { if( !pIndex.isValid() ) return false; if( role != Qt::DisplayRole ) return false; dataChanged(pIndex, pIndex); Property* prop = QPropertyModel::GetProperty(pIndex); if( IsComponent(pIndex) ) { dataChanged(pIndex.parent(), pIndex); } else if( prop->GetComponentCount() ) { dataChanged(createIndex(0, pIndex.column(), pIndex.row()), createIndex(prop->GetComponentCount()-1, pIndex.column(), pIndex.row())); } return false; }
int QPropertyModel::rowCount(const QModelIndex& parentIndex) const { if( !parentIndex.isValid() ) { return mEdited ? mEdited->GetClass()->GetPropertyCount() : 0; } else { if( parentIndex.internalPointer() >= (void*)2048 ) { Property* prop = static_cast<Property*>(parentIndex.internalPointer()); return prop->GetComponentCount(); } else { return 0; } } }