diff options
author | Bea Lam <bea.lam@nokia.com> | 2010-02-25 23:35:43 (GMT) |
---|---|---|
committer | Bea Lam <bea.lam@nokia.com> | 2010-02-25 23:35:43 (GMT) |
commit | 31c8459d65aaca9131a8aa32e29e0591ed7892cb (patch) | |
tree | 5339f4b4291c17a9a765a70990ec3c12f4055de7 /src/declarative | |
parent | 5c82031a7357f4f3d100be30c0bfe4e878712829 (diff) | |
parent | 61811d9b43828c1cc53c773fd66b78313f4fb942 (diff) | |
download | Qt-31c8459d65aaca9131a8aa32e29e0591ed7892cb.zip Qt-31c8459d65aaca9131a8aa32e29e0591ed7892cb.tar.gz Qt-31c8459d65aaca9131a8aa32e29e0591ed7892cb.tar.bz2 |
Merge branch 'master' of scm.dev.nokia.troll.no:qt/qt-qml
Conflicts:
src/declarative/qml/qdeclarativeproperty.cpp
Diffstat (limited to 'src/declarative')
56 files changed, 1535 insertions, 1366 deletions
diff --git a/src/declarative/graphicsitems/qdeclarativegridview.cpp b/src/declarative/graphicsitems/qdeclarativegridview.cpp index b378db2..ab5022b 100644 --- a/src/declarative/graphicsitems/qdeclarativegridview.cpp +++ b/src/declarative/graphicsitems/qdeclarativegridview.cpp @@ -607,11 +607,11 @@ void QDeclarativeGridViewPrivate::createHighlight() item->setParent(q->viewport()); highlight = new FxGridItem(item, q); highlightXAnimator = new QDeclarativeEaseFollow(q); - highlightXAnimator->setTarget(QDeclarativeMetaProperty(highlight->item, QLatin1String("x"))); + highlightXAnimator->setTarget(QDeclarativeProperty(highlight->item, QLatin1String("x"))); highlightXAnimator->setDuration(150); highlightXAnimator->setEnabled(autoHighlight); highlightYAnimator = new QDeclarativeEaseFollow(q); - highlightYAnimator->setTarget(QDeclarativeMetaProperty(highlight->item, QLatin1String("y"))); + highlightYAnimator->setTarget(QDeclarativeProperty(highlight->item, QLatin1String("y"))); highlightYAnimator->setDuration(150); highlightYAnimator->setEnabled(autoHighlight); changed = true; diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp index bd2f4fc..e6b6f2a 100644 --- a/src/declarative/graphicsitems/qdeclarativelistview.cpp +++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp @@ -804,13 +804,13 @@ void QDeclarativeListViewPrivate::createHighlight() highlight->item->setWidth(currentItem->item->width()); const QLatin1String posProp(orient == QDeclarativeListView::Vertical ? "y" : "x"); highlightPosAnimator = new QDeclarativeEaseFollow(q); - highlightPosAnimator->setTarget(QDeclarativeMetaProperty(highlight->item, posProp)); + highlightPosAnimator->setTarget(QDeclarativeProperty(highlight->item, posProp)); highlightPosAnimator->setVelocity(highlightMoveSpeed); highlightPosAnimator->setEnabled(autoHighlight); const QLatin1String sizeProp(orient == QDeclarativeListView::Vertical ? "height" : "width"); highlightSizeAnimator = new QDeclarativeEaseFollow(q); highlightSizeAnimator->setVelocity(highlightResizeSpeed); - highlightSizeAnimator->setTarget(QDeclarativeMetaProperty(highlight->item, sizeProp)); + highlightSizeAnimator->setTarget(QDeclarativeProperty(highlight->item, sizeProp)); highlightSizeAnimator->setEnabled(autoHighlight); changed = true; } diff --git a/src/declarative/graphicsitems/qdeclarativeparticles.cpp b/src/declarative/graphicsitems/qdeclarativeparticles.cpp index 3c07798..1a58d3f 100644 --- a/src/declarative/graphicsitems/qdeclarativeparticles.cpp +++ b/src/declarative/graphicsitems/qdeclarativeparticles.cpp @@ -1260,7 +1260,7 @@ void QDeclarativeParticlesPainter::paint(QPainter *p, const QStyleOptionGraphics const int myX = x() + parentItem()->x(); const int myY = y() + parentItem()->y(); - QVarLengthArray<QDrawPixmaps::Data, 256> pixmapData; + QVarLengthArray<QPainter::Fragment, 256> pixmapData; pixmapData.resize(d->particles.count()); const QRectF sourceRect = d->image.rect(); @@ -1268,16 +1268,20 @@ void QDeclarativeParticlesPainter::paint(QPainter *p, const QStyleOptionGraphics qreal halfPHeight = sourceRect.height()/2.; for (int i = 0; i < d->particles.count(); ++i) { const QDeclarativeParticle &particle = d->particles.at(i); - pixmapData[i].point = QPointF(particle.x - myX + halfPWidth, particle.y - myY + halfPHeight); + pixmapData[i].x = particle.x - myX + halfPWidth; + pixmapData[i].y = particle.y - myY + halfPHeight; pixmapData[i].opacity = particle.opacity; //these never change pixmapData[i].rotation = 0; pixmapData[i].scaleX = 1; pixmapData[i].scaleY = 1; - pixmapData[i].source = sourceRect; + pixmapData[i].sourceLeft = sourceRect.left(); + pixmapData[i].sourceTop = sourceRect.top(); + pixmapData[i].width = sourceRect.width(); + pixmapData[i].height = sourceRect.height(); } - qDrawPixmaps(p, pixmapData.data(), d->particles.count(), d->image); + p->drawPixmapFragments(pixmapData.data(), d->particles.count(), d->image); } void QDeclarativeParticles::componentComplete() diff --git a/src/declarative/qml/parser/qdeclarativejs.g b/src/declarative/qml/parser/qdeclarativejs.g index e1cb5a5..7cf81b2 100644 --- a/src/declarative/qml/parser/qdeclarativejs.g +++ b/src/declarative/qml/parser/qdeclarativejs.g @@ -65,6 +65,7 @@ %token T_PUBLIC "public" %token T_IMPORT "import" %token T_AS "as" +%token T_ON "on" --- feed tokens %token T_FEED_UI_PROGRAM @@ -773,6 +774,17 @@ case $rule_number: { } break; ./ +UiObjectMember: UiQualifiedId T_ON UiQualifiedId UiObjectInitializer ; +/. +case $rule_number: { + AST::UiObjectBinding *node = makeAstNode<AST::UiObjectBinding> (driver->nodePool(), + sym(3).UiQualifiedId, sym(1).UiQualifiedId, sym(4).UiObjectInitializer); + node->colonToken = loc(2); + node->hasOnToken = true; + sym(1).Node = node; +} break; +./ + UiObjectMember: UiQualifiedId T_COLON Block ; /.case $rule_number:./ @@ -870,8 +882,8 @@ case $rule_number: { } break; ./ -UiObjectMember: T_PROPERTY T_IDENTIFIER T_LT UiPropertyType T_GT T_IDENTIFIER T_AUTOMATIC_SEMICOLON ; -UiObjectMember: T_PROPERTY T_IDENTIFIER T_LT UiPropertyType T_GT T_IDENTIFIER T_SEMICOLON ; +UiObjectMember: T_PROPERTY T_IDENTIFIER T_LT UiPropertyType T_GT JsIdentifier T_AUTOMATIC_SEMICOLON ; +UiObjectMember: T_PROPERTY T_IDENTIFIER T_LT UiPropertyType T_GT JsIdentifier T_SEMICOLON ; /. case $rule_number: { AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(4).sval, sym(6).sval); @@ -885,8 +897,8 @@ case $rule_number: { } break; ./ -UiObjectMember: T_PROPERTY UiPropertyType T_IDENTIFIER T_AUTOMATIC_SEMICOLON ; -UiObjectMember: T_PROPERTY UiPropertyType T_IDENTIFIER T_SEMICOLON ; +UiObjectMember: T_PROPERTY UiPropertyType JsIdentifier T_AUTOMATIC_SEMICOLON ; +UiObjectMember: T_PROPERTY UiPropertyType JsIdentifier T_SEMICOLON ; /. case $rule_number: { AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(2).sval, sym(3).sval); @@ -898,8 +910,8 @@ case $rule_number: { } break; ./ -UiObjectMember: T_DEFAULT T_PROPERTY UiPropertyType T_IDENTIFIER T_AUTOMATIC_SEMICOLON ; -UiObjectMember: T_DEFAULT T_PROPERTY UiPropertyType T_IDENTIFIER T_SEMICOLON ; +UiObjectMember: T_DEFAULT T_PROPERTY UiPropertyType JsIdentifier T_AUTOMATIC_SEMICOLON ; +UiObjectMember: T_DEFAULT T_PROPERTY UiPropertyType JsIdentifier T_SEMICOLON ; /. case $rule_number: { AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(3).sval, sym(4).sval); @@ -913,8 +925,8 @@ case $rule_number: { } break; ./ -UiObjectMember: T_PROPERTY UiPropertyType T_IDENTIFIER T_COLON Expression T_AUTOMATIC_SEMICOLON ; -UiObjectMember: T_PROPERTY UiPropertyType T_IDENTIFIER T_COLON Expression T_SEMICOLON ; +UiObjectMember: T_PROPERTY UiPropertyType JsIdentifier T_COLON Expression T_AUTOMATIC_SEMICOLON ; +UiObjectMember: T_PROPERTY UiPropertyType JsIdentifier T_COLON Expression T_SEMICOLON ; /. case $rule_number: { AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(2).sval, sym(3).sval, @@ -928,8 +940,8 @@ case $rule_number: { } break; ./ -UiObjectMember: T_READONLY T_PROPERTY UiPropertyType T_IDENTIFIER T_COLON Expression T_AUTOMATIC_SEMICOLON ; -UiObjectMember: T_READONLY T_PROPERTY UiPropertyType T_IDENTIFIER T_COLON Expression T_SEMICOLON ; +UiObjectMember: T_READONLY T_PROPERTY UiPropertyType JsIdentifier T_COLON Expression T_AUTOMATIC_SEMICOLON ; +UiObjectMember: T_READONLY T_PROPERTY UiPropertyType JsIdentifier T_COLON Expression T_SEMICOLON ; /. case $rule_number: { AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(3).sval, sym(4).sval, @@ -945,8 +957,8 @@ case $rule_number: { } break; ./ -UiObjectMember: T_DEFAULT T_PROPERTY UiPropertyType T_IDENTIFIER T_COLON Expression T_AUTOMATIC_SEMICOLON ; -UiObjectMember: T_DEFAULT T_PROPERTY UiPropertyType T_IDENTIFIER T_COLON Expression T_SEMICOLON ; +UiObjectMember: T_DEFAULT T_PROPERTY UiPropertyType JsIdentifier T_COLON Expression T_AUTOMATIC_SEMICOLON ; +UiObjectMember: T_DEFAULT T_PROPERTY UiPropertyType JsIdentifier T_COLON Expression T_SEMICOLON ; /. case $rule_number: { AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(3).sval, sym(4).sval, @@ -1005,6 +1017,15 @@ case $rule_number: { } ./ +JsIdentifier: T_ON ; +/. +case $rule_number: { + QString s = QLatin1String(QDeclarativeJSGrammar::spell[T_READONLY]); + sym(1).sval = driver->intern(s.constData(), s.length()); + break; +} +./ + -------------------------------------------------------------------------------------------------------- -- Expressions -------------------------------------------------------------------------------------------------------- diff --git a/src/declarative/qml/parser/qdeclarativejsast_p.h b/src/declarative/qml/parser/qdeclarativejsast_p.h index 0a83fe2..c1945ce 100644 --- a/src/declarative/qml/parser/qdeclarativejsast_p.h +++ b/src/declarative/qml/parser/qdeclarativejsast_p.h @@ -2599,11 +2599,17 @@ public: UiObjectInitializer *initializer) : qualifiedId(qualifiedId), qualifiedTypeNameId(qualifiedTypeNameId), - initializer(initializer) + initializer(initializer), + hasOnToken(false) { kind = K; } virtual SourceLocation firstSourceLocation() const - { return qualifiedId->identifierToken; } + { + if (hasOnToken && qualifiedTypeNameId) + return qualifiedTypeNameId->identifierToken; + + return qualifiedId->identifierToken; + } virtual SourceLocation lastSourceLocation() const { return initializer->rbraceToken; } @@ -2615,6 +2621,7 @@ public: UiQualifiedId *qualifiedTypeNameId; UiObjectInitializer *initializer; SourceLocation colonToken; + bool hasOnToken; }; class QML_PARSER_EXPORT UiScriptBinding: public UiObjectMember diff --git a/src/declarative/qml/parser/qdeclarativejsgrammar.cpp b/src/declarative/qml/parser/qdeclarativejsgrammar.cpp index aadb432..0677bc5 100644 --- a/src/declarative/qml/parser/qdeclarativejsgrammar.cpp +++ b/src/declarative/qml/parser/qdeclarativejsgrammar.cpp @@ -54,581 +54,608 @@ const char *const QDeclarativeJSGrammar::spell [] = { ")", ";", 0, "*", "*=", "string literal", "property", "signal", "readonly", "switch", "this", "throw", "~", "try", "typeof", "var", "void", "while", "with", "^", "^=", "null", "true", "false", "const", "debugger", "reserved word", "multiline string literal", "comment", "public", - "import", "as", 0, 0, 0, 0, 0, 0, 0, 0}; + "import", "as", "on", 0, 0, 0, 0, 0, 0, 0, + 0}; const short QDeclarativeJSGrammar::lhs [] = { - 100, 100, 100, 100, 100, 100, 101, 107, 107, 110, - 110, 112, 111, 111, 111, 111, 111, 111, 111, 111, - 114, 109, 108, 117, 117, 118, 118, 119, 119, 116, - 105, 105, 105, 105, 105, 105, 105, 125, 125, 125, - 126, 126, 127, 127, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 115, 115, 115, 115, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 120, 132, 132, 132, 132, 131, - 131, 134, 134, 136, 136, 136, 136, 136, 136, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, - 138, 138, 113, 113, 113, 113, 113, 141, 141, 142, - 142, 142, 142, 140, 140, 143, 143, 144, 144, 145, - 145, 145, 146, 146, 146, 146, 146, 146, 146, 146, - 146, 146, 147, 147, 147, 147, 148, 148, 148, 149, - 149, 149, 149, 150, 150, 150, 150, 150, 150, 150, - 151, 151, 151, 151, 151, 151, 152, 152, 152, 152, - 152, 153, 153, 153, 153, 153, 154, 154, 155, 155, + 101, 101, 101, 101, 101, 101, 102, 108, 108, 111, + 111, 113, 112, 112, 112, 112, 112, 112, 112, 112, + 115, 110, 109, 118, 118, 119, 119, 120, 120, 117, + 106, 106, 106, 106, 106, 106, 106, 106, 126, 126, + 126, 127, 127, 128, 128, 106, 106, 106, 106, 106, + 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, + 106, 106, 106, 116, 116, 116, 116, 116, 131, 131, + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 121, 133, 133, 133, + 133, 132, 132, 135, 135, 137, 137, 137, 137, 137, + 137, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, + 138, 138, 139, 139, 114, 114, 114, 114, 114, 142, + 142, 143, 143, 143, 143, 141, 141, 144, 144, 145, + 145, 146, 146, 146, 147, 147, 147, 147, 147, 147, + 147, 147, 147, 147, 148, 148, 148, 148, 149, 149, + 149, 150, 150, 150, 150, 151, 151, 151, 151, 151, + 151, 151, 152, 152, 152, 152, 152, 152, 153, 153, + 153, 153, 153, 154, 154, 154, 154, 154, 155, 155, 156, 156, 157, 157, 158, 158, 159, 159, 160, 160, 161, 161, 162, 162, 163, 163, 164, 164, 165, 165, - 135, 135, 166, 166, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 167, 167, 167, 103, 103, 168, 168, - 169, 169, 170, 170, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, 102, 121, - 182, 182, 181, 181, 129, 129, 183, 183, 184, 184, - 186, 186, 185, 187, 190, 188, 188, 191, 189, 189, - 122, 123, 123, 124, 124, 171, 171, 171, 171, 171, - 171, 171, 172, 172, 172, 172, 173, 173, 173, 173, - 174, 174, 175, 177, 192, 192, 195, 195, 193, 193, - 196, 194, 176, 176, 176, 178, 178, 179, 179, 179, - 197, 198, 180, 180, 128, 139, 202, 202, 199, 199, - 200, 200, 203, 106, 204, 204, 104, 104, 201, 201, - 133, 133, 205}; + 166, 166, 136, 136, 167, 167, 168, 168, 168, 168, + 168, 168, 168, 168, 168, 168, 168, 168, 104, 104, + 169, 169, 170, 170, 171, 171, 103, 103, 103, 103, + 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, + 103, 122, 183, 183, 182, 182, 130, 130, 184, 184, + 185, 185, 187, 187, 186, 188, 191, 189, 189, 192, + 190, 190, 123, 124, 124, 125, 125, 172, 172, 172, + 172, 172, 172, 172, 173, 173, 173, 173, 174, 174, + 174, 174, 175, 175, 176, 178, 193, 193, 196, 196, + 194, 194, 197, 195, 177, 177, 177, 179, 179, 180, + 180, 180, 198, 199, 181, 181, 129, 140, 203, 203, + 200, 200, 201, 201, 204, 107, 205, 205, 105, 105, + 202, 202, 134, 134, 206}; const short QDeclarativeJSGrammar::rhs [] = { 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 3, 3, 5, 5, 4, 4, 2, 0, 1, 1, 2, 1, 3, 2, 3, 2, - 1, 5, 4, 3, 3, 3, 3, 1, 1, 1, - 0, 1, 2, 4, 6, 6, 3, 3, 7, 7, - 4, 4, 5, 5, 6, 6, 7, 7, 7, 7, + 1, 5, 4, 4, 3, 3, 3, 3, 1, 1, + 1, 0, 1, 2, 4, 6, 6, 3, 3, 7, + 7, 4, 4, 5, 5, 6, 6, 7, 7, 7, + 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, + 3, 4, 5, 3, 4, 3, 1, 1, 2, 3, + 4, 1, 2, 3, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 3, 3, 4, - 5, 3, 4, 3, 1, 1, 2, 3, 4, 1, - 2, 3, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 4, 3, 5, 1, 2, 4, - 4, 4, 3, 0, 1, 1, 3, 1, 1, 1, - 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 1, 3, 3, 3, 1, 3, 3, 1, - 3, 3, 3, 1, 3, 3, 3, 3, 3, 3, - 1, 3, 3, 3, 3, 3, 1, 3, 3, 3, - 3, 1, 3, 3, 3, 3, 1, 3, 1, 3, + 1, 1, 1, 1, 1, 1, 4, 3, 5, 1, + 2, 4, 4, 4, 3, 0, 1, 1, 3, 1, + 1, 1, 2, 2, 1, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 1, 3, 3, 3, 1, 3, + 3, 1, 3, 3, 3, 1, 3, 3, 3, 3, + 3, 3, 1, 3, 3, 3, 3, 3, 1, 3, + 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, - 1, 3, 1, 3, 1, 3, 1, 5, 1, 5, - 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 3, 0, 1, - 1, 3, 0, 1, 1, 1, 1, 1, 1, 1, + 1, 3, 1, 3, 1, 3, 1, 3, 1, 5, + 1, 5, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 1, 2, 0, 1, 3, 3, 1, 1, 1, 3, - 1, 3, 2, 2, 2, 0, 1, 2, 0, 1, - 1, 2, 2, 7, 5, 7, 7, 5, 9, 10, - 7, 8, 2, 2, 3, 3, 2, 2, 3, 3, - 3, 3, 5, 5, 3, 5, 1, 2, 0, 1, - 4, 3, 3, 3, 3, 3, 3, 3, 3, 4, - 5, 2, 2, 2, 8, 8, 1, 3, 0, 1, - 0, 1, 1, 1, 1, 2, 1, 1, 0, 1, - 0, 1, 2}; + 0, 1, 1, 3, 0, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 3, 1, 2, 0, 1, 3, 3, 1, 1, + 1, 3, 1, 3, 2, 2, 2, 0, 1, 2, + 0, 1, 1, 2, 2, 7, 5, 7, 7, 5, + 9, 10, 7, 8, 2, 2, 3, 3, 2, 2, + 3, 3, 3, 3, 5, 5, 3, 5, 1, 2, + 0, 1, 4, 3, 3, 3, 3, 3, 3, 3, + 3, 4, 5, 2, 2, 2, 8, 8, 1, 3, + 0, 1, 0, 1, 1, 1, 1, 2, 1, 1, + 0, 1, 0, 1, 2}; const short QDeclarativeJSGrammar::action_default [] = { - 0, 0, 0, 0, 0, 0, 22, 0, 170, 237, - 201, 209, 205, 149, 221, 197, 3, 134, 68, 150, - 213, 217, 138, 167, 148, 153, 133, 187, 174, 0, - 75, 76, 71, 339, 63, 341, 0, 0, 0, 0, - 73, 0, 0, 69, 72, 0, 0, 64, 66, 65, - 74, 67, 0, 70, 0, 0, 163, 0, 0, 150, - 169, 152, 151, 0, 0, 0, 165, 166, 164, 168, - 0, 198, 0, 0, 0, 0, 188, 0, 0, 0, - 0, 0, 0, 178, 0, 0, 0, 172, 173, 171, - 176, 180, 179, 177, 175, 190, 189, 191, 0, 206, - 0, 202, 0, 0, 144, 131, 143, 132, 100, 101, - 102, 127, 103, 128, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 129, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 130, 0, - 0, 142, 238, 145, 0, 146, 0, 147, 141, 0, - 234, 227, 225, 232, 233, 231, 230, 236, 229, 228, - 226, 235, 222, 0, 210, 0, 0, 214, 0, 0, - 218, 0, 0, 144, 136, 0, 135, 0, 140, 154, - 0, 340, 329, 330, 0, 327, 0, 328, 0, 331, - 245, 252, 251, 259, 247, 0, 248, 332, 0, 338, - 249, 250, 255, 253, 335, 333, 337, 256, 0, 267, - 0, 0, 0, 0, 339, 63, 0, 341, 64, 239, - 281, 65, 0, 0, 0, 268, 0, 0, 257, 258, - 0, 246, 254, 282, 283, 326, 336, 0, 297, 298, - 299, 300, 0, 293, 294, 295, 296, 323, 324, 0, - 0, 0, 0, 0, 286, 287, 243, 241, 203, 211, - 207, 223, 199, 244, 0, 150, 215, 219, 192, 181, - 0, 0, 200, 0, 0, 0, 0, 193, 0, 0, - 0, 0, 0, 185, 183, 186, 184, 182, 195, 194, - 196, 0, 208, 0, 204, 0, 242, 150, 0, 224, - 239, 240, 0, 239, 0, 0, 289, 0, 0, 0, - 291, 0, 212, 0, 0, 216, 0, 0, 220, 279, - 0, 271, 280, 274, 0, 278, 0, 239, 272, 0, - 239, 0, 0, 290, 0, 0, 0, 292, 340, 329, - 0, 0, 331, 0, 325, 0, 315, 0, 0, 0, - 285, 0, 284, 0, 342, 0, 99, 261, 264, 0, - 100, 267, 103, 128, 105, 106, 71, 110, 111, 63, - 112, 115, 69, 72, 64, 239, 65, 74, 118, 67, - 120, 70, 122, 123, 268, 125, 126, 130, 0, 92, - 0, 0, 94, 98, 96, 83, 95, 97, 0, 93, - 82, 262, 260, 138, 139, 144, 0, 137, 0, 314, - 0, 301, 302, 0, 313, 0, 0, 0, 304, 309, - 307, 310, 0, 0, 308, 309, 0, 305, 0, 306, - 263, 312, 0, 263, 311, 0, 316, 317, 0, 263, - 318, 319, 0, 0, 320, 0, 0, 0, 321, 322, - 156, 155, 0, 0, 0, 288, 0, 0, 0, 303, - 276, 269, 0, 277, 273, 0, 275, 265, 0, 266, - 270, 86, 0, 0, 90, 77, 0, 79, 88, 0, - 80, 89, 91, 81, 87, 78, 0, 84, 160, 158, - 162, 159, 157, 161, 6, 334, 4, 2, 61, 85, - 0, 0, 64, 66, 65, 31, 5, 0, 62, 0, - 40, 39, 38, 0, 0, 53, 0, 54, 0, 59, - 60, 0, 40, 0, 0, 0, 0, 0, 49, 50, - 0, 51, 0, 52, 0, 55, 56, 0, 0, 0, - 0, 0, 57, 58, 0, 47, 41, 48, 42, 0, - 0, 0, 0, 44, 0, 45, 46, 43, 0, 0, - 30, 34, 35, 36, 37, 138, 263, 0, 0, 100, - 267, 103, 128, 105, 106, 71, 110, 111, 63, 112, - 115, 69, 72, 64, 239, 65, 74, 118, 67, 120, - 70, 122, 123, 268, 125, 126, 130, 138, 0, 26, - 0, 0, 32, 27, 33, 28, 24, 0, 29, 25, - 8, 0, 10, 0, 9, 0, 1, 21, 12, 0, - 13, 0, 14, 0, 19, 20, 0, 15, 16, 0, - 17, 18, 11, 23, 7, 343}; + 0, 0, 0, 0, 0, 0, 22, 0, 172, 239, + 203, 211, 207, 151, 223, 199, 3, 136, 70, 152, + 215, 219, 140, 169, 150, 155, 135, 189, 176, 0, + 77, 78, 73, 341, 64, 343, 0, 0, 0, 0, + 75, 0, 0, 71, 74, 68, 0, 0, 65, 67, + 66, 76, 69, 0, 72, 0, 0, 165, 0, 0, + 152, 171, 154, 153, 0, 0, 0, 167, 168, 166, + 170, 0, 200, 0, 0, 0, 0, 190, 0, 0, + 0, 0, 0, 0, 180, 0, 0, 0, 174, 175, + 173, 178, 182, 181, 179, 177, 192, 191, 193, 0, + 208, 0, 204, 0, 0, 146, 133, 145, 134, 102, + 103, 104, 129, 105, 130, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 131, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 132, + 0, 0, 144, 240, 147, 0, 148, 0, 149, 143, + 0, 236, 229, 227, 234, 235, 233, 232, 238, 231, + 230, 228, 237, 224, 0, 212, 0, 0, 216, 0, + 0, 220, 0, 0, 146, 138, 0, 137, 0, 142, + 156, 0, 342, 331, 332, 0, 329, 0, 330, 0, + 333, 247, 254, 253, 261, 249, 0, 250, 334, 0, + 340, 251, 252, 257, 255, 337, 335, 339, 258, 0, + 269, 0, 0, 0, 0, 341, 64, 0, 343, 65, + 241, 283, 66, 0, 0, 0, 270, 0, 0, 259, + 260, 0, 248, 256, 284, 285, 328, 338, 0, 299, + 300, 301, 302, 0, 295, 296, 297, 298, 325, 326, + 0, 0, 0, 0, 0, 288, 289, 245, 243, 205, + 213, 209, 225, 201, 246, 0, 152, 217, 221, 194, + 183, 0, 0, 202, 0, 0, 0, 0, 195, 0, + 0, 0, 0, 0, 187, 185, 188, 186, 184, 197, + 196, 198, 0, 210, 0, 206, 0, 244, 152, 0, + 226, 241, 242, 0, 241, 0, 0, 291, 0, 0, + 0, 293, 0, 214, 0, 0, 218, 0, 0, 222, + 281, 0, 273, 282, 276, 0, 280, 0, 241, 274, + 0, 241, 0, 0, 292, 0, 0, 0, 294, 342, + 331, 0, 0, 333, 0, 327, 0, 317, 0, 0, + 0, 287, 0, 286, 0, 344, 0, 101, 263, 266, + 0, 102, 269, 105, 130, 107, 108, 73, 112, 113, + 64, 114, 117, 71, 74, 65, 241, 66, 76, 120, + 69, 122, 72, 124, 125, 270, 127, 128, 132, 0, + 94, 0, 0, 96, 100, 98, 85, 97, 99, 0, + 95, 84, 264, 262, 140, 141, 146, 0, 139, 0, + 316, 0, 303, 304, 0, 315, 0, 0, 0, 306, + 311, 309, 312, 0, 0, 310, 311, 0, 307, 0, + 308, 265, 314, 0, 265, 313, 0, 318, 319, 0, + 265, 320, 321, 0, 0, 322, 0, 0, 0, 323, + 324, 158, 157, 0, 0, 0, 290, 0, 0, 0, + 305, 278, 271, 0, 279, 275, 0, 277, 267, 0, + 268, 272, 88, 0, 0, 92, 79, 0, 81, 90, + 0, 82, 91, 93, 83, 89, 80, 0, 86, 162, + 160, 164, 161, 159, 163, 6, 336, 4, 2, 62, + 87, 0, 0, 65, 67, 66, 31, 5, 0, 63, + 0, 41, 40, 39, 0, 0, 54, 0, 55, 0, + 60, 61, 0, 41, 0, 0, 0, 0, 0, 50, + 51, 0, 52, 0, 53, 0, 56, 57, 0, 0, + 0, 0, 0, 58, 59, 0, 48, 42, 49, 43, + 0, 0, 0, 0, 45, 0, 46, 47, 44, 0, + 0, 0, 30, 35, 36, 37, 38, 140, 265, 0, + 0, 102, 269, 105, 130, 107, 108, 73, 112, 113, + 64, 114, 117, 71, 74, 65, 241, 66, 76, 120, + 69, 122, 72, 124, 125, 270, 127, 128, 132, 140, + 0, 26, 0, 0, 32, 27, 33, 28, 24, 0, + 29, 25, 0, 34, 8, 0, 10, 0, 9, 0, + 1, 21, 12, 0, 13, 0, 14, 0, 19, 20, + 0, 15, 16, 0, 17, 18, 11, 23, 7, 345}; const short QDeclarativeJSGrammar::goto_default [] = { - 7, 616, 206, 195, 204, 506, 494, 615, 634, 610, - 614, 612, 617, 22, 613, 18, 505, 607, 598, 560, - 507, 190, 194, 196, 200, 523, 549, 548, 199, 231, - 26, 473, 472, 355, 354, 9, 353, 356, 106, 17, - 144, 24, 13, 143, 19, 25, 56, 23, 8, 28, - 27, 268, 15, 262, 10, 258, 12, 260, 11, 259, - 20, 266, 21, 267, 14, 261, 257, 298, 410, 263, - 264, 201, 192, 191, 203, 232, 202, 207, 228, 229, - 193, 359, 358, 230, 462, 461, 320, 321, 464, 323, - 463, 322, 418, 422, 425, 421, 420, 440, 441, 184, - 198, 180, 183, 197, 205, 0}; + 7, 620, 207, 196, 205, 507, 495, 619, 638, 614, + 618, 616, 621, 22, 617, 18, 506, 609, 600, 562, + 508, 191, 195, 197, 201, 524, 550, 549, 200, 232, + 26, 474, 473, 356, 355, 9, 354, 357, 107, 17, + 145, 24, 13, 144, 19, 25, 57, 23, 8, 28, + 27, 269, 15, 263, 10, 259, 12, 261, 11, 260, + 20, 267, 21, 268, 14, 262, 258, 299, 411, 264, + 265, 202, 193, 192, 204, 233, 203, 208, 229, 230, + 194, 360, 359, 231, 463, 462, 321, 322, 465, 324, + 464, 323, 419, 423, 426, 422, 421, 441, 442, 185, + 199, 181, 184, 198, 206, 0}; const short QDeclarativeJSGrammar::action_index [] = { - 439, 1109, 2228, 2228, 2132, 814, -74, 18, 147, -100, - 31, -17, -49, 232, -100, 318, 85, -100, -100, 554, - 33, 94, 331, 215, -100, -100, -100, 448, 231, 1109, - -100, -100, -100, 320, -100, 1940, 1472, 1109, 1109, 1109, - -100, 724, 1109, -100, -100, 1109, 1109, -100, -100, -100, - -100, -100, 1109, -100, 1109, 1109, -100, 1109, 1109, 129, - 157, -100, -100, 1109, 1109, 1109, -100, -100, -100, 200, - 1109, 293, 1109, 1109, 1109, 1109, 466, 1109, 1109, 1109, - 1109, 1109, 1109, 179, 1109, 1109, 1109, 119, 125, 95, - 188, 198, 184, 203, 178, 567, 567, 484, 1109, -5, - 1109, 67, 1844, 1109, 1109, -100, -100, -100, -100, -100, - -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, - -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, - -100, -100, -100, -100, -100, -100, -100, -100, -100, 110, - 1109, -100, -100, 70, 61, -100, 1109, -100, -100, 1109, - -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, - -100, -100, -100, 1109, 55, 1109, 1109, 73, 63, 1109, - -100, 1844, 1109, 1109, -100, 141, -100, 41, -100, -100, - 87, -100, 255, 80, 78, -100, 287, -100, 83, 2228, - -100, -100, -100, -100, -100, 225, -100, -100, 52, -100, - -100, -100, -100, -100, -100, 2228, -100, -100, 420, -100, - 408, 113, 2132, 50, 330, 65, 46, 2420, 72, 1109, - -100, 74, 75, 1109, 77, -100, 53, 56, -100, -100, - 323, -100, -100, -100, -100, -100, -100, 96, -100, -100, - -100, -100, 99, -100, -100, -100, -100, -100, -100, 60, - 47, 1109, 118, 93, -100, -100, 1291, -100, 79, 66, - 64, -100, 413, 76, 51, 664, 89, 97, 393, 183, - 337, 1109, 413, 1109, 1109, 1109, 1109, 411, 1109, 1109, - 1109, 1109, 1109, 252, 272, 212, 217, 221, 490, 490, - 383, 1109, 64, 1109, 84, 1109, -100, 536, 1109, -100, - 1109, 69, 68, 1109, 44, 2132, -100, 1109, 124, 2132, - -100, 1109, 54, 1109, 1109, 71, 88, 1109, -100, 82, - 122, 154, -100, -100, 1109, -100, 343, 1109, -100, 81, - 1109, 90, 2132, -100, 1109, 112, 2132, -100, 86, 333, - -39, -10, 2228, -33, -100, 2132, -100, 1109, 246, 2132, - 4, 2132, -100, 10, 16, -21, -100, -100, 2132, -26, - 480, 19, 462, 128, 1109, 2132, 6, -9, 400, 8, - -22, 840, -3, -6, -100, 1202, -100, -7, -28, 5, - 1109, 2, -23, 1109, 0, 1109, -34, -30, 1109, -100, - 2036, 21, -100, -100, -100, -100, -100, -100, 1109, -100, - -100, -100, -100, 209, -100, 1109, 40, -100, 2132, -100, - 101, -100, -100, 2132, -100, 1109, 120, 43, -100, 62, - -100, 59, 109, 1109, -100, 57, 58, -100, 39, -100, - 2132, -100, 117, 2132, -100, 199, -100, -100, 107, 2132, - 34, -100, 24, 11, -100, 346, -19, 14, -100, -100, - -100, -100, 1109, 133, 2132, -100, 1109, 126, 2132, -100, - 20, -100, 173, -100, -100, 1109, -100, -100, 303, -100, - -100, -100, 100, 1656, -100, -100, 1564, -100, -100, 1748, - -100, -100, -100, -100, -100, -100, 131, -100, -100, -100, - -100, -100, -100, -100, -100, 2228, -100, -100, -100, 158, - -20, 752, 165, -16, 22, -100, -100, 98, -100, 189, - -100, -100, -100, 28, 170, -100, 1109, -100, 230, -100, - -100, 247, 1, 13, 238, 37, -24, 106, -100, -100, - 273, -100, 1109, -100, 265, -100, -100, 242, -4, 12, - 1109, 241, -100, -100, 234, -100, 245, -100, 3, 9, - 311, 190, 316, -100, 134, -100, -100, -100, 1380, 1020, - -100, -100, -100, -100, -100, 359, 2324, 1472, 15, 444, - 38, 394, 138, 1109, 2132, 36, 17, 397, 42, 23, - 840, 32, 29, -100, 1202, -100, 26, 35, 48, 1109, - 45, 25, 1109, 49, 1109, 27, 30, 314, 132, -100, - 7, 752, -100, -100, -100, -100, -100, 930, -100, -100, - -100, 752, -100, 253, -87, 617, -100, -100, 102, 290, - -100, 191, -100, 140, -100, -100, 275, -100, -100, 91, - -100, -100, -100, -100, -100, -100, + 314, 1273, 2404, 2404, 2307, 1001, 58, 98, 78, -101, + 95, 56, 4, 236, -101, 296, 86, -101, -101, 545, + 97, 115, 162, 197, -101, -101, -101, 447, 192, 1273, + -101, -101, -101, 369, -101, 2113, 1919, 1273, 1273, 1273, + -101, 732, 1273, -101, -101, -101, 1273, 1273, -101, -101, + -101, -101, -101, 1273, -101, 1273, 1273, -101, 1273, 1273, + 81, 195, -101, -101, 1273, 1273, 1273, -101, -101, -101, + 185, 1273, 283, 1273, 1273, 1273, 1273, 447, 1273, 1273, + 1273, 1273, 1273, 1273, 297, 1273, 1273, 1273, 107, 85, + 116, 297, 297, 297, 297, 191, 447, 447, 447, 1273, + 74, 1273, 102, 2016, 1273, 1273, -101, -101, -101, -101, + -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, + -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, + -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, + 112, 1273, -101, -101, 92, 61, -101, 1273, -101, -101, + 1273, -101, -101, -101, -101, -101, -101, -101, -101, -101, + -101, -101, -101, -101, 1273, 36, 1273, 1273, 65, 62, + 1273, -101, 2016, 1273, 1273, -101, 127, -101, 42, -101, + -101, 57, -101, 294, 60, 35, -101, 259, -101, 32, + 2404, -101, -101, -101, -101, -101, 200, -101, -101, 33, + -101, -101, -101, -101, -101, -101, 2404, -101, -101, 436, + -101, 433, 100, 2307, 34, 369, 67, 45, 2598, 71, + 1273, -101, 72, 51, 1273, 59, -101, 54, 55, -101, + -101, 324, -101, -101, -101, -101, -101, -101, 88, -101, + -101, -101, -101, 76, -101, -101, -101, -101, -101, -101, + 5, 49, 1273, 104, 84, -101, -101, 1457, -101, 70, + 41, 1, -101, 287, 68, 46, 643, 73, 77, 364, + 297, 369, 1273, 238, 1273, 1273, 1273, 1273, 341, 1273, + 1273, 1273, 1273, 1273, 297, 175, 167, 161, 176, 348, + 315, 331, 1273, -13, 1273, 63, 1273, -101, 545, 1273, + -101, 1273, 64, 40, 1273, 2, 2307, -101, 1273, 152, + 2307, -101, 1273, 69, 1273, 1273, 75, 79, 1273, -101, + 44, 149, 66, -101, -101, 1273, -101, 369, 1273, -101, + 52, 1273, -54, 2307, -101, 1273, 151, 2307, -101, -29, + 369, -41, -11, 2404, -46, -101, 2307, -101, 1273, 131, + 2307, -5, 2307, -101, 8, 13, -55, -101, -101, 2307, + -51, 360, -2, 352, 119, 1273, 2307, 39, -19, 366, + 3, -24, 910, 6, 7, -101, 1367, -101, 11, -16, + -4, 1273, -6, -31, 1273, 9, 1273, -12, 17, 1273, + -101, 2210, 37, -101, -101, -101, -101, -101, -101, 1273, + -101, -101, -101, -101, 258, -101, 1273, -15, -101, 2307, + -101, 117, -101, -101, 2307, -101, 1273, 106, 16, -101, + 38, -101, 135, 96, 1273, -101, 135, 43, -101, 18, + -101, 2307, -101, 101, 2307, -101, 179, -101, -101, 99, + 2307, 31, -101, -7, -8, -101, 369, -34, -1, -101, + -101, -101, -101, 1273, 124, 2307, -101, 1273, 122, 2307, + -101, 25, -101, 207, -101, -101, 1273, -101, -101, 290, + -101, -101, -101, 114, 1733, -101, -101, 1826, -101, -101, + 1550, -101, -101, -101, -101, -101, -101, 103, -101, -101, + -101, -101, -101, -101, -101, -101, 2404, -101, -101, -101, + 221, -43, 704, 164, -26, 12, -101, -101, 188, -101, + 196, -101, -101, -101, 369, 183, -101, 1273, -101, 165, + -101, -101, 170, 0, 369, 160, 10, 369, 113, -101, + -101, 215, -101, 1273, -101, 225, -101, -101, 203, 369, + 28, 1273, 229, -101, -101, 202, -101, 218, -101, 30, + -21, 369, 199, 278, -101, 110, -101, -101, -101, 1640, + 1092, 583, -101, -101, -101, -101, -101, 284, 2501, 1919, + 14, 388, 29, 424, 93, 1273, 2307, 39, -9, 338, + 21, -3, 821, 24, 23, -101, 1367, -101, 48, 20, + 47, 1273, 50, 26, 1273, 53, 1273, 27, 22, 264, + 120, -101, 15, 813, -101, -101, -101, -101, -101, 1183, + -101, -101, 19, -101, -101, 498, -101, 249, -82, 902, + -101, -101, 118, 369, -101, 204, -101, 80, -101, -101, + 369, -101, -101, 82, -101, -101, -101, -101, -101, -101, - -106, 12, -87, 18, 17, 212, -106, -106, -106, -106, - -106, -106, -106, -106, -106, -106, -106, -106, -106, -53, - -106, -106, -106, -106, -106, -106, -106, -106, -106, 162, - -106, -106, -106, -4, -106, -106, -11, 24, 75, 76, - -106, 83, 55, -106, -106, 157, 158, -106, -106, -106, - -106, -106, 150, -106, 172, 176, -106, 168, 167, -106, - -106, -106, -106, 173, 154, 115, -106, -106, -106, -106, - 147, -106, 121, 113, 112, 125, -106, 128, 143, 146, - 140, 139, 136, -106, 122, 138, 130, -106, -106, -106, - -106, -106, -106, -106, -106, -106, -106, -106, 149, -106, - 153, -106, 110, 82, 46, -106, -106, -106, -106, -106, - -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, - -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, + -106, 17, -83, 19, 24, 228, -106, -106, -106, -106, + -106, -106, -106, -106, -106, -106, -106, -106, -106, -49, + -106, -106, -106, -106, -106, -106, -106, -106, -106, 101, + -106, -106, -106, 2, -106, -106, -2, 29, 107, 166, + -106, 204, 183, -106, -106, -106, 174, 169, -106, -106, + -106, -106, -106, 145, -106, 141, 137, -106, 152, 161, + -106, -106, -106, -106, 163, 158, 157, -106, -106, -106, + -106, 132, -106, 142, 138, 187, 178, -106, 167, 181, + 81, 82, 85, 83, -106, 93, 114, 96, -106, -106, + -106, -106, -106, -106, -106, -106, -106, -106, -106, 170, + -106, 74, -106, 109, 80, 51, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, - 35, -106, -106, -106, -106, -106, 37, -106, -106, 45, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, - -106, -106, -106, 92, -106, 88, 58, -106, -106, 51, - -106, 209, 72, 78, -106, -106, -106, -106, -106, -106, - -106, -106, 27, -106, -106, -106, 63, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, - -106, -106, -106, -106, -106, 50, -106, -106, 28, -106, - 29, -106, 47, -106, 33, -106, -106, 66, -106, 73, - -106, -106, -106, 81, 53, -106, -106, -106, -106, -106, - -13, -106, -106, -106, -106, -106, -106, -106, -106, -106, + -106, 25, -106, -106, -106, -106, -106, 41, -106, -106, + 50, -106, -106, -106, -106, -106, -106, -106, -106, -106, + -106, -106, -106, -106, 98, -106, 104, 43, -106, -106, + 42, -106, 221, 64, 117, -106, -106, -106, -106, -106, + -106, -106, -106, 54, -106, -106, -106, 55, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, - -106, 9, -106, -106, -106, -106, 111, -106, -106, -106, + -106, -106, -106, -106, -106, -106, 47, -106, -106, 38, + -106, 33, -106, 92, -106, 73, -106, -106, 88, -106, + 86, -106, -106, -106, 94, 23, -106, -106, -106, -106, + -106, -11, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, - 3, 186, -106, 220, 228, 234, 204, -106, 90, 91, - 94, 97, 93, -106, -106, -106, -106, -106, -106, -106, - -106, 210, -106, 187, -106, 214, -106, -106, 208, -106, - 207, -106, -106, 155, -106, 8, -106, 4, -106, -1, - -106, 217, -106, 177, 185, -106, -106, 184, -106, -106, - -106, -106, -106, -106, 183, -106, 194, 105, -106, -106, - 99, -106, 71, -106, 74, -106, 65, -106, -106, 114, - -106, -106, -55, -106, -106, 64, -106, 44, -106, 30, - -106, 31, -106, -106, -106, -106, -106, -106, 57, -106, - 36, -106, 40, -106, 70, 59, -106, -106, 42, -106, - -106, 104, -106, -106, -106, 38, -106, -106, -106, -106, - 79, -106, 69, 108, -106, 84, -106, -106, 56, -106, - 68, -106, -106, -106, -106, -106, -106, -106, 52, -106, - -106, -106, -106, -106, -106, 109, -106, -106, 77, -106, - -106, -106, -106, 86, -106, 80, -106, -106, -106, -106, - -106, -59, -106, 43, -106, -63, -106, -106, -106, -106, - 98, -106, -106, 95, -106, -106, -106, -106, -106, 60, - -34, -106, -106, 32, -106, 41, -106, 39, -106, -106, - -106, -106, 49, -106, 61, -106, 62, -106, 48, -106, - -106, -106, -106, -106, -106, 23, -106, -106, 96, -106, - -106, -106, -106, 34, -106, -106, 133, -106, -106, 54, + -106, -106, 22, -106, -106, -106, -106, 105, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, - -106, -106, -106, -106, -106, 67, -106, -106, -106, -106, - -106, 22, -106, -106, -106, -106, -106, -106, -106, -22, - -106, -106, -106, -106, -106, -106, 2, -106, -106, -106, - -106, -106, -106, -106, -19, -106, -106, -106, -106, -106, - -106, -106, 100, -106, -106, -106, -106, -21, -106, -106, - -3, -106, -106, -106, -106, -106, 13, -106, -106, -106, - 11, 14, 10, -106, -106, -106, -106, -106, 279, 283, - -106, -106, -106, -106, -106, -106, 19, 273, 15, 16, - -106, 21, -106, 224, 6, -106, -106, 25, -106, -106, - 85, -106, -106, -106, 26, -106, -106, -106, -106, 20, - -106, 7, 87, -106, 107, -106, -106, -106, -106, -106, - -106, 317, -106, -106, -106, -106, -106, 277, -106, -106, - -106, 0, -106, -106, -2, 271, -106, -106, -106, 1, - -106, -106, -106, -106, -106, -106, 5, -106, -106, -106, - -106, -106, -106, -106, -106, -106}; + -106, 7, 235, -106, 249, 219, 216, 222, -106, 124, + 125, 123, 122, 116, -106, -106, -106, -106, -106, -106, + -106, -106, 191, -106, 232, -106, 225, -106, -106, 231, + -106, 156, -106, -106, 130, -106, 91, -106, 5, -106, + 8, -106, 233, -106, 200, 189, -106, -106, 198, -106, + -106, -106, -106, -106, -106, 245, -106, 108, 95, -106, + -106, 298, -106, 195, -106, 89, -106, 71, -106, -106, + 120, -106, -106, -5, -106, -106, 52, -106, 53, -106, + 56, -106, 60, -106, -106, -106, -106, -106, -106, 39, + -106, 37, -106, 49, -106, 133, 69, -106, -106, 59, + -106, -106, 102, -106, -106, -106, 79, -106, -106, -106, + -106, 62, -106, 45, 67, -106, 75, -106, -106, 44, + -106, 1, -106, -106, -106, -106, -106, -106, -106, 46, + -106, -106, -106, -106, -106, -106, 115, -106, -106, 66, + -106, -106, -106, -106, 70, -106, 77, -106, -106, -106, + -106, -106, -9, -106, 72, -106, -38, -106, -106, -106, + -106, 97, -106, -106, 99, -106, -106, -106, -106, -106, + 40, -51, -106, -106, 36, -106, 34, -106, 63, -106, + -106, -106, -106, 35, -106, 48, -106, 58, -106, 57, + -106, -106, -106, -106, -106, -106, 28, -106, -106, 90, + -106, -106, -106, -106, 65, -106, -106, 159, -106, -106, + 61, -106, -106, -106, -106, -106, -106, -106, -106, -106, + -106, -106, -106, -106, -106, -106, 87, -106, -106, -106, + -106, -106, -13, -106, -106, -106, -106, -106, -106, -106, + -18, -106, -106, -106, -10, -106, -106, 0, -106, -106, + -106, -106, -106, -106, -4, -12, -106, -6, -106, -106, + -106, -106, -106, 3, -106, -106, -106, -106, -23, -14, + -106, 11, -106, -106, -106, -106, -106, 15, -106, -106, + -106, 16, 18, 14, -106, -106, -106, -106, -106, 292, + 399, 180, -106, -106, -106, -106, -106, -106, 26, 286, + 20, 21, -106, 30, -106, 177, 10, -106, -106, 31, + -106, -106, 193, -106, -106, -106, 32, -106, -106, -106, + -106, 27, -106, 13, 76, -106, 68, -106, -106, -106, + -106, -106, -106, 230, -106, -106, -106, -106, -106, 290, + -106, -106, -3, -106, -106, 6, -106, -106, 4, 270, + -106, -106, -106, 9, -106, -106, -106, -106, -106, -106, + 12, -106, -106, -106, -106, -106, -106, -106, -106, -106}; const short QDeclarativeJSGrammar::action_info [] = { - -97, -98, 452, 611, -116, 527, 456, -124, 415, -121, - 439, 551, -119, -108, 347, -94, 611, 388, 635, 540, - 351, 341, 344, 342, 390, 539, -127, 256, 398, 402, - 100, 98, 70, -97, 400, 163, -98, 465, 524, -116, - 559, 447, 530, -108, 439, -127, 509, 439, 559, -94, - 537, 544, -121, 256, 443, -119, -124, 514, 439, 347, - 445, 526, 423, 452, 423, 430, 456, 423, 70, 554, - 169, 415, 345, 311, 100, 163, 419, 140, 146, 408, - 271, 413, 347, 251, 295, 271, 256, 0, 186, 452, - 0, 311, 456, 140, 429, 317, 0, 0, 0, 324, - 407, 178, 291, 98, 305, 558, 0, 235, 476, 0, - 439, 415, 300, 442, 291, 0, 189, 171, 140, 426, - 140, 148, 339, 182, 433, 140, 140, 443, 140, 303, - 326, 559, 140, 0, 140, 57, 172, 250, 188, 140, - 601, 140, 330, 293, 165, 0, 58, 313, 166, 140, - 332, 314, 631, 630, 255, 254, 477, 241, 240, 57, - 246, 245, 412, 411, 427, 57, 141, 529, 528, 63, - 58, 61, 336, 171, 248, 247, 58, 516, 253, 0, - 417, 468, 62, 327, 309, 334, 458, 57, 602, 248, - 247, 487, 172, 454, 522, 556, 555, 176, 58, 248, - 247, 625, 624, 84, 84, 85, 85, 140, 84, 84, - 85, 85, 63, 84, 64, 85, 86, 86, 510, 510, - 65, 86, 86, 84, 171, 85, 86, 63, 84, 0, - 85, 517, 515, 140, 469, 467, 86, 84, 140, 85, - 512, 86, 84, 172, 85, 405, 84, 102, 85, 140, - 86, 511, 628, 627, 140, 86, 84, 64, 85, 86, - 437, 436, 171, 65, 512, 512, 103, 510, 104, 86, - 546, 510, 64, 140, 510, 511, 511, 84, 65, 85, - 532, 172, 626, 405, 34, 0, 234, 233, 0, 0, - 86, 520, 519, 0, 0, 547, 545, 84, 0, 85, - 621, 0, 543, 542, 34, 0, 349, 0, 0, 0, - 86, 72, 73, 512, 622, 620, 34, 512, 0, 34, - 512, 47, 49, 48, 511, 0, 536, 535, 511, 171, - 0, 511, 34, 0, 533, 531, 72, 73, 74, 75, - 34, 47, 49, 48, 619, 34, 171, -85, 172, 34, - 173, 0, 34, 47, 49, 48, 47, 49, 48, 34, - 0, 0, 34, 74, 75, 172, 34, 173, 0, 47, - 49, 48, 34, 0, 171, 34, 0, 47, 49, 48, - 0, 0, 47, 49, 48, 0, 47, 49, 48, 47, - 49, 48, -85, 172, 0, 173, 47, 49, 48, 47, - 49, 48, 0, 47, 49, 48, 278, 279, 0, 47, - 49, 48, 47, 49, 48, 280, 278, 279, 281, 0, - 282, 0, 0, 34, 0, 280, 34, 0, 281, 34, - 282, 273, 274, -339, 278, 279, -339, 34, 0, 0, - 0, 0, 0, 280, 0, 0, 281, 0, 282, 34, - 0, 0, 0, 0, 0, 244, 243, 0, 275, 276, - 47, 49, 48, 47, 49, 48, 47, 49, 48, 244, - 243, 77, 78, 34, 47, 49, 48, 0, 0, 79, - 80, 239, 238, 81, 0, 82, 47, 49, 48, 77, - 78, 34, 0, 0, 0, 0, 0, 79, 80, 0, - 0, 81, 0, 82, 0, 239, 238, 77, 78, 34, - 47, 49, 48, 278, 279, 79, 80, 0, 0, 81, - 0, 82, 280, 244, 243, 281, 0, 282, 47, 49, - 48, 6, 5, 4, 1, 3, 2, 0, 0, 150, - 0, 239, 238, 0, 0, 0, 47, 49, 48, 151, - 0, 0, 0, 152, 0, 0, 0, 150, 0, 0, - 0, 0, 153, 0, 154, 0, 0, 151, 0, 0, - 0, 152, 0, 0, 0, 155, 0, 156, 61, 0, - 153, 0, 154, 0, 0, 157, 0, 0, 158, 62, - 77, 78, 0, 155, 159, 156, 61, 0, 79, 80, - 160, 0, 81, 157, 82, 0, 158, 62, 0, 0, - 0, 0, 159, 0, 0, 0, 161, 0, 160, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, - 31, 0, 0, 0, 161, 0, 0, 0, 0, 33, - 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, - 35, 36, 0, 37, 0, 0, 0, 0, 0, 0, - 501, 0, 0, 0, 44, 0, 0, 150, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 151, 0, 0, - 0, 152, 50, 47, 49, 48, 0, 51, 0, 0, - 153, 0, 154, 0, 0, 307, 0, 0, 43, 53, - 32, 0, 0, 155, 40, 156, 61, 0, 0, 0, - 0, 0, 0, 157, 0, 0, 158, 62, 0, 0, - 0, 0, 159, 0, 0, 0, 0, 0, 160, 0, + 401, -123, 440, -121, 403, -129, 333, 340, 615, 345, + -96, 352, 348, -118, -100, 389, -126, 257, -99, 342, + 416, 391, 343, 510, 453, 440, 448, 257, -96, 446, + -100, -118, 440, 348, 527, 541, -129, 525, 552, 555, + 538, 545, 466, 424, 399, 408, -110, 560, 560, 420, + 431, 444, 560, 457, -121, -99, 416, -123, 457, 440, + -126, 325, 306, 453, 272, 190, 294, 164, 187, 170, + 257, 272, 141, 430, 346, 312, 296, 312, 409, 414, + 294, 348, 251, 101, 99, 252, 318, 416, 236, 292, + 453, 457, 440, 183, 141, 189, 71, 335, 639, 164, + 147, 304, 179, 71, 99, 443, 427, 301, 434, 141, + 0, 141, 141, 331, 141, 0, 0, 292, 58, 444, + 141, 149, 477, 62, 0, 58, 0, 314, 603, 59, + 141, 315, 141, 172, 63, 141, 59, 247, 246, 141, + 424, 629, 628, 635, 634, 256, 255, 58, 615, 242, + 241, 428, 173, 101, 249, 248, 58, 327, 59, 141, + 141, 249, 248, 488, 254, 166, 418, 59, 142, 167, + 478, 557, 556, 141, 530, 529, 604, 172, 413, 412, + 249, 248, 459, 177, 455, 172, 85, 141, 86, 511, + 517, 350, 85, 523, 86, 559, 173, 64, 174, 87, + 85, 85, 86, 86, 173, 87, 406, 64, 141, 64, + 328, 337, 310, 87, 87, 469, 85, 85, 86, 86, + 0, 560, 533, 0, 0, 511, 521, 520, 511, 87, + 87, 0, 511, 141, 0, 513, 172, 141, 547, 513, + 438, 437, 65, 0, 518, 516, 512, 511, 66, 0, + 512, 103, 65, 0, 65, 173, 274, 275, 66, 0, + 66, 235, 234, 548, 546, 632, 631, 0, 470, 468, + 104, 513, 105, 172, 513, 0, 534, 532, 513, 172, + 561, 0, 512, 276, 277, 512, 537, 536, 34, 512, + 544, 543, 173, 513, 406, 630, 625, -87, 173, 172, + 174, 73, 74, 0, 512, 274, 275, 34, 0, 0, + 626, 624, 0, 0, 73, 74, 0, -87, 173, 34, + 174, 0, 85, 34, 86, 48, 50, 49, 75, 76, + 0, 0, 276, 277, 0, 87, 0, 0, 279, 280, + 623, 75, 76, 0, 48, 50, 49, 281, 0, 0, + 282, 45, 283, 34, 279, 280, 48, 50, 49, 0, + 48, 50, 49, 281, 279, 280, 282, 34, 283, 0, + 45, 279, 280, 281, -341, 0, 282, 0, 283, 0, + 281, 34, 45, 282, 0, 283, 45, 279, 280, 34, + 48, 50, 49, 0, 0, 34, 281, 0, 34, 282, + 0, 283, -341, 0, 48, 50, 49, 6, 5, 4, + 1, 3, 2, 245, 244, 0, 45, 34, 48, 50, + 49, 240, 239, 0, 0, 0, 48, 50, 49, 0, + 45, 0, 48, 50, 49, 48, 50, 49, 0, 0, + 0, 0, 0, 0, 45, 0, 0, 0, 0, 240, + 239, 0, 45, 34, 48, 50, 49, 0, 45, 0, + 0, 45, 34, 0, 0, 34, 0, 0, 0, 0, + 78, 79, 0, 0, 0, 0, 0, 0, 80, 81, + 45, 0, 82, 0, 83, 245, 244, 0, 0, 0, + 48, 50, 49, 0, 245, 244, 0, 240, 239, 48, + 50, 49, 48, 50, 49, 0, 0, 0, 0, 0, + 30, 31, 0, 0, 0, 0, 45, 0, 0, 0, + 33, 0, 0, 0, 0, 45, 0, 34, 45, 0, + 0, 35, 36, 0, 37, 0, 0, 0, 0, 0, + 0, 502, 0, 0, 0, 44, 0, 0, 151, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 152, 0, + 0, 0, 153, 51, 48, 50, 49, 0, 52, 0, + 0, 154, 0, 155, 0, 0, 0, 0, 0, 43, + 54, 32, 0, 0, 156, 40, 157, 62, 0, 0, + 45, 0, 0, 0, 158, 30, 31, 159, 63, 0, + 0, 0, 0, 160, 0, 33, 0, 0, 0, 161, + 0, 0, 34, 0, 0, 0, 35, 36, 0, 37, + 0, 0, 0, 0, 0, 162, 502, 0, 0, 0, + 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 151, 0, 51, 48, + 50, 49, 0, 52, 0, 0, 152, 0, 0, 0, + 153, 0, 0, 0, 43, 54, 32, 0, 0, 154, + 40, 155, 0, 0, 308, 45, 0, 0, 0, 0, + 0, 0, 156, 0, 157, 62, 0, 0, 0, 0, + 0, 0, 158, 0, 0, 159, 63, 0, 0, 0, + 0, 160, 0, 0, 0, 0, 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 0, - 0, 0, 0, 0, 161, 0, 33, 0, 0, 0, + 0, 0, 0, 162, 0, 0, 33, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 35, 36, 0, - 37, 0, 0, 0, 30, 31, 0, 41, 0, 0, + 37, 0, 0, 0, 30, 31, 0, 502, 0, 0, 0, 44, 0, 0, 33, 0, 0, 0, 0, 0, - 0, 34, 0, 0, 0, 35, 36, 0, 37, 50, - 47, 49, 48, 0, 51, 501, 0, 0, 0, 44, - 0, 0, 0, 0, 0, 43, 53, 32, 0, 0, - 0, 40, 0, 0, 0, 0, 0, 50, 47, 49, - 48, 0, 51, 0, 500, 0, 30, 31, 0, 0, - 0, 0, 0, 43, 53, 32, 214, 0, 0, 40, - 0, 0, 0, 34, 0, 0, 0, 35, 36, 0, - 37, 0, 30, 31, 0, 0, 0, 501, 0, 0, - 0, 44, 33, 0, 0, 0, 0, 0, 0, 34, - 0, 0, 0, 35, 36, 0, 37, 0, 0, 50, - 502, 504, 503, 41, 51, 0, 0, 44, 0, 225, - 0, 0, 0, 0, 0, 43, 53, 32, 209, 0, - 0, 40, 0, 0, 0, 50, 47, 49, 48, 0, - 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 43, 53, 32, 0, 0, 0, 40, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 500, 0, 30, 31, 0, 0, 0, 0, 0, 0, - 0, 0, 214, 0, 0, 0, 0, 0, 0, 34, - 0, 0, 0, 35, 36, 0, 37, 0, 0, 0, - 0, 0, 0, 501, 0, 0, 0, 44, 0, 0, - 0, 0, 0, 0, 0, 608, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 50, 502, 504, 503, 0, - 51, 0, 0, 0, 0, 225, 0, 0, 0, 0, - 0, 43, 53, 32, 209, 0, 0, 40, 0, 0, + 0, 34, 0, 0, 0, 35, 36, 0, 37, 51, + 48, 50, 49, 0, 52, 41, 0, 0, 0, 44, + 0, 0, 0, 0, 0, 43, 54, 32, 0, 0, + 0, 40, 0, 0, 0, 0, 45, 51, 48, 50, + 49, 0, 52, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 43, 54, 32, 0, 0, 0, 40, + 0, 0, 0, 0, 45, 30, 31, 0, 0, 0, + 0, 0, 0, 30, 31, 33, 0, 0, 0, 0, + 0, 0, 34, 33, 0, 0, 35, 36, 0, 37, + 34, 0, 0, 0, 35, 36, 502, 37, 0, 0, + 44, 0, 0, 0, 41, 0, 0, 0, 44, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 51, 48, + 50, 49, 0, 52, 0, 0, 51, 48, 50, 49, + 0, 52, 0, 0, 43, 54, 32, 0, 0, 0, + 40, 0, 43, 54, 32, 45, 0, 0, 40, 0, + 0, 0, 0, 45, 30, 31, 0, 0, 0, 0, + 0, 0, 30, 31, 33, 0, 0, 0, 0, 0, + 0, 34, 33, 0, 0, 35, 36, 0, 37, 34, + 0, 0, 0, 35, 36, 502, 37, 0, 0, 44, + 0, 0, 0, 41, 0, 0, 0, 44, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 51, 48, 50, + 49, 0, 52, 0, 0, 51, 48, 50, 49, 0, + 52, 0, 0, 43, 54, 32, 0, 0, 0, 40, + 0, 43, 54, 32, 45, 0, 0, 40, 0, 0, + 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, + 0, 501, 0, 30, 31, 0, 0, 0, 0, 0, + 0, 0, 0, 215, 0, 0, 0, 0, 0, 0, + 34, 0, 0, 0, 35, 36, 0, 37, 0, 0, + 0, 0, 0, 0, 502, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 500, 0, 30, 31, 0, 0, 0, 0, 0, 0, - 0, 0, 214, 0, 0, 0, 0, 0, 0, 34, + 0, 0, 0, 0, 0, 0, 51, 503, 505, 504, + 0, 52, 0, 0, 0, 0, 226, 0, 0, 0, + 0, 0, 43, 54, 32, 210, 0, 0, 40, 0, + 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, + 0, 0, 501, 0, 30, 31, 0, 0, 0, 0, + 0, 0, 0, 0, 215, 0, 0, 0, 0, 0, + 0, 34, 0, 0, 0, 35, 36, 0, 37, 0, + 0, 0, 0, 0, 0, 502, 0, 0, 0, 44, + 0, 0, 0, 0, 0, 0, 0, 607, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 51, 503, 505, + 504, 0, 52, 0, 0, 0, 0, 226, 0, 0, + 0, 0, 0, 43, 54, 32, 210, 0, 0, 40, + 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, + 0, 0, 0, 501, 0, 30, 31, 0, 0, 0, + 0, 0, 0, 0, 0, 215, 0, 0, 0, 0, + 0, 0, 34, 0, 0, 0, 35, 36, 0, 37, + 0, 0, 0, 0, 0, 0, 502, 0, 0, 0, + 44, 0, 0, 0, 0, 0, 0, 0, 610, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 51, 503, + 505, 504, 0, 52, 0, 0, 0, 0, 226, 0, + 0, 0, 0, 0, 43, 54, 32, 210, 0, 0, + 40, 0, 0, 0, 0, 45, 0, 0, 0, 0, + 0, 0, 0, 0, 29, 30, 31, 0, 0, 0, + 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, + 0, 0, 34, 0, 0, 0, 35, 36, 0, 37, + 0, 0, 0, 38, 0, 39, 41, 42, 0, 0, + 44, 0, 0, 0, 46, 0, 47, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 51, 48, + 50, 49, 0, 52, 0, 53, 0, 55, 0, 56, + 0, 0, 0, 0, 43, 54, 32, 0, 0, 0, + 40, 0, 0, 0, 0, 45, 0, 0, 0, 0, + 0, 0, 0, 0, -119, 0, 0, 0, 29, 30, + 31, 0, 0, 0, 0, 0, 0, 0, 0, 33, + 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, + 35, 36, 0, 37, 0, 0, 0, 38, 0, 39, + 41, 42, 0, 0, 44, 0, 0, 0, 46, 0, + 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 51, 48, 50, 49, 0, 52, 0, 53, + 0, 55, 0, 56, 0, 0, 0, 0, 43, 54, + 32, 0, 0, 0, 40, 0, 0, 0, 0, 45, + 0, 0, 0, 0, 0, 0, 0, 0, 29, 30, + 31, 0, 0, 0, 0, 0, 0, 0, 0, 33, + 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, + 35, 36, 0, 37, 0, 0, 0, 38, 0, 39, + 41, 42, 0, 0, 44, 0, 0, 0, 46, 0, + 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 51, 48, 50, 49, 0, 52, 0, 53, + 0, 55, 271, 56, 0, 0, 0, 0, 43, 54, + 32, 0, 0, 0, 40, 0, 0, 0, 0, 45, + 0, 0, 0, 0, 0, 0, 0, 0, 483, 0, + 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, + 0, 0, 33, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 35, 36, 0, 37, 0, 0, 0, - 0, 0, 0, 501, 0, 0, 0, 44, 0, 0, - 0, 0, 0, 0, 0, 605, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 50, 502, 504, 503, 0, - 51, 0, 0, 0, 0, 225, 0, 0, 0, 0, - 0, 43, 53, 32, 209, 0, 0, 40, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 38, 0, 39, 41, 42, 0, 0, 44, 0, 0, + 0, 46, 0, 47, 0, 0, 484, 0, 0, 0, + 0, 0, 0, 0, 0, 51, 48, 50, 49, 0, + 52, 0, 53, 0, 55, 0, 56, 0, 0, 0, + 0, 43, 54, 32, 0, 0, 0, 40, 0, 0, + 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, + 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, + 0, 0, 33, 0, 0, 0, 0, 0, 0, 34, + 217, 0, 0, 568, 569, 0, 37, 0, 0, 0, + 38, 0, 39, 41, 42, 0, 0, 44, 0, 0, + 0, 46, 0, 47, 0, 0, 0, 0, 0, 0, + 0, 221, 0, 0, 0, 51, 48, 50, 49, 0, + 52, 0, 53, 0, 55, 0, 56, 0, 0, 0, + 0, 43, 54, 32, 0, 0, 0, 40, 0, 0, + 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, + 0, 483, 0, 0, 29, 30, 31, 0, 0, 0, + 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, + 0, 0, 34, 0, 0, 0, 35, 36, 0, 37, + 0, 0, 0, 38, 0, 39, 41, 42, 0, 0, + 44, 0, 0, 0, 46, 0, 47, 0, 0, 486, + 0, 0, 0, 0, 0, 0, 0, 0, 51, 48, + 50, 49, 0, 52, 0, 53, 0, 55, 0, 56, + 0, 0, 0, 0, 43, 54, 32, 0, 0, 0, + 40, 0, 0, 0, 0, 45, 0, 0, 0, 0, + 0, 0, 0, 0, 475, 0, 0, 29, 30, 31, + 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, + 0, 0, 0, 0, 0, 34, 0, 0, 0, 35, + 36, 0, 37, 0, 0, 0, 38, 0, 39, 41, + 42, 0, 0, 44, 0, 0, 0, 46, 0, 47, + 0, 0, 481, 0, 0, 0, 0, 0, 0, 0, + 0, 51, 48, 50, 49, 0, 52, 0, 53, 0, + 55, 0, 56, 0, 0, 0, 0, 43, 54, 32, + 0, 0, 0, 40, 0, 0, 0, 0, 45, 0, + 0, 0, 0, 0, 0, 0, 0, 475, 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 35, 36, 0, 37, 0, 0, 0, 38, 0, 39, 41, 42, 0, 0, 44, 0, 0, 0, - 45, 0, 46, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 50, 47, 49, 48, 0, 51, - 0, 52, 0, 54, 0, 55, 0, 0, 0, 0, - 43, 53, 32, 0, 0, 0, 40, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -117, - 0, 0, 0, 29, 30, 31, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, - 0, 34, 0, 0, 0, 35, 36, 0, 37, 0, - 0, 0, 38, 0, 39, 41, 42, 0, 0, 44, - 0, 0, 0, 45, 0, 46, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 50, 47, 49, - 48, 0, 51, 0, 52, 0, 54, 0, 55, 0, - 0, 0, 0, 43, 53, 32, 0, 0, 0, 40, + 46, 0, 47, 0, 0, 476, 0, 0, 0, 0, + 0, 0, 0, 0, 51, 48, 50, 49, 0, 52, + 0, 53, 0, 55, 0, 56, 0, 0, 0, 0, + 43, 54, 32, 0, 0, 0, 40, 0, 0, 0, + 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, + 109, 110, 111, 0, 0, 113, 115, 116, 0, 0, + 117, 0, 118, 0, 0, 0, 120, 121, 122, 0, + 0, 0, 0, 0, 0, 34, 123, 124, 125, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, - 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, - 34, 0, 0, 0, 35, 36, 0, 37, 0, 0, - 0, 38, 0, 39, 41, 42, 0, 0, 44, 0, - 0, 0, 45, 0, 46, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 50, 47, 49, 48, - 0, 51, 0, 52, 0, 54, 270, 55, 0, 0, - 0, 0, 43, 53, 32, 0, 0, 0, 40, 0, + 0, 0, 0, 0, 0, 129, 0, 0, 0, 0, + 0, 0, 48, 50, 49, 130, 131, 132, 0, 134, + 135, 136, 137, 138, 139, 0, 0, 127, 133, 119, + 112, 114, 128, 0, 0, 0, 0, 0, 45, 0, + 0, 0, 0, 0, 0, 0, 0, 109, 110, 111, + 0, 0, 113, 115, 116, 0, 0, 117, 0, 118, + 0, 0, 0, 120, 121, 122, 0, 0, 0, 0, + 0, 0, 393, 123, 124, 125, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 126, 0, 0, 0, + 394, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 129, 0, 0, 0, 0, 0, 398, 395, + 397, 0, 130, 131, 132, 0, 134, 135, 136, 137, + 138, 139, 0, 0, 127, 133, 119, 112, 114, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, - 0, 0, 33, 0, 0, 0, 0, 0, 0, 34, - 216, 0, 0, 566, 567, 0, 37, 0, 0, 0, - 38, 0, 39, 41, 42, 0, 0, 44, 0, 0, - 0, 45, 0, 46, 0, 0, 0, 0, 0, 0, - 0, 220, 0, 0, 0, 50, 47, 49, 48, 0, - 51, 0, 52, 0, 54, 0, 55, 0, 0, 0, - 0, 43, 53, 32, 0, 0, 0, 40, 0, 0, + 0, 0, 0, 0, 109, 110, 111, 0, 0, 113, + 115, 116, 0, 0, 117, 0, 118, 0, 0, 0, + 120, 121, 122, 0, 0, 0, 0, 0, 0, 393, + 123, 124, 125, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 126, 0, 0, 0, 394, 0, 0, + 0, 0, 0, 0, 0, 396, 0, 0, 0, 129, + 0, 0, 0, 0, 0, 398, 395, 397, 0, 130, + 131, 132, 0, 134, 135, 136, 137, 138, 139, 0, + 0, 127, 133, 119, 112, 114, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 474, 0, 0, 29, 30, 31, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, - 0, 34, 0, 0, 0, 35, 36, 0, 37, 0, - 0, 0, 38, 0, 39, 41, 42, 0, 0, 44, - 0, 0, 0, 45, 0, 46, 0, 0, 475, 0, - 0, 0, 0, 0, 0, 0, 0, 50, 47, 49, - 48, 0, 51, 0, 52, 0, 54, 0, 55, 0, - 0, 0, 0, 43, 53, 32, 0, 0, 0, 40, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 474, 0, 0, 29, 30, 31, 0, 0, - 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, - 0, 0, 0, 34, 0, 0, 0, 35, 36, 0, + 0, 209, 0, 0, 0, 0, 211, 0, 29, 30, + 31, 213, 0, 0, 0, 0, 0, 0, 214, 33, + 0, 0, 0, 0, 0, 0, 216, 217, 0, 0, + 218, 36, 0, 37, 0, 0, 0, 38, 0, 39, + 41, 42, 0, 0, 44, 0, 0, 0, 46, 0, + 47, 0, 0, 0, 0, 0, 220, 0, 221, 0, + 0, 0, 51, 219, 222, 49, 223, 52, 224, 53, + 225, 55, 226, 56, 227, 228, 0, 0, 43, 54, + 32, 210, 212, 0, 40, 0, 0, 0, 0, 45, + 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, + 0, 0, 0, 211, 0, 29, 30, 31, 213, 0, + 0, 0, 0, 0, 0, 214, 215, 0, 0, 0, + 0, 0, 0, 216, 217, 0, 0, 218, 36, 0, 37, 0, 0, 0, 38, 0, 39, 41, 42, 0, - 0, 44, 0, 0, 0, 45, 0, 46, 0, 0, - 480, 0, 0, 0, 0, 0, 0, 0, 0, 50, - 47, 49, 48, 0, 51, 0, 52, 0, 54, 0, - 55, 0, 0, 0, 0, 43, 53, 32, 0, 0, - 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 482, 0, 0, 29, 30, 31, - 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, - 0, 0, 0, 0, 0, 34, 0, 0, 0, 35, - 36, 0, 37, 0, 0, 0, 38, 0, 39, 41, - 42, 0, 0, 44, 0, 0, 0, 45, 0, 46, - 0, 0, 485, 0, 0, 0, 0, 0, 0, 0, - 0, 50, 47, 49, 48, 0, 51, 0, 52, 0, - 54, 0, 55, 0, 0, 0, 0, 43, 53, 32, - 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 482, 0, 0, 29, - 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, - 33, 0, 0, 0, 0, 0, 0, 34, 0, 0, - 0, 35, 36, 0, 37, 0, 0, 0, 38, 0, - 39, 41, 42, 0, 0, 44, 0, 0, 0, 45, - 0, 46, 0, 0, 483, 0, 0, 0, 0, 0, - 0, 0, 0, 50, 47, 49, 48, 0, 51, 0, - 52, 0, 54, 0, 55, 0, 0, 0, 0, 43, - 53, 32, 0, 0, 0, 40, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 108, 109, - 110, 0, 0, 112, 114, 115, 0, 0, 116, 0, - 117, 0, 0, 0, 119, 120, 121, 0, 0, 0, - 0, 0, 0, 34, 122, 123, 124, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 125, 0, 0, + 0, 44, 0, 0, 0, 46, 0, 47, 0, 0, + 0, 0, 0, 220, 0, 221, 0, 0, 0, 51, + 219, 222, 49, 223, 52, 224, 53, 225, 55, 226, + 56, 227, 228, 0, 0, 43, 54, 32, 210, 212, + 0, 40, 0, 0, 0, 0, 45, 0, 0, 0, + 0, 0, 0, 0, 0, 571, 110, 111, 0, 0, + 573, 115, 575, 30, 31, 576, 0, 118, 0, 0, + 0, 120, 578, 579, 0, 0, 0, 0, 0, 0, + 580, 581, 124, 125, 218, 36, 0, 37, 0, 0, + 0, 38, 0, 39, 582, 42, 0, 0, 584, 0, + 0, 0, 46, 0, 47, 0, 0, 0, 0, 0, + 586, 0, 221, 0, 0, 0, 588, 585, 587, 49, + 589, 590, 591, 53, 593, 594, 595, 596, 597, 598, + 0, 0, 583, 592, 577, 572, 574, 128, 40, 0, + 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, + 0, 0, 361, 110, 111, 0, 0, 363, 115, 365, + 30, 31, 366, 0, 118, 0, 0, 0, 120, 368, + 369, 0, 0, 0, 0, 0, 0, 370, 371, 124, + 125, 218, 36, 0, 37, 0, 0, 0, 38, 0, + 39, 372, 42, 0, 0, 374, 0, 0, 0, 46, + 0, 47, 0, -265, 0, 0, 0, 376, 0, 221, + 0, 0, 0, 378, 375, 377, 49, 379, 380, 381, + 53, 383, 384, 385, 386, 387, 388, 0, 0, 373, + 382, 367, 362, 364, 128, 40, 0, 0, 0, 0, + 45, 0, 0, 0, 0, 0, 0, 0, 0, + + 522, 540, 539, 519, 461, 515, 535, 514, 309, 528, + 311, 531, 250, 526, 542, 636, 613, 182, 150, 622, + 16, 496, 320, 497, 627, 253, 498, 633, 358, 554, + 436, 558, 487, 472, 439, 302, 238, 392, 454, 606, + 551, 402, 358, 553, 439, 243, 182, 445, 243, 447, + 456, 237, 238, 238, 347, 429, 349, 450, 351, 460, + 143, 458, 353, 467, 243, 436, 439, 176, 410, 186, + 188, 250, 415, 338, 182, 433, 148, 171, 169, 390, + 417, 400, 302, 140, 449, 163, 146, 425, 339, 302, + 358, 237, 336, 307, 250, 344, 482, 436, 302, 358, + 485, 358, 0, 0, 0, 461, 0, 0, 0, 0, + 0, 60, 60, 451, 452, 404, 0, 0, 60, 60, + 60, 452, 451, 320, 106, 60, 60, 60, 102, 60, + 92, 93, 95, 302, 94, 186, 0, 60, 0, 0, + 60, 88, 60, 405, 90, 60, 108, 180, 60, 266, + 146, 60, 146, 489, 270, 407, 165, 178, 60, 302, + 60, 0, 89, 330, 168, 288, 60, 60, 60, 60, + 0, 287, 286, 284, 285, 471, 60, 60, 432, 180, + 435, 60, 60, 452, 72, 60, 60, 451, 96, 60, + 480, 494, 77, 500, 479, 329, 60, 334, 305, 61, + 612, 60, 60, 69, 68, 60, 404, 60, 70, 67, + 60, 60, 490, 60, 60, 493, 84, 404, 60, 341, + 492, 60, 60, 180, 303, 60, 100, 60, 98, 491, + 91, 60, 0, 298, 405, 60, 106, 97, 270, 0, + 270, 500, 298, 500, 60, 405, 605, 270, 293, 270, + 602, 0, 0, 0, 0, 317, 499, 509, 108, 175, + 60, 316, 0, 60, 319, 270, 60, 290, 270, 298, + 289, 270, 0, 291, 270, 298, 60, 60, 0, 60, + 270, 270, 270, 500, 270, 0, 637, 295, 273, 298, + 602, 297, 313, 60, 270, 611, 0, 300, 270, 599, + 278, 302, 601, 500, 0, 567, 602, 0, 0, 0, + 0, 326, 570, 563, 564, 565, 566, 0, 499, 509, + 0, 472, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, - 47, 49, 48, 129, 130, 131, 0, 133, 134, 135, - 136, 137, 138, 0, 0, 126, 132, 118, 111, 113, - 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 108, 109, 110, 0, 0, 112, - 114, 115, 0, 0, 116, 0, 117, 0, 0, 0, - 119, 120, 121, 0, 0, 0, 0, 0, 0, 392, - 122, 123, 124, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 125, 0, 0, 0, 393, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, - 0, 0, 0, 0, 0, 397, 394, 396, 0, 129, - 130, 131, 0, 133, 134, 135, 136, 137, 138, 0, - 0, 126, 132, 118, 111, 113, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 108, 109, 110, 0, 0, 112, 114, 115, 0, 0, - 116, 0, 117, 0, 0, 0, 119, 120, 121, 0, - 0, 0, 0, 0, 0, 392, 122, 123, 124, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, - 0, 0, 0, 393, 0, 0, 0, 0, 0, 0, - 0, 395, 0, 0, 0, 128, 0, 0, 0, 0, - 0, 397, 394, 396, 0, 129, 130, 131, 0, 133, - 134, 135, 136, 137, 138, 0, 0, 126, 132, 118, - 111, 113, 127, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 208, 0, 0, 0, - 0, 210, 0, 29, 30, 31, 212, 0, 0, 0, - 0, 0, 0, 213, 33, 0, 0, 0, 0, 0, - 0, 215, 216, 0, 0, 217, 36, 0, 37, 0, - 0, 0, 38, 0, 39, 41, 42, 0, 0, 44, - 0, 0, 0, 45, 0, 46, 0, 0, 0, 0, - 0, 219, 0, 220, 0, 0, 0, 50, 218, 221, - 48, 222, 51, 223, 52, 224, 54, 225, 55, 226, - 227, 0, 0, 43, 53, 32, 209, 211, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 208, 0, 0, 0, 0, 210, 0, 29, - 30, 31, 212, 0, 0, 0, 0, 0, 0, 213, - 214, 0, 0, 0, 0, 0, 0, 215, 216, 0, - 0, 217, 36, 0, 37, 0, 0, 0, 38, 0, - 39, 41, 42, 0, 0, 44, 0, 0, 0, 45, - 0, 46, 0, 0, 0, 0, 0, 219, 0, 220, - 0, 0, 0, 50, 218, 221, 48, 222, 51, 223, - 52, 224, 54, 225, 55, 226, 227, 0, 0, 43, - 53, 32, 209, 211, 0, 40, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 569, 109, - 110, 0, 0, 571, 114, 573, 30, 31, 574, 0, - 117, 0, 0, 0, 119, 576, 577, 0, 0, 0, - 0, 0, 0, 578, 579, 123, 124, 217, 36, 0, - 37, 0, 0, 0, 38, 0, 39, 580, 42, 0, - 0, 582, 0, 0, 0, 45, 0, 46, 0, 0, - 0, 0, 0, 584, 0, 220, 0, 0, 0, 586, - 583, 585, 48, 587, 588, 589, 52, 591, 592, 593, - 594, 595, 596, 0, 0, 581, 590, 575, 570, 572, - 127, 40, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 360, 109, 110, 0, 0, 362, - 114, 364, 30, 31, 365, 0, 117, 0, 0, 0, - 119, 367, 368, 0, 0, 0, 0, 0, 0, 369, - 370, 123, 124, 217, 36, 0, 37, 0, 0, 0, - 38, 0, 39, 371, 42, 0, 0, 373, 0, 0, - 0, 45, 0, 46, 0, -263, 0, 0, 0, 375, - 0, 220, 0, 0, 0, 377, 374, 376, 48, 378, - 379, 380, 52, 382, 383, 384, 385, 386, 387, 0, - 0, 372, 381, 366, 361, 363, 127, 40, 0, 0, + 0, 0, 0, 0, 0, 0, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 541, 310, 460, 513, 538, 518, 525, 308, 249, 632, - 306, 181, 252, 618, 149, 16, 623, 495, 319, 497, - 629, 357, 496, 435, 471, 553, 557, 486, 438, 301, - 428, 237, 350, 352, 604, 521, 242, 424, 550, 552, - 181, 301, 185, 237, 242, 343, 432, 348, 338, 249, - 459, 237, 453, 449, 236, 242, 446, 181, 466, 401, - 448, 249, 357, 455, 444, 457, 346, 337, 357, 484, - 142, 236, 147, 333, 438, 175, 301, 335, 187, 409, - 162, 145, 435, 416, 435, 139, 170, 399, 414, 481, - 438, 389, 0, 168, 0, 0, 403, 357, 403, 59, - 357, 490, 301, 534, 391, 0, 0, 0, 301, 0, - 0, 460, 0, 145, 59, 0, 179, 403, 177, 59, - 59, 488, 489, 0, 404, 105, 404, 0, 59, 185, - 451, 59, 59, 450, 59, 59, 59, 59, 59, 283, - 284, 59, 287, 285, 145, 404, 286, 107, 167, 406, - 164, 59, 59, 451, 450, 265, 59, 59, 301, 59, - 269, 68, 96, 95, 479, 59, 59, 331, 478, 59, - 87, 76, 59, 329, 59, 97, 434, 83, 89, 431, - 59, 470, 59, 59, 59, 94, 88, 59, 93, 92, - 59, 59, 90, 59, 59, 91, 493, 59, 59, 71, - 67, 59, 59, 491, 492, 99, 59, 101, 179, 319, - 301, 59, 59, 340, 69, 60, 59, 59, 450, 66, - 59, 59, 451, 304, 105, 499, 269, 297, 297, 297, - 59, 59, 269, 269, 269, 269, 269, 0, 315, 272, - 498, 508, 294, 0, 0, 0, 107, 174, 59, 325, - 318, 316, 297, 269, 59, 290, 0, 269, 297, 269, - 0, 59, 0, 269, 59, 0, 269, 292, 59, 269, - 179, 277, 59, 0, 299, 302, 312, 269, 59, 288, - 296, 328, 609, 269, 499, 289, 597, 633, 606, 599, - 499, 600, 565, 600, 0, 0, 499, 0, 0, 568, - 561, 562, 563, 564, 0, 498, 508, 0, 471, 0, - 0, 498, 508, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 499, 0, 0, 603, 0, 0, 0, 600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 608, 0, 0, 0, 0, 0, + 0, 0, 500, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 499, 509, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -636,148 +663,174 @@ const short QDeclarativeJSGrammar::action_info [] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0}; + 0, 0, 0, 0, 0}; const short QDeclarativeJSGrammar::action_check [] = { - 7, 7, 36, 90, 7, 29, 36, 7, 36, 7, - 33, 8, 7, 7, 36, 7, 90, 7, 0, 7, - 16, 60, 55, 33, 8, 29, 7, 36, 7, 55, - 79, 48, 1, 7, 55, 2, 7, 17, 37, 7, - 33, 60, 29, 7, 33, 7, 66, 33, 33, 7, - 66, 29, 7, 36, 20, 7, 7, 29, 33, 36, - 36, 24, 5, 36, 5, 7, 36, 5, 1, 60, - 7, 36, 7, 2, 79, 2, 33, 8, 8, 7, - 1, 7, 36, 36, 8, 1, 36, -1, 8, 36, - -1, 2, 36, 8, 55, 7, -1, -1, -1, 17, - 60, 60, 48, 48, 60, 7, -1, 55, 8, -1, - 33, 36, 61, 6, 48, -1, 33, 15, 8, 10, - 8, 60, 36, 36, 7, 8, 8, 20, 8, 61, - 8, 33, 8, -1, 8, 40, 34, 77, 60, 8, - 8, 8, 61, 79, 50, -1, 51, 50, 54, 8, - 60, 54, 61, 62, 61, 62, 56, 61, 62, 40, - 61, 62, 61, 62, 55, 40, 56, 61, 62, 12, - 51, 42, 60, 15, 61, 62, 51, 7, 60, -1, - 60, 8, 53, 61, 60, 31, 60, 40, 56, 61, - 62, 60, 34, 60, 29, 61, 62, 56, 51, 61, - 62, 61, 62, 25, 25, 27, 27, 8, 25, 25, - 27, 27, 12, 25, 57, 27, 38, 38, 29, 29, - 63, 38, 38, 25, 15, 27, 38, 12, 25, -1, - 27, 61, 62, 8, 61, 62, 38, 25, 8, 27, - 75, 38, 25, 34, 27, 36, 25, 15, 27, 8, - 38, 86, 61, 62, 8, 38, 25, 57, 27, 38, - 61, 62, 15, 63, 75, 75, 34, 29, 36, 38, - 36, 29, 57, 8, 29, 86, 86, 25, 63, 27, - 7, 34, 91, 36, 29, -1, 61, 62, -1, -1, - 38, 61, 62, -1, -1, 61, 62, 25, -1, 27, - 47, -1, 61, 62, 29, -1, 60, -1, -1, -1, - 38, 18, 19, 75, 61, 62, 29, 75, -1, 29, - 75, 66, 67, 68, 86, -1, 61, 62, 86, 15, - -1, 86, 29, -1, 61, 62, 18, 19, 45, 46, - 29, 66, 67, 68, 91, 29, 15, 33, 34, 29, - 36, -1, 29, 66, 67, 68, 66, 67, 68, 29, - -1, -1, 29, 45, 46, 34, 29, 36, -1, 66, - 67, 68, 29, -1, 15, 29, -1, 66, 67, 68, - -1, -1, 66, 67, 68, -1, 66, 67, 68, 66, - 67, 68, 33, 34, -1, 36, 66, 67, 68, 66, - 67, 68, -1, 66, 67, 68, 23, 24, -1, 66, - 67, 68, 66, 67, 68, 32, 23, 24, 35, -1, - 37, -1, -1, 29, -1, 32, 29, -1, 35, 29, - 37, 18, 19, 36, 23, 24, 36, 29, -1, -1, - -1, -1, -1, 32, -1, -1, 35, -1, 37, 29, - -1, -1, -1, -1, -1, 61, 62, -1, 45, 46, - 66, 67, 68, 66, 67, 68, 66, 67, 68, 61, - 62, 23, 24, 29, 66, 67, 68, -1, -1, 31, - 32, 61, 62, 35, -1, 37, 66, 67, 68, 23, - 24, 29, -1, -1, -1, -1, -1, 31, 32, -1, - -1, 35, -1, 37, -1, 61, 62, 23, 24, 29, - 66, 67, 68, 23, 24, 31, 32, -1, -1, 35, - -1, 37, 32, 61, 62, 35, -1, 37, 66, 67, - 68, 92, 93, 94, 95, 96, 97, -1, -1, 3, - -1, 61, 62, -1, -1, -1, 66, 67, 68, 13, - -1, -1, -1, 17, -1, -1, -1, 3, -1, -1, - -1, -1, 26, -1, 28, -1, -1, 13, -1, -1, - -1, 17, -1, -1, -1, 39, -1, 41, 42, -1, - 26, -1, 28, -1, -1, 49, -1, -1, 52, 53, - 23, 24, -1, 39, 58, 41, 42, -1, 31, 32, - 64, -1, 35, 49, 37, -1, 52, 53, -1, -1, - -1, -1, 58, -1, -1, -1, 80, -1, 64, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 12, - 13, -1, -1, -1, 80, -1, -1, -1, -1, 22, - -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, - 33, 34, -1, 36, -1, -1, -1, -1, -1, -1, - 43, -1, -1, -1, 47, -1, -1, 3, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 13, -1, -1, - -1, 17, 65, 66, 67, 68, -1, 70, -1, -1, - 26, -1, 28, -1, -1, 31, -1, -1, 81, 82, - 83, -1, -1, 39, 87, 41, 42, -1, -1, -1, - -1, -1, -1, 49, -1, -1, 52, 53, -1, -1, - -1, -1, 58, -1, -1, -1, -1, -1, 64, -1, + 55, 7, 33, 7, 55, 7, 60, 36, 90, 55, + 7, 16, 36, 7, 7, 7, 7, 36, 7, 60, + 36, 8, 33, 66, 36, 33, 60, 36, 7, 36, + 7, 7, 33, 36, 24, 7, 7, 37, 8, 60, + 66, 29, 17, 5, 7, 60, 7, 33, 33, 33, + 7, 20, 33, 36, 7, 7, 36, 7, 36, 33, + 7, 17, 60, 36, 1, 33, 79, 2, 8, 7, + 36, 1, 8, 55, 7, 2, 8, 2, 7, 7, + 79, 36, 77, 79, 48, 36, 7, 36, 55, 48, + 36, 36, 33, 36, 8, 60, 1, 31, 0, 2, + 8, 61, 60, 1, 48, 6, 10, 61, 7, 8, + -1, 8, 8, 61, 8, -1, -1, 48, 40, 20, + 8, 60, 8, 42, -1, 40, -1, 50, 8, 51, + 8, 54, 8, 15, 53, 8, 51, 61, 62, 8, + 5, 61, 62, 61, 62, 61, 62, 40, 90, 61, + 62, 55, 34, 79, 61, 62, 40, 8, 51, 8, + 8, 61, 62, 60, 60, 50, 60, 51, 56, 54, + 56, 61, 62, 8, 61, 62, 56, 15, 61, 62, + 61, 62, 60, 56, 60, 15, 25, 8, 27, 29, + 7, 60, 25, 29, 27, 7, 34, 12, 36, 38, + 25, 25, 27, 27, 34, 38, 36, 12, 8, 12, + 61, 60, 60, 38, 38, 8, 25, 25, 27, 27, + -1, 33, 7, -1, -1, 29, 61, 62, 29, 38, + 38, -1, 29, 8, -1, 75, 15, 8, 36, 75, + 61, 62, 57, -1, 61, 62, 86, 29, 63, -1, + 86, 15, 57, -1, 57, 34, 18, 19, 63, -1, + 63, 61, 62, 61, 62, 61, 62, -1, 61, 62, + 34, 75, 36, 15, 75, -1, 61, 62, 75, 15, + 92, -1, 86, 45, 46, 86, 61, 62, 29, 86, + 61, 62, 34, 75, 36, 91, 47, 33, 34, 15, + 36, 18, 19, -1, 86, 18, 19, 29, -1, -1, + 61, 62, -1, -1, 18, 19, -1, 33, 34, 29, + 36, -1, 25, 29, 27, 66, 67, 68, 45, 46, + -1, -1, 45, 46, -1, 38, -1, -1, 23, 24, + 91, 45, 46, -1, 66, 67, 68, 32, -1, -1, + 35, 92, 37, 29, 23, 24, 66, 67, 68, -1, + 66, 67, 68, 32, 23, 24, 35, 29, 37, -1, + 92, 23, 24, 32, 36, -1, 35, -1, 37, -1, + 32, 29, 92, 35, -1, 37, 92, 23, 24, 29, + 66, 67, 68, -1, -1, 29, 32, -1, 29, 35, + -1, 37, 36, -1, 66, 67, 68, 93, 94, 95, + 96, 97, 98, 61, 62, -1, 92, 29, 66, 67, + 68, 61, 62, -1, -1, -1, 66, 67, 68, -1, + 92, -1, 66, 67, 68, 66, 67, 68, -1, -1, + -1, -1, -1, -1, 92, -1, -1, -1, -1, 61, + 62, -1, 92, 29, 66, 67, 68, -1, 92, -1, + -1, 92, 29, -1, -1, 29, -1, -1, -1, -1, + 23, 24, -1, -1, -1, -1, -1, -1, 31, 32, + 92, -1, 35, -1, 37, 61, 62, -1, -1, -1, + 66, 67, 68, -1, 61, 62, -1, 61, 62, 66, + 67, 68, 66, 67, 68, -1, -1, -1, -1, -1, + 12, 13, -1, -1, -1, -1, 92, -1, -1, -1, + 22, -1, -1, -1, -1, 92, -1, 29, 92, -1, + -1, 33, 34, -1, 36, -1, -1, -1, -1, -1, + -1, 43, -1, -1, -1, 47, -1, -1, 3, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 13, -1, + -1, -1, 17, 65, 66, 67, 68, -1, 70, -1, + -1, 26, -1, 28, -1, -1, -1, -1, -1, 81, + 82, 83, -1, -1, 39, 87, 41, 42, -1, -1, + 92, -1, -1, -1, 49, 12, 13, 52, 53, -1, + -1, -1, -1, 58, -1, 22, -1, -1, -1, 64, + -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, + -1, -1, -1, -1, -1, 80, 43, -1, -1, -1, + 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3, -1, 65, 66, + 67, 68, -1, 70, -1, -1, 13, -1, -1, -1, + 17, -1, -1, -1, 81, 82, 83, -1, -1, 26, + 87, 28, -1, -1, 31, 92, -1, -1, -1, -1, + -1, -1, 39, -1, 41, 42, -1, -1, -1, -1, + -1, -1, 49, -1, -1, 52, 53, -1, -1, -1, + -1, 58, -1, -1, -1, -1, -1, 64, -1, -1, -1, -1, -1, -1, -1, -1, 12, 13, -1, -1, - -1, -1, -1, -1, 80, -1, 22, -1, -1, -1, + -1, -1, -1, 80, -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, 12, 13, -1, 43, -1, -1, -1, 47, -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, 65, 66, 67, 68, -1, 70, 43, -1, -1, -1, 47, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, - -1, 87, -1, -1, -1, -1, -1, 65, 66, 67, - 68, -1, 70, -1, 10, -1, 12, 13, -1, -1, - -1, -1, -1, 81, 82, 83, 22, -1, -1, 87, - -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, - 36, -1, 12, 13, -1, -1, -1, 43, -1, -1, - -1, 47, 22, -1, -1, -1, -1, -1, -1, 29, - -1, -1, -1, 33, 34, -1, 36, -1, -1, 65, - 66, 67, 68, 43, 70, -1, -1, 47, -1, 75, - -1, -1, -1, -1, -1, 81, 82, 83, 84, -1, - -1, 87, -1, -1, -1, 65, 66, 67, 68, -1, - 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 81, 82, 83, -1, -1, -1, 87, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, - -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, - -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, - -1, -1, -1, 43, -1, -1, -1, 47, -1, -1, - -1, -1, -1, -1, -1, 55, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 65, 66, 67, 68, -1, - 70, -1, -1, -1, -1, 75, -1, -1, -1, -1, - -1, 81, 82, 83, 84, -1, -1, 87, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, - -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, - -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, + -1, 87, -1, -1, -1, -1, 92, 65, 66, 67, + 68, -1, 70, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 81, 82, 83, -1, -1, -1, 87, + -1, -1, -1, -1, 92, 12, 13, -1, -1, -1, + -1, -1, -1, 12, 13, 22, -1, -1, -1, -1, + -1, -1, 29, 22, -1, -1, 33, 34, -1, 36, + 29, -1, -1, -1, 33, 34, 43, 36, -1, -1, + 47, -1, -1, -1, 43, -1, -1, -1, 47, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, + 67, 68, -1, 70, -1, -1, 65, 66, 67, 68, + -1, 70, -1, -1, 81, 82, 83, -1, -1, -1, + 87, -1, 81, 82, 83, 92, -1, -1, 87, -1, + -1, -1, -1, 92, 12, 13, -1, -1, -1, -1, + -1, -1, 12, 13, 22, -1, -1, -1, -1, -1, + -1, 29, 22, -1, -1, 33, 34, -1, 36, 29, + -1, -1, -1, 33, 34, 43, 36, -1, -1, 47, -1, -1, -1, 43, -1, -1, -1, 47, -1, -1, - -1, -1, -1, -1, -1, 55, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 65, 66, 67, 68, -1, - 70, -1, -1, -1, -1, 75, -1, -1, -1, -1, - -1, 81, 82, 83, 84, -1, -1, 87, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, - -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, - -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, - -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, - 51, -1, 53, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 65, 66, 67, 68, -1, 70, - -1, 72, -1, 74, -1, 76, -1, -1, -1, -1, - 81, 82, 83, -1, -1, -1, 87, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 7, - -1, -1, -1, 11, 12, 13, -1, -1, -1, -1, - -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, - -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, - -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, - -1, -1, -1, 51, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, - 68, -1, 70, -1, 72, -1, 74, -1, 76, -1, - -1, -1, -1, 81, 82, 83, -1, -1, -1, 87, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, + 68, -1, 70, -1, -1, 65, 66, 67, 68, -1, + 70, -1, -1, 81, 82, 83, -1, -1, -1, 87, + -1, 81, 82, 83, 92, -1, -1, 87, -1, -1, + -1, -1, 92, -1, -1, -1, -1, -1, -1, -1, + -1, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, - -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, - -1, -1, 51, -1, 53, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 65, 66, 67, 68, - -1, 70, -1, 72, -1, 74, 75, 76, -1, -1, - -1, -1, 81, 82, 83, -1, -1, -1, 87, -1, + -1, -1, -1, -1, 43, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 65, 66, 67, 68, + -1, 70, -1, -1, -1, -1, 75, -1, -1, -1, + -1, -1, 81, 82, 83, 84, -1, -1, 87, -1, + -1, -1, -1, 92, -1, -1, -1, -1, -1, -1, + -1, -1, 10, -1, 12, 13, -1, -1, -1, -1, + -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, + -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, + -1, -1, -1, -1, -1, 43, -1, -1, -1, 47, + -1, -1, -1, -1, -1, -1, -1, 55, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, + 68, -1, 70, -1, -1, -1, -1, 75, -1, -1, + -1, -1, -1, 81, 82, 83, 84, -1, -1, 87, + -1, -1, -1, -1, 92, -1, -1, -1, -1, -1, + -1, -1, -1, 10, -1, 12, 13, -1, -1, -1, + -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, + -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, + -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, + 47, -1, -1, -1, -1, -1, -1, -1, 55, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, + 67, 68, -1, 70, -1, -1, -1, -1, 75, -1, + -1, -1, -1, -1, 81, 82, 83, 84, -1, -1, + 87, -1, -1, -1, -1, 92, -1, -1, -1, -1, + -1, -1, -1, -1, 11, 12, 13, -1, -1, -1, + -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, + -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, + -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, + 47, -1, -1, -1, 51, -1, 53, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, + 67, 68, -1, 70, -1, 72, -1, 74, -1, 76, + -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, + 87, -1, -1, -1, -1, 92, -1, -1, -1, -1, + -1, -1, -1, -1, 7, -1, -1, -1, 11, 12, + 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, + -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, + 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, + 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, + 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 65, 66, 67, 68, -1, 70, -1, 72, + -1, 74, -1, 76, -1, -1, -1, -1, 81, 82, + 83, -1, -1, -1, 87, -1, -1, -1, -1, 92, + -1, -1, -1, -1, -1, -1, -1, -1, 11, 12, + 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, + -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, + 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, + 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, + 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 65, 66, 67, 68, -1, 70, -1, 72, + -1, 74, 75, 76, -1, -1, -1, -1, 81, 82, + 83, -1, -1, -1, 87, -1, -1, -1, -1, 92, + -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, + -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, + -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, + -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, + 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, + -1, 51, -1, 53, -1, -1, 56, -1, -1, -1, + -1, -1, -1, -1, -1, 65, 66, 67, 68, -1, + 70, -1, 72, -1, 74, -1, 76, -1, -1, -1, + -1, 81, 82, 83, -1, -1, -1, 87, -1, -1, + -1, -1, 92, -1, -1, -1, -1, -1, -1, -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, 30, -1, -1, 33, 34, -1, 36, -1, -1, -1, @@ -786,25 +839,16 @@ const short QDeclarativeJSGrammar::action_check [] = { -1, 61, -1, -1, -1, 65, 66, 67, 68, -1, 70, -1, 72, -1, 74, -1, 76, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, 87, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 8, -1, -1, 11, 12, 13, -1, -1, -1, -1, - -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, - -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, - -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, - -1, -1, -1, 51, -1, 53, -1, -1, 56, -1, - -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, - 68, -1, 70, -1, 72, -1, 74, -1, 76, -1, - -1, -1, -1, 81, 82, 83, -1, -1, -1, 87, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 8, -1, -1, 11, 12, 13, -1, -1, - -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, - -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, - 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, - -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, - 56, -1, -1, -1, -1, -1, -1, -1, -1, 65, - 66, 67, 68, -1, 70, -1, 72, -1, 74, -1, - 76, -1, -1, -1, -1, 81, 82, 83, -1, -1, - -1, 87, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 92, -1, -1, -1, -1, -1, -1, -1, + -1, 8, -1, -1, 11, 12, 13, -1, -1, -1, + -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, + -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, + -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, + 47, -1, -1, -1, 51, -1, 53, -1, -1, 56, + -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, + 67, 68, -1, 70, -1, 72, -1, 74, -1, 76, + -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, + 87, -1, -1, -1, -1, 92, -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, @@ -813,120 +857,129 @@ const short QDeclarativeJSGrammar::action_check [] = { -1, -1, 56, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, 68, -1, 70, -1, 72, -1, 74, -1, 76, -1, -1, -1, -1, 81, 82, 83, - -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, - 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, - 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, - -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, - 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, - -1, 53, -1, -1, 56, -1, -1, -1, -1, -1, - -1, -1, -1, 65, 66, 67, 68, -1, 70, -1, - 72, -1, 74, -1, 76, -1, -1, -1, -1, 81, - 82, 83, -1, -1, -1, 87, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, - 6, -1, -1, 9, 10, 11, -1, -1, 14, -1, - 16, -1, -1, -1, 20, 21, 22, -1, -1, -1, - -1, -1, -1, 29, 30, 31, 32, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, + -1, -1, -1, 87, -1, -1, -1, -1, 92, -1, + -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, + 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, + -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, + -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, + -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, + 51, -1, 53, -1, -1, 56, -1, -1, -1, -1, + -1, -1, -1, -1, 65, 66, 67, 68, -1, 70, + -1, 72, -1, 74, -1, 76, -1, -1, -1, -1, + 81, 82, 83, -1, -1, -1, 87, -1, -1, -1, + -1, 92, -1, -1, -1, -1, -1, -1, -1, -1, + 4, 5, 6, -1, -1, 9, 10, 11, -1, -1, + 14, -1, 16, -1, -1, -1, 20, 21, 22, -1, + -1, -1, -1, -1, -1, 29, 30, 31, 32, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, + -1, -1, 66, 67, 68, 69, 70, 71, -1, 73, + 74, 75, 76, 77, 78, -1, -1, 81, 82, 83, + 84, 85, 86, -1, -1, -1, -1, -1, 92, -1, + -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, + -1, -1, 9, 10, 11, -1, -1, 14, -1, 16, + -1, -1, -1, 20, 21, 22, -1, -1, -1, -1, + -1, -1, 29, 30, 31, 32, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, + 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 59, -1, -1, -1, -1, -1, 65, 66, + 67, -1, 69, 70, 71, -1, 73, 74, 75, 76, + 77, 78, -1, -1, 81, 82, 83, 84, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, - 66, 67, 68, 69, 70, 71, -1, 73, 74, 75, - 76, 77, 78, -1, -1, 81, 82, 83, 84, 85, - 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, -1, -1, 9, 10, 11, -1, -1, 14, -1, 16, -1, -1, -1, 20, 21, 22, -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, 47, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, + -1, -1, -1, -1, -1, 55, -1, -1, -1, 59, -1, -1, -1, -1, -1, 65, 66, 67, -1, 69, 70, 71, -1, 73, 74, 75, 76, 77, 78, -1, -1, 81, 82, 83, 84, 85, 86, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 4, 5, 6, -1, -1, 9, 10, 11, -1, -1, - 14, -1, 16, -1, -1, -1, 20, 21, 22, -1, - -1, -1, -1, -1, -1, 29, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, - -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, - -1, 55, -1, -1, -1, 59, -1, -1, -1, -1, - -1, 65, 66, 67, -1, 69, 70, 71, -1, 73, - 74, 75, 76, 77, 78, -1, -1, 81, 82, 83, - 84, 85, 86, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, - -1, 9, -1, 11, 12, 13, 14, -1, -1, -1, - -1, -1, -1, 21, 22, -1, -1, -1, -1, -1, - -1, 29, 30, -1, -1, 33, 34, -1, 36, -1, - -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, - -1, -1, -1, 51, -1, 53, -1, -1, -1, -1, - -1, 59, -1, 61, -1, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, -1, -1, 81, 82, 83, 84, 85, -1, 87, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 4, -1, -1, -1, -1, 9, -1, 11, - 12, 13, 14, -1, -1, -1, -1, -1, -1, 21, - 22, -1, -1, -1, -1, -1, -1, 29, 30, -1, - -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, - 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, - -1, 53, -1, -1, -1, -1, -1, 59, -1, 61, - -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, -1, -1, 81, - 82, 83, 84, 85, -1, 87, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, - 6, -1, -1, 9, 10, 11, 12, 13, 14, -1, - 16, -1, -1, -1, 20, 21, 22, -1, -1, -1, - -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, + -1, 4, -1, -1, -1, -1, 9, -1, 11, 12, + 13, 14, -1, -1, -1, -1, -1, -1, 21, 22, + -1, -1, -1, -1, -1, -1, 29, 30, -1, -1, + 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, + 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, + 53, -1, -1, -1, -1, -1, 59, -1, 61, -1, + -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, -1, -1, 81, 82, + 83, 84, 85, -1, 87, -1, -1, -1, -1, 92, + -1, -1, -1, -1, -1, -1, -1, -1, 4, -1, + -1, -1, -1, 9, -1, 11, 12, 13, 14, -1, + -1, -1, -1, -1, -1, 21, 22, -1, -1, -1, + -1, -1, -1, 29, 30, -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, -1, -1, -1, 59, -1, 61, -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, -1, 81, 82, 83, 84, 85, - 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 4, 5, 6, -1, -1, 9, - 10, 11, 12, 13, 14, -1, 16, -1, -1, -1, - 20, 21, 22, -1, -1, -1, -1, -1, -1, 29, - 30, 31, 32, 33, 34, -1, 36, -1, -1, -1, - 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, - -1, 51, -1, 53, -1, 55, -1, -1, -1, 59, - -1, 61, -1, -1, -1, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, - -1, 81, 82, 83, 84, 85, 86, 87, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 87, -1, -1, -1, -1, 92, -1, -1, -1, + -1, -1, -1, -1, -1, 4, 5, 6, -1, -1, + 9, 10, 11, 12, 13, 14, -1, 16, -1, -1, + -1, 20, 21, 22, -1, -1, -1, -1, -1, -1, + 29, 30, 31, 32, 33, 34, -1, 36, -1, -1, + -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, + -1, -1, 51, -1, 53, -1, -1, -1, -1, -1, + 59, -1, 61, -1, -1, -1, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + -1, -1, 81, 82, 83, 84, 85, 86, 87, -1, + -1, -1, -1, 92, -1, -1, -1, -1, -1, -1, + -1, -1, 4, 5, 6, -1, -1, 9, 10, 11, + 12, 13, 14, -1, 16, -1, -1, -1, 20, 21, + 22, -1, -1, -1, -1, -1, -1, 29, 30, 31, + 32, 33, 34, -1, 36, -1, -1, -1, 40, -1, + 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, + -1, 53, -1, 55, -1, -1, -1, 59, -1, 61, + -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, -1, -1, 81, + 82, 83, 84, 85, 86, 87, -1, -1, -1, -1, + 92, -1, -1, -1, -1, -1, -1, -1, -1, - 3, 2, 15, 25, 25, 3, 25, 3, 2, 11, - 2, 15, 3, 13, 67, 3, 15, 104, 15, 2, - 15, 2, 4, 3, 35, 15, 15, 3, 21, 3, - 93, 15, 2, 2, 19, 13, 15, 96, 25, 25, - 15, 3, 15, 15, 15, 100, 3, 3, 15, 2, - 2, 15, 3, 21, 4, 15, 15, 15, 35, 2, - 21, 2, 2, 2, 98, 3, 2, 2, 2, 35, - 35, 4, 35, 2, 21, 3, 3, 3, 15, 2, - 35, 35, 3, 3, 3, 3, 35, 35, 2, 35, - 21, 35, -1, 35, -1, -1, 13, 2, 13, 44, - 2, 46, 3, 3, 36, -1, -1, -1, 3, -1, - -1, 15, -1, 35, 44, -1, 46, 13, 40, 44, - 44, 46, 46, -1, 41, 15, 41, -1, 44, 15, - 46, 44, 44, 46, 44, 44, 44, 44, 44, 49, - 49, 44, 49, 49, 35, 41, 49, 37, 60, 40, - 58, 44, 44, 46, 46, 44, 44, 44, 3, 44, - 49, 46, 50, 50, 31, 44, 44, 68, 35, 44, - 48, 50, 44, 68, 44, 50, 81, 49, 48, 81, - 44, 85, 44, 44, 44, 49, 48, 44, 49, 49, - 44, 44, 49, 44, 44, 49, 46, 44, 44, 52, - 46, 44, 44, 46, 46, 56, 44, 54, 46, 15, - 3, 44, 44, 99, 47, 47, 44, 44, 46, 46, - 44, 44, 46, 68, 15, 13, 49, 44, 44, 44, - 44, 44, 49, 49, 49, 49, 49, -1, 61, 53, - 28, 29, 55, -1, -1, -1, 37, 38, 44, 66, - 66, 66, 44, 49, 44, 51, -1, 49, 44, 49, - -1, 44, -1, 49, 44, -1, 49, 57, 44, 49, - 46, 51, 44, -1, 66, 68, 59, 49, 44, 51, - 66, 87, 5, 49, 13, 51, 13, 16, 5, 16, - 13, 20, 13, 20, -1, -1, 13, -1, -1, 20, - 21, 22, 23, 24, -1, 28, 29, -1, 35, -1, - -1, 28, 29, -1, -1, -1, -1, -1, -1, -1, + 13, 15, 25, 3, 15, 15, 3, 25, 3, 15, + 2, 15, 2, 25, 3, 11, 19, 15, 67, 13, + 3, 104, 15, 4, 15, 3, 2, 15, 2, 15, + 3, 15, 3, 35, 21, 3, 15, 36, 3, 19, + 25, 2, 2, 25, 21, 15, 15, 98, 15, 15, + 2, 4, 15, 15, 2, 93, 3, 21, 2, 2, + 35, 3, 2, 35, 15, 3, 21, 3, 2, 15, + 15, 2, 2, 2, 15, 3, 35, 35, 35, 35, + 3, 35, 3, 3, 21, 35, 35, 96, 15, 3, + 2, 4, 3, 2, 2, 100, 35, 3, 3, 2, + 35, 2, -1, -1, -1, 15, -1, -1, -1, -1, + -1, 44, 44, 46, 46, 13, -1, -1, 44, 44, + 44, 46, 46, 15, 15, 44, 44, 44, 54, 44, + 49, 49, 49, 3, 49, 15, -1, 44, -1, -1, + 44, 48, 44, 41, 48, 44, 37, 46, 44, 44, + 35, 44, 35, 46, 49, 40, 58, 40, 44, 3, + 44, -1, 48, 68, 60, 49, 44, 44, 44, 44, + -1, 49, 49, 49, 49, 85, 44, 44, 81, 46, + 81, 44, 44, 46, 52, 44, 44, 46, 50, 44, + 31, 46, 50, 13, 35, 87, 44, 2, 68, 47, + 20, 44, 44, 46, 46, 44, 13, 44, 47, 46, + 44, 44, 46, 44, 44, 46, 49, 13, 44, 99, + 46, 44, 44, 46, 68, 44, 56, 44, 50, 46, + 49, 44, -1, 44, 41, 44, 15, 50, 49, -1, + 49, 13, 44, 13, 44, 41, 16, 49, 57, 49, + 20, -1, -1, -1, -1, 66, 28, 29, 37, 38, + 44, 61, -1, 44, 66, 49, 44, 51, 49, 44, + 51, 49, -1, 51, 49, 44, 44, 44, -1, 44, + 49, 49, 49, 13, 49, -1, 16, 55, 53, 44, + 20, 66, 59, 44, 49, 5, -1, 66, 49, 13, + 51, 3, 16, 13, -1, 13, 20, -1, -1, -1, + -1, 66, 20, 21, 22, 23, 24, -1, 28, 29, + -1, 35, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 68, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 13, -1, -1, 16, -1, -1, -1, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 5, -1, -1, -1, -1, -1, + -1, -1, 13, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 28, 29, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -934,6 +987,6 @@ const short QDeclarativeJSGrammar::action_check [] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1}; + -1, -1, -1, -1, -1}; QT_END_NAMESPACE diff --git a/src/declarative/qml/parser/qdeclarativejsgrammar_p.h b/src/declarative/qml/parser/qdeclarativejsgrammar_p.h index d6c3d6b..2b2e3d1 100644 --- a/src/declarative/qml/parser/qdeclarativejsgrammar_p.h +++ b/src/declarative/qml/parser/qdeclarativejsgrammar_p.h @@ -61,10 +61,10 @@ QT_BEGIN_NAMESPACE class QDeclarativeJSGrammar { public: - enum VariousConstants { + enum { EOF_SYMBOL = 0, - REDUCE_HERE = 99, - SHIFT_THERE = 98, + REDUCE_HERE = 100, + SHIFT_THERE = 99, T_AND = 1, T_AND_AND = 2, T_AND_EQ = 3, @@ -90,12 +90,12 @@ public: T_EQ_EQ = 18, T_EQ_EQ_EQ = 19, T_FALSE = 83, - T_FEED_JS_EXPRESSION = 95, - T_FEED_JS_PROGRAM = 97, - T_FEED_JS_SOURCE_ELEMENT = 96, - T_FEED_JS_STATEMENT = 94, - T_FEED_UI_OBJECT_MEMBER = 93, - T_FEED_UI_PROGRAM = 92, + T_FEED_JS_EXPRESSION = 96, + T_FEED_JS_PROGRAM = 98, + T_FEED_JS_SOURCE_ELEMENT = 97, + T_FEED_JS_STATEMENT = 95, + T_FEED_UI_OBJECT_MEMBER = 94, + T_FEED_UI_PROGRAM = 93, T_FINALLY = 20, T_FOR = 21, T_FUNCTION = 22, @@ -127,6 +127,7 @@ public: T_NOT_EQ_EQ = 46, T_NULL = 81, T_NUMERIC_LITERAL = 47, + T_ON = 92, T_OR = 48, T_OR_EQ = 49, T_OR_OR = 50, @@ -163,15 +164,15 @@ public: T_XOR = 79, T_XOR_EQ = 80, - ACCEPT_STATE = 635, - RULE_COUNT = 343, - STATE_COUNT = 636, - TERMINAL_COUNT = 100, + ACCEPT_STATE = 639, + RULE_COUNT = 345, + STATE_COUNT = 640, + TERMINAL_COUNT = 101, NON_TERMINAL_COUNT = 106, - GOTO_INDEX_OFFSET = 636, - GOTO_INFO_OFFSET = 2520, - GOTO_CHECK_OFFSET = 2520 + GOTO_INDEX_OFFSET = 640, + GOTO_INFO_OFFSET = 2699, + GOTO_CHECK_OFFSET = 2699 }; static const char *const spell []; diff --git a/src/declarative/qml/parser/qdeclarativejslexer.cpp b/src/declarative/qml/parser/qdeclarativejslexer.cpp index 384d00c..34163a4 100644 --- a/src/declarative/qml/parser/qdeclarativejslexer.cpp +++ b/src/declarative/qml/parser/qdeclarativejslexer.cpp @@ -166,6 +166,8 @@ int Lexer::findReservedWord(const QChar *c, int size) const return QDeclarativeJSGrammar::T_IN; else if (c[0] == QLatin1Char('a') && c[1] == QLatin1Char('s')) return QDeclarativeJSGrammar::T_AS; + else if (c[0] == QLatin1Char('o') && c[1] == QLatin1Char('n')) + return QDeclarativeJSGrammar::T_ON; } break; case 3: { diff --git a/src/declarative/qml/parser/qdeclarativejsparser.cpp b/src/declarative/qml/parser/qdeclarativejsparser.cpp index 4aa4960..fd9e690 100644 --- a/src/declarative/qml/parser/qdeclarativejsparser.cpp +++ b/src/declarative/qml/parser/qdeclarativejsparser.cpp @@ -356,7 +356,15 @@ case 32: { node->colonToken = loc(2); sym(1).Node = node; } break; -case 33:case 34:case 35:case 36: + +case 33: { + AST::UiObjectBinding *node = makeAstNode<AST::UiObjectBinding> (driver->nodePool(), + sym(3).UiQualifiedId, sym(1).UiQualifiedId, sym(4).UiObjectInitializer); + node->colonToken = loc(2); + node->hasOnToken = true; + sym(1).Node = node; +} break; +case 34:case 35:case 36:case 37: { AST::UiScriptBinding *node = makeAstNode<AST::UiScriptBinding> (driver->nodePool(), sym(1).UiQualifiedId, sym(3).Statement); @@ -364,35 +372,35 @@ case 33:case 34:case 35:case 36: sym(1).Node = node; } break; -case 37: +case 38: -case 38: { +case 39: { sym(1).sval = driver->intern(lexer->characterBuffer(), lexer->characterCount()); break; } -case 40: { +case 41: { sym(1).Node = 0; } break; -case 41: { +case 42: { sym(1).Node = sym(1).UiParameterList->finish (); } break; -case 42: { +case 43: { AST::UiParameterList *node = makeAstNode<AST::UiParameterList> (driver->nodePool(), sym(1).sval, sym(2).sval); node->identifierToken = loc(2); sym(1).Node = node; } break; -case 43: { +case 44: { AST::UiParameterList *node = makeAstNode<AST::UiParameterList> (driver->nodePool(), sym(1).UiParameterList, sym(3).sval, sym(4).sval); node->commaToken = loc(2); node->identifierToken = loc(4); sym(1).Node = node; } break; -case 45: { +case 46: { AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), (NameId *)0, sym(2).sval); node->type = AST::UiPublicMember::Signal; node->propertyToken = loc(1); @@ -403,7 +411,7 @@ case 45: { sym(1).Node = node; } break; -case 47: { +case 48: { AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), (NameId *)0, sym(2).sval); node->type = AST::UiPublicMember::Signal; node->propertyToken = loc(1); @@ -413,7 +421,7 @@ case 47: { sym(1).Node = node; } break; -case 49: { +case 50: { AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(4).sval, sym(6).sval); node->typeModifier = sym(2).sval; node->propertyToken = loc(1); @@ -424,7 +432,7 @@ case 49: { sym(1).Node = node; } break; -case 51: { +case 52: { AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(2).sval, sym(3).sval); node->propertyToken = loc(1); node->typeToken = loc(2); @@ -433,7 +441,7 @@ case 51: { sym(1).Node = node; } break; -case 53: { +case 54: { AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(3).sval, sym(4).sval); node->isDefaultMember = true; node->defaultToken = loc(1); @@ -444,7 +452,7 @@ case 53: { sym(1).Node = node; } break; -case 55: { +case 56: { AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(2).sval, sym(3).sval, sym(5).Expression); node->propertyToken = loc(1); @@ -455,7 +463,7 @@ case 55: { sym(1).Node = node; } break; -case 57: { +case 58: { AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(3).sval, sym(4).sval, sym(6).Expression); node->isReadonlyMember = true; @@ -468,7 +476,7 @@ case 57: { sym(1).Node = node; } break; -case 59: { +case 60: { AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(3).sval, sym(4).sval, sym(6).Expression); node->isDefaultMember = true; @@ -481,75 +489,81 @@ case 59: { sym(1).Node = node; } break; -case 60: { +case 61: { sym(1).Node = makeAstNode<AST::UiSourceElement>(driver->nodePool(), sym(1).Node); } break; -case 61: { +case 62: { sym(1).Node = makeAstNode<AST::UiSourceElement>(driver->nodePool(), sym(1).Node); } break; -case 63: { +case 64: { QString s = QLatin1String(QDeclarativeJSGrammar::spell[T_PROPERTY]); sym(1).sval = driver->intern(s.constData(), s.length()); break; } -case 64: { +case 65: { QString s = QLatin1String(QDeclarativeJSGrammar::spell[T_SIGNAL]); sym(1).sval = driver->intern(s.constData(), s.length()); break; } -case 65: { +case 66: { QString s = QLatin1String(QDeclarativeJSGrammar::spell[T_READONLY]); sym(1).sval = driver->intern(s.constData(), s.length()); break; } -case 66: { +case 67: { + QString s = QLatin1String(QDeclarativeJSGrammar::spell[T_READONLY]); + sym(1).sval = driver->intern(s.constData(), s.length()); + break; +} + +case 68: { AST::ThisExpression *node = makeAstNode<AST::ThisExpression> (driver->nodePool()); node->thisToken = loc(1); sym(1).Node = node; } break; -case 67: { +case 69: { AST::IdentifierExpression *node = makeAstNode<AST::IdentifierExpression> (driver->nodePool(), sym(1).sval); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 68: { +case 70: { AST::NullExpression *node = makeAstNode<AST::NullExpression> (driver->nodePool()); node->nullToken = loc(1); sym(1).Node = node; } break; -case 69: { +case 71: { AST::TrueLiteral *node = makeAstNode<AST::TrueLiteral> (driver->nodePool()); node->trueToken = loc(1); sym(1).Node = node; } break; -case 70: { +case 72: { AST::FalseLiteral *node = makeAstNode<AST::FalseLiteral> (driver->nodePool()); node->falseToken = loc(1); sym(1).Node = node; } break; -case 71: { +case 73: { AST::NumericLiteral *node = makeAstNode<AST::NumericLiteral> (driver->nodePool(), sym(1).dval); node->literalToken = loc(1); sym(1).Node = node; } break; -case 72: -case 73: { +case 74: +case 75: { AST::StringLiteral *node = makeAstNode<AST::StringLiteral> (driver->nodePool(), sym(1).sval); node->literalToken = loc(1); sym(1).Node = node; } break; -case 74: { +case 76: { bool rx = lexer->scanRegExp(Lexer::NoPrefix); if (!rx) { diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, location(lexer), lexer->errorMessage())); @@ -560,7 +574,7 @@ case 74: { sym(1).Node = node; } break; -case 75: { +case 77: { bool rx = lexer->scanRegExp(Lexer::EqualPrefix); if (!rx) { diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, location(lexer), lexer->errorMessage())); @@ -571,28 +585,28 @@ case 75: { sym(1).Node = node; } break; -case 76: { +case 78: { AST::ArrayLiteral *node = makeAstNode<AST::ArrayLiteral> (driver->nodePool(), (AST::Elision *) 0); node->lbracketToken = loc(1); node->rbracketToken = loc(2); sym(1).Node = node; } break; -case 77: { +case 79: { AST::ArrayLiteral *node = makeAstNode<AST::ArrayLiteral> (driver->nodePool(), sym(2).Elision->finish()); node->lbracketToken = loc(1); node->rbracketToken = loc(3); sym(1).Node = node; } break; -case 78: { +case 80: { AST::ArrayLiteral *node = makeAstNode<AST::ArrayLiteral> (driver->nodePool(), sym(2).ElementList->finish ()); node->lbracketToken = loc(1); node->rbracketToken = loc(3); sym(1).Node = node; } break; -case 79: { +case 81: { AST::ArrayLiteral *node = makeAstNode<AST::ArrayLiteral> (driver->nodePool(), sym(2).ElementList->finish (), (AST::Elision *) 0); node->lbracketToken = loc(1); @@ -601,7 +615,7 @@ case 79: { sym(1).Node = node; } break; -case 80: { +case 82: { AST::ArrayLiteral *node = makeAstNode<AST::ArrayLiteral> (driver->nodePool(), sym(2).ElementList->finish (), sym(4).Elision->finish()); node->lbracketToken = loc(1); @@ -610,7 +624,7 @@ case 80: { sym(1).Node = node; } break; -case 81: { +case 83: { AST::ObjectLiteral *node = 0; if (sym(2).Node) node = makeAstNode<AST::ObjectLiteral> (driver->nodePool(), @@ -622,7 +636,7 @@ case 81: { sym(1).Node = node; } break; -case 82: { +case 84: { AST::ObjectLiteral *node = makeAstNode<AST::ObjectLiteral> (driver->nodePool(), sym(2).PropertyNameAndValueList->finish ()); node->lbraceToken = loc(1); @@ -630,14 +644,14 @@ case 82: { sym(1).Node = node; } break; -case 83: { +case 85: { AST::NestedExpression *node = makeAstNode<AST::NestedExpression>(driver->nodePool(), sym(2).Expression); node->lparenToken = loc(1); node->rparenToken = loc(3); sym(1).Node = node; } break; -case 84: { +case 86: { if (AST::ArrayMemberExpression *mem = AST::cast<AST::ArrayMemberExpression *>(sym(1).Expression)) { diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Warning, mem->lbracketToken, QLatin1String("Ignored annotation"))); @@ -657,48 +671,48 @@ case 84: { } } break; -case 85: { +case 87: { sym(1).Node = makeAstNode<AST::ElementList> (driver->nodePool(), (AST::Elision *) 0, sym(1).Expression); } break; -case 86: { +case 88: { sym(1).Node = makeAstNode<AST::ElementList> (driver->nodePool(), sym(1).Elision->finish(), sym(2).Expression); } break; -case 87: { +case 89: { AST::ElementList *node = makeAstNode<AST::ElementList> (driver->nodePool(), sym(1).ElementList, (AST::Elision *) 0, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 88: { +case 90: { AST::ElementList *node = makeAstNode<AST::ElementList> (driver->nodePool(), sym(1).ElementList, sym(3).Elision->finish(), sym(4).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 89: { +case 91: { AST::Elision *node = makeAstNode<AST::Elision> (driver->nodePool()); node->commaToken = loc(1); sym(1).Node = node; } break; -case 90: { +case 92: { AST::Elision *node = makeAstNode<AST::Elision> (driver->nodePool(), sym(1).Elision); node->commaToken = loc(2); sym(1).Node = node; } break; -case 91: { +case 93: { AST::PropertyNameAndValueList *node = makeAstNode<AST::PropertyNameAndValueList> (driver->nodePool(), sym(1).PropertyName, sym(3).Expression); node->colonToken = loc(2); sym(1).Node = node; } break; -case 92: { +case 94: { AST::PropertyNameAndValueList *node = makeAstNode<AST::PropertyNameAndValueList> (driver->nodePool(), sym(1).PropertyNameAndValueList, sym(3).PropertyName, sym(5).Expression); node->commaToken = loc(2); @@ -706,40 +720,36 @@ case 92: { sym(1).Node = node; } break; -case 93: { +case 95: { AST::IdentifierPropertyName *node = makeAstNode<AST::IdentifierPropertyName> (driver->nodePool(), sym(1).sval); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 94: -case 95: { +case 96: +case 97: { AST::IdentifierPropertyName *node = makeAstNode<AST::IdentifierPropertyName> (driver->nodePool(), driver->intern(lexer->characterBuffer(), lexer->characterCount())); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 96: { +case 98: { AST::StringLiteralPropertyName *node = makeAstNode<AST::StringLiteralPropertyName> (driver->nodePool(), sym(1).sval); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 97: { +case 99: { AST::NumericLiteralPropertyName *node = makeAstNode<AST::NumericLiteralPropertyName> (driver->nodePool(), sym(1).dval); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 98: { +case 100: { AST::IdentifierPropertyName *node = makeAstNode<AST::IdentifierPropertyName> (driver->nodePool(), sym(1).sval); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 99: - -case 100: - case 101: case 102: @@ -797,25 +807,29 @@ case 127: case 128: case 129: + +case 130: + +case 131: { sym(1).sval = driver->intern(lexer->characterBuffer(), lexer->characterCount()); } break; -case 134: { +case 136: { AST::ArrayMemberExpression *node = makeAstNode<AST::ArrayMemberExpression> (driver->nodePool(), sym(1).Expression, sym(3).Expression); node->lbracketToken = loc(2); node->rbracketToken = loc(4); sym(1).Node = node; } break; -case 135: { +case 137: { AST::FieldMemberExpression *node = makeAstNode<AST::FieldMemberExpression> (driver->nodePool(), sym(1).Expression, sym(3).sval); node->dotToken = loc(2); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 136: { +case 138: { AST::NewMemberExpression *node = makeAstNode<AST::NewMemberExpression> (driver->nodePool(), sym(2).Expression, sym(4).ArgumentList); node->newToken = loc(1); node->lparenToken = loc(3); @@ -823,316 +837,309 @@ case 136: { sym(1).Node = node; } break; -case 138: { +case 140: { AST::NewExpression *node = makeAstNode<AST::NewExpression> (driver->nodePool(), sym(2).Expression); node->newToken = loc(1); sym(1).Node = node; } break; -case 139: { +case 141: { AST::CallExpression *node = makeAstNode<AST::CallExpression> (driver->nodePool(), sym(1).Expression, sym(3).ArgumentList); node->lparenToken = loc(2); node->rparenToken = loc(4); sym(1).Node = node; } break; -case 140: { +case 142: { AST::CallExpression *node = makeAstNode<AST::CallExpression> (driver->nodePool(), sym(1).Expression, sym(3).ArgumentList); node->lparenToken = loc(2); node->rparenToken = loc(4); sym(1).Node = node; } break; -case 141: { +case 143: { AST::ArrayMemberExpression *node = makeAstNode<AST::ArrayMemberExpression> (driver->nodePool(), sym(1).Expression, sym(3).Expression); node->lbracketToken = loc(2); node->rbracketToken = loc(4); sym(1).Node = node; } break; -case 142: { +case 144: { AST::FieldMemberExpression *node = makeAstNode<AST::FieldMemberExpression> (driver->nodePool(), sym(1).Expression, sym(3).sval); node->dotToken = loc(2); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 143: { +case 145: { sym(1).Node = 0; } break; -case 144: { +case 146: { sym(1).Node = sym(1).ArgumentList->finish(); } break; -case 145: { +case 147: { sym(1).Node = makeAstNode<AST::ArgumentList> (driver->nodePool(), sym(1).Expression); } break; -case 146: { +case 148: { AST::ArgumentList *node = makeAstNode<AST::ArgumentList> (driver->nodePool(), sym(1).ArgumentList, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 150: { +case 152: { AST::PostIncrementExpression *node = makeAstNode<AST::PostIncrementExpression> (driver->nodePool(), sym(1).Expression); node->incrementToken = loc(2); sym(1).Node = node; } break; -case 151: { +case 153: { AST::PostDecrementExpression *node = makeAstNode<AST::PostDecrementExpression> (driver->nodePool(), sym(1).Expression); node->decrementToken = loc(2); sym(1).Node = node; } break; -case 153: { +case 155: { AST::DeleteExpression *node = makeAstNode<AST::DeleteExpression> (driver->nodePool(), sym(2).Expression); node->deleteToken = loc(1); sym(1).Node = node; } break; -case 154: { +case 156: { AST::VoidExpression *node = makeAstNode<AST::VoidExpression> (driver->nodePool(), sym(2).Expression); node->voidToken = loc(1); sym(1).Node = node; } break; -case 155: { +case 157: { AST::TypeOfExpression *node = makeAstNode<AST::TypeOfExpression> (driver->nodePool(), sym(2).Expression); node->typeofToken = loc(1); sym(1).Node = node; } break; -case 156: { +case 158: { AST::PreIncrementExpression *node = makeAstNode<AST::PreIncrementExpression> (driver->nodePool(), sym(2).Expression); node->incrementToken = loc(1); sym(1).Node = node; } break; -case 157: { +case 159: { AST::PreDecrementExpression *node = makeAstNode<AST::PreDecrementExpression> (driver->nodePool(), sym(2).Expression); node->decrementToken = loc(1); sym(1).Node = node; } break; -case 158: { +case 160: { AST::UnaryPlusExpression *node = makeAstNode<AST::UnaryPlusExpression> (driver->nodePool(), sym(2).Expression); node->plusToken = loc(1); sym(1).Node = node; } break; -case 159: { +case 161: { AST::UnaryMinusExpression *node = makeAstNode<AST::UnaryMinusExpression> (driver->nodePool(), sym(2).Expression); node->minusToken = loc(1); sym(1).Node = node; } break; -case 160: { +case 162: { AST::TildeExpression *node = makeAstNode<AST::TildeExpression> (driver->nodePool(), sym(2).Expression); node->tildeToken = loc(1); sym(1).Node = node; } break; -case 161: { +case 163: { AST::NotExpression *node = makeAstNode<AST::NotExpression> (driver->nodePool(), sym(2).Expression); node->notToken = loc(1); sym(1).Node = node; } break; -case 163: { +case 165: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, QSOperator::Mul, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 164: { +case 166: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, QSOperator::Div, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 165: { +case 167: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, QSOperator::Mod, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 167: { +case 169: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, QSOperator::Add, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 168: { +case 170: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, QSOperator::Sub, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 170: { +case 172: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, QSOperator::LShift, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 171: { +case 173: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, QSOperator::RShift, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 172: { +case 174: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, QSOperator::URShift, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 174: { +case 176: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, QSOperator::Lt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 175: { +case 177: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, QSOperator::Gt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 176: { +case 178: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, QSOperator::Le, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 177: { +case 179: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, QSOperator::Ge, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 178: { +case 180: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, QSOperator::InstanceOf, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 179: { +case 181: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, QSOperator::In, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 181: { +case 183: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, QSOperator::Lt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 182: { +case 184: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, QSOperator::Gt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 183: { +case 185: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, QSOperator::Le, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 184: { +case 186: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, QSOperator::Ge, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 185: { +case 187: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, QSOperator::InstanceOf, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 187: { +case 189: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, QSOperator::Equal, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 188: { +case 190: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, QSOperator::NotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 189: { +case 191: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, QSOperator::StrictEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 190: { +case 192: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, QSOperator::StrictNotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 192: { +case 194: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, QSOperator::Equal, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 193: { +case 195: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, QSOperator::NotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 194: { +case 196: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, QSOperator::StrictEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 195: { - AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, - QSOperator::StrictNotEqual, sym(3).Expression); - node->operatorToken = loc(2); - sym(1).Node = node; -} break; - case 197: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, - QSOperator::BitAnd, sym(3).Expression); + QSOperator::StrictNotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; @@ -1146,7 +1153,7 @@ case 199: { case 201: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, - QSOperator::BitXor, sym(3).Expression); + QSOperator::BitAnd, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; @@ -1160,7 +1167,7 @@ case 203: { case 205: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, - QSOperator::BitOr, sym(3).Expression); + QSOperator::BitXor, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; @@ -1174,7 +1181,7 @@ case 207: { case 209: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, - QSOperator::And, sym(3).Expression); + QSOperator::BitOr, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; @@ -1188,7 +1195,7 @@ case 211: { case 213: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, - QSOperator::Or, sym(3).Expression); + QSOperator::And, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; @@ -1201,6 +1208,13 @@ case 215: { } break; case 217: { + AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, + QSOperator::Or, sym(3).Expression); + node->operatorToken = loc(2); + sym(1).Node = node; +} break; + +case 219: { AST::ConditionalExpression *node = makeAstNode<AST::ConditionalExpression> (driver->nodePool(), sym(1).Expression, sym(3).Expression, sym(5).Expression); node->questionToken = loc(2); @@ -1208,7 +1222,7 @@ case 217: { sym(1).Node = node; } break; -case 219: { +case 221: { AST::ConditionalExpression *node = makeAstNode<AST::ConditionalExpression> (driver->nodePool(), sym(1).Expression, sym(3).Expression, sym(5).Expression); node->questionToken = loc(2); @@ -1216,112 +1230,112 @@ case 219: { sym(1).Node = node; } break; -case 221: { +case 223: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, sym(2).ival, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 223: { +case 225: { AST::BinaryExpression *node = makeAstNode<AST::BinaryExpression> (driver->nodePool(), sym(1).Expression, sym(2).ival, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 224: { +case 226: { sym(1).ival = QSOperator::Assign; } break; -case 225: { +case 227: { sym(1).ival = QSOperator::InplaceMul; } break; -case 226: { +case 228: { sym(1).ival = QSOperator::InplaceDiv; } break; -case 227: { +case 229: { sym(1).ival = QSOperator::InplaceMod; } break; -case 228: { +case 230: { sym(1).ival = QSOperator::InplaceAdd; } break; -case 229: { +case 231: { sym(1).ival = QSOperator::InplaceSub; } break; -case 230: { +case 232: { sym(1).ival = QSOperator::InplaceLeftShift; } break; -case 231: { +case 233: { sym(1).ival = QSOperator::InplaceRightShift; } break; -case 232: { +case 234: { sym(1).ival = QSOperator::InplaceURightShift; } break; -case 233: { +case 235: { sym(1).ival = QSOperator::InplaceAnd; } break; -case 234: { +case 236: { sym(1).ival = QSOperator::InplaceXor; } break; -case 235: { +case 237: { sym(1).ival = QSOperator::InplaceOr; } break; -case 237: { +case 239: { AST::Expression *node = makeAstNode<AST::Expression> (driver->nodePool(), sym(1).Expression, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 238: { +case 240: { sym(1).Node = 0; } break; -case 241: { +case 243: { AST::Expression *node = makeAstNode<AST::Expression> (driver->nodePool(), sym(1).Expression, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 242: { +case 244: { sym(1).Node = 0; } break; -case 259: { +case 261: { AST::Block *node = makeAstNode<AST::Block> (driver->nodePool(), sym(2).StatementList); node->lbraceToken = loc(1); node->rbraceToken = loc(3); sym(1).Node = node; } break; -case 260: { +case 262: { sym(1).Node = makeAstNode<AST::StatementList> (driver->nodePool(), sym(1).Statement); } break; -case 261: { +case 263: { sym(1).Node = makeAstNode<AST::StatementList> (driver->nodePool(), sym(1).StatementList, sym(2).Statement); } break; -case 262: { +case 264: { sym(1).Node = 0; } break; -case 263: { +case 265: { sym(1).Node = sym(1).StatementList->finish (); } break; -case 265: { +case 267: { AST::VariableStatement *node = makeAstNode<AST::VariableStatement> (driver->nodePool(), sym(2).VariableDeclarationList->finish (/*readOnly=*/sym(1).ival == T_CONST)); node->declarationKindToken = loc(1); @@ -1329,76 +1343,76 @@ case 265: { sym(1).Node = node; } break; -case 266: { +case 268: { sym(1).ival = T_CONST; } break; -case 267: { +case 269: { sym(1).ival = T_VAR; } break; -case 268: { +case 270: { sym(1).Node = makeAstNode<AST::VariableDeclarationList> (driver->nodePool(), sym(1).VariableDeclaration); } break; -case 269: { +case 271: { AST::VariableDeclarationList *node = makeAstNode<AST::VariableDeclarationList> (driver->nodePool(), sym(1).VariableDeclarationList, sym(3).VariableDeclaration); node->commaToken = loc(2); sym(1).Node = node; } break; -case 270: { +case 272: { sym(1).Node = makeAstNode<AST::VariableDeclarationList> (driver->nodePool(), sym(1).VariableDeclaration); } break; -case 271: { +case 273: { sym(1).Node = makeAstNode<AST::VariableDeclarationList> (driver->nodePool(), sym(1).VariableDeclarationList, sym(3).VariableDeclaration); } break; -case 272: { +case 274: { AST::VariableDeclaration *node = makeAstNode<AST::VariableDeclaration> (driver->nodePool(), sym(1).sval, sym(2).Expression); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 273: { +case 275: { AST::VariableDeclaration *node = makeAstNode<AST::VariableDeclaration> (driver->nodePool(), sym(1).sval, sym(2).Expression); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 274: { +case 276: { // ### TODO: AST for initializer sym(1) = sym(2); } break; -case 275: { +case 277: { sym(1).Node = 0; } break; -case 277: { +case 279: { // ### TODO: AST for initializer sym(1) = sym(2); } break; -case 278: { +case 280: { sym(1).Node = 0; } break; -case 280: { +case 282: { AST::EmptyStatement *node = makeAstNode<AST::EmptyStatement> (driver->nodePool()); node->semicolonToken = loc(1); sym(1).Node = node; } break; -case 282: { +case 284: { AST::ExpressionStatement *node = makeAstNode<AST::ExpressionStatement> (driver->nodePool(), sym(1).Expression); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 283: { +case 285: { AST::IfStatement *node = makeAstNode<AST::IfStatement> (driver->nodePool(), sym(3).Expression, sym(5).Statement, sym(7).Statement); node->ifToken = loc(1); node->lparenToken = loc(2); @@ -1407,7 +1421,7 @@ case 283: { sym(1).Node = node; } break; -case 284: { +case 286: { AST::IfStatement *node = makeAstNode<AST::IfStatement> (driver->nodePool(), sym(3).Expression, sym(5).Statement); node->ifToken = loc(1); node->lparenToken = loc(2); @@ -1415,7 +1429,7 @@ case 284: { sym(1).Node = node; } break; -case 286: { +case 288: { AST::DoWhileStatement *node = makeAstNode<AST::DoWhileStatement> (driver->nodePool(), sym(2).Statement, sym(5).Expression); node->doToken = loc(1); node->whileToken = loc(3); @@ -1425,7 +1439,7 @@ case 286: { sym(1).Node = node; } break; -case 287: { +case 289: { AST::WhileStatement *node = makeAstNode<AST::WhileStatement> (driver->nodePool(), sym(3).Expression, sym(5).Statement); node->whileToken = loc(1); node->lparenToken = loc(2); @@ -1433,7 +1447,7 @@ case 287: { sym(1).Node = node; } break; -case 288: { +case 290: { AST::ForStatement *node = makeAstNode<AST::ForStatement> (driver->nodePool(), sym(3).Expression, sym(5).Expression, sym(7).Expression, sym(9).Statement); node->forToken = loc(1); @@ -1444,7 +1458,7 @@ case 288: { sym(1).Node = node; } break; -case 289: { +case 291: { AST::LocalForStatement *node = makeAstNode<AST::LocalForStatement> (driver->nodePool(), sym(4).VariableDeclarationList->finish (/*readOnly=*/false), sym(6).Expression, sym(8).Expression, sym(10).Statement); @@ -1457,7 +1471,7 @@ case 289: { sym(1).Node = node; } break; -case 290: { +case 292: { AST:: ForEachStatement *node = makeAstNode<AST::ForEachStatement> (driver->nodePool(), sym(3).Expression, sym(5).Expression, sym(7).Statement); node->forToken = loc(1); @@ -1467,7 +1481,7 @@ case 290: { sym(1).Node = node; } break; -case 291: { +case 293: { AST::LocalForEachStatement *node = makeAstNode<AST::LocalForEachStatement> (driver->nodePool(), sym(4).VariableDeclaration, sym(6).Expression, sym(8).Statement); node->forToken = loc(1); @@ -1478,14 +1492,14 @@ case 291: { sym(1).Node = node; } break; -case 293: { +case 295: { AST::ContinueStatement *node = makeAstNode<AST::ContinueStatement> (driver->nodePool()); node->continueToken = loc(1); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 295: { +case 297: { AST::ContinueStatement *node = makeAstNode<AST::ContinueStatement> (driver->nodePool(), sym(2).sval); node->continueToken = loc(1); node->identifierToken = loc(2); @@ -1493,14 +1507,14 @@ case 295: { sym(1).Node = node; } break; -case 297: { +case 299: { AST::BreakStatement *node = makeAstNode<AST::BreakStatement> (driver->nodePool()); node->breakToken = loc(1); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 299: { +case 301: { AST::BreakStatement *node = makeAstNode<AST::BreakStatement> (driver->nodePool(), sym(2).sval); node->breakToken = loc(1); node->identifierToken = loc(2); @@ -1508,14 +1522,14 @@ case 299: { sym(1).Node = node; } break; -case 301: { +case 303: { AST::ReturnStatement *node = makeAstNode<AST::ReturnStatement> (driver->nodePool(), sym(2).Expression); node->returnToken = loc(1); node->semicolonToken = loc(3); sym(1).Node = node; } break; -case 302: { +case 304: { AST::WithStatement *node = makeAstNode<AST::WithStatement> (driver->nodePool(), sym(3).Expression, sym(5).Statement); node->withToken = loc(1); node->lparenToken = loc(2); @@ -1523,7 +1537,7 @@ case 302: { sym(1).Node = node; } break; -case 303: { +case 305: { AST::SwitchStatement *node = makeAstNode<AST::SwitchStatement> (driver->nodePool(), sym(3).Expression, sym(5).CaseBlock); node->switchToken = loc(1); node->lparenToken = loc(2); @@ -1531,90 +1545,90 @@ case 303: { sym(1).Node = node; } break; -case 304: { +case 306: { AST::CaseBlock *node = makeAstNode<AST::CaseBlock> (driver->nodePool(), sym(2).CaseClauses); node->lbraceToken = loc(1); node->rbraceToken = loc(3); sym(1).Node = node; } break; -case 305: { +case 307: { AST::CaseBlock *node = makeAstNode<AST::CaseBlock> (driver->nodePool(), sym(2).CaseClauses, sym(3).DefaultClause, sym(4).CaseClauses); node->lbraceToken = loc(1); node->rbraceToken = loc(5); sym(1).Node = node; } break; -case 306: { +case 308: { sym(1).Node = makeAstNode<AST::CaseClauses> (driver->nodePool(), sym(1).CaseClause); } break; -case 307: { +case 309: { sym(1).Node = makeAstNode<AST::CaseClauses> (driver->nodePool(), sym(1).CaseClauses, sym(2).CaseClause); } break; -case 308: { +case 310: { sym(1).Node = 0; } break; -case 309: { +case 311: { sym(1).Node = sym(1).CaseClauses->finish (); } break; -case 310: { +case 312: { AST::CaseClause *node = makeAstNode<AST::CaseClause> (driver->nodePool(), sym(2).Expression, sym(4).StatementList); node->caseToken = loc(1); node->colonToken = loc(3); sym(1).Node = node; } break; -case 311: { +case 313: { AST::DefaultClause *node = makeAstNode<AST::DefaultClause> (driver->nodePool(), sym(3).StatementList); node->defaultToken = loc(1); node->colonToken = loc(2); sym(1).Node = node; } break; -case 312: -case 313: { +case 314: +case 315: { AST::LabelledStatement *node = makeAstNode<AST::LabelledStatement> (driver->nodePool(), driver->intern(lexer->characterBuffer(), lexer->characterCount()), sym(3).Statement); node->identifierToken = loc(1); node->colonToken = loc(2); sym(1).Node = node; } break; -case 314: { +case 316: { AST::LabelledStatement *node = makeAstNode<AST::LabelledStatement> (driver->nodePool(), sym(1).sval, sym(3).Statement); node->identifierToken = loc(1); node->colonToken = loc(2); sym(1).Node = node; } break; -case 316: { +case 318: { AST::ThrowStatement *node = makeAstNode<AST::ThrowStatement> (driver->nodePool(), sym(2).Expression); node->throwToken = loc(1); node->semicolonToken = loc(3); sym(1).Node = node; } break; -case 317: { +case 319: { AST::TryStatement *node = makeAstNode<AST::TryStatement> (driver->nodePool(), sym(2).Statement, sym(3).Catch); node->tryToken = loc(1); sym(1).Node = node; } break; -case 318: { +case 320: { AST::TryStatement *node = makeAstNode<AST::TryStatement> (driver->nodePool(), sym(2).Statement, sym(3).Finally); node->tryToken = loc(1); sym(1).Node = node; } break; -case 319: { +case 321: { AST::TryStatement *node = makeAstNode<AST::TryStatement> (driver->nodePool(), sym(2).Statement, sym(3).Catch, sym(4).Finally); node->tryToken = loc(1); sym(1).Node = node; } break; -case 320: { +case 322: { AST::Catch *node = makeAstNode<AST::Catch> (driver->nodePool(), sym(3).sval, sym(5).Block); node->catchToken = loc(1); node->lparenToken = loc(2); @@ -1623,20 +1637,20 @@ case 320: { sym(1).Node = node; } break; -case 321: { +case 323: { AST::Finally *node = makeAstNode<AST::Finally> (driver->nodePool(), sym(2).Block); node->finallyToken = loc(1); sym(1).Node = node; } break; -case 323: { +case 325: { AST::DebuggerStatement *node = makeAstNode<AST::DebuggerStatement> (driver->nodePool()); node->debuggerToken = loc(1); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 324: { +case 326: { AST::FunctionDeclaration *node = makeAstNode<AST::FunctionDeclaration> (driver->nodePool(), sym(2).sval, sym(4).FormalParameterList, sym(7).FunctionBody); node->functionToken = loc(1); node->identifierToken = loc(2); @@ -1647,7 +1661,7 @@ case 324: { sym(1).Node = node; } break; -case 325: { +case 327: { AST::FunctionExpression *node = makeAstNode<AST::FunctionExpression> (driver->nodePool(), sym(2).sval, sym(4).FormalParameterList, sym(7).FunctionBody); node->functionToken = loc(1); if (sym(2).sval) @@ -1659,60 +1673,60 @@ case 325: { sym(1).Node = node; } break; -case 326: { +case 328: { AST::FormalParameterList *node = makeAstNode<AST::FormalParameterList> (driver->nodePool(), sym(1).sval); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 327: { +case 329: { AST::FormalParameterList *node = makeAstNode<AST::FormalParameterList> (driver->nodePool(), sym(1).FormalParameterList, sym(3).sval); node->commaToken = loc(2); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 328: { +case 330: { sym(1).Node = 0; } break; -case 329: { +case 331: { sym(1).Node = sym(1).FormalParameterList->finish (); } break; -case 330: { +case 332: { sym(1).Node = 0; } break; -case 332: { +case 334: { sym(1).Node = makeAstNode<AST::FunctionBody> (driver->nodePool(), sym(1).SourceElements->finish ()); } break; -case 333: { +case 335: { sym(1).Node = makeAstNode<AST::Program> (driver->nodePool(), sym(1).SourceElements->finish ()); } break; -case 334: { +case 336: { sym(1).Node = makeAstNode<AST::SourceElements> (driver->nodePool(), sym(1).SourceElement); } break; -case 335: { +case 337: { sym(1).Node = makeAstNode<AST::SourceElements> (driver->nodePool(), sym(1).SourceElements, sym(2).SourceElement); } break; -case 336: { +case 338: { sym(1).Node = makeAstNode<AST::StatementSourceElement> (driver->nodePool(), sym(1).Statement); } break; -case 337: { +case 339: { sym(1).Node = makeAstNode<AST::FunctionSourceElement> (driver->nodePool(), sym(1).FunctionDeclaration); } break; -case 338: { +case 340: { sym(1).sval = 0; } break; -case 340: { +case 342: { sym(1).Node = 0; } break; diff --git a/src/declarative/qml/parser/qdeclarativejsparser_p.h b/src/declarative/qml/parser/qdeclarativejsparser_p.h index c7e097a..3864398 100644 --- a/src/declarative/qml/parser/qdeclarativejsparser_p.h +++ b/src/declarative/qml/parser/qdeclarativejsparser_p.h @@ -235,9 +235,9 @@ protected: -#define J_SCRIPT_REGEXPLITERAL_RULE1 74 +#define J_SCRIPT_REGEXPLITERAL_RULE1 76 -#define J_SCRIPT_REGEXPLITERAL_RULE2 75 +#define J_SCRIPT_REGEXPLITERAL_RULE2 77 QT_QML_END_NAMESPACE diff --git a/src/declarative/qml/qdeclarativebinding.cpp b/src/declarative/qml/qdeclarativebinding.cpp index bde01ae..cecca65 100644 --- a/src/declarative/qml/qdeclarativebinding.cpp +++ b/src/declarative/qml/qdeclarativebinding.cpp @@ -97,7 +97,7 @@ QDeclarativeBinding::~QDeclarativeBinding() { } -void QDeclarativeBinding::setTarget(const QDeclarativeMetaProperty &prop) +void QDeclarativeBinding::setTarget(const QDeclarativeProperty &prop) { Q_D(QDeclarativeBinding); d->bindingData()->property = prop; @@ -105,13 +105,13 @@ void QDeclarativeBinding::setTarget(const QDeclarativeMetaProperty &prop) update(); } -QDeclarativeMetaProperty QDeclarativeBinding::property() const +QDeclarativeProperty QDeclarativeBinding::property() const { Q_D(const QDeclarativeBinding); return d->bindingData()->property; } -void QDeclarativeBinding::update(QDeclarativeMetaProperty::WriteFlags flags) +void QDeclarativeBinding::update(QDeclarativePropertyPrivate::WriteFlags flags) { Q_D(QDeclarativeBinding); @@ -161,7 +161,7 @@ void QDeclarativeBinding::update(QDeclarativeMetaProperty::WriteFlags flags) data->error.setDescription(QLatin1String("Unable to assign [undefined] to ") + QLatin1String(QMetaType::typeName(data->property.propertyType()))); } else if (!isUndefined && data->property.object() && - !data->property.write(value, flags)) { + !QDeclarativePropertyPrivate::write(data->property, value, flags)) { QUrl url = QUrl(data->url); int line = data->line; @@ -204,7 +204,7 @@ void QDeclarativeBindingPrivate::emitValueChanged() q->update(); } -void QDeclarativeBinding::setEnabled(bool e, QDeclarativeMetaProperty::WriteFlags flags) +void QDeclarativeBinding::setEnabled(bool e, QDeclarativePropertyPrivate::WriteFlags flags) { Q_D(QDeclarativeBinding); d->bindingData()->enabled = e; @@ -300,7 +300,7 @@ QString QDeclarativeAbstractBinding::expression() const return QLatin1String("<Unknown>"); } -void QDeclarativeAbstractBinding::setEnabled(bool e, QDeclarativeMetaProperty::WriteFlags) +void QDeclarativeAbstractBinding::setEnabled(bool e, QDeclarativePropertyPrivate::WriteFlags) { if (e) m_mePtr = 0; } diff --git a/src/declarative/qml/qdeclarativebinding_p.h b/src/declarative/qml/qdeclarativebinding_p.h index 7c79b8c..f66b9c7 100644 --- a/src/declarative/qml/qdeclarativebinding_p.h +++ b/src/declarative/qml/qdeclarativebinding_p.h @@ -56,7 +56,8 @@ #include "qdeclarative.h" #include "qdeclarativepropertyvaluesource.h" #include "qdeclarativeexpression.h" -#include "qdeclarativemetaproperty.h" +#include "qdeclarativeproperty.h" +#include "qdeclarativeproperty_p.h" #include <QtCore/QObject> #include <QtCore/QMetaProperty> @@ -73,12 +74,12 @@ public: virtual QString expression() const; - void setEnabled(bool e) { setEnabled(e, QDeclarativeMetaProperty::DontRemoveBinding); } - virtual void setEnabled(bool, QDeclarativeMetaProperty::WriteFlags) = 0; + void setEnabled(bool e) { setEnabled(e, QDeclarativePropertyPrivate::DontRemoveBinding); } + virtual void setEnabled(bool, QDeclarativePropertyPrivate::WriteFlags) = 0; virtual int propertyIndex() = 0; - void update() { update(QDeclarativeMetaProperty::DontRemoveBinding); } - virtual void update(QDeclarativeMetaProperty::WriteFlags) = 0; + void update() { update(QDeclarativePropertyPrivate::DontRemoveBinding); } + virtual void update(QDeclarativePropertyPrivate::WriteFlags) = 0; void addToObject(QObject *); void removeFromObject(); @@ -88,8 +89,8 @@ protected: private: friend class QDeclarativeDeclarativeData; - friend class QDeclarativeMetaProperty; - friend class QDeclarativeMetaPropertyPrivate; + friend class QDeclarativeProperty; + friend class QDeclarativePropertyPrivate; friend class QDeclarativeVME; QObject *m_object; @@ -109,19 +110,19 @@ public: QObject *parent); ~QDeclarativeBinding(); - void setTarget(const QDeclarativeMetaProperty &); - QDeclarativeMetaProperty property() const; + void setTarget(const QDeclarativeProperty &); + QDeclarativeProperty property() const; bool enabled() const; // Inherited from QDeclarativeAbstractBinding - virtual void setEnabled(bool, QDeclarativeMetaProperty::WriteFlags flags); + virtual void setEnabled(bool, QDeclarativePropertyPrivate::WriteFlags flags); virtual int propertyIndex(); - virtual void update(QDeclarativeMetaProperty::WriteFlags flags); + virtual void update(QDeclarativePropertyPrivate::WriteFlags flags); virtual QString expression() const; public Q_SLOTS: - void update() { update(QDeclarativeMetaProperty::DontRemoveBinding); } + void update() { update(QDeclarativePropertyPrivate::DontRemoveBinding); } protected: void emitValueChanged(); diff --git a/src/declarative/qml/qdeclarativebinding_p_p.h b/src/declarative/qml/qdeclarativebinding_p_p.h index ac88400..041103c 100644 --- a/src/declarative/qml/qdeclarativebinding_p_p.h +++ b/src/declarative/qml/qdeclarativebinding_p_p.h @@ -55,7 +55,7 @@ #include "qdeclarativebinding_p.h" -#include "qdeclarativemetaproperty.h" +#include "qdeclarativeproperty.h" #include "qdeclarativeexpression_p.h" QT_BEGIN_NAMESPACE @@ -69,7 +69,7 @@ public: bool updating:1; bool enabled:1; - QDeclarativeMetaProperty property; + QDeclarativeProperty property; virtual void refresh(); }; diff --git a/src/declarative/qml/qdeclarativecompiledbindings.cpp b/src/declarative/qml/qdeclarativecompiledbindings.cpp index face22c..17937fd 100644 --- a/src/declarative/qml/qdeclarativecompiledbindings.cpp +++ b/src/declarative/qml/qdeclarativecompiledbindings.cpp @@ -109,9 +109,9 @@ public: scope(0), target(0), parent(0) {} // Inherited from QDeclarativeAbstractBinding - virtual void setEnabled(bool, QDeclarativeMetaProperty::WriteFlags flags); + virtual void setEnabled(bool, QDeclarativePropertyPrivate::WriteFlags flags); virtual int propertyIndex(); - virtual void update(QDeclarativeMetaProperty::WriteFlags flags); + virtual void update(QDeclarativePropertyPrivate::WriteFlags flags); virtual void destroy(); int index:30; @@ -244,7 +244,7 @@ QDeclarativeAbstractBinding *QDeclarativeCompiledBindings::configBinding(int ind return rv; } -void QDeclarativeCompiledBindingsPrivate::Binding::setEnabled(bool e, QDeclarativeMetaProperty::WriteFlags flags) +void QDeclarativeCompiledBindingsPrivate::Binding::setEnabled(bool e, QDeclarativePropertyPrivate::WriteFlags flags) { if (e) { addToObject(target); @@ -267,7 +267,7 @@ int QDeclarativeCompiledBindingsPrivate::Binding::propertyIndex() return property & 0xFFFF; } -void QDeclarativeCompiledBindingsPrivate::Binding::update(QDeclarativeMetaProperty::WriteFlags) +void QDeclarativeCompiledBindingsPrivate::Binding::update(QDeclarativePropertyPrivate::WriteFlags) { parent->run(this); } @@ -324,7 +324,7 @@ void QDeclarativeCompiledBindingsPrivate::run(Binding *binding) run(binding->index, cp, binding, binding->scope, target); vt->write(binding->target, binding->property & 0xFFFF, - QDeclarativeMetaProperty::DontRemoveBinding); + QDeclarativePropertyPrivate::DontRemoveBinding); } else { run(binding->index, cp, binding, binding->scope, binding->target); } @@ -1701,7 +1701,7 @@ bool QDeclarativeBindingCompilerPrivate::compile(QDeclarativeJS::AST::Node *node const QMetaObject *from = type.metaObject; const QMetaObject *to = engine->rawMetaObjectForType(destination->type); - if (QDeclarativeMetaPropertyPrivate::canConvert(from, to)) + if (QDeclarativePropertyPrivate::canConvert(from, to)) type.type = destination->type; } diff --git a/src/declarative/qml/qdeclarativecompiler.cpp b/src/declarative/qml/qdeclarativecompiler.cpp index d9a0c74..5da207d 100644 --- a/src/declarative/qml/qdeclarativecompiler.cpp +++ b/src/declarative/qml/qdeclarativecompiler.cpp @@ -58,7 +58,7 @@ #include "parser/qdeclarativejsast_p.h" #include "qdeclarativevmemetaobject_p.h" #include "qdeclarativeexpression_p.h" -#include "qdeclarativemetaproperty_p.h" +#include "qdeclarativeproperty_p.h" #include "qdeclarativerewrite_p.h" #include "qdeclarativescriptstring.h" #include "qdeclarativeglobal_p.h" @@ -2040,7 +2040,7 @@ bool QDeclarativeCompiler::buildPropertyObjectAssignment(QDeclarativeParser::Pro if (propertyMetaObject) { const QMetaObject *c = v->object->metatype; while(c) { - isAssignable |= (QDeclarativeMetaPropertyPrivate::equal(c, propertyMetaObject)); + isAssignable |= (QDeclarativePropertyPrivate::equal(c, propertyMetaObject)); c = c->superClass(); } } @@ -2623,7 +2623,7 @@ int QDeclarativeCompiler::genValueTypeData(QDeclarativeParser::Property *valueTy QDeclarativeParser::Property *prop) { QByteArray data = - QDeclarativeMetaPropertyPrivate::saveValueType(prop->parent->metaObject(), prop->index, + QDeclarativePropertyPrivate::saveValueType(prop->parent->metaObject(), prop->index, QDeclarativeEnginePrivate::get(engine)->valueTypes[prop->type]->metaObject(), valueTypeProp->index); // valueTypeProp->index, valueTypeProp->type); @@ -2633,7 +2633,7 @@ int QDeclarativeCompiler::genValueTypeData(QDeclarativeParser::Property *valueTy int QDeclarativeCompiler::genPropertyData(QDeclarativeParser::Property *prop) { - return output->indexForByteArray(QDeclarativeMetaPropertyPrivate::saveProperty(prop->parent->metaObject(), prop->index)); + return output->indexForByteArray(QDeclarativePropertyPrivate::saveProperty(prop->parent->metaObject(), prop->index)); } bool QDeclarativeCompiler::completeComponentBuild() @@ -2739,7 +2739,7 @@ bool QDeclarativeCompiler::canCoerce(int to, QDeclarativeParser::Object *from) const QMetaObject *fromMo = from->metaObject(); while (fromMo) { - if (QDeclarativeMetaPropertyPrivate::equal(fromMo, toMo)) + if (QDeclarativePropertyPrivate::equal(fromMo, toMo)) return true; fromMo = fromMo->superClass(); } @@ -2758,7 +2758,7 @@ bool QDeclarativeCompiler::canCoerce(int to, int from) QDeclarativeEnginePrivate::get(engine)->rawMetaObjectForType(from); while (fromMo) { - if (QDeclarativeMetaPropertyPrivate::equal(fromMo, toMo)) + if (QDeclarativePropertyPrivate::equal(fromMo, toMo)) return true; fromMo = fromMo->superClass(); } diff --git a/src/declarative/qml/qdeclarativecomponent.cpp b/src/declarative/qml/qdeclarativecomponent.cpp index beaba4a..fe63ad2 100644 --- a/src/declarative/qml/qdeclarativecomponent.cpp +++ b/src/declarative/qml/qdeclarativecomponent.cpp @@ -698,8 +698,8 @@ void QDeclarativeComponentPrivate::complete(QDeclarativeEnginePrivate *enginePri state->bindValues.at(ii); for (int jj = 0; jj < bv.count; ++jj) { if(bv.at(jj)) - bv.at(jj)->setEnabled(true, QDeclarativeMetaProperty::BypassInterceptor | - QDeclarativeMetaProperty::DontRemoveBinding); + bv.at(jj)->setEnabled(true, QDeclarativePropertyPrivate::BypassInterceptor | + QDeclarativePropertyPrivate::DontRemoveBinding); } QDeclarativeEnginePrivate::clear(bv); } diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp index 4435a5b..af75e98 100644 --- a/src/declarative/qml/qdeclarativeengine.cpp +++ b/src/declarative/qml/qdeclarativeengine.cpp @@ -49,7 +49,6 @@ #include "qdeclarativecontext.h" #include "qdeclarativeexpression.h" #include "qdeclarativecomponent.h" -#include "qdeclarativemetaproperty_p.h" #include "qdeclarativebinding_p_p.h" #include "qdeclarativevme_p.h" #include "qdeclarativeenginedebug_p.h" @@ -110,7 +109,7 @@ #define CSIDL_APPDATA 0x001a // <username>\Application Data #endif -Q_DECLARE_METATYPE(QDeclarativeMetaProperty) +Q_DECLARE_METATYPE(QDeclarativeProperty) QT_BEGIN_NAMESPACE @@ -337,6 +336,7 @@ void QDeclarativeEnginePrivate::clear(SimpleList<QDeclarativeParserStatus> &pss) } Q_GLOBAL_STATIC(QDeclarativeEngineDebugServer, qmlEngineDebugServer); +Q_GLOBAL_STATIC(QSet<QString>, qmlEnginePluginsWithRegisteredTypes); void QDeclarativeEnginePrivate::init() { @@ -1409,7 +1409,7 @@ public: qmldirParser.parse(); foreach (const QDeclarativeDirParser::Plugin &plugin, qmldirParser.plugins()) { - QString resolvedFilePath = QDeclarativeEnginePrivate::get(engine)->resolvePlugin(dir + QDir::separator() + plugin.path, + QString resolvedFilePath = QDeclarativeEnginePrivate::get(engine)->resolvePlugin(QDir(dir + QDir::separator() + plugin.path), plugin.name); if (!resolvedFilePath.isEmpty()) @@ -1622,10 +1622,32 @@ void QDeclarativeEngine::addImportPath(const QString& path) */ bool QDeclarativeEngine::importExtension(const QString &fileName, const QString &uri) { - QPluginLoader loader(fileName); + QFileInfo fileInfo(fileName); + const QString absoluteFilePath = fileInfo.absoluteFilePath(); + QPluginLoader loader(absoluteFilePath); if (QDeclarativeExtensionInterface *iface = qobject_cast<QDeclarativeExtensionInterface *>(loader.instance())) { - iface->initialize(this, uri.toUtf8().constData()); + const QByteArray bytes = uri.toUtf8(); + const char *moduleId = bytes.constData(); + + // ### this code should probably be protected with a mutex. + if (! qmlEnginePluginsWithRegisteredTypes()->contains(absoluteFilePath)) { + // types should only be registered once (they're global). + + qmlEnginePluginsWithRegisteredTypes()->insert(absoluteFilePath); + iface->registerTypes(moduleId); + } + + QDeclarativeEnginePrivate *d = QDeclarativeEnginePrivate::get(this); + + if (! d->initializedPlugins.contains(absoluteFilePath)) { + // things on the engine (eg. adding new global objects) have to be done for every engine. + + // protect against double initialization + d->initializedPlugins.insert(absoluteFilePath); + iface->initializeEngine(this, moduleId); + } + return true; } @@ -1670,7 +1692,6 @@ QString QDeclarativeEnginePrivate::resolvePlugin(const QDir &dir, const QString const QStringList &suffixes, const QString &prefix) { - qWarning() << baseName; foreach (const QString &suffix, suffixes) { QString pluginFileName = prefix; diff --git a/src/declarative/qml/qdeclarativeengine_p.h b/src/declarative/qml/qdeclarativeengine_p.h index c4a40c5..0359f98 100644 --- a/src/declarative/qml/qdeclarativeengine_p.h +++ b/src/declarative/qml/qdeclarativeengine_p.h @@ -62,7 +62,7 @@ #include "qdeclarativevaluetype_p.h" #include "qdeclarativecontext.h" #include "qdeclarativeexpression.h" -#include "qdeclarativemetaproperty_p.h" +#include "qdeclarativeproperty_p.h" #include "qdeclarativepropertycache_p.h" #include "qdeclarativeobjectscriptclass_p.h" #include "qdeclarativecontextscriptclass_p.h" @@ -267,6 +267,7 @@ public: QStringList environmentImportPath; + QSet<QString> initializedPlugins; QString resolvePlugin(const QDir &dir, const QString &baseName, const QStringList &suffixes, diff --git a/src/declarative/qml/qdeclarativeenginedebug.cpp b/src/declarative/qml/qdeclarativeenginedebug.cpp index 2ae0b54..09882cb 100644 --- a/src/declarative/qml/qdeclarativeenginedebug.cpp +++ b/src/declarative/qml/qdeclarativeenginedebug.cpp @@ -44,8 +44,8 @@ #include "qdeclarativeboundsignal_p.h" #include "qdeclarativeengine.h" #include "qdeclarativemetatype_p.h" -#include "qdeclarativemetaproperty.h" -#include "qdeclarativemetaproperty_p.h" +#include "qdeclarativeproperty.h" +#include "qdeclarativeproperty_p.h" #include "qdeclarativebinding_p.h" #include "qdeclarativecontext_p.h" #include "qdeclarativewatcher_p.h" @@ -110,7 +110,7 @@ QDeclarativeEngineDebugServer::propertyData(QObject *obj, int propIdx) rv.name = QString::fromUtf8(prop.name()); rv.hasNotifySignal = prop.hasNotifySignal(); QDeclarativeAbstractBinding *binding = - QDeclarativeMetaPropertyPrivate::binding(QDeclarativeMetaProperty(obj, rv.name)); + QDeclarativePropertyPrivate::binding(QDeclarativeProperty(obj, rv.name)); if (binding) rv.binding = binding->expression(); diff --git a/src/declarative/qml/qdeclarativeextensioninterface.h b/src/declarative/qml/qdeclarativeextensioninterface.h index a8ae064..0fabd6d 100644 --- a/src/declarative/qml/qdeclarativeextensioninterface.h +++ b/src/declarative/qml/qdeclarativeextensioninterface.h @@ -55,7 +55,8 @@ class QDeclarativeEngine; struct Q_DECLARATIVE_EXPORT QDeclarativeExtensionInterface { virtual ~QDeclarativeExtensionInterface() {} - virtual void initialize(QDeclarativeEngine *engine, const char *uri) = 0; + virtual void registerTypes(const char *uri) = 0; + virtual void initializeEngine(QDeclarativeEngine *engine, const char *uri) = 0; }; Q_DECLARE_INTERFACE(QDeclarativeExtensionInterface, "com.trolltech.Qt.QDeclarativeExtensionInterface/1.0") diff --git a/src/declarative/qml/qdeclarativeextensionplugin.cpp b/src/declarative/qml/qdeclarativeextensionplugin.cpp index 6af3a6d..3d44d63 100644 --- a/src/declarative/qml/qdeclarativeextensionplugin.cpp +++ b/src/declarative/qml/qdeclarativeextensionplugin.cpp @@ -63,9 +63,9 @@ QT_BEGIN_NAMESPACE */ /*! - \fn void QDeclarativeExtensionPlugin::initialize(QDeclarativeEngine *engine) + \fn void QDeclarativeExtensionPlugin::registerTypes(const char *uri) - Initializes the extension specified in the given \a engine. + Registers the QML types in the given \a uri. */ /*! @@ -84,4 +84,16 @@ QDeclarativeExtensionPlugin::~QDeclarativeExtensionPlugin() { } +/*! + \fn void QDeclarativeExtensionPlugin::initializeEngine(QDeclarativeEngine *engine, const char *uri) + + Initializes the extension specified in the given \a engine. +*/ + +void QDeclarativeExtensionPlugin::initializeEngine(QDeclarativeEngine *engine, const char *uri) +{ + Q_UNUSED(engine); + Q_UNUSED(uri); +} + QT_END_NAMESPACE diff --git a/src/declarative/qml/qdeclarativeextensionplugin.h b/src/declarative/qml/qdeclarativeextensionplugin.h index 79df52b..c2ad798 100644 --- a/src/declarative/qml/qdeclarativeextensionplugin.h +++ b/src/declarative/qml/qdeclarativeextensionplugin.h @@ -62,7 +62,8 @@ public: explicit QDeclarativeExtensionPlugin(QObject *parent = 0); ~QDeclarativeExtensionPlugin(); - virtual void initialize(QDeclarativeEngine *engine, const char *uri) = 0; + virtual void registerTypes(const char *uri) = 0; + virtual void initializeEngine(QDeclarativeEngine *engine, const char *uri); }; QT_END_NAMESPACE diff --git a/src/declarative/qml/qdeclarativelist.cpp b/src/declarative/qml/qdeclarativelist.cpp index 4c9586c..af720d7 100644 --- a/src/declarative/qml/qdeclarativelist.cpp +++ b/src/declarative/qml/qdeclarativelist.cpp @@ -42,7 +42,7 @@ #include "qdeclarativelist.h" #include "qdeclarativelist_p.h" #include "qdeclarativeengine_p.h" -#include "qdeclarativemetaproperty_p.h" +#include "qdeclarativeproperty_p.h" QT_BEGIN_NAMESPACE @@ -174,7 +174,7 @@ bool QDeclarativeListReference::append(QObject *o) const { if (!canAppend()) return false; - if (o && !QDeclarativeMetaPropertyPrivate::canConvert(o->metaObject(), d->elementType)) + if (o && !QDeclarativePropertyPrivate::canConvert(o->metaObject(), d->elementType)) return false; d->property.append(&d->property, o); diff --git a/src/declarative/qml/qdeclarativemetatype.cpp b/src/declarative/qml/qdeclarativemetatype.cpp index e87f8ba..abbb9d6 100644 --- a/src/declarative/qml/qdeclarativemetatype.cpp +++ b/src/declarative/qml/qdeclarativemetatype.cpp @@ -619,7 +619,7 @@ QDeclarativeType *QDeclarativeMetaType::qmlType(const QByteArray &name, int vers QList<QDeclarativeType*> types = data->nameToType.values(name); foreach (QDeclarativeType *t, types) { - // XXX version_major<0 just a kludge for QDeclarativeMetaPropertyPrivate::initProperty + // XXX version_major<0 just a kludge for QDeclarativePropertyPrivate::initProperty if (version_major<0 || t->availableInVersion(version_major,version_minor)) return t; } diff --git a/src/declarative/qml/qdeclarativeobjectscriptclass.cpp b/src/declarative/qml/qdeclarativeobjectscriptclass.cpp index 50fe5c0..542f417 100644 --- a/src/declarative/qml/qdeclarativeobjectscriptclass.cpp +++ b/src/declarative/qml/qdeclarativeobjectscriptclass.cpp @@ -338,7 +338,7 @@ void QDeclarativeObjectScriptClass::setProperty(QObject *obj, } } - QDeclarativeAbstractBinding *delBinding = QDeclarativeMetaPropertyPrivate::setBinding(obj, *lastData, 0); + QDeclarativeAbstractBinding *delBinding = QDeclarativePropertyPrivate::setBinding(obj, *lastData, 0); if (delBinding) delBinding->destroy(); @@ -348,7 +348,7 @@ void QDeclarativeObjectScriptClass::setProperty(QObject *obj, } else { // ### Can well known types be optimized? QVariant v = QDeclarativeScriptClass::toVariant(engine, value); - QDeclarativeMetaPropertyPrivate::write(obj, *lastData, v, evalContext); + QDeclarativePropertyPrivate::write(obj, *lastData, v, evalContext); } } diff --git a/src/declarative/qml/qdeclarativemetaproperty.cpp b/src/declarative/qml/qdeclarativeproperty.cpp index 00f37b9..7ead1b5 100644 --- a/src/declarative/qml/qdeclarativemetaproperty.cpp +++ b/src/declarative/qml/qdeclarativeproperty.cpp @@ -39,8 +39,8 @@ ** ****************************************************************************/ -#include "qdeclarativemetaproperty.h" -#include "qdeclarativemetaproperty_p.h" +#include "qdeclarativeproperty.h" +#include "qdeclarativeproperty_p.h" #include "qdeclarativecompositetypedata_p.h" #include "qdeclarative.h" @@ -63,32 +63,32 @@ QT_BEGIN_NAMESPACE /*! - \class QDeclarativeMetaProperty - \brief The QDeclarativeMetaProperty class abstracts accessing QML properties. + \class QDeclarativeProperty + \brief The QDeclarativeProperty class abstracts accessing QML properties. \internal */ /*! - Create an invalid QDeclarativeMetaProperty. + Create an invalid QDeclarativeProperty. */ -QDeclarativeMetaProperty::QDeclarativeMetaProperty() -: d(new QDeclarativeMetaPropertyPrivate) +QDeclarativeProperty::QDeclarativeProperty() +: d(new QDeclarativePropertyPrivate) { d->q = this; } /*! \internal */ -QDeclarativeMetaProperty::~QDeclarativeMetaProperty() +QDeclarativeProperty::~QDeclarativeProperty() { delete d; d = 0; } /*! - Creates a QDeclarativeMetaProperty for the default property of \a obj. If there is no - default property, an invalid QDeclarativeMetaProperty will be created. + Creates a QDeclarativeProperty for the default property of \a obj. If there is no + default property, an invalid QDeclarativeProperty will be created. */ -QDeclarativeMetaProperty::QDeclarativeMetaProperty(QObject *obj) -: d(new QDeclarativeMetaPropertyPrivate) +QDeclarativeProperty::QDeclarativeProperty(QObject *obj) +: d(new QDeclarativePropertyPrivate) { d->q = this; d->initDefault(obj); @@ -96,11 +96,11 @@ QDeclarativeMetaProperty::QDeclarativeMetaProperty(QObject *obj) /*! \internal - Creates a QDeclarativeMetaProperty for the default property of \a obj. If there is no - default property, an invalid QDeclarativeMetaProperty will be created. + Creates a QDeclarativeProperty for the default property of \a obj. If there is no + default property, an invalid QDeclarativeProperty will be created. */ -QDeclarativeMetaProperty::QDeclarativeMetaProperty(QObject *obj, QDeclarativeContext *ctxt) -: d(new QDeclarativeMetaPropertyPrivate) +QDeclarativeProperty::QDeclarativeProperty(QObject *obj, QDeclarativeContext *ctxt) +: d(new QDeclarativePropertyPrivate) { d->q = this; d->context = ctxt; @@ -110,7 +110,7 @@ QDeclarativeMetaProperty::QDeclarativeMetaProperty(QObject *obj, QDeclarativeCon /*! Initialize from the default property of \a obj */ -void QDeclarativeMetaPropertyPrivate::initDefault(QObject *obj) +void QDeclarativePropertyPrivate::initDefault(QObject *obj) { if (!obj) return; @@ -124,10 +124,10 @@ void QDeclarativeMetaPropertyPrivate::initDefault(QObject *obj) } /*! - Creates a QDeclarativeMetaProperty for the property \a name of \a obj. + Creates a QDeclarativeProperty for the property \a name of \a obj. */ -QDeclarativeMetaProperty::QDeclarativeMetaProperty(QObject *obj, const QString &name) -: d(new QDeclarativeMetaPropertyPrivate) +QDeclarativeProperty::QDeclarativeProperty(QObject *obj, const QString &name) +: d(new QDeclarativePropertyPrivate) { d->q = this; d->initProperty(obj, name); @@ -136,10 +136,10 @@ QDeclarativeMetaProperty::QDeclarativeMetaProperty(QObject *obj, const QString & /*! \internal - Creates a QDeclarativeMetaProperty for the property \a name of \a obj. + Creates a QDeclarativeProperty for the property \a name of \a obj. */ -QDeclarativeMetaProperty::QDeclarativeMetaProperty(QObject *obj, const QString &name, QDeclarativeContext *ctxt) -: d(new QDeclarativeMetaPropertyPrivate) +QDeclarativeProperty::QDeclarativeProperty(QObject *obj, const QString &name, QDeclarativeContext *ctxt) +: d(new QDeclarativePropertyPrivate) { d->q = this; d->context = ctxt; @@ -149,7 +149,7 @@ QDeclarativeMetaProperty::QDeclarativeMetaProperty(QObject *obj, const QString & Q_GLOBAL_STATIC(QDeclarativeValueTypeFactory, qmlValueTypes); -void QDeclarativeMetaPropertyPrivate::initProperty(QObject *obj, const QString &name) +void QDeclarativePropertyPrivate::initProperty(QObject *obj, const QString &name) { if (!obj) return; @@ -257,14 +257,14 @@ void QDeclarativeMetaPropertyPrivate::initProperty(QObject *obj, const QString & /*! Create a copy of \a other. */ -QDeclarativeMetaProperty::QDeclarativeMetaProperty(const QDeclarativeMetaProperty &other) -: d(new QDeclarativeMetaPropertyPrivate(*other.d)) +QDeclarativeProperty::QDeclarativeProperty(const QDeclarativeProperty &other) +: d(new QDeclarativePropertyPrivate(*other.d)) { d->q = this; } /*! - \enum QDeclarativeMetaProperty::PropertyTypeCategory + \enum QDeclarativeProperty::PropertyTypeCategory This enum specifies a category of QML property. @@ -275,7 +275,7 @@ QDeclarativeMetaProperty::QDeclarativeMetaProperty(const QDeclarativeMetaPropert */ /*! - \enum QDeclarativeMetaProperty::Type + \enum QDeclarativeProperty::Type This enum specifies a type of QML property. @@ -288,32 +288,32 @@ QDeclarativeMetaProperty::QDeclarativeMetaProperty(const QDeclarativeMetaPropert /*! Returns the property category. */ -QDeclarativeMetaProperty::PropertyTypeCategory QDeclarativeMetaProperty::propertyTypeCategory() const +QDeclarativeProperty::PropertyTypeCategory QDeclarativeProperty::propertyTypeCategory() const { return d->propertyTypeCategory(); } -QDeclarativeMetaProperty::PropertyTypeCategory -QDeclarativeMetaPropertyPrivate::propertyTypeCategory() const +QDeclarativeProperty::PropertyTypeCategory +QDeclarativePropertyPrivate::propertyTypeCategory() const { uint type = q->type(); - if (type & QDeclarativeMetaProperty::ValueTypeProperty) { - return QDeclarativeMetaProperty::Normal; - } else if (type & QDeclarativeMetaProperty::Property) { + if (type & QDeclarativeProperty::ValueTypeProperty) { + return QDeclarativeProperty::Normal; + } else if (type & QDeclarativeProperty::Property) { int type = propertyType(); if (type == QVariant::Invalid) - return QDeclarativeMetaProperty::InvalidCategory; + return QDeclarativeProperty::InvalidCategory; else if ((uint)type < QVariant::UserType) - return QDeclarativeMetaProperty::Normal; + return QDeclarativeProperty::Normal; else if (core.flags & QDeclarativePropertyCache::Data::IsQObjectDerived) - return QDeclarativeMetaProperty::Object; + return QDeclarativeProperty::Object; else if (core.flags & QDeclarativePropertyCache::Data::IsQList) - return QDeclarativeMetaProperty::List; + return QDeclarativeProperty::List; else - return QDeclarativeMetaProperty::Normal; + return QDeclarativeProperty::Normal; } else { - return QDeclarativeMetaProperty::InvalidCategory; + return QDeclarativeProperty::InvalidCategory; } } @@ -321,7 +321,7 @@ QDeclarativeMetaPropertyPrivate::propertyTypeCategory() const Returns the type name of the property, or 0 if the property has no type name. */ -const char *QDeclarativeMetaProperty::propertyTypeName() const +const char *QDeclarativeProperty::propertyTypeName() const { if (type() & ValueTypeProperty) { @@ -344,10 +344,10 @@ const char *QDeclarativeMetaProperty::propertyTypeName() const } /*! - Returns true if \a other and this QDeclarativeMetaProperty represent the same + Returns true if \a other and this QDeclarativeProperty represent the same property. */ -bool QDeclarativeMetaProperty::operator==(const QDeclarativeMetaProperty &other) const +bool QDeclarativeProperty::operator==(const QDeclarativeProperty &other) const { // category is intentially omitted here as it is generated // from the other members @@ -360,17 +360,17 @@ bool QDeclarativeMetaProperty::operator==(const QDeclarativeMetaProperty &other) Returns the QVariant type of the property, or QVariant::Invalid if the property has no QVariant type. */ -int QDeclarativeMetaProperty::propertyType() const +int QDeclarativeProperty::propertyType() const { return d->propertyType(); } -int QDeclarativeMetaPropertyPrivate::propertyType() const +int QDeclarativePropertyPrivate::propertyType() const { uint type = q->type(); - if (type & QDeclarativeMetaProperty::ValueTypeProperty) { + if (type & QDeclarativeProperty::ValueTypeProperty) { return valueType.valueTypePropType; - } else if (type & QDeclarativeMetaProperty::Property) { + } else if (type & QDeclarativeProperty::Property) { if (core.propType == (int)QVariant::LastType) return qMetaTypeId<QVariant>(); else @@ -383,7 +383,7 @@ int QDeclarativeMetaPropertyPrivate::propertyType() const /*! Returns the type of the property. */ -QDeclarativeMetaProperty::Type QDeclarativeMetaProperty::type() const +QDeclarativeProperty::Type QDeclarativeProperty::type() const { if (d->core.flags & QDeclarativePropertyCache::Data::IsFunction) return SignalProperty; @@ -396,33 +396,33 @@ QDeclarativeMetaProperty::Type QDeclarativeMetaProperty::type() const } /*! - Returns true if this QDeclarativeMetaProperty represents a regular Qt property. + Returns true if this QDeclarativeProperty represents a regular Qt property. */ -bool QDeclarativeMetaProperty::isProperty() const +bool QDeclarativeProperty::isProperty() const { return type() & Property; } /*! - Returns true if this QDeclarativeMetaProperty represents a default property. + Returns true if this QDeclarativeProperty represents a default property. */ -bool QDeclarativeMetaProperty::isDefault() const +bool QDeclarativeProperty::isDefault() const { return type() & Default; } /*! - Returns the QDeclarativeMetaProperty's QObject. + Returns the QDeclarativeProperty's QObject. */ -QObject *QDeclarativeMetaProperty::object() const +QObject *QDeclarativeProperty::object() const { return d->object; } /*! - Assign \a other to this QDeclarativeMetaProperty. + Assign \a other to this QDeclarativeProperty. */ -QDeclarativeMetaProperty &QDeclarativeMetaProperty::operator=(const QDeclarativeMetaProperty &other) +QDeclarativeProperty &QDeclarativeProperty::operator=(const QDeclarativeProperty &other) { d->context = other.d->context; d->object = other.d->object; @@ -440,9 +440,9 @@ QDeclarativeMetaProperty &QDeclarativeMetaProperty::operator=(const QDeclarative /*! Returns true if the property is writable, otherwise false. */ -bool QDeclarativeMetaProperty::isWritable() const +bool QDeclarativeProperty::isWritable() const { - QDeclarativeMetaProperty::PropertyTypeCategory category = propertyTypeCategory(); + QDeclarativeProperty::PropertyTypeCategory category = propertyTypeCategory(); if (!d->object) return false; @@ -459,7 +459,7 @@ bool QDeclarativeMetaProperty::isWritable() const /*! Returns true if the property is designable, otherwise false. */ -bool QDeclarativeMetaProperty::isDesignable() const +bool QDeclarativeProperty::isDesignable() const { if (type() & Property && d->core.isValid() && d->object) return d->object->metaObject()->property(d->core.coreIndex).isDesignable(); @@ -470,7 +470,7 @@ bool QDeclarativeMetaProperty::isDesignable() const /*! Returns true if the property is resettable, otherwise false. */ -bool QDeclarativeMetaProperty::isResettable() const +bool QDeclarativeProperty::isResettable() const { if (type() & Property && d->core.isValid() && d->object) return d->core.flags & QDeclarativePropertyCache::Data::IsResettable; @@ -479,10 +479,10 @@ bool QDeclarativeMetaProperty::isResettable() const } /*! - Returns true if the QDeclarativeMetaProperty refers to a valid property, otherwise + Returns true if the QDeclarativeProperty refers to a valid property, otherwise false. */ -bool QDeclarativeMetaProperty::isValid() const +bool QDeclarativeProperty::isValid() const { return type() != Invalid; } @@ -490,7 +490,7 @@ bool QDeclarativeMetaProperty::isValid() const /*! Return the name of this QML property. */ -QString QDeclarativeMetaProperty::name() const +QString QDeclarativeProperty::name() const { if (!d->isNameCached) { // ### @@ -526,7 +526,7 @@ QString QDeclarativeMetaProperty::name() const Returns the \l{QMetaProperty} {Qt property} associated with this QML property. */ -QMetaProperty QDeclarativeMetaProperty::property() const +QMetaProperty QDeclarativeProperty::property() const { if (type() & Property && d->core.isValid() && d->object) return d->object->metaObject()->property(d->core.coreIndex); @@ -538,7 +538,7 @@ QMetaProperty QDeclarativeMetaProperty::property() const Return the QMetaMethod for this property if it is a SignalProperty, otherwise returns an invalid QMetaMethod. */ -QMetaMethod QDeclarativeMetaProperty::method() const +QMetaMethod QDeclarativeProperty::method() const { if (type() & SignalProperty && d->object) return d->object->metaObject()->method(d->core.coreIndex); @@ -552,7 +552,7 @@ QMetaMethod QDeclarativeMetaProperty::method() const exists. */ QDeclarativeAbstractBinding * -QDeclarativeMetaPropertyPrivate::binding(const QDeclarativeMetaProperty &that) +QDeclarativePropertyPrivate::binding(const QDeclarativeProperty &that) { if (!that.isProperty() || !that.d->object) return 0; @@ -588,9 +588,9 @@ QDeclarativeMetaPropertyPrivate::binding(const QDeclarativeMetaProperty &that) the binding sets the intial value, it will use these flags for the write). */ QDeclarativeAbstractBinding * -QDeclarativeMetaPropertyPrivate::setBinding(const QDeclarativeMetaProperty &that, +QDeclarativePropertyPrivate::setBinding(const QDeclarativeProperty &that, QDeclarativeAbstractBinding *newBinding, - QDeclarativeMetaProperty::WriteFlags flags) + WriteFlags flags) { if (!that.isProperty() || !that.d->object) { if (newBinding) @@ -602,8 +602,8 @@ QDeclarativeMetaPropertyPrivate::setBinding(const QDeclarativeMetaProperty &that } QDeclarativeAbstractBinding * -QDeclarativeMetaPropertyPrivate::setBinding(QObject *object, const QDeclarativePropertyCache::Data &core, - QDeclarativeAbstractBinding *newBinding, QDeclarativeMetaProperty::WriteFlags flags) +QDeclarativePropertyPrivate::setBinding(QObject *object, const QDeclarativePropertyCache::Data &core, + QDeclarativeAbstractBinding *newBinding, WriteFlags flags) { QDeclarativeDeclarativeData *data = QDeclarativeDeclarativeData::get(object, 0 != newBinding); @@ -635,9 +635,9 @@ QDeclarativeMetaPropertyPrivate::setBinding(QObject *object, const QDeclarativeP signal expression exists. */ QDeclarativeExpression * -QDeclarativeMetaPropertyPrivate::signalExpression(const QDeclarativeMetaProperty &that) +QDeclarativePropertyPrivate::signalExpression(const QDeclarativeProperty &that) { - if (!(that.type() & QDeclarativeMetaProperty::SignalProperty)) + if (!(that.type() & QDeclarativeProperty::SignalProperty)) return 0; const QObjectList &children = that.d->object->children(); @@ -661,10 +661,10 @@ QDeclarativeMetaPropertyPrivate::signalExpression(const QDeclarativeMetaProperty assumed by the caller. */ QDeclarativeExpression * -QDeclarativeMetaPropertyPrivate::setSignalExpression(const QDeclarativeMetaProperty &that, +QDeclarativePropertyPrivate::setSignalExpression(const QDeclarativeProperty &that, QDeclarativeExpression *expr) { - if (!(that.type() & QDeclarativeMetaProperty::SignalProperty)) { + if (!(that.type() & QDeclarativeProperty::SignalProperty)) { delete expr; return 0; } @@ -690,7 +690,7 @@ QDeclarativeMetaPropertyPrivate::setSignalExpression(const QDeclarativeMetaPrope /*! Returns the property value. */ -QVariant QDeclarativeMetaProperty::read() const +QVariant QDeclarativeProperty::read() const { if (!d->object) return QVariant(); @@ -707,10 +707,10 @@ QVariant QDeclarativeMetaProperty::read() const return QVariant(); } -QVariant QDeclarativeMetaPropertyPrivate::readValueProperty() +QVariant QDeclarativePropertyPrivate::readValueProperty() { uint type = q->type(); - if(type & QDeclarativeMetaProperty::ValueTypeProperty) { + if(type & QDeclarativeProperty::ValueTypeProperty) { QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get(context); QDeclarativeValueType *valueType = 0; @@ -743,7 +743,7 @@ QVariant QDeclarativeMetaPropertyPrivate::readValueProperty() //### //writeEnumProperty MIRRORS the relelvant bit of QMetaProperty::write AND MUST BE KEPT IN SYNC! //### -bool QDeclarativeMetaPropertyPrivate::writeEnumProperty(const QMetaProperty &prop, int idx, QObject *object, const QVariant &value, int flags) +bool QDeclarativePropertyPrivate::writeEnumProperty(const QMetaProperty &prop, int idx, QObject *object, const QVariant &value, int flags) { if (!object || !prop.isWritable()) return false; @@ -780,18 +780,17 @@ bool QDeclarativeMetaPropertyPrivate::writeEnumProperty(const QMetaProperty &pro return status; } -bool QDeclarativeMetaPropertyPrivate::writeValueProperty(const QVariant &value, - QDeclarativeMetaProperty::WriteFlags flags) +bool QDeclarativePropertyPrivate::writeValueProperty(const QVariant &value, WriteFlags flags) { // Remove any existing bindings on this property - if (!(flags & QDeclarativeMetaProperty::DontRemoveBinding)) { + if (!(flags & DontRemoveBinding)) { QDeclarativeAbstractBinding *binding = setBinding(*q, 0); if (binding) binding->destroy(); } bool rv = false; uint type = q->type(); - if (type & QDeclarativeMetaProperty::ValueTypeProperty) { + if (type & QDeclarativeProperty::ValueTypeProperty) { QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get(context); QDeclarativeValueType *writeBack = 0; @@ -821,9 +820,9 @@ bool QDeclarativeMetaPropertyPrivate::writeValueProperty(const QVariant &value, return rv; } -bool QDeclarativeMetaPropertyPrivate::write(QObject *object, const QDeclarativePropertyCache::Data &property, - const QVariant &value, QDeclarativeContext *context, - QDeclarativeMetaProperty::WriteFlags flags) +bool QDeclarativePropertyPrivate::write(QObject *object, const QDeclarativePropertyCache::Data &property, + const QVariant &value, QDeclarativeContext *context, + WriteFlags flags) { int coreIdx = property.coreIndex; int status = -1; //for dbus @@ -976,7 +975,7 @@ bool QDeclarativeMetaPropertyPrivate::write(QObject *object, const QDeclarativeP return true; } -const QMetaObject *QDeclarativeMetaPropertyPrivate::rawMetaObjectForType(QDeclarativeEnginePrivate *engine, int userType) +const QMetaObject *QDeclarativePropertyPrivate::rawMetaObjectForType(QDeclarativeEnginePrivate *engine, int userType) { if (engine) { return engine->rawMetaObjectForType(userType); @@ -989,15 +988,15 @@ const QMetaObject *QDeclarativeMetaPropertyPrivate::rawMetaObjectForType(QDeclar /*! Set the property value to \a value. */ -bool QDeclarativeMetaProperty::write(const QVariant &value) const +bool QDeclarativeProperty::write(const QVariant &value) const { - return write(value, 0); + return QDeclarativePropertyPrivate::write(*this, value, 0); } /*! Resets the property value. */ -bool QDeclarativeMetaProperty::reset() const +bool QDeclarativeProperty::reset() const { if (isResettable()) { void *args[] = { 0 }; @@ -1008,10 +1007,12 @@ bool QDeclarativeMetaProperty::reset() const } } -bool QDeclarativeMetaProperty::write(const QVariant &value, QDeclarativeMetaProperty::WriteFlags flags) const +bool QDeclarativePropertyPrivate::write(const QDeclarativeProperty &that, + const QVariant &value, WriteFlags flags) { - if (d->object && type() & Property && d->core.isValid() && isWritable()) - return d->writeValueProperty(value, flags); + if (that.d->object && that.type() & QDeclarativeProperty::Property && + that.d->core.isValid() && that.isWritable()) + return that.d->writeValueProperty(value, flags); else return false; } @@ -1019,7 +1020,7 @@ bool QDeclarativeMetaProperty::write(const QVariant &value, QDeclarativeMetaProp /*! Returns true if the property has a change notifier signal, otherwise false. */ -bool QDeclarativeMetaProperty::hasChangedNotifier() const +bool QDeclarativeProperty::hasChangedNotifier() const { if (type() & Property && d->object) { return d->object->metaObject()->property(d->core.coreIndex).hasNotifySignal(); @@ -1034,7 +1035,7 @@ bool QDeclarativeMetaProperty::hasChangedNotifier() const Some properties, such as attached properties or those whose value never changes, do not require a change notifier. */ -bool QDeclarativeMetaProperty::needsChangedNotifier() const +bool QDeclarativeProperty::needsChangedNotifier() const { return type() & Property && !property().isConstant(); } @@ -1047,7 +1048,7 @@ bool QDeclarativeMetaProperty::needsChangedNotifier() const change notifier signal, or if the \a dest object does not have the specified \a method. */ -bool QDeclarativeMetaProperty::connectNotifier(QObject *dest, int method) const +bool QDeclarativeProperty::connectNotifier(QObject *dest, int method) const { if (!(type() & Property) || !d->object) return false; @@ -1068,7 +1069,7 @@ bool QDeclarativeMetaProperty::connectNotifier(QObject *dest, int method) const change notifier signal, or if the \a dest object does not have the specified \a slot. */ -bool QDeclarativeMetaProperty::connectNotifier(QObject *dest, const char *slot) const +bool QDeclarativeProperty::connectNotifier(QObject *dest, const char *slot) const { if (!(type() & Property) || !d->object) return false; @@ -1085,20 +1086,18 @@ bool QDeclarativeMetaProperty::connectNotifier(QObject *dest, const char *slot) /*! Return the Qt metaobject index of the property. */ -int QDeclarativeMetaProperty::coreIndex() const +int QDeclarativeProperty::coreIndex() const { return d->core.coreIndex; } -/*! \internal */ -int QDeclarativeMetaProperty::valueTypeCoreIndex() const +int QDeclarativePropertyPrivate::valueTypeCoreIndex(const QDeclarativeProperty &that) { - return d->valueType.valueTypeCoreIdx; + return that.d->valueType.valueTypeCoreIdx; } - struct SerializedData { - QDeclarativeMetaProperty::Type type; + QDeclarativeProperty::Type type; QDeclarativePropertyCache::Data core; }; @@ -1106,14 +1105,14 @@ struct ValueTypeSerializedData : public SerializedData { QDeclarativePropertyCache::ValueTypeData valueType; }; -QByteArray QDeclarativeMetaPropertyPrivate::saveValueType(const QMetaObject *metaObject, int index, +QByteArray QDeclarativePropertyPrivate::saveValueType(const QMetaObject *metaObject, int index, const QMetaObject *subObject, int subIndex) { QMetaProperty prop = metaObject->property(index); QMetaProperty subProp = subObject->property(subIndex); ValueTypeSerializedData sd; - sd.type = QDeclarativeMetaProperty::ValueTypeProperty; + sd.type = QDeclarativeProperty::ValueTypeProperty; sd.core.load(metaObject->property(index)); sd.valueType.flags = QDeclarativePropertyCache::Data::flagsForProperty(subProp); sd.valueType.valueTypeCoreIdx = subIndex; @@ -1124,20 +1123,20 @@ QByteArray QDeclarativeMetaPropertyPrivate::saveValueType(const QMetaObject *met return rv; } -QByteArray QDeclarativeMetaPropertyPrivate::saveProperty(const QMetaObject *metaObject, int index) +QByteArray QDeclarativePropertyPrivate::saveProperty(const QMetaObject *metaObject, int index) { SerializedData sd; - sd.type = QDeclarativeMetaProperty::Property; + sd.type = QDeclarativeProperty::Property; sd.core.load(metaObject->property(index)); QByteArray rv((const char *)&sd, sizeof(sd)); return rv; } -QDeclarativeMetaProperty -QDeclarativeMetaPropertyPrivate::restore(const QByteArray &data, QObject *object, QDeclarativeContext *ctxt) +QDeclarativeProperty +QDeclarativePropertyPrivate::restore(const QByteArray &data, QObject *object, QDeclarativeContext *ctxt) { - QDeclarativeMetaProperty prop; + QDeclarativeProperty prop; if (data.isEmpty()) return prop; @@ -1146,9 +1145,9 @@ QDeclarativeMetaPropertyPrivate::restore(const QByteArray &data, QObject *object prop.d->context = ctxt; const SerializedData *sd = (const SerializedData *)data.constData(); - if (sd->type == QDeclarativeMetaProperty::Property) { + if (sd->type == QDeclarativeProperty::Property) { prop.d->core = sd->core; - } else if(sd->type == QDeclarativeMetaProperty::ValueTypeProperty) { + } else if(sd->type == QDeclarativeProperty::ValueTypeProperty) { const ValueTypeSerializedData *vt = (const ValueTypeSerializedData *)sd; prop.d->core = vt->core; prop.d->valueType = vt->valueType; @@ -1160,7 +1159,7 @@ QDeclarativeMetaPropertyPrivate::restore(const QByteArray &data, QObject *object /*! Returns true if lhs and rhs refer to the same metaobject data */ -bool QDeclarativeMetaPropertyPrivate::equal(const QMetaObject *lhs, const QMetaObject *rhs) +bool QDeclarativePropertyPrivate::equal(const QMetaObject *lhs, const QMetaObject *rhs) { return lhs == rhs || (1 && lhs && rhs && lhs->d.stringdata == rhs->d.stringdata); } @@ -1168,7 +1167,7 @@ bool QDeclarativeMetaPropertyPrivate::equal(const QMetaObject *lhs, const QMetaO /*! Returns true if from inherits to. */ -bool QDeclarativeMetaPropertyPrivate::canConvert(const QMetaObject *from, const QMetaObject *to) +bool QDeclarativePropertyPrivate::canConvert(const QMetaObject *from, const QMetaObject *to) { if (from && to == &QObject::staticMetaObject) return true; diff --git a/src/declarative/qml/qdeclarativemetaproperty.h b/src/declarative/qml/qdeclarativeproperty.h index 900d1cd..be1065e 100644 --- a/src/declarative/qml/qdeclarativemetaproperty.h +++ b/src/declarative/qml/qdeclarativeproperty.h @@ -39,8 +39,8 @@ ** ****************************************************************************/ -#ifndef QDECLARATIVEMETAPROPERTY_H -#define QDECLARATIVEMETAPROPERTY_H +#ifndef QDECLARATIVEPROPERTY_H +#define QDECLARATIVEPROPERTY_H #include <QtCore/qmetaobject.h> @@ -59,8 +59,8 @@ struct QMetaObject; class QDeclarativeContext; class QDeclarativeEngine; -class QDeclarativeMetaPropertyPrivate; -class Q_DECLARATIVE_EXPORT QDeclarativeMetaProperty +class QDeclarativePropertyPrivate; +class Q_DECLARATIVE_EXPORT QDeclarativeProperty { public: enum PropertyTypeCategory { @@ -77,25 +77,22 @@ public: ValueTypeProperty = 0x10 }; - QDeclarativeMetaProperty(); - ~QDeclarativeMetaProperty(); + QDeclarativeProperty(); + ~QDeclarativeProperty(); - QDeclarativeMetaProperty(QObject *); - QDeclarativeMetaProperty(QObject *, QDeclarativeContext *); + QDeclarativeProperty(QObject *); + QDeclarativeProperty(QObject *, QDeclarativeContext *); - QDeclarativeMetaProperty(QObject *, const QString &); - QDeclarativeMetaProperty(QObject *, const QString &, QDeclarativeContext *); + QDeclarativeProperty(QObject *, const QString &); + QDeclarativeProperty(QObject *, const QString &, QDeclarativeContext *); - QDeclarativeMetaProperty(const QDeclarativeMetaProperty &); - QDeclarativeMetaProperty &operator=(const QDeclarativeMetaProperty &); + QDeclarativeProperty(const QDeclarativeProperty &); + QDeclarativeProperty &operator=(const QDeclarativeProperty &); QString name() const; QVariant read() const; bool write(const QVariant &) const; - enum WriteFlag { BypassInterceptor = 0x01, DontRemoveBinding = 0x02 }; - Q_DECLARE_FLAGS(WriteFlags, WriteFlag) - bool write(const QVariant &, QDeclarativeMetaProperty::WriteFlags) const; bool reset() const; bool hasChangedNotifier() const; @@ -103,8 +100,6 @@ public: bool connectNotifier(QObject *dest, const char *slot) const; bool connectNotifier(QObject *dest, int method) const; - QMetaMethod method() const; - Type type() const; bool isProperty() const; bool isDefault() const; @@ -118,22 +113,21 @@ public: PropertyTypeCategory propertyTypeCategory() const; const char *propertyTypeName() const; - bool operator==(const QDeclarativeMetaProperty &) const; + bool operator==(const QDeclarativeProperty &) const; + int coreIndex() const; QMetaProperty property() const; + QMetaMethod method() const; - int coreIndex() const; - int valueTypeCoreIndex() const; private: friend class QDeclarativeEnginePrivate; - friend class QDeclarativeMetaPropertyPrivate; - QDeclarativeMetaPropertyPrivate *d; + friend class QDeclarativePropertyPrivate; + QDeclarativePropertyPrivate *d; }; -typedef QList<QDeclarativeMetaProperty> QDeclarativeMetaProperties; - Q_DECLARE_OPERATORS_FOR_FLAGS(QDeclarativeMetaProperty::WriteFlags) +typedef QList<QDeclarativeProperty> QDeclarativeProperties; QT_END_NAMESPACE QT_END_HEADER -#endif // QDECLARATIVEMETAPROPERTY_H +#endif // QDECLARATIVEPROPERTY_H diff --git a/src/declarative/qml/qdeclarativemetaproperty_p.h b/src/declarative/qml/qdeclarativeproperty_p.h index 937cfd7..d0ad09c 100644 --- a/src/declarative/qml/qdeclarativemetaproperty_p.h +++ b/src/declarative/qml/qdeclarativeproperty_p.h @@ -39,8 +39,8 @@ ** ****************************************************************************/ -#ifndef QDECLARATIVEMETAPROPERTY_P_H -#define QDECLARATIVEMETAPROPERTY_P_H +#ifndef QDECLARATIVEPROPERTY_P_H +#define QDECLARATIVEPROPERTY_P_H // // W A R N I N G @@ -53,7 +53,7 @@ // We mean it. // -#include "qdeclarativemetaproperty.h" +#include "qdeclarativeproperty.h" #include "qdeclarativepropertycache_p.h" #include "qdeclarativeguard_p.h" @@ -64,20 +64,23 @@ QT_BEGIN_NAMESPACE class QDeclarativeContext; class QDeclarativeEnginePrivate; -class Q_AUTOTEST_EXPORT QDeclarativeMetaPropertyPrivate +class Q_AUTOTEST_EXPORT QDeclarativePropertyPrivate { public: - QDeclarativeMetaPropertyPrivate() + enum WriteFlag { BypassInterceptor = 0x01, DontRemoveBinding = 0x02 }; + Q_DECLARE_FLAGS(WriteFlags, WriteFlag) + + QDeclarativePropertyPrivate() : q(0), context(0), object(0), isDefaultProperty(false), isNameCached(false) {} - QDeclarativeMetaPropertyPrivate(const QDeclarativeMetaPropertyPrivate &other) + QDeclarativePropertyPrivate(const QDeclarativePropertyPrivate &other) : q(0), context(other.context), object(other.object), isDefaultProperty(other.isDefaultProperty), isNameCached(other.isNameCached), core(other.core), nameCache(other.nameCache), valueType(other.valueType) {} - QDeclarativeMetaProperty *q; + QDeclarativeProperty *q; QDeclarativeContext *context; QDeclarativeGuard<QObject> object; @@ -95,40 +98,43 @@ public: QMetaMethod findSignal(QObject *, const QString &); int propertyType() const; - QDeclarativeMetaProperty::PropertyTypeCategory propertyTypeCategory() const; + QDeclarativeProperty::PropertyTypeCategory propertyTypeCategory() const; QVariant readValueProperty(); - bool writeValueProperty(const QVariant &, QDeclarativeMetaProperty::WriteFlags); + bool writeValueProperty(const QVariant &, WriteFlags); static const QMetaObject *rawMetaObjectForType(QDeclarativeEnginePrivate *, int); static bool writeEnumProperty(const QMetaProperty &prop, int idx, QObject *object, const QVariant &value, int flags); static bool write(QObject *, const QDeclarativePropertyCache::Data &, const QVariant &, - QDeclarativeContext *, QDeclarativeMetaProperty::WriteFlags flags = 0); + QDeclarativeContext *, WriteFlags flags = 0); static QDeclarativeAbstractBinding *setBinding(QObject *, const QDeclarativePropertyCache::Data &, QDeclarativeAbstractBinding *, - QDeclarativeMetaProperty::WriteFlags flags = QDeclarativeMetaProperty::DontRemoveBinding); + WriteFlags flags = DontRemoveBinding); static QByteArray saveValueType(const QMetaObject *, int, const QMetaObject *, int); static QByteArray saveProperty(const QMetaObject *, int); - static QDeclarativeMetaProperty restore(const QByteArray &, QObject *, QDeclarativeContext *); + static QDeclarativeProperty restore(const QByteArray &, QObject *, QDeclarativeContext *); static bool equal(const QMetaObject *, const QMetaObject *); static bool canConvert(const QMetaObject *from, const QMetaObject *to); // "Public" (to QML) methods - static QDeclarativeAbstractBinding *binding(const QDeclarativeMetaProperty &that); - static QDeclarativeAbstractBinding *setBinding(const QDeclarativeMetaProperty &that, + static QDeclarativeAbstractBinding *binding(const QDeclarativeProperty &that); + static QDeclarativeAbstractBinding *setBinding(const QDeclarativeProperty &that, QDeclarativeAbstractBinding *, - QDeclarativeMetaProperty::WriteFlags flags = QDeclarativeMetaProperty::DontRemoveBinding); - static QDeclarativeExpression *signalExpression(const QDeclarativeMetaProperty &that); - static QDeclarativeExpression *setSignalExpression(const QDeclarativeMetaProperty &that, + WriteFlags flags = DontRemoveBinding); + static QDeclarativeExpression *signalExpression(const QDeclarativeProperty &that); + static QDeclarativeExpression *setSignalExpression(const QDeclarativeProperty &that, QDeclarativeExpression *) ; - + static bool write(const QDeclarativeProperty &that, const QVariant &, WriteFlags); + static int valueTypeCoreIndex(const QDeclarativeProperty &that); }; +Q_DECLARE_OPERATORS_FOR_FLAGS(QDeclarativePropertyPrivate::WriteFlags) + QT_END_NAMESPACE -#endif // QDECLARATIVEMETAPROPERTY_P_H +#endif // QDECLARATIVEPROPERTY_P_H diff --git a/src/declarative/qml/qdeclarativepropertyvalueinterceptor.cpp b/src/declarative/qml/qdeclarativepropertyvalueinterceptor.cpp index 7626d56..3f6d805 100644 --- a/src/declarative/qml/qdeclarativepropertyvalueinterceptor.cpp +++ b/src/declarative/qml/qdeclarativepropertyvalueinterceptor.cpp @@ -66,7 +66,7 @@ QDeclarativePropertyValueInterceptor::~QDeclarativePropertyValueInterceptor() } /*! - \fn void QDeclarativePropertyValueInterceptor::setTarget(const QDeclarativeMetaProperty &property) + \fn void QDeclarativePropertyValueInterceptor::setTarget(const QDeclarativeProperty &property) Set the target \a property for the value interceptor. This method will be called by the QML engine when assigning a value interceptor. */ diff --git a/src/declarative/qml/qdeclarativepropertyvalueinterceptor.h b/src/declarative/qml/qdeclarativepropertyvalueinterceptor.h index 2a29d5b..3de5abc 100644 --- a/src/declarative/qml/qdeclarativepropertyvalueinterceptor.h +++ b/src/declarative/qml/qdeclarativepropertyvalueinterceptor.h @@ -50,13 +50,13 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class QDeclarativeMetaProperty; +class QDeclarativeProperty; class Q_DECLARATIVE_EXPORT QDeclarativePropertyValueInterceptor { public: QDeclarativePropertyValueInterceptor(); virtual ~QDeclarativePropertyValueInterceptor(); - virtual void setTarget(const QDeclarativeMetaProperty &property) = 0; + virtual void setTarget(const QDeclarativeProperty &property) = 0; virtual void write(const QVariant &value) = 0; }; Q_DECLARE_INTERFACE(QDeclarativePropertyValueInterceptor, "com.trolltech.qml.QDeclarativePropertyValueInterceptor") diff --git a/src/declarative/qml/qdeclarativepropertyvaluesource.cpp b/src/declarative/qml/qdeclarativepropertyvaluesource.cpp index 626e391..b106d4f 100644 --- a/src/declarative/qml/qdeclarativepropertyvaluesource.cpp +++ b/src/declarative/qml/qdeclarativepropertyvaluesource.cpp @@ -63,7 +63,7 @@ QDeclarativePropertyValueSource::~QDeclarativePropertyValueSource() } /*! - \fn void QDeclarativePropertyValueSource::setTarget(const QDeclarativeMetaProperty &property) + \fn void QDeclarativePropertyValueSource::setTarget(const QDeclarativeProperty &property) Set the target \a property for the value source. This method will be called by the QML engine when assigning a value source. */ diff --git a/src/declarative/qml/qdeclarativepropertyvaluesource.h b/src/declarative/qml/qdeclarativepropertyvaluesource.h index 99c80af..70d2c03 100644 --- a/src/declarative/qml/qdeclarativepropertyvaluesource.h +++ b/src/declarative/qml/qdeclarativepropertyvaluesource.h @@ -50,13 +50,13 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class QDeclarativeMetaProperty; +class QDeclarativeProperty; class Q_DECLARATIVE_EXPORT QDeclarativePropertyValueSource { public: QDeclarativePropertyValueSource(); virtual ~QDeclarativePropertyValueSource(); - virtual void setTarget(const QDeclarativeMetaProperty &) = 0; + virtual void setTarget(const QDeclarativeProperty &) = 0; }; Q_DECLARE_INTERFACE(QDeclarativePropertyValueSource, "com.trolltech.qml.QDeclarativePropertyValueSource") diff --git a/src/declarative/qml/qdeclarativevaluetype.cpp b/src/declarative/qml/qdeclarativevaluetype.cpp index df83fa4..01fa214 100644 --- a/src/declarative/qml/qdeclarativevaluetype.cpp +++ b/src/declarative/qml/qdeclarativevaluetype.cpp @@ -100,7 +100,7 @@ void QDeclarativePointFValueType::read(QObject *obj, int idx) QMetaObject::metacall(obj, QMetaObject::ReadProperty, idx, a); } -void QDeclarativePointFValueType::write(QObject *obj, int idx, QDeclarativeMetaProperty::WriteFlags flags) +void QDeclarativePointFValueType::write(QObject *obj, int idx, QDeclarativePropertyPrivate::WriteFlags flags) { int status = -1; void *a[] = { &point, 0, &status, &flags }; @@ -148,7 +148,7 @@ void QDeclarativePointValueType::read(QObject *obj, int idx) QMetaObject::metacall(obj, QMetaObject::ReadProperty, idx, a); } -void QDeclarativePointValueType::write(QObject *obj, int idx, QDeclarativeMetaProperty::WriteFlags flags) +void QDeclarativePointValueType::write(QObject *obj, int idx, QDeclarativePropertyPrivate::WriteFlags flags) { int status = -1; void *a[] = { &point, 0, &status, &flags }; @@ -196,7 +196,7 @@ void QDeclarativeSizeFValueType::read(QObject *obj, int idx) QMetaObject::metacall(obj, QMetaObject::ReadProperty, idx, a); } -void QDeclarativeSizeFValueType::write(QObject *obj, int idx, QDeclarativeMetaProperty::WriteFlags flags) +void QDeclarativeSizeFValueType::write(QObject *obj, int idx, QDeclarativePropertyPrivate::WriteFlags flags) { int status = -1; void *a[] = { &size, 0, &status, &flags }; @@ -244,7 +244,7 @@ void QDeclarativeSizeValueType::read(QObject *obj, int idx) QMetaObject::metacall(obj, QMetaObject::ReadProperty, idx, a); } -void QDeclarativeSizeValueType::write(QObject *obj, int idx, QDeclarativeMetaProperty::WriteFlags flags) +void QDeclarativeSizeValueType::write(QObject *obj, int idx, QDeclarativePropertyPrivate::WriteFlags flags) { int status = -1; void *a[] = { &size, 0, &status, &flags }; @@ -292,7 +292,7 @@ void QDeclarativeRectFValueType::read(QObject *obj, int idx) QMetaObject::metacall(obj, QMetaObject::ReadProperty, idx, a); } -void QDeclarativeRectFValueType::write(QObject *obj, int idx, QDeclarativeMetaProperty::WriteFlags flags) +void QDeclarativeRectFValueType::write(QObject *obj, int idx, QDeclarativePropertyPrivate::WriteFlags flags) { int status = -1; void *a[] = { &rect, 0, &status, &flags }; @@ -360,7 +360,7 @@ void QDeclarativeRectValueType::read(QObject *obj, int idx) QMetaObject::metacall(obj, QMetaObject::ReadProperty, idx, a); } -void QDeclarativeRectValueType::write(QObject *obj, int idx, QDeclarativeMetaProperty::WriteFlags flags) +void QDeclarativeRectValueType::write(QObject *obj, int idx, QDeclarativePropertyPrivate::WriteFlags flags) { int status = -1; void *a[] = { &rect, 0, &status, &flags }; @@ -428,7 +428,7 @@ void QDeclarativeVector3DValueType::read(QObject *obj, int idx) QMetaObject::metacall(obj, QMetaObject::ReadProperty, idx, a); } -void QDeclarativeVector3DValueType::write(QObject *obj, int idx, QDeclarativeMetaProperty::WriteFlags flags) +void QDeclarativeVector3DValueType::write(QObject *obj, int idx, QDeclarativePropertyPrivate::WriteFlags flags) { int status = -1; void *a[] = { &vector, 0, &status, &flags }; @@ -486,7 +486,7 @@ void QDeclarativeEasingValueType::read(QObject *obj, int idx) QMetaObject::metacall(obj, QMetaObject::ReadProperty, idx, a); } -void QDeclarativeEasingValueType::write(QObject *obj, int idx, QDeclarativeMetaProperty::WriteFlags flags) +void QDeclarativeEasingValueType::write(QObject *obj, int idx, QDeclarativePropertyPrivate::WriteFlags flags) { int status = -1; void *a[] = { &easing, 0, &status, &flags }; @@ -554,7 +554,7 @@ void QDeclarativeFontValueType::read(QObject *obj, int idx) QMetaObject::metacall(obj, QMetaObject::ReadProperty, idx, a); } -void QDeclarativeFontValueType::write(QObject *obj, int idx, QDeclarativeMetaProperty::WriteFlags flags) +void QDeclarativeFontValueType::write(QObject *obj, int idx, QDeclarativePropertyPrivate::WriteFlags flags) { int status = -1; void *a[] = { &font, 0, &status, &flags }; diff --git a/src/declarative/qml/qdeclarativevaluetype_p.h b/src/declarative/qml/qdeclarativevaluetype_p.h index 995433b..cb153be 100644 --- a/src/declarative/qml/qdeclarativevaluetype_p.h +++ b/src/declarative/qml/qdeclarativevaluetype_p.h @@ -53,7 +53,8 @@ // We mean it. // -#include "qdeclarativemetaproperty.h" +#include "qdeclarativeproperty.h" +#include "qdeclarativeproperty_p.h" #include <QtCore/qobject.h> #include <QtCore/qrect.h> @@ -70,7 +71,7 @@ class Q_DECLARATIVE_EXPORT QDeclarativeValueType : public QObject public: QDeclarativeValueType(QObject *parent = 0); virtual void read(QObject *, int) = 0; - virtual void write(QObject *, int, QDeclarativeMetaProperty::WriteFlags flags) = 0; + virtual void write(QObject *, int, QDeclarativePropertyPrivate::WriteFlags flags) = 0; virtual QVariant value() = 0; virtual void setValue(QVariant) = 0; }; @@ -95,7 +96,7 @@ public: QDeclarativePointFValueType(QObject *parent = 0); virtual void read(QObject *, int); - virtual void write(QObject *, int, QDeclarativeMetaProperty::WriteFlags); + virtual void write(QObject *, int, QDeclarativePropertyPrivate::WriteFlags); virtual QVariant value(); virtual void setValue(QVariant value); @@ -117,7 +118,7 @@ public: QDeclarativePointValueType(QObject *parent = 0); virtual void read(QObject *, int); - virtual void write(QObject *, int, QDeclarativeMetaProperty::WriteFlags); + virtual void write(QObject *, int, QDeclarativePropertyPrivate::WriteFlags); virtual QVariant value(); virtual void setValue(QVariant value); @@ -139,7 +140,7 @@ public: QDeclarativeSizeFValueType(QObject *parent = 0); virtual void read(QObject *, int); - virtual void write(QObject *, int, QDeclarativeMetaProperty::WriteFlags); + virtual void write(QObject *, int, QDeclarativePropertyPrivate::WriteFlags); virtual QVariant value(); virtual void setValue(QVariant value); @@ -161,7 +162,7 @@ public: QDeclarativeSizeValueType(QObject *parent = 0); virtual void read(QObject *, int); - virtual void write(QObject *, int, QDeclarativeMetaProperty::WriteFlags); + virtual void write(QObject *, int, QDeclarativePropertyPrivate::WriteFlags); virtual QVariant value(); virtual void setValue(QVariant value); @@ -185,7 +186,7 @@ public: QDeclarativeRectFValueType(QObject *parent = 0); virtual void read(QObject *, int); - virtual void write(QObject *, int, QDeclarativeMetaProperty::WriteFlags); + virtual void write(QObject *, int, QDeclarativePropertyPrivate::WriteFlags); virtual QVariant value(); virtual void setValue(QVariant value); @@ -214,7 +215,7 @@ public: QDeclarativeRectValueType(QObject *parent = 0); virtual void read(QObject *, int); - virtual void write(QObject *, int, QDeclarativeMetaProperty::WriteFlags); + virtual void write(QObject *, int, QDeclarativePropertyPrivate::WriteFlags); virtual QVariant value(); virtual void setValue(QVariant value); @@ -242,7 +243,7 @@ public: QDeclarativeVector3DValueType(QObject *parent = 0); virtual void read(QObject *, int); - virtual void write(QObject *, int, QDeclarativeMetaProperty::WriteFlags); + virtual void write(QObject *, int, QDeclarativePropertyPrivate::WriteFlags); virtual QVariant value(); virtual void setValue(QVariant value); @@ -296,7 +297,7 @@ public: QDeclarativeEasingValueType(QObject *parent = 0); virtual void read(QObject *, int); - virtual void write(QObject *, int, QDeclarativeMetaProperty::WriteFlags); + virtual void write(QObject *, int, QDeclarativePropertyPrivate::WriteFlags); virtual QVariant value(); virtual void setValue(QVariant value); @@ -347,7 +348,7 @@ public: QDeclarativeFontValueType(QObject *parent = 0); virtual void read(QObject *, int); - virtual void write(QObject *, int, QDeclarativeMetaProperty::WriteFlags); + virtual void write(QObject *, int, QDeclarativePropertyPrivate::WriteFlags); virtual QVariant value(); virtual void setValue(QVariant value); diff --git a/src/declarative/qml/qdeclarativevme.cpp b/src/declarative/qml/qdeclarativevme.cpp index d1140a6..baa98bd 100644 --- a/src/declarative/qml/qdeclarativevme.cpp +++ b/src/declarative/qml/qdeclarativevme.cpp @@ -156,7 +156,7 @@ QObject *QDeclarativeVME::run(QDeclarativeVMEStack<QObject *> &stack, QDeclarati QDeclarativeContextPrivate *cp = (QDeclarativeContextPrivate *)QObjectPrivate::get(ctxt); int status = -1; //for dbus - QDeclarativeMetaProperty::WriteFlags flags = QDeclarativeMetaProperty::BypassInterceptor; + QDeclarativePropertyPrivate::WriteFlags flags = QDeclarativePropertyPrivate::BypassInterceptor; for (int ii = start; !isError() && ii < (start + count); ++ii) { const QDeclarativeInstruction &instr = comp->bytecode.at(ii); @@ -515,8 +515,8 @@ QObject *QDeclarativeVME::run(QDeclarativeVMEStack<QObject *> &stack, QDeclarati int sigIdx = instr.assignSignalObject.signal; const QByteArray &pr = datas.at(sigIdx); - QDeclarativeMetaProperty prop(target, QString::fromUtf8(pr)); - if (prop.type() & QDeclarativeMetaProperty::SignalProperty) { + QDeclarativeProperty prop(target, QString::fromUtf8(pr)); + if (prop.type() & QDeclarativeProperty::SignalProperty) { QMetaMethod method = QDeclarativeMetaType::defaultMethod(assign); if (method.signature() == 0) @@ -590,8 +590,8 @@ QObject *QDeclarativeVME::run(QDeclarativeVMEStack<QObject *> &stack, QDeclarati QObject *context = stack.at(stack.count() - 1 - instr.assignBinding.context); - QDeclarativeMetaProperty mp = - QDeclarativeMetaPropertyPrivate::restore(datas.at(instr.assignBinding.property), target, ctxt); + QDeclarativeProperty mp = + QDeclarativePropertyPrivate::restore(datas.at(instr.assignBinding.property), target, ctxt); int coreIndex = mp.coreIndex(); @@ -631,8 +631,8 @@ QObject *QDeclarativeVME::run(QDeclarativeVMEStack<QObject *> &stack, QDeclarati QDeclarativePropertyValueSource *vs = reinterpret_cast<QDeclarativePropertyValueSource *>(reinterpret_cast<char *>(obj) + instr.assignValueSource.castValue); QObject *target = stack.at(stack.count() - 1 - instr.assignValueSource.owner); - QDeclarativeMetaProperty prop = - QDeclarativeMetaPropertyPrivate::restore(datas.at(instr.assignValueSource.property), target, ctxt); + QDeclarativeProperty prop = + QDeclarativePropertyPrivate::restore(datas.at(instr.assignValueSource.property), target, ctxt); obj->setParent(target); vs->setTarget(prop); } @@ -643,12 +643,12 @@ QObject *QDeclarativeVME::run(QDeclarativeVMEStack<QObject *> &stack, QDeclarati QObject *obj = stack.pop(); QDeclarativePropertyValueInterceptor *vi = reinterpret_cast<QDeclarativePropertyValueInterceptor *>(reinterpret_cast<char *>(obj) + instr.assignValueInterceptor.castValue); QObject *target = stack.at(stack.count() - 1 - instr.assignValueInterceptor.owner); - QDeclarativeMetaProperty prop = - QDeclarativeMetaPropertyPrivate::restore(datas.at(instr.assignValueInterceptor.property), target, ctxt); + QDeclarativeProperty prop = + QDeclarativePropertyPrivate::restore(datas.at(instr.assignValueInterceptor.property), target, ctxt); obj->setParent(target); vi->setTarget(prop); QDeclarativeVMEMetaObject *mo = static_cast<QDeclarativeVMEMetaObject *>((QMetaObject*)target->metaObject()); - mo->registerInterceptor(prop.coreIndex(), prop.valueTypeCoreIndex(), vi); + mo->registerInterceptor(prop.coreIndex(), QDeclarativePropertyPrivate::valueTypeCoreIndex(prop), vi); } break; @@ -806,7 +806,8 @@ QObject *QDeclarativeVME::run(QDeclarativeVMEStack<QObject *> &stack, QDeclarati QDeclarativeValueType *valueHandler = static_cast<QDeclarativeValueType *>(stack.pop()); QObject *target = stack.top(); - valueHandler->write(target, instr.fetchValue.property, QDeclarativeMetaProperty::BypassInterceptor); + valueHandler->write(target, instr.fetchValue.property, + QDeclarativePropertyPrivate::BypassInterceptor); } break; diff --git a/src/declarative/qml/qdeclarativevmemetaobject.cpp b/src/declarative/qml/qdeclarativevmemetaobject.cpp index 6811e13..d67c834 100644 --- a/src/declarative/qml/qdeclarativevmemetaobject.cpp +++ b/src/declarative/qml/qdeclarativevmemetaobject.cpp @@ -105,7 +105,7 @@ int QDeclarativeVMEMetaObject::metaCall(QMetaObject::Call c, int _id, void **a) int id = _id; if(c == QMetaObject::WriteProperty) { int flags = *reinterpret_cast<int*>(a[3]); - if (!(flags & QDeclarativeMetaProperty::BypassInterceptor) + if (!(flags & QDeclarativePropertyPrivate::BypassInterceptor) && !aInterceptors.isEmpty() && aInterceptors.testBit(id)) { QPair<int, QDeclarativePropertyValueInterceptor*> pair = interceptors.value(id); diff --git a/src/declarative/qml/qml.pri b/src/declarative/qml/qml.pri index 8a43cec..aa1a34b 100644 --- a/src/declarative/qml/qml.pri +++ b/src/declarative/qml/qml.pri @@ -6,7 +6,7 @@ SOURCES += \ $$PWD/qdeclarativeengine.cpp \ $$PWD/qdeclarativeexpression.cpp \ $$PWD/qdeclarativebinding.cpp \ - $$PWD/qdeclarativemetaproperty.cpp \ + $$PWD/qdeclarativeproperty.cpp \ $$PWD/qdeclarativecomponent.cpp \ $$PWD/qdeclarativecontext.cpp \ $$PWD/qdeclarativecustomparser.cpp \ @@ -62,7 +62,7 @@ HEADERS += \ $$PWD/qdeclarative.h \ $$PWD/qdeclarativebinding_p.h \ $$PWD/qdeclarativebinding_p_p.h \ - $$PWD/qdeclarativemetaproperty.h \ + $$PWD/qdeclarativeproperty.h \ $$PWD/qdeclarativecomponent.h \ $$PWD/qdeclarativecomponent_p.h \ $$PWD/qdeclarativecustomparser_p.h \ @@ -87,7 +87,7 @@ HEADERS += \ $$PWD/qdeclarativestringconverters_p.h \ $$PWD/qdeclarativeclassfactory_p.h \ $$PWD/qdeclarativeinfo.h \ - $$PWD/qdeclarativemetaproperty_p.h \ + $$PWD/qdeclarativeproperty_p.h \ $$PWD/qdeclarativecontext_p.h \ $$PWD/qdeclarativecompositetypedata_p.h \ $$PWD/qdeclarativecompositetypemanager_p.h \ diff --git a/src/declarative/util/qdeclarativeanimation.cpp b/src/declarative/util/qdeclarativeanimation.cpp index 9e777a0..264b88c 100644 --- a/src/declarative/util/qdeclarativeanimation.cpp +++ b/src/declarative/util/qdeclarativeanimation.cpp @@ -52,6 +52,7 @@ #include <qdeclarativestringconverters_p.h> #include <qdeclarativeglobal_p.h> #include <qdeclarativemetatype_p.h> +#include <qdeclarativeproperty_p.h> #include <qvariant.h> #include <qcolor.h> @@ -144,7 +145,7 @@ void QDeclarativeAbstractAnimationPrivate::commence() Q_Q(QDeclarativeAbstractAnimation); QDeclarativeStateActions actions; - QDeclarativeMetaProperties properties; + QDeclarativeProperties properties; q->transition(actions, properties, QDeclarativeAbstractAnimation::Forward); q->qtAnimation()->start(); @@ -154,15 +155,15 @@ void QDeclarativeAbstractAnimationPrivate::commence() } } -QDeclarativeMetaProperty QDeclarativeAbstractAnimationPrivate::createProperty(QObject *obj, const QString &str, QObject *infoObj) +QDeclarativeProperty QDeclarativeAbstractAnimationPrivate::createProperty(QObject *obj, const QString &str, QObject *infoObj) { - QDeclarativeMetaProperty prop(obj, str, qmlContext(infoObj)); + QDeclarativeProperty prop(obj, str, qmlContext(infoObj)); if (!prop.isValid()) { qmlInfo(infoObj) << QDeclarativeAbstractAnimation::tr("Cannot animate non-existent property \"%1\"").arg(str); - return QDeclarativeMetaProperty(); + return QDeclarativeProperty(); } else if (!prop.isWritable()) { qmlInfo(infoObj) << QDeclarativeAbstractAnimation::tr("Cannot animate read-only property \"%1\"").arg(str); - return QDeclarativeMetaProperty(); + return QDeclarativeProperty(); } return prop; } @@ -465,7 +466,7 @@ void QDeclarativeAbstractAnimation::complete() } } -void QDeclarativeAbstractAnimation::setTarget(const QDeclarativeMetaProperty &p) +void QDeclarativeAbstractAnimation::setTarget(const QDeclarativeProperty &p) { Q_D(QDeclarativeAbstractAnimation); d->defaultProperty = p; @@ -479,7 +480,7 @@ void QDeclarativeAbstractAnimation::setTarget(const QDeclarativeMetaProperty &p) so this function allows us to do the same thing as setTarget without that assumption */ -void QDeclarativeAbstractAnimation::setDefaultTarget(const QDeclarativeMetaProperty &p) +void QDeclarativeAbstractAnimation::setDefaultTarget(const QDeclarativeProperty &p) { Q_D(QDeclarativeAbstractAnimation); d->defaultProperty = p; @@ -497,7 +498,7 @@ void QDeclarativeAbstractAnimation::setDisableUserControl() } void QDeclarativeAbstractAnimation::transition(QDeclarativeStateActions &actions, - QDeclarativeMetaProperties &modified, + QDeclarativeProperties &modified, TransitionDirection direction) { Q_UNUSED(actions); @@ -728,7 +729,7 @@ void QDeclarativeScriptActionPrivate::execute() } void QDeclarativeScriptAction::transition(QDeclarativeStateActions &actions, - QDeclarativeMetaProperties &modified, + QDeclarativeProperties &modified, TransitionDirection direction) { Q_D(QDeclarativeScriptAction); @@ -911,7 +912,7 @@ QAbstractAnimation *QDeclarativePropertyAction::qtAnimation() } void QDeclarativePropertyAction::transition(QDeclarativeStateActions &actions, - QDeclarativeMetaProperties &modified, + QDeclarativeProperties &modified, TransitionDirection direction) { Q_D(QDeclarativePropertyAction); @@ -924,7 +925,7 @@ void QDeclarativePropertyAction::transition(QDeclarativeStateActions &actions, { for (int ii = 0; ii < actions.count(); ++ii) { const QDeclarativeAction &action = actions.at(ii); - action.property.write(action.toValue, QDeclarativeMetaProperty::BypassInterceptor | QDeclarativeMetaProperty::DontRemoveBinding); + QDeclarativePropertyPrivate::write(action.property, action.toValue, QDeclarativePropertyPrivate::BypassInterceptor | QDeclarativePropertyPrivate::DontRemoveBinding); } } }; @@ -1132,7 +1133,7 @@ QAbstractAnimation *QDeclarativeParentAction::qtAnimation() } void QDeclarativeParentAction::transition(QDeclarativeStateActions &actions, - QDeclarativeMetaProperties &modified, + QDeclarativeProperties &modified, TransitionDirection direction) { Q_D(QDeclarativeParentAction); @@ -1581,7 +1582,7 @@ QAbstractAnimation *QDeclarativeSequentialAnimation::qtAnimation() } void QDeclarativeSequentialAnimation::transition(QDeclarativeStateActions &actions, - QDeclarativeMetaProperties &modified, + QDeclarativeProperties &modified, TransitionDirection direction) { Q_D(QDeclarativeAnimationGroup); @@ -1646,7 +1647,7 @@ QAbstractAnimation *QDeclarativeParallelAnimation::qtAnimation() } void QDeclarativeParallelAnimation::transition(QDeclarativeStateActions &actions, - QDeclarativeMetaProperties &modified, + QDeclarativeProperties &modified, TransitionDirection direction) { Q_D(QDeclarativeAnimationGroup); @@ -2230,7 +2231,7 @@ struct PropertyUpdater : public QDeclarativeTimeLineValue QDeclarativeAction &action = actions[ii]; if (v == 1.) - action.property.write(action.toValue, QDeclarativeMetaProperty::BypassInterceptor | QDeclarativeMetaProperty::DontRemoveBinding); + QDeclarativePropertyPrivate::write(action.property, action.toValue, QDeclarativePropertyPrivate::BypassInterceptor | QDeclarativePropertyPrivate::DontRemoveBinding); else { if (!fromSourced && !fromDefined) { action.fromValue = action.property.read(); @@ -2245,7 +2246,7 @@ struct PropertyUpdater : public QDeclarativeTimeLineValue } } if (interpolator) - action.property.write(interpolator(action.fromValue.constData(), action.toValue.constData(), v), QDeclarativeMetaProperty::BypassInterceptor | QDeclarativeMetaProperty::DontRemoveBinding); + QDeclarativePropertyPrivate::write(action.property, interpolator(action.fromValue.constData(), action.toValue.constData(), v), QDeclarativePropertyPrivate::BypassInterceptor | QDeclarativePropertyPrivate::DontRemoveBinding); } if (deleted) return; @@ -2256,7 +2257,7 @@ struct PropertyUpdater : public QDeclarativeTimeLineValue }; void QDeclarativePropertyAnimation::transition(QDeclarativeStateActions &actions, - QDeclarativeMetaProperties &modified, + QDeclarativeProperties &modified, TransitionDirection direction) { Q_D(QDeclarativePropertyAnimation); diff --git a/src/declarative/util/qdeclarativeanimation_p.h b/src/declarative/util/qdeclarativeanimation_p.h index 02dacb3..53afbb5 100644 --- a/src/declarative/util/qdeclarativeanimation_p.h +++ b/src/declarative/util/qdeclarativeanimation_p.h @@ -95,7 +95,7 @@ public: QDeclarativeAnimationGroup *group() const; void setGroup(QDeclarativeAnimationGroup *); - void setDefaultTarget(const QDeclarativeMetaProperty &); + void setDefaultTarget(const QDeclarativeProperty &); void setDisableUserControl(); void classBegin(); @@ -123,7 +123,7 @@ protected: public: enum TransitionDirection { Forward, Backward }; virtual void transition(QDeclarativeStateActions &actions, - QDeclarativeMetaProperties &modified, + QDeclarativeProperties &modified, TransitionDirection direction); virtual QAbstractAnimation *qtAnimation() = 0; @@ -131,7 +131,7 @@ private Q_SLOTS: void timelineComplete(); private: - virtual void setTarget(const QDeclarativeMetaProperty &); + virtual void setTarget(const QDeclarativeProperty &); }; class QDeclarativePauseAnimationPrivate; @@ -177,7 +177,7 @@ public: protected: virtual void transition(QDeclarativeStateActions &actions, - QDeclarativeMetaProperties &modified, + QDeclarativeProperties &modified, TransitionDirection direction); virtual QAbstractAnimation *qtAnimation(); }; @@ -221,7 +221,7 @@ Q_SIGNALS: protected: virtual void transition(QDeclarativeStateActions &actions, - QDeclarativeMetaProperties &modified, + QDeclarativeProperties &modified, TransitionDirection direction); virtual QAbstractAnimation *qtAnimation(); }; @@ -248,7 +248,7 @@ public: protected: virtual void transition(QDeclarativeStateActions &actions, - QDeclarativeMetaProperties &modified, + QDeclarativeProperties &modified, TransitionDirection direction); virtual QAbstractAnimation *qtAnimation(); }; @@ -300,7 +300,7 @@ public: protected: QDeclarativePropertyAnimation(QDeclarativePropertyAnimationPrivate &dd, QObject *parent); virtual void transition(QDeclarativeStateActions &actions, - QDeclarativeMetaProperties &modified, + QDeclarativeProperties &modified, TransitionDirection direction); virtual QAbstractAnimation *qtAnimation(); @@ -426,7 +426,7 @@ public: protected: virtual void transition(QDeclarativeStateActions &actions, - QDeclarativeMetaProperties &modified, + QDeclarativeProperties &modified, TransitionDirection direction); virtual QAbstractAnimation *qtAnimation(); }; @@ -442,7 +442,7 @@ public: protected: virtual void transition(QDeclarativeStateActions &actions, - QDeclarativeMetaProperties &modified, + QDeclarativeProperties &modified, TransitionDirection direction); virtual QAbstractAnimation *qtAnimation(); }; diff --git a/src/declarative/util/qdeclarativeanimation_p_p.h b/src/declarative/util/qdeclarativeanimation_p_p.h index 65c9807..fc4e6e6 100644 --- a/src/declarative/util/qdeclarativeanimation_p_p.h +++ b/src/declarative/util/qdeclarativeanimation_p_p.h @@ -226,11 +226,11 @@ public: void commence(); - QDeclarativeMetaProperty defaultProperty; + QDeclarativeProperty defaultProperty; QDeclarativeAnimationGroup *group; - static QDeclarativeMetaProperty createProperty(QObject *obj, const QString &str, QObject *infoObj); + static QDeclarativeProperty createProperty(QObject *obj, const QString &str, QObject *infoObj); }; class QDeclarativePauseAnimationPrivate : public QDeclarativeAbstractAnimationPrivate diff --git a/src/declarative/util/qdeclarativebehavior.cpp b/src/declarative/util/qdeclarativebehavior.cpp index 303018d..e0189dc 100644 --- a/src/declarative/util/qdeclarativebehavior.cpp +++ b/src/declarative/util/qdeclarativebehavior.cpp @@ -46,6 +46,7 @@ #include <qdeclarativecontext.h> #include <qdeclarativeinfo.h> +#include <qdeclarativeproperty_p.h> #include <QtCore/qparallelanimationgroup.h> @@ -61,7 +62,7 @@ class QDeclarativeBehaviorPrivate : public QObjectPrivate public: QDeclarativeBehaviorPrivate() : animation(0), enabled(true) {} - QDeclarativeMetaProperty property; + QDeclarativeProperty property; QVariant currentValue; QDeclarativeAbstractAnimation *animation; bool enabled; @@ -156,7 +157,7 @@ void QDeclarativeBehavior::write(const QVariant &value) { Q_D(QDeclarativeBehavior); if (!d->animation || !d->enabled) { - d->property.write(value, QDeclarativeMetaProperty::BypassInterceptor | QDeclarativeMetaProperty::DontRemoveBinding); + QDeclarativePropertyPrivate::write(d->property, value, QDeclarativePropertyPrivate::BypassInterceptor | QDeclarativePropertyPrivate::DontRemoveBinding); return; } @@ -171,15 +172,15 @@ void QDeclarativeBehavior::write(const QVariant &value) action.toValue = value; actions << action; - QList<QDeclarativeMetaProperty> after; + QList<QDeclarativeProperty> after; if (d->animation) d->animation->transition(actions, after, QDeclarativeAbstractAnimation::Forward); d->animation->qtAnimation()->start(); if (!after.contains(d->property)) - d->property.write(value, QDeclarativeMetaProperty::BypassInterceptor | QDeclarativeMetaProperty::DontRemoveBinding); + QDeclarativePropertyPrivate::write(d->property, value, QDeclarativePropertyPrivate::BypassInterceptor | QDeclarativePropertyPrivate::DontRemoveBinding); } -void QDeclarativeBehavior::setTarget(const QDeclarativeMetaProperty &property) +void QDeclarativeBehavior::setTarget(const QDeclarativeProperty &property) { Q_D(QDeclarativeBehavior); d->property = property; diff --git a/src/declarative/util/qdeclarativebehavior_p.h b/src/declarative/util/qdeclarativebehavior_p.h index fbc19f8..a633b55 100644 --- a/src/declarative/util/qdeclarativebehavior_p.h +++ b/src/declarative/util/qdeclarativebehavior_p.h @@ -70,7 +70,7 @@ public: QDeclarativeBehavior(QObject *parent=0); ~QDeclarativeBehavior(); - virtual void setTarget(const QDeclarativeMetaProperty &); + virtual void setTarget(const QDeclarativeProperty &); virtual void write(const QVariant &value); QDeclarativeAbstractAnimation *animation(); diff --git a/src/declarative/util/qdeclarativebind.cpp b/src/declarative/util/qdeclarativebind.cpp index d75e98d..e95a03e 100644 --- a/src/declarative/util/qdeclarativebind.cpp +++ b/src/declarative/util/qdeclarativebind.cpp @@ -45,7 +45,7 @@ #include <qdeclarativeengine.h> #include <qdeclarativecontext.h> -#include <qdeclarativemetaproperty.h> +#include <qdeclarativeproperty.h> #include <QtCore/qfile.h> #include <QtCore/qdebug.h> @@ -196,7 +196,7 @@ void QDeclarativeBind::eval() if (!d->obj || d->value.isNull || !d->when || !d->componentComplete) return; - QDeclarativeMetaProperty prop(d->obj, d->prop); + QDeclarativeProperty prop(d->obj, d->prop); prop.write(d->value.value); } diff --git a/src/declarative/util/qdeclarativeconnection.cpp b/src/declarative/util/qdeclarativeconnection.cpp index a7cfc79..e9ae74b 100644 --- a/src/declarative/util/qdeclarativeconnection.cpp +++ b/src/declarative/util/qdeclarativeconnection.cpp @@ -105,7 +105,7 @@ public: \endqml More generally, the Connection object can be a child of some other object than - the sender of the signal, and the script is the default attribute: + the sender of the signal: \qml MouseArea { @@ -226,8 +226,6 @@ void QDeclarativeConnection::componentComplete() /*! \qmlproperty script Connection::script This property holds the JavaScript executed whenever the signal is sent. - - This is the default attribute of Connection. */ QDeclarativeScriptString QDeclarativeConnection::script() const { diff --git a/src/declarative/util/qdeclarativeeasefollow.cpp b/src/declarative/util/qdeclarativeeasefollow.cpp index 0430a0b..232dc90 100644 --- a/src/declarative/util/qdeclarativeeasefollow.cpp +++ b/src/declarative/util/qdeclarativeeasefollow.cpp @@ -43,7 +43,7 @@ #include "qdeclarativeanimation_p_p.h" -#include <qdeclarativemetaproperty.h> +#include <qdeclarativeproperty.h> #include <QtCore/qdebug.h> @@ -77,7 +77,7 @@ public: qreal trackVelocity; - QDeclarativeMetaProperty target; + QDeclarativeProperty target; int clockOffset; int lastTick; @@ -500,7 +500,7 @@ void QDeclarativeEaseFollow::setEnabled(bool enabled) emit enabledChanged(); } -void QDeclarativeEaseFollow::setTarget(const QDeclarativeMetaProperty &t) +void QDeclarativeEaseFollow::setTarget(const QDeclarativeProperty &t) { Q_D(QDeclarativeEaseFollow); d->target = t; diff --git a/src/declarative/util/qdeclarativeeasefollow_p.h b/src/declarative/util/qdeclarativeeasefollow_p.h index 6d14eb5..83d1eff 100644 --- a/src/declarative/util/qdeclarativeeasefollow_p.h +++ b/src/declarative/util/qdeclarativeeasefollow_p.h @@ -53,7 +53,7 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class QDeclarativeMetaProperty; +class QDeclarativeProperty; class QDeclarativeEaseFollowPrivate; class Q_DECLARATIVE_EXPORT QDeclarativeEaseFollow : public QObject, public QDeclarativePropertyValueSource @@ -94,7 +94,7 @@ public: qreal maximumEasingTime() const; void setMaximumEasingTime(qreal); - virtual void setTarget(const QDeclarativeMetaProperty &); + virtual void setTarget(const QDeclarativeProperty &); Q_SIGNALS: void sourceChanged(); diff --git a/src/declarative/util/qdeclarativepropertychanges.cpp b/src/declarative/util/qdeclarativepropertychanges.cpp index 6c2e256..9c2b1e6 100644 --- a/src/declarative/util/qdeclarativepropertychanges.cpp +++ b/src/declarative/util/qdeclarativepropertychanges.cpp @@ -50,7 +50,7 @@ #include <qdeclarativebinding_p.h> #include <qdeclarativecontext.h> #include <qdeclarativeguard_p.h> -#include <qdeclarativemetaproperty_p.h> +#include <qdeclarativeproperty_p.h> #include <QtCore/qdebug.h> @@ -60,7 +60,7 @@ QT_BEGIN_NAMESPACE /*! \qmlclass PropertyChanges QDeclarativePropertyChanges - \since 4.7 + \since 4.7 \brief The PropertyChanges element describes new property values for a state. PropertyChanges provides a state change that modifies the properties of an item. @@ -98,6 +98,33 @@ QT_BEGIN_NAMESPACE } \endqml + You can reset a property in a state change by assigning \c undefined. In the following + example we reset \c theText's width when we enter state1. This will give the text its + natural width (which is the whole string on one line). + + \qml + import Qt 4.6 + + Rectangle { + width: 640 + height: 480 + Text { + id: theText + width: 50 + wrap: true + text: "a text string that is longer than 50 pixels" + } + + states: State { + name: "state1" + PropertyChanges { + target: theText + width: undefined + } + } + } + \endqml + Changes to an Item's parent or anchors should be done using the associated change elements (ParentChange and AnchorChanges, respectively) rather than PropertyChanges. @@ -126,19 +153,19 @@ public: virtual QString typeName() const { return QLatin1String("ReplaceSignalHandler"); } - QDeclarativeMetaProperty property; + QDeclarativeProperty property; QDeclarativeExpression *expression; QDeclarativeExpression *reverseExpression; QDeclarativeExpression *rewindExpression; QDeclarativeGuard<QDeclarativeExpression> ownedExpression; virtual void execute() { - ownedExpression = QDeclarativeMetaPropertyPrivate::setSignalExpression(property, expression); + ownedExpression = QDeclarativePropertyPrivate::setSignalExpression(property, expression); } virtual bool isReversable() { return true; } virtual void reverse() { - ownedExpression = QDeclarativeMetaPropertyPrivate::setSignalExpression(property, reverseExpression); + ownedExpression = QDeclarativePropertyPrivate::setSignalExpression(property, reverseExpression); } virtual void saveOriginals() { @@ -147,10 +174,10 @@ public: } virtual void rewind() { - ownedExpression = QDeclarativeMetaPropertyPrivate::setSignalExpression(property, rewindExpression); + ownedExpression = QDeclarativePropertyPrivate::setSignalExpression(property, rewindExpression); } virtual void saveCurrentValues() { - rewindExpression = QDeclarativeMetaPropertyPrivate::signalExpression(property); + rewindExpression = QDeclarativePropertyPrivate::signalExpression(property); } virtual bool override(QDeclarativeActionEvent*other) { @@ -185,7 +212,7 @@ public: QList<QPair<QByteArray, QDeclarativeExpression *> > expressions; QList<QDeclarativeReplaceSignalHandler*> signalReplacements; - QDeclarativeMetaProperty property(const QByteArray &); + QDeclarativeProperty property(const QByteArray &); }; void @@ -269,8 +296,8 @@ void QDeclarativePropertyChangesPrivate::decode() ds >> isScript; ds >> data; - QDeclarativeMetaProperty prop = property(name); //### better way to check for signal property? - if (prop.type() & QDeclarativeMetaProperty::SignalProperty) { + QDeclarativeProperty prop = property(name); //### better way to check for signal property? + if (prop.type() & QDeclarativeProperty::SignalProperty) { QDeclarativeExpression *expression = new QDeclarativeExpression(qmlContext(q), data.toString(), object); QDeclarativeReplaceSignalHandler *handler = new QDeclarativeReplaceSignalHandler; handler->property = prop; @@ -344,17 +371,17 @@ void QDeclarativePropertyChanges::setRestoreEntryValues(bool v) d->restore = v; } -QDeclarativeMetaProperty +QDeclarativeProperty QDeclarativePropertyChangesPrivate::property(const QByteArray &property) { Q_Q(QDeclarativePropertyChanges); - QDeclarativeMetaProperty prop(object, QString::fromUtf8(property)); + QDeclarativeProperty prop(object, QString::fromUtf8(property)); if (!prop.isValid()) { qmlInfo(q) << QDeclarativePropertyChanges::tr("Cannot assign to non-existent property \"%1\"").arg(QString::fromUtf8(property)); - return QDeclarativeMetaProperty(); - } else if (!(prop.type() & QDeclarativeMetaProperty::SignalProperty) && !prop.isWritable()) { + return QDeclarativeProperty(); + } else if (!(prop.type() & QDeclarativeProperty::SignalProperty) && !prop.isWritable()) { qmlInfo(q) << QDeclarativePropertyChanges::tr("Cannot assign to read-only property \"%1\"").arg(QString::fromUtf8(property)); - return QDeclarativeMetaProperty(); + return QDeclarativeProperty(); } return prop; } @@ -399,7 +426,7 @@ QDeclarativePropertyChanges::ActionList QDeclarativePropertyChanges::actions() for (int ii = 0; ii < d->expressions.count(); ++ii) { QByteArray property = d->expressions.at(ii).first; - QDeclarativeMetaProperty prop = d->property(property); + QDeclarativeProperty prop = d->property(property); if (prop.isValid()) { QDeclarativeAction a; diff --git a/src/declarative/util/qdeclarativespringfollow.cpp b/src/declarative/util/qdeclarativespringfollow.cpp index b26a7e2..012e6a0 100644 --- a/src/declarative/util/qdeclarativespringfollow.cpp +++ b/src/declarative/util/qdeclarativespringfollow.cpp @@ -63,7 +63,7 @@ public: , mass(1.0), spring(0.), damping(0.), velocity(0), epsilon(0.01) , modulus(0.0), useMass(false), haveModulus(false), enabled(true), mode(Track), clock(this) {} - QDeclarativeMetaProperty property; + QDeclarativeProperty property; qreal currentValue; qreal sourceValue; qreal maxVelocity; @@ -254,7 +254,7 @@ QDeclarativeSpringFollow::~QDeclarativeSpringFollow() { } -void QDeclarativeSpringFollow::setTarget(const QDeclarativeMetaProperty &property) +void QDeclarativeSpringFollow::setTarget(const QDeclarativeProperty &property) { Q_D(QDeclarativeSpringFollow); d->property = property; diff --git a/src/declarative/util/qdeclarativespringfollow_p.h b/src/declarative/util/qdeclarativespringfollow_p.h index 63d38a4..2ac0d82 100644 --- a/src/declarative/util/qdeclarativespringfollow_p.h +++ b/src/declarative/util/qdeclarativespringfollow_p.h @@ -74,7 +74,7 @@ public: QDeclarativeSpringFollow(QObject *parent=0); ~QDeclarativeSpringFollow(); - virtual void setTarget(const QDeclarativeMetaProperty &); + virtual void setTarget(const QDeclarativeProperty &); qreal sourceValue() const; void setSourceValue(qreal value); diff --git a/src/declarative/util/qdeclarativestate.cpp b/src/declarative/util/qdeclarativestate.cpp index 3b06e33..1d70d33 100644 --- a/src/declarative/util/qdeclarativestate.cpp +++ b/src/declarative/util/qdeclarativestate.cpp @@ -334,7 +334,7 @@ void QDeclarativeState::cancel() void QDeclarativeAction::deleteFromBinding() { if (fromBinding) { - QDeclarativeMetaPropertyPrivate::setBinding(property, 0); + QDeclarativePropertyPrivate::setBinding(property, 0); fromBinding->destroy(); fromBinding = 0; } @@ -388,7 +388,7 @@ void QDeclarativeState::apply(QDeclarativeStateGroup *group, QDeclarativeTransit else if (action.event->isRewindable()) action.event->saveCurrentValues(); } else { - action.fromBinding = QDeclarativeMetaPropertyPrivate::binding(action.property); + action.fromBinding = QDeclarativePropertyPrivate::binding(action.property); for (jj = 0; jj < d->revertList.count(); ++jj) { if (d->revertList.at(jj).property == action.property) { @@ -437,7 +437,7 @@ void QDeclarativeState::apply(QDeclarativeStateGroup *group, QDeclarativeTransit if (!found) { QVariant cur = d->revertList.at(ii).property.read(); QDeclarativeAbstractBinding *delBinding = - QDeclarativeMetaPropertyPrivate::setBinding(d->revertList.at(ii).property, 0); + QDeclarativePropertyPrivate::setBinding(d->revertList.at(ii).property, 0); if (delBinding) delBinding->destroy(); diff --git a/src/declarative/util/qdeclarativestate_p.h b/src/declarative/util/qdeclarativestate_p.h index 4a62481..abdbec5 100644 --- a/src/declarative/util/qdeclarativestate_p.h +++ b/src/declarative/util/qdeclarativestate_p.h @@ -43,7 +43,7 @@ #define QDECLARATIVESTATE_H #include <qdeclarative.h> -#include <qdeclarativemetaproperty.h> +#include <qdeclarativeproperty.h> #include <QtCore/qobject.h> QT_BEGIN_HEADER @@ -65,7 +65,7 @@ public: bool reverseEvent:1; bool deletableToBinding:1; - QDeclarativeMetaProperty property; + QDeclarativeProperty property; QVariant fromValue; QVariant toValue; diff --git a/src/declarative/util/qdeclarativestate_p_p.h b/src/declarative/util/qdeclarativestate_p_p.h index 6b32f04..6f52219 100644 --- a/src/declarative/util/qdeclarativestate_p_p.h +++ b/src/declarative/util/qdeclarativestate_p_p.h @@ -58,7 +58,7 @@ #include "qdeclarativeanimation_p_p.h" #include "qdeclarativetransitionmanager_p_p.h" -#include <qdeclarativemetaproperty_p.h> +#include <qdeclarativeproperty_p.h> #include <qdeclarativeguard_p.h> #include <private/qobject_p.h> @@ -77,7 +77,7 @@ public: event = a.event; if (state == StartState) { value = a.fromValue; - binding = QDeclarativeMetaPropertyPrivate::binding(property); + binding = QDeclarativePropertyPrivate::binding(property); reverseEvent = true; } else { value = a.toValue; @@ -86,7 +86,7 @@ public: } } - QDeclarativeMetaProperty property; + QDeclarativeProperty property; QVariant value; QDeclarativeAbstractBinding *binding; QObject *specifiedObject; @@ -139,7 +139,7 @@ public: QDeclarativeTransitionManager transitionManager; SimpleActionList revertList; - QList<QDeclarativeMetaProperty> reverting; + QList<QDeclarativeProperty> reverting; QString extends; mutable bool inState; QDeclarativeStateGroup *group; diff --git a/src/declarative/util/qdeclarativestateoperations.cpp b/src/declarative/util/qdeclarativestateoperations.cpp index 6001a84..9df8658 100644 --- a/src/declarative/util/qdeclarativestateoperations.cpp +++ b/src/declarative/util/qdeclarativestateoperations.cpp @@ -80,7 +80,7 @@ void QDeclarativeParentChangePrivate::doChange(QDeclarativeItem *targetParent, Q //### for backwards direction, can we just restore original x, y, scale, rotation Q_Q(QDeclarativeParentChange); bool ok; - const QTransform &transform = target->itemTransform(targetParent, &ok); + const QTransform &transform = target->parentItem()->itemTransform(targetParent, &ok); if (transform.type() >= QTransform::TxShear || !ok) { qmlInfo(q) << QDeclarativeParentChange::tr("Unable to preserve appearance under complex transform"); ok = false; @@ -111,8 +111,9 @@ void QDeclarativeParentChangePrivate::doChange(QDeclarativeItem *targetParent, Q } } - qreal xt = transform.dx(); - qreal yt = transform.dy(); + const QPointF &point = transform.map(QPointF(target->x(),target->y())); + qreal x = point.x(); + qreal y = point.y(); if (ok && target->transformOrigin() != QDeclarativeItem::TopLeft) { qreal tempxt = target->transformOriginPoint().x(); qreal tempyt = target->transformOriginPoint().y(); @@ -121,18 +122,18 @@ void QDeclarativeParentChangePrivate::doChange(QDeclarativeItem *targetParent, Q t.rotate(rotation); t.scale(scale, scale); t.translate(tempxt, tempyt); - QPointF offset = t.map(QPointF(0,0)); - xt += offset.x(); - yt += offset.y(); + const QPointF &offset = t.map(QPointF(0,0)); + x += offset.x(); + y += offset.y(); } target->setParentItem(targetParent); if (ok) { - //qDebug() << xt << yt << rotation << scale; - target->setX(xt); - target->setY(yt); - target->setRotation(rotation); - target->setScale(scale); + //qDebug() << x << y << rotation << scale; + target->setX(x); + target->setY(y); + target->setRotation(target->rotation() + rotation); + target->setScale(target->scale() * scale); } } else if (target) { target->setParentItem(targetParent); @@ -660,19 +661,19 @@ QList<QDeclarativeAction> QDeclarativeAnchorChanges::extraActions() if (d->target) { QDeclarativeAction a; a.fromValue = d->fromX; - a.property = QDeclarativeMetaProperty(d->target, QLatin1String("x")); + a.property = QDeclarativeProperty(d->target, QLatin1String("x")); extra << a; a.fromValue = d->fromY; - a.property = QDeclarativeMetaProperty(d->target, QLatin1String("y")); + a.property = QDeclarativeProperty(d->target, QLatin1String("y")); extra << a; a.fromValue = d->fromWidth; - a.property = QDeclarativeMetaProperty(d->target, QLatin1String("width")); + a.property = QDeclarativeProperty(d->target, QLatin1String("width")); extra << a; a.fromValue = d->fromHeight; - a.property = QDeclarativeMetaProperty(d->target, QLatin1String("height")); + a.property = QDeclarativeProperty(d->target, QLatin1String("height")); extra << a; } diff --git a/src/declarative/util/qdeclarativetransition.cpp b/src/declarative/util/qdeclarativetransition.cpp index 3482814..ac07b10 100644 --- a/src/declarative/util/qdeclarativetransition.cpp +++ b/src/declarative/util/qdeclarativetransition.cpp @@ -148,7 +148,7 @@ void QDeclarativeTransition::setReversed(bool r) } void QDeclarativeTransition::prepare(QDeclarativeStateOperation::ActionList &actions, - QList<QDeclarativeMetaProperty> &after, + QList<QDeclarativeProperty> &after, QDeclarativeTransitionManager *endState) { Q_D(QDeclarativeTransition); diff --git a/src/declarative/util/qdeclarativetransition_p.h b/src/declarative/util/qdeclarativetransition_p.h index 96448b8..861111a 100644 --- a/src/declarative/util/qdeclarativetransition_p.h +++ b/src/declarative/util/qdeclarativetransition_p.h @@ -85,7 +85,7 @@ public: QDeclarativeListProperty<QDeclarativeAbstractAnimation> animations(); void prepare(QDeclarativeStateOperation::ActionList &actions, - QList<QDeclarativeMetaProperty> &after, + QList<QDeclarativeProperty> &after, QDeclarativeTransitionManager *end); void setReversed(bool r); diff --git a/src/declarative/util/qdeclarativetransitionmanager.cpp b/src/declarative/util/qdeclarativetransitionmanager.cpp index 9fa1488..e1143fa 100644 --- a/src/declarative/util/qdeclarativetransitionmanager.cpp +++ b/src/declarative/util/qdeclarativetransitionmanager.cpp @@ -45,6 +45,7 @@ #include <qdeclarativebinding_p.h> #include <qdeclarativeglobal_p.h> +#include <qdeclarativeproperty_p.h> QT_BEGIN_NAMESPACE @@ -84,7 +85,7 @@ void QDeclarativeTransitionManager::complete() d->applyBindings(); for (int ii = 0; ii < d->completeList.count(); ++ii) { - const QDeclarativeMetaProperty &prop = d->completeList.at(ii).property; + const QDeclarativeProperty &prop = d->completeList.at(ii).property; prop.write(d->completeList.at(ii).value); } @@ -98,7 +99,7 @@ void QDeclarativeTransitionManagerPrivate::applyBindings() { foreach(const QDeclarativeAction &action, bindingsList) { if (action.toBinding) { - QDeclarativeMetaPropertyPrivate::setBinding(action.property, action.toBinding); + QDeclarativePropertyPrivate::setBinding(action.property, action.toBinding); } else if (action.event) { if (action.reverseEvent) action.event->reverse(); @@ -122,7 +123,7 @@ void QDeclarativeTransitionManager::transition(const QList<QDeclarativeAction> & if (action.toBinding) d->bindingsList << action; if (action.fromBinding) - QDeclarativeMetaPropertyPrivate::setBinding(action.property, 0); // Disable current binding + QDeclarativePropertyPrivate::setBinding(action.property, 0); // Disable current binding if (action.event && action.event->changesBindings()) { //### assume isReversable()? d->bindingsList << action; if (action.reverseEvent) @@ -149,9 +150,9 @@ void QDeclarativeTransitionManager::transition(const QList<QDeclarativeAction> & for (int ii = 0; ii < applyList.size(); ++ii) { const QDeclarativeAction &action = applyList.at(ii); if (action.toBinding) { - QDeclarativeMetaPropertyPrivate::setBinding(action.property, action.toBinding, QDeclarativeMetaProperty::BypassInterceptor | QDeclarativeMetaProperty::DontRemoveBinding); + QDeclarativePropertyPrivate::setBinding(action.property, action.toBinding, QDeclarativePropertyPrivate::BypassInterceptor | QDeclarativePropertyPrivate::DontRemoveBinding); } else if (!action.event) { - action.property.write(action.toValue, QDeclarativeMetaProperty::BypassInterceptor | QDeclarativeMetaProperty::DontRemoveBinding); + QDeclarativePropertyPrivate::write(action.property, action.toValue, QDeclarativePropertyPrivate::BypassInterceptor | QDeclarativePropertyPrivate::DontRemoveBinding); } else if (action.event->isReversable()) { if (action.reverseEvent) action.event->reverse(); @@ -166,7 +167,7 @@ void QDeclarativeTransitionManager::transition(const QList<QDeclarativeAction> & QDeclarativeAction *action = &applyList[ii]; if (action->event) continue; - const QDeclarativeMetaProperty &prop = action->property; + const QDeclarativeProperty &prop = action->property; if (action->toBinding || !action->toValue.isValid()) { //### is this always right (used for exta actions) action->toValue = prop.read(); } @@ -190,14 +191,14 @@ void QDeclarativeTransitionManager::transition(const QList<QDeclarativeAction> & } if (action.toBinding) - QDeclarativeMetaPropertyPrivate::setBinding(action.property, 0); // Make sure this is disabled during the transition + QDeclarativePropertyPrivate::setBinding(action.property, 0); // Make sure this is disabled during the transition - action.property.write(action.fromValue, QDeclarativeMetaProperty::BypassInterceptor | QDeclarativeMetaProperty::DontRemoveBinding); + QDeclarativePropertyPrivate::write(action.property, action.fromValue, QDeclarativePropertyPrivate::BypassInterceptor | QDeclarativePropertyPrivate::DontRemoveBinding); } } if (transition) { - QList<QDeclarativeMetaProperty> touched; + QList<QDeclarativeProperty> touched; d->transition = transition; d->transition->prepare(applyList, touched, this); @@ -266,7 +267,7 @@ void QDeclarativeTransitionManager::cancel() for(int i = 0; i < d->bindingsList.count(); ++i) { QDeclarativeAction action = d->bindingsList[i]; if (action.toBinding && action.deletableToBinding) { - QDeclarativeMetaPropertyPrivate::setBinding(action.property, 0); + QDeclarativePropertyPrivate::setBinding(action.property, 0); action.toBinding->destroy(); action.toBinding = 0; action.deletableToBinding = false; |