diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-05-11 12:14:50 (GMT) |
---|---|---|
committer | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-05-11 12:14:50 (GMT) |
commit | 61f8c6f4d6af1a2e73c918b43da8f25871b254b7 (patch) | |
tree | 39e472b03d3d6c642ad6723851717609ce017c3c /src/declarative/qml/qmlparser_p.h | |
parent | edadc4df70324d3c4a875795d0032e129206f44b (diff) | |
download | Qt-61f8c6f4d6af1a2e73c918b43da8f25871b254b7.zip Qt-61f8c6f4d6af1a2e73c918b43da8f25871b254b7.tar.gz Qt-61f8c6f4d6af1a2e73c918b43da8f25871b254b7.tar.bz2 |
Remove some XML'isms from the parser/compiler interface
Diffstat (limited to 'src/declarative/qml/qmlparser_p.h')
-rw-r--r-- | src/declarative/qml/qmlparser_p.h | 44 |
1 files changed, 43 insertions, 1 deletions
diff --git a/src/declarative/qml/qmlparser_p.h b/src/declarative/qml/qmlparser_p.h index 31f8702..d67690b 100644 --- a/src/declarative/qml/qmlparser_p.h +++ b/src/declarative/qml/qmlparser_p.h @@ -152,6 +152,45 @@ namespace QmlParser void dump(int = 0) const; }; + class Variant + { + public: + enum Type { + Invalid, + Boolean, + Number, + String, + Script + }; + + Variant(); + Variant(const Variant &); + Variant(bool); + Variant(double); + Variant(const QString &, Type = String); + Variant &operator=(const Variant &); + + Type type() const; + + bool isBoolean() const { return type() == Boolean; } + bool isNumber() const { return type() == Number; } + bool isString() const { return type() == String; } + bool isScript() const { return type() == Script; } + + bool asBoolean() const; + QString asString() const; + double asNumber() const; + QString asScript() const; + + private: + Type t; + union { + bool b; + double d; + }; + QString s; + }; + class Value : public QmlRefCount { public: @@ -180,8 +219,11 @@ namespace QmlParser }; Type type; + // ### Temporary + QString primitive() const { return value.asScript(); } + // Primitive value - QString primitive; + Variant value; // Object value Object *object; |