void Token::type(const ::Type *t) { _type = t; if (t) { _tokType = eType; isEnumType(_type->isEnumType()); } else if (_tokType == eType) _tokType = eName; }
/*! Converts the list of keys \a keys to their combined integer value. \sa isSetType(), valueToKey(), keysToValue() */ int QMetaProperty::keysToValue( const QStrList& keys ) const { if ( !isEnumType() ) return -1; int value = 0; for ( QStrListIterator it( keys ); it.current(); ++it ) { value |= keyToValue( it.current() ); } return value; }
/*! Converts the enumeration value \a value to its literal key. For set types, use valueToKeys(). \sa valueToKey(), isSetType(), valueToKeys() */ const char* QMetaProperty::valueToKey( int value ) const { if ( !isEnumType() ) return 0; for( uint i = enumData->count; i > 0; --i ) { if ( value == enumData->items[i-1].value ) return enumData->items[i-1].key ; } return 0; }
/*! Converts the enumeration key \a key to its integer value. For set types, use keysToValue(). \sa valueToKey(), isSetType(), keysToValue() */ int QMetaProperty::keyToValue( const char* key ) const { if ( !isEnumType() ) return -1; for( uint i = enumData->count; i > 0; --i ) { if ( !qstrcmp( key, enumData->items[i-1].key) ) return enumData->items[i-1].value; } return -1; }
for_fields(field, at) { if (!field->hasFlag(FLAG_IMPLICIT_ALIAS_FIELD)) { if (isVarSymbol(field)) { if (strcmp(field->name, "_promotionType")) { build_accessors(at, field); } } else if (isEnumType(field->type)) { build_accessors(at, field); } } }
/*! Converts the set value \a value to a list of keys. \sa isSetType(), valueToKey(), valueToKeys() */ QStrList QMetaProperty::valueToKeys( int value ) const { QStrList keys; if ( !isEnumType() ) return keys; for( uint i = enumData->count; i > 0; --i ) { int k = enumData->items[i-1].value; if ( (value & k) == k ) { value = value & ~k; keys.append( enumData->items[i-1].key ); } } return keys; }