QmlJS: Add a UrlValue.

This will allow distinguishing mere strings from urls and allow
different completion.

Reviewed-by: Erik Verbruggen
This commit is contained in:
Christian Kamm
2010-11-11 16:04:55 +01:00
parent 402566626a
commit 83e7d7c350
2 changed files with 45 additions and 11 deletions

View File

@@ -61,6 +61,7 @@ class IntValue;
class RealValue;
class BooleanValue;
class StringValue;
class UrlValue;
class ObjectValue;
class FunctionValue;
class Reference;
@@ -115,6 +116,7 @@ public:
virtual const RealValue *asRealValue() const;
virtual const BooleanValue *asBooleanValue() const;
virtual const StringValue *asStringValue() const;
virtual const UrlValue *asUrlValue() const;
virtual const ObjectValue *asObjectValue() const;
virtual const FunctionValue *asFunctionValue() const;
virtual const Reference *asReference() const;
@@ -170,6 +172,12 @@ template <> Q_INLINE_TEMPLATE const StringValue *value_cast(const Value *v)
else return 0;
}
template <> Q_INLINE_TEMPLATE const UrlValue *value_cast(const Value *v)
{
if (v) return v->asUrlValue();
else return 0;
}
template <> Q_INLINE_TEMPLATE const ObjectValue *value_cast(const Value *v)
{
if (v) return v->asObjectValue();
@@ -236,7 +244,6 @@ public:
virtual const IntValue *asIntValue() const;
};
class QMLJS_EXPORT BooleanValue: public Value
{
public:
@@ -251,6 +258,12 @@ public:
virtual void accept(ValueVisitor *visitor) const;
};
class QMLJS_EXPORT UrlValue: public StringValue
{
public:
virtual const UrlValue *asUrlValue() const;
};
class QMLJS_EXPORT MemberProcessor
{
MemberProcessor(const MemberProcessor &other);
@@ -687,6 +700,7 @@ public:
const IntValue *intValue() const;
const BooleanValue *booleanValue() const;
const StringValue *stringValue() const;
const UrlValue *urlValue() const;
const ColorValue *colorValue() const;
const AnchorLineValue *anchorLineValue() const;
@@ -787,6 +801,7 @@ private:
IntValue _intValue;
BooleanValue _booleanValue;
StringValue _stringValue;
UrlValue _urlValue;
ColorValue _colorValue;
AnchorLineValue _anchorLineValue;
QList<Value *> _registeredValues;