Skip to content

Commit

Permalink
libcore|NumberValue: Added a semantic hint for hexadecimal values
Browse files Browse the repository at this point in the history
  • Loading branch information
skyjake committed May 30, 2014
1 parent 6054bb0 commit 7e22ce6
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 7 deletions.
5 changes: 3 additions & 2 deletions doomsday/libcore/include/de/data/numbervalue.h
Expand Up @@ -48,15 +48,16 @@ class DENG2_PUBLIC NumberValue : public Value

enum SemanticHint {
Boolean = 0x1, ///< The number is intended to be a boolean value.
Hex = 0x2, ///< The number is intended to be a hexadecimal value.
Generic = 0 ///< Generic number.
};
Q_DECLARE_FLAGS(SemanticHints, SemanticHint)

public:
NumberValue(Number initialValue = 0, SemanticHints semantic = Generic);
NumberValue(dsize initialSize);
NumberValue(dint initialInteger);
NumberValue(duint initialUnsignedInteger);
NumberValue(dint initialInteger, SemanticHints semantic = Generic);
NumberValue(duint initialUnsignedInteger, SemanticHints semantic = Generic);
NumberValue(bool initialBoolean);

/**
Expand Down
12 changes: 8 additions & 4 deletions doomsday/libcore/src/data/numbervalue.cpp
Expand Up @@ -34,12 +34,12 @@ NumberValue::NumberValue(dsize initialSize)
: _value(initialSize), _semantic(Generic)
{}

NumberValue::NumberValue(dint initialInteger)
: _value(initialInteger), _semantic(Generic)
NumberValue::NumberValue(dint initialInteger, SemanticHints semantic)
: _value(initialInteger), _semantic(semantic)
{}

NumberValue::NumberValue(duint initialUnsignedInteger)
: _value(initialUnsignedInteger), _semantic(Generic)
NumberValue::NumberValue(duint initialUnsignedInteger, SemanticHints semantic)
: _value(initialUnsignedInteger), _semantic(semantic)
{}

NumberValue::NumberValue(bool initialBoolean)
Expand All @@ -64,6 +64,10 @@ Value::Text NumberValue::asText() const
{
s << (isTrue()? "True" : "False");
}
else if(_semantic.testFlag(Hex))
{
s << "0x" << QString::number(int(_value), 16);
}
else
{
s << _value;
Expand Down
2 changes: 1 addition & 1 deletion doomsday/libdoomsday/src/defs/dedparser.cpp
Expand Up @@ -635,7 +635,7 @@ DENG2_PIMPL(DEDParser)
int value = 0;
if(ReadFlags(&value, prefix))
{
dest->set(NumberValue(value));
dest->set(NumberValue(value, NumberValue::Hex));
return true;
}
return false;
Expand Down

0 comments on commit 7e22ce6

Please sign in to comment.