コード例 #1
0
//--------------------------------------------------------------------------------------------------
/// 
//--------------------------------------------------------------------------------------------------
Qt::ItemFlags PdmUiTableViewModel::flags(const QModelIndex &index) const
{
    if (!index.isValid())
        return Qt::ItemIsEnabled;

    Qt::ItemFlags flagMask = QAbstractItemModel::flags(index);

    if (isRepresentingBoolean(index))
    {
        flagMask = flagMask | Qt::ItemIsUserCheckable;
    }
    else
    {
        flagMask = flagMask | Qt::ItemIsEditable;
    }

    PdmFieldHandle* field = getField(index);
    PdmUiFieldHandle* uiFieldHandle = field->uiCapability();
    if (uiFieldHandle)
    {
        if (uiFieldHandle->isUiReadOnly(m_currentConfigName))
        {
            flagMask = flagMask ^ Qt::ItemIsEditable;
        }
    }
    return flagMask;
}