summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Alpert <alan.alpert@nokia.com>2009-09-23 01:00:38 (GMT)
committerAlan Alpert <alan.alpert@nokia.com>2009-09-23 01:00:38 (GMT)
commit4594ccff8ee55a5bbc640f764e0767da885a3c9f (patch)
tree353d2f94919a2c59ad06110effb46eb8a962baac
parent1c011c7f70791e0a4a38bd9f8bb1988cd604305c (diff)
parent30379e098ef31a8a1f670bdeab212ed419e80b5b (diff)
downloadQt-4594ccff8ee55a5bbc640f764e0767da885a3c9f.zip
Qt-4594ccff8ee55a5bbc640f764e0767da885a3c9f.tar.gz
Qt-4594ccff8ee55a5bbc640f764e0767da885a3c9f.tar.bz2
Merge branch 'kinetic-declarativeui' of git@scm.dev.nokia.troll.no:qt/kinetic into kinetic-declarativeui
-rw-r--r--demos/declarative/minehunt/main.cpp6
-rwxr-xr-xdemos/declarative/samegame/content/samegame.js49
-rw-r--r--doc/src/declarative/binding.qdoc2
-rw-r--r--doc/src/declarative/focus.qdoc2
-rw-r--r--doc/src/declarative/qtprogrammers.qdoc2
-rw-r--r--examples/declarative/aspectratio/face_fit.qml6
-rw-r--r--examples/declarative/aspectratio/face_fit_animated.qml6
-rw-r--r--examples/declarative/aspectratio/scale_and_crop.qml6
-rw-r--r--examples/declarative/aspectratio/scale_and_crop_simple.qml19
-rw-r--r--examples/declarative/aspectratio/scale_and_sidecrop.qml6
-rw-r--r--examples/declarative/aspectratio/scale_to_fit.qml6
-rw-r--r--examples/declarative/aspectratio/scale_to_fit_simple.qml10
-rw-r--r--examples/declarative/loader/main.cpp6
-rw-r--r--examples/declarative/modules/builtin-version.qml3
-rw-r--r--examples/declarative/modules/installed-qualified.qml6
-rw-r--r--examples/declarative/modules/installed-version.qml9
-rw-r--r--examples/declarative/modules/installed.qml4
-rw-r--r--examples/declarative/modules/lib/com/nokia/Foo/Bar.qml5
-rw-r--r--examples/declarative/modules/lib/com/nokia/Foo/Bar17.qml5
-rw-r--r--examples/declarative/modules/lib/com/nokia/Foo/Baz.qml5
-rw-r--r--examples/declarative/modules/lib/com/nokia/Foo/qmldir6
-rw-r--r--examples/declarative/modules/local-qualified.qml9
-rw-r--r--examples/declarative/modules/local.qml4
-rw-r--r--examples/declarative/modules/remote-qualified.qml6
-rw-r--r--examples/declarative/modules/remote-zipped.qml6
-rw-r--r--examples/declarative/modules/wrong-installed-version.qml4
-rw-r--r--examples/declarative/modules/wrong-installed.qml5
-rw-r--r--examples/declarative/modules/wrong-local-qualified.qml6
-rw-r--r--examples/declarative/modules/wrong-local.qml8
-rw-r--r--examples/declarative/modules/zipped-qualified.qml7
-rw-r--r--examples/declarative/modules/zipped.qml7
-rw-r--r--src/declarative/extra/qfxparticles.cpp2
-rw-r--r--src/declarative/extra/qmlfontloader.cpp18
-rw-r--r--src/declarative/fx/qfxborderimage.cpp2
-rw-r--r--src/declarative/fx/qfximage.cpp2
-rw-r--r--src/declarative/fx/qfxitem.cpp4
-rw-r--r--src/declarative/fx/qfxpainteditem.cpp2
-rw-r--r--src/declarative/fx/qfxrect.cpp4
-rw-r--r--src/declarative/fx/qfxtext.cpp4
-rw-r--r--src/declarative/fx/qfxtextedit.cpp2
-rw-r--r--src/declarative/fx/qfxvisualitemmodel.cpp2
-rw-r--r--src/declarative/fx/qfxwebview.cpp2
-rw-r--r--src/declarative/qml/parser/qmljs.g15
-rw-r--r--src/declarative/qml/parser/qmljsast_p.h6
-rw-r--r--src/declarative/qml/parser/qmljsgrammar.cpp1392
-rw-r--r--src/declarative/qml/parser/qmljsgrammar_p.h20
-rw-r--r--src/declarative/qml/parser/qmljsparser.cpp397
-rw-r--r--src/declarative/qml/parser/qmljsparser_p.h4
-rw-r--r--src/declarative/qml/qmlboundsignal.cpp129
-rw-r--r--src/declarative/qml/qmlboundsignal_p.h55
-rw-r--r--src/declarative/qml/qmlcompiler.cpp94
-rw-r--r--src/declarative/qml/qmlcompiler_p.h4
-rw-r--r--src/declarative/qml/qmldom.cpp8
-rw-r--r--src/declarative/qml/qmlengine.cpp78
-rw-r--r--src/declarative/qml/qmlengine_p.h9
-rw-r--r--src/declarative/qml/qmlenginedebug.cpp6
-rw-r--r--src/declarative/qml/qmlexpression.cpp45
-rw-r--r--src/declarative/qml/qmlexpression_p.h8
-rw-r--r--src/declarative/qml/qmlmetaproperty.cpp66
-rw-r--r--src/declarative/qml/qmlmetaproperty.h4
-rw-r--r--src/declarative/qml/qmlparser.cpp1
-rw-r--r--src/declarative/qml/qmlparser_p.h3
-rw-r--r--src/declarative/qml/qmlscriptparser.cpp32
-rw-r--r--src/declarative/qml/qmlvme.cpp6
-rw-r--r--src/declarative/qml/qmlvmemetaobject.cpp19
-rw-r--r--src/declarative/qml/qmlvmemetaobject_p.h33
-rw-r--r--src/declarative/util/qmlconnection.cpp7
-rw-r--r--src/declarative/util/qmllistaccessor.cpp13
-rw-r--r--src/declarative/util/qmllistaccessor.h3
-rw-r--r--src/declarative/util/qmlview.cpp (renamed from src/declarative/util/qfxview.cpp)96
-rw-r--r--src/declarative/util/qmlview.h (renamed from src/declarative/util/qfxview.h)12
-rw-r--r--src/declarative/util/util.pri4
-rw-r--r--tests/auto/declarative/anchors/tst_anchors.cpp14
-rw-r--r--tests/auto/declarative/animations/tst_animations.cpp4
-rw-r--r--tests/auto/declarative/layouts/tst_layouts.cpp20
-rw-r--r--tests/auto/declarative/listview/tst_listview.cpp16
-rw-r--r--tests/auto/declarative/pathview/tst_pathview.cpp14
-rw-r--r--tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp4
-rw-r--r--tests/auto/declarative/qfxtextinput/tst_qfxtextinput.cpp20
-rw-r--r--tests/auto/declarative/qmlparser/assignSignal.qml1
-rw-r--r--tests/auto/declarative/qmlparser/importVersionMissingBuiltIn.errors.txt1
-rw-r--r--tests/auto/declarative/qmlparser/importVersionMissingBuiltIn.qml7
-rw-r--r--tests/auto/declarative/qmlparser/importVersionMissingInstalled.errors.txt1
-rw-r--r--tests/auto/declarative/qmlparser/importVersionMissingInstalled.qml3
-rw-r--r--tests/auto/declarative/qmlparser/testtypes.h2
-rw-r--r--tests/auto/declarative/qmlparser/tst_qmlparser.cpp4
-rw-r--r--tests/auto/declarative/repeater/tst_repeater.cpp10
-rw-r--r--tests/auto/declarative/visual/tst_visual.cpp2
-rw-r--r--tools/qmldebugger/canvasframerate.cpp23
-rw-r--r--tools/qmldebugger/canvasframerate.h2
-rw-r--r--tools/qmldebugger/engine.cpp2
-rw-r--r--tools/qmldebugger/engine.h4
-rw-r--r--tools/qmlviewer/qfxtester.cpp4
-rw-r--r--tools/qmlviewer/qfxtester.h4
-rw-r--r--tools/qmlviewer/qmlviewer.cpp8
-rw-r--r--tools/qmlviewer/qmlviewer.h4
96 files changed, 1687 insertions, 1331 deletions
diff --git a/demos/declarative/minehunt/main.cpp b/demos/declarative/minehunt/main.cpp
index 20f7492..a9b8828 100644
--- a/demos/declarative/minehunt/main.cpp
+++ b/demos/declarative/minehunt/main.cpp
@@ -2,7 +2,7 @@
#include "qmlcontext.h"
#include "qml.h"
#include <qfxitem.h>
-#include <qfxview.h>
+#include <qmlview.h>
#include <QWidget>
#include <QApplication>
@@ -94,7 +94,7 @@ private:
int getHint(int row, int col);
void setPlaying(bool b){if(b==playing) return; playing=b; emit isPlayingChanged();}
- QFxView *canvas;
+ QmlView *canvas;
QList<Tile *> _tiles;
int numCols;
@@ -123,7 +123,7 @@ MyWidget::MyWidget(int width, int height, QWidget *parent, Qt::WindowFlags flags
vbox->setMargin(0);
setLayout(vbox);
- canvas = new QFxView(this);
+ canvas = new QmlView(this);
canvas->setFixedSize(width, height);
vbox->addWidget(canvas);
diff --git a/demos/declarative/samegame/content/samegame.js b/demos/declarative/samegame/content/samegame.js
index 0a3a4db..e42b7cc 100755
--- a/demos/declarative/samegame/content/samegame.js
+++ b/demos/declarative/samegame/content/samegame.js
@@ -44,7 +44,7 @@ function initBoard()
for(xIdx=0; xIdx<maxX; xIdx++){
for(yIdx=0; yIdx<maxY; yIdx++){
board[index(xIdx,yIdx)] = null;
- startCreatingBlock(xIdx,yIdx);
+ createBlock(xIdx,yIdx);
}
}
timer = new Date();
@@ -170,22 +170,15 @@ function floodMoveCheck(xIdx, yIdx, type)
floodMoveCheck(xIdx, yIdx - 1, board[index(xIdx,yIdx)].type);
}
-//If the component isn't ready, then the signal doesn't include the game x,y
-//So we store any x,y sent that we couldn't create at the time, and use those
-//if we are triggered by the signal.
-var waitStack = new Array(maxIndex);
-var waitTop = -1;
+function createBlock(xIdx,yIdx){
+ if(component==null)
+ component = createComponent(tileSrc);
-function finishCreatingBlock(xIdx,yIdx){
+ // Note that we don't wait for the component to become ready. This will
+ // only work if the block QML is a local file. Otherwise the component will
+ // not be ready immediately. There is a statusChanged signal on the
+ // component you could use if you want to wait to load remote files.
if(component.isReady){
- if(xIdx == undefined){
- //Called without arguments, create a previously stored (xIdx,yIdx)
- if(waitTop == -1)
- return;//Don't have a previously stored (xIdx,yIdx)
- xIdx = waitStack[waitTop] % maxX;
- yIdx = Math.floor(waitStack[waitTop] / maxX);
- waitTop -= 1;
- }
dynamicObject = component.createObject();
if(dynamicObject == null){
print("error creating block");
@@ -201,30 +194,12 @@ function finishCreatingBlock(xIdx,yIdx){
dynamicObject.height = tileSize;
dynamicObject.spawned = true;
board[index(xIdx,yIdx)] = dynamicObject;
- return true;
- }else if(component.isError){
- print("error creating block");
+ }else{//isError or isLoading
+ print("error loading block component");
print(component.errorsString());
- }else{
- //It isn't ready, but we'll be called again when it is.
- //So store the requested (xIdx,yIdx) for later use
- waitTop += 1;
- waitStack[waitTop] = index(xIdx,yIdx);
- }
- return false;
-}
-
-function startCreatingBlock(xIdx,yIdx){
- if(component!=null){
- finishCreatingBlock(xIdx,yIdx);
- return;
+ return false;
}
-
- component = createComponent(tileSrc);
- if(finishCreatingBlock(xIdx,yIdx))
- return;
- component.statusChanged.connect(finishCreatingBlock());
- return;
+ return true;
}
function sendHighScore(name) {
diff --git a/doc/src/declarative/binding.qdoc b/doc/src/declarative/binding.qdoc
index 7e8933f..37b4c97 100644
--- a/doc/src/declarative/binding.qdoc
+++ b/doc/src/declarative/binding.qdoc
@@ -86,7 +86,7 @@ void setBrightness(int b)
Next, make an instance of this class visible to the QML bind engine:
\code
-QFxView *view = new QFxView;
+QmlView *view = new QmlView;
view->setUrl("MyUI.qml");
MyScreen *screen = new MyScreen;
diff --git a/doc/src/declarative/focus.qdoc b/doc/src/declarative/focus.qdoc
index 7c293ee..028b5f0 100644
--- a/doc/src/declarative/focus.qdoc
+++ b/doc/src/declarative/focus.qdoc
@@ -13,7 +13,7 @@ and to address some of the cases unique to fluid user interfaces, the QML items
When the user presses or releases a key, the following occurs:
\list 1
\o Qt receives the key action and generates a key event.
-\o If the Qt widget containing the \l QFxView has focus, the key event is delivered to it. Otherwise, regular Qt key handling continues.
+\o If the Qt widget containing the \l QmlView has focus, the key event is delivered to it. Otherwise, regular Qt key handling continues.
\o The key event is delivered by the scene to the QML \l Item with \e {active focus}. If no \l Item has \e {active focus}, the key event is \l {QEvent::ignore()}{ignored} and regular Qt key handling continues.
\o If the QML \l Item with \e {active focus} accepts the key event, propagation stops. Otherwise the event is "bubbled up", by recursively passing it to each \l Item's parent until either the event is accepted, or the root \l Item is reached.
diff --git a/doc/src/declarative/qtprogrammers.qdoc b/doc/src/declarative/qtprogrammers.qdoc
index 742fc07..3b20539 100644
--- a/doc/src/declarative/qtprogrammers.qdoc
+++ b/doc/src/declarative/qtprogrammers.qdoc
@@ -20,7 +20,7 @@ QML provides direct access to the following concepts from Qt:
\o QAction - the \l {basicqmlaction}{action} type
\o QObject signals and slots - available as functions to call in JavaScript
\o QObject properties - available as variables in JavaScript
- \o QWidget - QFxView is a QML-displaying widget
+ \o QWidget - QmlView is a QML-displaying widget
\o Qt models - used directly in data binding (QAbstractItemModel and next generation QListModelInterface)
\endlist
diff --git a/examples/declarative/aspectratio/face_fit.qml b/examples/declarative/aspectratio/face_fit.qml
index 4573160..8d38cca 100644
--- a/examples/declarative/aspectratio/face_fit.qml
+++ b/examples/declarative/aspectratio/face_fit.qml
@@ -8,13 +8,13 @@ import Qt 4.6
//
Rectangle {
// default size: whole image, unscaled
- width: Image.width
- height: Image.height
+ width: Face.width
+ height: Face.height
color: "gray"
clip: true
Image {
- id: Image
+ id: Face
source: "pics/face.png"
x: (parent.width-width*scale)/2
y: (parent.height-height*scale)/2
diff --git a/examples/declarative/aspectratio/face_fit_animated.qml b/examples/declarative/aspectratio/face_fit_animated.qml
index 7db1c80..7d73900 100644
--- a/examples/declarative/aspectratio/face_fit_animated.qml
+++ b/examples/declarative/aspectratio/face_fit_animated.qml
@@ -6,13 +6,13 @@ import Qt 4.6
//
Rectangle {
// default size: whole image, unscaled
- width: Image.width
- height: Image.height
+ width: Face.width
+ height: Face.height
color: "gray"
clip: true
Image {
- id: Image
+ id: Face
source: "pics/face.png"
x: (parent.width-width*scale)/2
y: (parent.height-height*scale)/2
diff --git a/examples/declarative/aspectratio/scale_and_crop.qml b/examples/declarative/aspectratio/scale_and_crop.qml
index 75080b4..3cace8d 100644
--- a/examples/declarative/aspectratio/scale_and_crop.qml
+++ b/examples/declarative/aspectratio/scale_and_crop.qml
@@ -4,13 +4,13 @@ import Qt 4.6
//
Rectangle {
// default size: whole image, unscaled
- width: Image.width
- height: Image.height
+ width: Face.width
+ height: Face.height
color: "gray"
clip: true
Image {
- id: Image
+ id: Face
source: "pics/face.png"
x: (parent.width-width*scale)/2
y: (parent.height-height*scale)/2
diff --git a/examples/declarative/aspectratio/scale_and_crop_simple.qml b/examples/declarative/aspectratio/scale_and_crop_simple.qml
new file mode 100644
index 0000000..26758e6
--- /dev/null
+++ b/examples/declarative/aspectratio/scale_and_crop_simple.qml
@@ -0,0 +1,19 @@
+import Qt 4.6
+
+// Here, we implement "Scale to Fit" behaviour, using the
+// fillMode property.
+//
+Rectangle {
+ // default size: whole image, unscaled
+ width: Face.width
+ height: Face.height
+ color: "gray"
+ clip: true
+
+ Image {
+ id: Face
+ source: "pics/face.png"
+ fillMode: "PreserveAspectCrop"
+ anchors.fill: parent
+ }
+}
diff --git a/examples/declarative/aspectratio/scale_and_sidecrop.qml b/examples/declarative/aspectratio/scale_and_sidecrop.qml
index a6bd2c8..18cc110 100644
--- a/examples/declarative/aspectratio/scale_and_sidecrop.qml
+++ b/examples/declarative/aspectratio/scale_and_sidecrop.qml
@@ -5,13 +5,13 @@ import Qt 4.6
//
Rectangle {
// default size: whole image, unscaled
- width: Image.width
- height: Image.height
+ width: Face.width
+ height: Face.height
color: "gray"
clip: true
Image {
- id: Image
+ id: Face
source: "pics/face.png"
x: (parent.width-width*scale)/2
y: (parent.height-height*scale)/2
diff --git a/examples/declarative/aspectratio/scale_to_fit.qml b/examples/declarative/aspectratio/scale_to_fit.qml
index 744abce..7450ea4 100644
--- a/examples/declarative/aspectratio/scale_to_fit.qml
+++ b/examples/declarative/aspectratio/scale_to_fit.qml
@@ -5,13 +5,13 @@ import Qt 4.6
//
Rectangle {
// default size: whole image, unscaled
- width: Image.width
- height: Image.height
+ width: Face.width
+ height: Face.height
color: "gray"
clip: true
Image {
- id: Image
+ id: Face
source: "pics/face.png"
x: (parent.width-width*scale)/2
y: (parent.height-height*scale)/2
diff --git a/examples/declarative/aspectratio/scale_to_fit_simple.qml b/examples/declarative/aspectratio/scale_to_fit_simple.qml
index 4ee06ba..dcccd69 100644
--- a/examples/declarative/aspectratio/scale_to_fit_simple.qml
+++ b/examples/declarative/aspectratio/scale_to_fit_simple.qml
@@ -1,19 +1,19 @@
import Qt 4.6
// Here, we implement "Scale to Fit" behaviour, using the
-// preserveAspect property.
+// fillMode property.
//
Rectangle {
// default size: whole image, unscaled
- width: Image.width
- height: Image.height
+ width: Face.width
+ height: Face.height
color: "gray"
clip: true
Image {
- id: Image
+ id: Face
source: "pics/face.png"
- fillMode: "PreserveAspect"
+ fillMode: "PreserveAspectFit"
anchors.fill: parent
}
}
diff --git a/examples/declarative/loader/main.cpp b/examples/declarative/loader/main.cpp
index 68f20d4..fbae5f1 100644
--- a/examples/declarative/loader/main.cpp
+++ b/examples/declarative/loader/main.cpp
@@ -11,12 +11,12 @@
#include <QmlContext>
#include <QmlComponent>
#include <QmlEngine>
-#include <qfxview.h>
+#include <qmlview.h>
#include <QDebug>
#include <QNetworkDiskCache>
#include <QNetworkAccessManager>
-QFxView *canvas = 0;
+QmlView *canvas = 0;
class Logger : public QWidget
{
@@ -181,7 +181,7 @@ int main(int argc, char *argv[])
QObject::connect(Logger::instance(), SIGNAL(textChanged()), launcher, SIGNAL(logUpdated()));
- canvas = new QFxView;
+ canvas = new QmlView;
canvas->setFocusPolicy(Qt::StrongFocus);
canvas->engine()->setNetworkAccessManager(new ConfiguredNetworkAccessManager);
diff --git a/examples/declarative/modules/builtin-version.qml b/examples/declarative/modules/builtin-version.qml
deleted file mode 100644
index 4aa63be..0000000
--- a/examples/declarative/modules/builtin-version.qml
+++ /dev/null
@@ -1,3 +0,0 @@
-import Qt 4.6
-
-Rectangle {}
diff --git a/examples/declarative/modules/installed-qualified.qml b/examples/declarative/modules/installed-qualified.qml
deleted file mode 100644
index 3d40794..0000000
--- a/examples/declarative/modules/installed-qualified.qml
+++ /dev/null
@@ -1,6 +0,0 @@
-import Qt 4.6
-
-import com.nokia.Foo as F
-Item {
- F.Bar { }
-}
diff --git a/examples/declarative/modules/installed-version.qml b/examples/declarative/modules/installed-version.qml
deleted file mode 100644
index d90375dd..0000000
--- a/examples/declarative/modules/installed-version.qml
+++ /dev/null
@@ -1,9 +0,0 @@
-import Qt 4.6
-
-import com.nokia.Foo 1.6
-import com.nokia.Foo 1.7 as NewFoo
-Column {
- Bar { }
- Baz { }
- NewFoo.Bar { }
-}
diff --git a/examples/declarative/modules/installed.qml b/examples/declarative/modules/installed.qml
deleted file mode 100644
index a28fd10..0000000
--- a/examples/declarative/modules/installed.qml
+++ /dev/null
@@ -1,4 +0,0 @@
-import Qt 4.6
-
-import com.nokia.Foo
-Foo.Bar { }
diff --git a/examples/declarative/modules/lib/com/nokia/Foo/Bar.qml b/examples/declarative/modules/lib/com/nokia/Foo/Bar.qml
deleted file mode 100644
index 270cd46..0000000
--- a/examples/declarative/modules/lib/com/nokia/Foo/Bar.qml
+++ /dev/null
@@ -1,5 +0,0 @@
-import Qt 4.6
-Text {
- text: "lib/com/nokia/Foo/Bar.qml"
- color: "green"
-}
diff --git a/examples/declarative/modules/lib/com/nokia/Foo/Bar17.qml b/examples/declarative/modules/lib/com/nokia/Foo/Bar17.qml
deleted file mode 100644
index f93fc62..0000000
--- a/examples/declarative/modules/lib/com/nokia/Foo/Bar17.qml
+++ /dev/null
@@ -1,5 +0,0 @@
-import Qt 4.6
-Text {
- text: "lib/com/nokia/Foo/Bar17.qml"
- color: "white"
-}
diff --git a/examples/declarative/modules/lib/com/nokia/Foo/Baz.qml b/examples/declarative/modules/lib/com/nokia/Foo/Baz.qml
deleted file mode 100644
index 4daa37f..0000000
--- a/examples/declarative/modules/lib/com/nokia/Foo/Baz.qml
+++ /dev/null
@@ -1,5 +0,0 @@
-import Qt 4.6
-Text {
- text: "lib/com/nokia/Foo/Baz.qml"
- color: "red"
-}
diff --git a/examples/declarative/modules/lib/com/nokia/Foo/qmldir b/examples/declarative/modules/lib/com/nokia/Foo/qmldir
deleted file mode 100644
index b8111cb..0000000
--- a/examples/declarative/modules/lib/com/nokia/Foo/qmldir
+++ /dev/null
@@ -1,6 +0,0 @@
-# Baz was introduced in Foo 1.6
-# Bar 1.5 and 1.6 are the same, but in 1.7 it is reimplemented.
-Bar 1.5 Bar.qml
-Bar 1.6 Bar.qml
-Bar 1.7 Bar17.qml
-Baz 1.6 Baz.qml
diff --git a/examples/declarative/modules/local-qualified.qml b/examples/declarative/modules/local-qualified.qml
deleted file mode 100644
index d3532af..0000000
--- a/examples/declarative/modules/local-qualified.qml
+++ /dev/null
@@ -1,9 +0,0 @@
-import Qt 4.6
-
-import "local" as X
-import "local/SubLib" as Y
-
-Column {
- X.Foo { }
- Y.Bar { }
-}
diff --git a/examples/declarative/modules/local.qml b/examples/declarative/modules/local.qml
deleted file mode 100644
index c90bde3..0000000
--- a/examples/declarative/modules/local.qml
+++ /dev/null
@@ -1,4 +0,0 @@
-import Qt 4.6
-
-import "local"
-Foo { }
diff --git a/examples/declarative/modules/remote-qualified.qml b/examples/declarative/modules/remote-qualified.qml
deleted file mode 100644
index 581c868..0000000
--- a/examples/declarative/modules/remote-qualified.qml
+++ /dev/null
@@ -1,6 +0,0 @@
-import Qt 4.6
-
-import "http://qml.nokia.com/Clock.zip"
-Item {
- Clock.Hand { ... }
-}
diff --git a/examples/declarative/modules/remote-zipped.qml b/examples/declarative/modules/remote-zipped.qml
deleted file mode 100644
index d325b65..0000000
--- a/examples/declarative/modules/remote-zipped.qml
+++ /dev/null
@@ -1,6 +0,0 @@
-import Qt 4.6
-
-import "http://qml.nokia.com/Clock.zip"
-Item {
- Clock { ... }
-}
diff --git a/examples/declarative/modules/wrong-installed-version.qml b/examples/declarative/modules/wrong-installed-version.qml
deleted file mode 100644
index 4442b11..0000000
--- a/examples/declarative/modules/wrong-installed-version.qml
+++ /dev/null
@@ -1,4 +0,0 @@
-import Qt 4.6
-
-import com.nokia.Foo 1.5
-Baz { } // Not available in 1.5, only 1.6!
diff --git a/examples/declarative/modules/wrong-installed.qml b/examples/declarative/modules/wrong-installed.qml
deleted file mode 100644
index 317c05c..0000000
--- a/examples/declarative/modules/wrong-installed.qml
+++ /dev/null
@@ -1,5 +0,0 @@
-import Qt 4.6
-
-import com.nokia.NonExistent
-
-Rectangle {}
diff --git a/examples/declarative/modules/wrong-local-qualified.qml b/examples/declarative/modules/wrong-local-qualified.qml
deleted file mode 100644
index 868bebf..0000000
--- a/examples/declarative/modules/wrong-local-qualified.qml
+++ /dev/null
@@ -1,6 +0,0 @@
-import Qt 4.6
-
-import "local" as X
-
-// WRONG: if imported qualified, must qualify
-Foo { }
diff --git a/examples/declarative/modules/wrong-local.qml b/examples/declarative/modules/wrong-local.qml
deleted file mode 100644
index 1958659..0000000
--- a/examples/declarative/modules/wrong-local.qml
+++ /dev/null
@@ -1,8 +0,0 @@
-import Qt 4.6
-
-import "local"
-
-// WRONG - cannot use qualification to access "local sublibraries".
-// (would have to import lib.SubLib)
-SubLib.Bar {
-}
diff --git a/examples/declarative/modules/zipped-qualified.qml b/examples/declarative/modules/zipped-qualified.qml
deleted file mode 100644
index 56e329f..0000000
--- a/examples/declarative/modules/zipped-qualified.qml
+++ /dev/null
@@ -1,7 +0,0 @@
-import Qt 4.6
-
-// Not currently supported
-import "zips/ClockPack.zip" as CP
-Item {
- CP.Clock { ... }
-}
diff --git a/examples/declarative/modules/zipped.qml b/examples/declarative/modules/zipped.qml
deleted file mode 100644
index 4464616..0000000
--- a/examples/declarative/modules/zipped.qml
+++ /dev/null
@@ -1,7 +0,0 @@
-import Qt 4.6
-
-// Not currently supported
-import "zips/ClockPack.zip"
-Item {
- Clock { ... }
-}
diff --git a/src/declarative/extra/qfxparticles.cpp b/src/declarative/extra/qfxparticles.cpp
index 7855f3e..15e257e 100644
--- a/src/declarative/extra/qfxparticles.cpp
+++ b/src/declarative/extra/qfxparticles.cpp
@@ -603,7 +603,6 @@ QFxParticles::QFxParticles(QFxItem *parent)
{
Q_D(QFxParticles);
d->init();
- setFlag(QGraphicsItem::ItemHasNoContents, false);
}
QFxParticles::QFxParticles(QFxParticlesPrivate &dd, QFxItem *parent)
@@ -611,7 +610,6 @@ QFxParticles::QFxParticles(QFxParticlesPrivate &dd, QFxItem *parent)
{
Q_D(QFxParticles);
d->init();
- setFlag(QGraphicsItem::ItemHasNoContents, false);
}
QFxParticles::~QFxParticles()
diff --git a/src/declarative/extra/qmlfontloader.cpp b/src/declarative/extra/qmlfontloader.cpp
index 5373d02..4497384 100644
--- a/src/declarative/extra/qmlfontloader.cpp
+++ b/src/declarative/extra/qmlfontloader.cpp
@@ -175,15 +175,17 @@ QmlFontLoader::Status QmlFontLoader::status() const
void QmlFontLoader::replyFinished()
{
Q_D(QmlFontLoader);
- if (!d->reply->error()) {
- QByteArray ba = d->reply->readAll();
- d->addFontToDatabase(ba);
- } else {
- d->status = Error;
- emit statusChanged();
+ if (d->reply) {
+ if (!d->reply->error()) {
+ QByteArray ba = d->reply->readAll();
+ d->addFontToDatabase(ba);
+ } else {
+ d->status = Error;
+ emit statusChanged();
+ }
+ d->reply->deleteLater();
+ d->reply = 0;
}
- d->reply->deleteLater();
- d->reply = 0;
}
void QmlFontLoaderPrivate::addFontToDatabase(const QByteArray &ba)
diff --git a/src/declarative/fx/qfxborderimage.cpp b/src/declarative/fx/qfxborderimage.cpp
index ee505f2..3bc76da 100644
--- a/src/declarative/fx/qfxborderimage.cpp
+++ b/src/declarative/fx/qfxborderimage.cpp
@@ -65,7 +65,7 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,BorderImage,QFxBorderImage)
/*!
\internal
\class QFxBorderImage BorderImage
- \brief The QFxBorderImage class provides an image item that you can add to a QFxView.
+ \brief The QFxBorderImage class provides an image item that you can add to a QmlView.
*/
QFxBorderImage::QFxBorderImage(QFxItem *parent)
diff --git a/src/declarative/fx/qfximage.cpp b/src/declarative/fx/qfximage.cpp
index 3ac3f3c..860af66 100644
--- a/src/declarative/fx/qfximage.cpp
+++ b/src/declarative/fx/qfximage.cpp
@@ -113,7 +113,7 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Image,QFxImage)
/*!
\internal
\class QFxImage Image
- \brief The QFxImage class provides an image item that you can add to a QFxView.
+ \brief The QFxImage class provides an image item that you can add to a QmlView.
\ingroup group_coreitems
diff --git a/src/declarative/fx/qfxitem.cpp b/src/declarative/fx/qfxitem.cpp
index 1ca5254..7f4e6b1 100644
--- a/src/declarative/fx/qfxitem.cpp
+++ b/src/declarative/fx/qfxitem.cpp
@@ -56,7 +56,7 @@
#include "qmlstate.h"
#include "qlistmodelinterface.h"
-#include "qfxview.h"
+#include "qmlview.h"
#include "qmlstategroup.h"
#include "qfxitem_p.h"
@@ -1216,7 +1216,7 @@ QFxKeysAttached *QFxKeysAttached::qmlAttachedProperties(QObject *obj)
/*!
\class QFxItem Item
- \brief The QFxItem class is a generic QFxView item. It is the base class for all other view items.
+ \brief The QFxItem class is a generic QmlView item. It is the base class for all other view items.
\qmltext
All visual items in Qt Declarative inherit from QFxItem. Although QFxItem
diff --git a/src/declarative/fx/qfxpainteditem.cpp b/src/declarative/fx/qfxpainteditem.cpp
index 85924e0..27f3ca6 100644
--- a/src/declarative/fx/qfxpainteditem.cpp
+++ b/src/declarative/fx/qfxpainteditem.cpp
@@ -54,7 +54,7 @@ QT_BEGIN_NAMESPACE
/*!
\class QFxPaintedItem
- \brief The QFxPaintedItem class is an abstract base class for QFxView items that want cached painting.
+ \brief The QFxPaintedItem class is an abstract base class for QmlView items that want cached painting.
\ingroup group_coreitems
This is a convenience class for implementing items that paint their contents
diff --git a/src/declarative/fx/qfxrect.cpp b/src/declarative/fx/qfxrect.cpp
index 7d6340f..1a41b5d 100644
--- a/src/declarative/fx/qfxrect.cpp
+++ b/src/declarative/fx/qfxrect.cpp
@@ -52,7 +52,7 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Gradient,QFxGradient)
/*!
\internal
\class QFxPen
- \brief The QFxPen class provides a pen used for drawing rectangle borders on a QFxView.
+ \brief The QFxPen class provides a pen used for drawing rectangle borders on a QmlView.
By default, the pen is invalid and nothing is drawn. You must either set a color (then the default
width is 1) or a width (then the default color is black).
@@ -175,7 +175,7 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Rectangle,QFxRect)
/*!
\internal
\class QFxRect
- \brief The QFxRect class provides a rectangle item that you can add to a QFxView.
+ \brief The QFxRect class provides a rectangle item that you can add to a QmlView.
*/
QFxRect::QFxRect(QFxItem *parent)
: QFxItem(*(new QFxRectPrivate), parent)
diff --git a/src/declarative/fx/qfxtext.cpp b/src/declarative/fx/qfxtext.cpp
index a76b8e6..c26ed2c 100644
--- a/src/declarative/fx/qfxtext.cpp
+++ b/src/declarative/fx/qfxtext.cpp
@@ -84,7 +84,7 @@ QML_DEFINE_TYPE(Qt,4,6,(QT_VERSION&0x00ff00)>>8,Text,QFxText)
\qmlclass Text
\ingroup group_coreitems
- \brief The QFxText class provides a formatted text item that you can add to a QFxView.
+ \brief The QFxText class provides a formatted text item that you can add to a QmlView.
Text was designed for read-only text; it does not allow for any text editing.
It can display both plain and rich text. For example:
@@ -750,7 +750,7 @@ void QFxText::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *)
if (needClip) {
p->save();
- p->setClipRect(boundingRect());
+ p->setClipRect(boundingRect(), Qt::IntersectClip);
}
p->drawPixmap(x, y, d->imgCache);
if (needClip)
diff --git a/src/declarative/fx/qfxtextedit.cpp b/src/declarative/fx/qfxtextedit.cpp
index 58b5c8e..f7b92a4 100644
--- a/src/declarative/fx/qfxtextedit.cpp
+++ b/src/declarative/fx/qfxtextedit.cpp
@@ -84,7 +84,7 @@ TextEdit {
\qmlclass TextEdit
\ingroup group_coreitems
- \brief The QFxTextEdit class provides an editable formatted text item that you can add to a QFxView.
+ \brief The QFxTextEdit class provides an editable formatted text item that you can add to a QmlView.
It can display both plain and rich text.
diff --git a/src/declarative/fx/qfxvisualitemmodel.cpp b/src/declarative/fx/qfxvisualitemmodel.cpp
index 1f8c079..45166de 100644
--- a/src/declarative/fx/qfxvisualitemmodel.cpp
+++ b/src/declarative/fx/qfxvisualitemmodel.cpp
@@ -639,7 +639,7 @@ void QFxVisualDataModel::setModel(const QVariant &model)
return;
}
d->m_modelList = new QmlListAccessor;
- d->m_modelList->setList(model);
+ d->m_modelList->setList(model, d->m_context?d->m_context->engine():qmlEngine(this));
if (d->m_delegate && d->modelCount()) {
emit itemsInserted(0, d->modelCount());
emit countChanged();
diff --git a/src/declarative/fx/qfxwebview.cpp b/src/declarative/fx/qfxwebview.cpp
index bcbedfb..a06e294 100644
--- a/src/declarative/fx/qfxwebview.cpp
+++ b/src/declarative/fx/qfxwebview.cpp
@@ -241,7 +241,7 @@ public:
/*!
\internal
\class QFxWebView
- \brief The QFxWebView class allows you to add web content to a QFxView.
+ \brief The QFxWebView class allows you to add web content to a QmlView.
A WebView renders web content base on a URL.
diff --git a/src/declarative/qml/parser/qmljs.g b/src/declarative/qml/parser/qmljs.g
index 41d6e2d..3c5db0b 100644
--- a/src/declarative/qml/parser/qmljs.g
+++ b/src/declarative/qml/parser/qmljs.g
@@ -850,6 +850,21 @@ 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 ;
+/.
+case $rule_number: {
+ AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(4).sval, sym(6).sval);
+ node->typeModifier = sym(2).sval;
+ node->propertyToken = loc(1);
+ node->typeModifierToken = loc(2);
+ node->typeToken = loc(4);
+ node->identifierToken = loc(6);
+ node->semicolonToken = loc(7);
+ sym(1).Node = node;
+} break;
+./
+
UiObjectMember: T_PROPERTY UiPropertyType T_IDENTIFIER T_AUTOMATIC_SEMICOLON ;
UiObjectMember: T_PROPERTY UiPropertyType T_IDENTIFIER T_SEMICOLON ;
/.
diff --git a/src/declarative/qml/parser/qmljsast_p.h b/src/declarative/qml/parser/qmljsast_p.h
index bacf70f..2d37097 100644
--- a/src/declarative/qml/parser/qmljsast_p.h
+++ b/src/declarative/qml/parser/qmljsast_p.h
@@ -2481,13 +2481,13 @@ public:
UiPublicMember(NameId *memberType,
NameId *name)
- : type(Property), memberType(memberType), name(name), expression(0), isDefaultMember(false), isReadonlyMember(false), parameters(0)
+ : type(Property), typeModifier(0), memberType(memberType), name(name), expression(0), isDefaultMember(false), isReadonlyMember(false), parameters(0)
{ kind = K; }
UiPublicMember(NameId *memberType,
NameId *name,
ExpressionNode *expression)
- : type(Property), memberType(memberType), name(name), expression(expression), isDefaultMember(false), isReadonlyMember(false), parameters(0)
+ : type(Property), typeModifier(0), memberType(memberType), name(name), expression(expression), isDefaultMember(false), isReadonlyMember(false), parameters(0)
{ kind = K; }
virtual SourceLocation firstSourceLocation() const
@@ -2509,6 +2509,7 @@ public:
// attributes
enum { Signal, Property } type;
+ NameId *typeModifier;
NameId *memberType;
NameId *name;
ExpressionNode *expression;
@@ -2518,6 +2519,7 @@ public:
SourceLocation defaultToken;
SourceLocation readonlyToken;
SourceLocation propertyToken;
+ SourceLocation typeModifierToken;
SourceLocation typeToken;
SourceLocation identifierToken;
SourceLocation colonToken;
diff --git a/src/declarative/qml/parser/qmljsgrammar.cpp b/src/declarative/qml/parser/qmljsgrammar.cpp
index 868c421..4188633 100644
--- a/src/declarative/qml/parser/qmljsgrammar.cpp
+++ b/src/declarative/qml/parser/qmljsgrammar.cpp
@@ -2,6 +2,7 @@
/****************************************************************************
**
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the QtCore module of the Qt Toolkit.
@@ -21,10 +22,9 @@
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
-** In addition, as a special exception, Nokia gives you certain
-** additional rights. These rights are described in the Nokia Qt LGPL
-** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
-** package.
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** If you have questions regarding the use of this file, please contact
** Nokia at qt-info@nokia.com.
@@ -60,141 +60,141 @@ const int QmlJSGrammar::lhs [] = {
111, 111, 113, 113, 114, 114, 110, 112, 112, 112,
112, 112, 112, 112, 120, 120, 120, 121, 121, 122,
122, 112, 112, 112, 112, 112, 112, 112, 112, 112,
- 112, 112, 112, 112, 112, 112, 112, 109, 109, 109,
- 109, 125, 125, 125, 125, 125, 125, 125, 125, 125,
- 125, 125, 125, 125, 125, 125, 125, 125, 125, 115,
- 127, 127, 127, 127, 126, 126, 129, 129, 131, 131,
- 131, 131, 131, 131, 132, 132, 132, 132, 132, 132,
+ 112, 112, 112, 112, 112, 112, 112, 112, 112, 109,
+ 109, 109, 109, 125, 125, 125, 125, 125, 125, 125,
+ 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
+ 125, 115, 127, 127, 127, 127, 126, 126, 129, 129,
+ 131, 131, 131, 131, 131, 131, 132, 132, 132, 132,
132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
- 132, 132, 132, 132, 132, 133, 133, 107, 107, 107,
- 107, 107, 136, 136, 137, 137, 137, 137, 135, 135,
- 138, 138, 139, 139, 140, 140, 140, 141, 141, 141,
- 141, 141, 141, 141, 141, 141, 141, 142, 142, 142,
- 142, 143, 143, 143, 144, 144, 144, 144, 145, 145,
- 145, 145, 145, 145, 145, 146, 146, 146, 146, 146,
- 146, 147, 147, 147, 147, 147, 148, 148, 148, 148,
- 148, 149, 149, 150, 150, 151, 151, 152, 152, 153,
- 153, 154, 154, 155, 155, 156, 156, 157, 157, 158,
- 158, 159, 159, 160, 160, 130, 130, 161, 161, 162,
- 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
- 162, 100, 100, 163, 163, 164, 164, 165, 165, 99,
- 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
- 99, 99, 99, 99, 116, 177, 177, 176, 176, 124,
- 124, 178, 178, 179, 179, 181, 181, 180, 182, 185,
- 183, 183, 186, 184, 184, 117, 118, 118, 119, 119,
- 166, 166, 166, 166, 166, 166, 166, 167, 167, 167,
- 167, 168, 168, 168, 168, 169, 169, 170, 172, 187,
- 187, 190, 190, 188, 188, 191, 189, 171, 171, 171,
- 173, 173, 174, 174, 174, 192, 193, 175, 175, 123,
- 134, 197, 197, 194, 194, 195, 195, 198, 199, 199,
- 200, 200, 196, 196, 128, 128, 201};
+ 132, 132, 132, 132, 132, 132, 132, 133, 133, 107,
+ 107, 107, 107, 107, 136, 136, 137, 137, 137, 137,
+ 135, 135, 138, 138, 139, 139, 140, 140, 140, 141,
+ 141, 141, 141, 141, 141, 141, 141, 141, 141, 142,
+ 142, 142, 142, 143, 143, 143, 144, 144, 144, 144,
+ 145, 145, 145, 145, 145, 145, 145, 146, 146, 146,
+ 146, 146, 146, 147, 147, 147, 147, 147, 148, 148,
+ 148, 148, 148, 149, 149, 150, 150, 151, 151, 152,
+ 152, 153, 153, 154, 154, 155, 155, 156, 156, 157,
+ 157, 158, 158, 159, 159, 160, 160, 130, 130, 161,
+ 161, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 100, 100, 163, 163, 164, 164, 165,
+ 165, 99, 99, 99, 99, 99, 99, 99, 99, 99,
+ 99, 99, 99, 99, 99, 99, 116, 177, 177, 176,
+ 176, 124, 124, 178, 178, 179, 179, 181, 181, 180,
+ 182, 185, 183, 183, 186, 184, 184, 117, 118, 118,
+ 119, 119, 166, 166, 166, 166, 166, 166, 166, 167,
+ 167, 167, 167, 168, 168, 168, 168, 169, 169, 170,
+ 172, 187, 187, 190, 190, 188, 188, 191, 189, 171,
+ 171, 171, 173, 173, 174, 174, 174, 192, 193, 175,
+ 175, 123, 134, 197, 197, 194, 194, 195, 195, 198,
+ 199, 199, 200, 200, 196, 196, 128, 128, 201};
const int QmlJSGrammar:: rhs[] = {
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, 4, 4, 5, 5, 6,
- 6, 7, 7, 7, 7, 1, 1, 1, 1, 1,
+ 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, 2, 3, 3, 4, 5, 3, 4, 3, 1,
- 1, 2, 3, 4, 1, 2, 3, 5, 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, 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,
- 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, 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, 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, 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, 2,
- 1, 1, 0, 1, 0, 1, 2};
+ 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, 2, 1, 1, 0, 1, 0, 1, 2};
const int QmlJSGrammar::action_default [] = {
- 0, 0, 0, 19, 0, 165, 232, 196, 204, 200,
- 144, 216, 192, 3, 129, 63, 145, 208, 212, 133,
- 162, 143, 148, 128, 182, 169, 0, 70, 71, 66,
- 333, 58, 335, 0, 0, 0, 0, 68, 0, 0,
- 64, 67, 0, 0, 59, 61, 60, 69, 62, 0,
- 65, 0, 0, 158, 0, 0, 145, 164, 147, 146,
- 0, 0, 0, 160, 161, 159, 163, 0, 193, 0,
- 0, 0, 0, 183, 0, 0, 0, 0, 0, 0,
- 173, 0, 0, 0, 167, 168, 166, 171, 175, 174,
- 172, 170, 185, 184, 186, 0, 201, 0, 197, 0,
- 0, 139, 126, 138, 127, 95, 96, 97, 122, 98,
- 123, 99, 100, 101, 102, 103, 104, 105, 106, 107,
- 108, 109, 110, 111, 124, 112, 113, 114, 115, 116,
- 117, 118, 119, 120, 121, 125, 0, 0, 137, 233,
- 140, 0, 141, 0, 142, 136, 0, 229, 222, 220,
- 227, 228, 226, 225, 231, 224, 223, 221, 230, 217,
- 0, 205, 0, 0, 209, 0, 0, 213, 0, 0,
- 139, 131, 0, 130, 0, 135, 149, 0, 334, 324,
- 325, 0, 322, 0, 323, 0, 326, 240, 247, 246,
- 254, 242, 0, 243, 327, 0, 332, 244, 245, 250,
- 248, 329, 328, 331, 251, 0, 262, 0, 0, 0,
- 0, 333, 58, 0, 335, 59, 234, 276, 60, 0,
- 0, 0, 263, 0, 0, 252, 253, 0, 241, 249,
- 277, 278, 321, 330, 0, 292, 293, 294, 295, 0,
- 288, 289, 290, 291, 318, 319, 0, 0, 0, 0,
- 0, 281, 282, 238, 236, 198, 206, 202, 218, 194,
- 239, 0, 145, 210, 214, 187, 176, 0, 0, 195,
- 0, 0, 0, 0, 188, 0, 0, 0, 0, 0,
- 180, 178, 181, 179, 177, 190, 189, 191, 0, 203,
- 0, 199, 0, 237, 145, 0, 219, 234, 235, 0,
- 234, 0, 0, 284, 0, 0, 0, 286, 0, 207,
- 0, 0, 211, 0, 0, 215, 274, 0, 266, 275,
- 269, 0, 273, 0, 234, 267, 0, 234, 0, 0,
- 285, 0, 0, 0, 287, 334, 324, 0, 0, 326,
- 0, 320, 0, 310, 0, 0, 0, 280, 0, 279,
- 0, 336, 0, 94, 256, 259, 0, 95, 262, 98,
- 123, 100, 101, 66, 105, 106, 58, 107, 110, 64,
- 67, 59, 234, 60, 69, 113, 62, 115, 65, 117,
- 118, 263, 120, 121, 125, 0, 87, 0, 0, 89,
- 93, 91, 78, 90, 92, 0, 88, 77, 257, 255,
- 133, 134, 139, 0, 132, 0, 309, 0, 296, 297,
- 0, 308, 0, 0, 0, 299, 304, 302, 305, 0,
- 0, 303, 304, 0, 300, 0, 301, 258, 307, 0,
- 258, 306, 0, 311, 312, 0, 258, 313, 314, 0,
- 0, 315, 0, 0, 0, 316, 317, 151, 150, 0,
- 0, 0, 283, 0, 0, 0, 298, 271, 264, 0,
- 272, 268, 0, 270, 260, 0, 261, 265, 81, 0,
- 0, 85, 72, 0, 74, 83, 0, 75, 84, 86,
- 76, 82, 73, 0, 79, 155, 153, 157, 154, 152,
- 156, 2, 5, 0, 7, 0, 6, 0, 1, 18,
+ 0, 0, 0, 19, 0, 167, 234, 198, 206, 202,
+ 146, 218, 194, 3, 131, 65, 147, 210, 214, 135,
+ 164, 145, 150, 130, 184, 171, 0, 72, 73, 68,
+ 335, 60, 337, 0, 0, 0, 0, 70, 0, 0,
+ 66, 69, 0, 0, 61, 63, 62, 71, 64, 0,
+ 67, 0, 0, 160, 0, 0, 147, 166, 149, 148,
+ 0, 0, 0, 162, 163, 161, 165, 0, 195, 0,
+ 0, 0, 0, 185, 0, 0, 0, 0, 0, 0,
+ 175, 0, 0, 0, 169, 170, 168, 173, 177, 176,
+ 174, 172, 187, 186, 188, 0, 203, 0, 199, 0,
+ 0, 141, 128, 140, 129, 97, 98, 99, 124, 100,
+ 125, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+ 110, 111, 112, 113, 126, 114, 115, 116, 117, 118,
+ 119, 120, 121, 122, 123, 127, 0, 0, 139, 235,
+ 142, 0, 143, 0, 144, 138, 0, 231, 224, 222,
+ 229, 230, 228, 227, 233, 226, 225, 223, 232, 219,
+ 0, 207, 0, 0, 211, 0, 0, 215, 0, 0,
+ 141, 133, 0, 132, 0, 137, 151, 0, 336, 326,
+ 327, 0, 324, 0, 325, 0, 328, 242, 249, 248,
+ 256, 244, 0, 245, 329, 0, 334, 246, 247, 252,
+ 250, 331, 330, 333, 253, 0, 264, 0, 0, 0,
+ 0, 335, 60, 0, 337, 61, 236, 278, 62, 0,
+ 0, 0, 265, 0, 0, 254, 255, 0, 243, 251,
+ 279, 280, 323, 332, 0, 294, 295, 296, 297, 0,
+ 290, 291, 292, 293, 320, 321, 0, 0, 0, 0,
+ 0, 283, 284, 240, 238, 200, 208, 204, 220, 196,
+ 241, 0, 147, 212, 216, 189, 178, 0, 0, 197,
+ 0, 0, 0, 0, 190, 0, 0, 0, 0, 0,
+ 182, 180, 183, 181, 179, 192, 191, 193, 0, 205,
+ 0, 201, 0, 239, 147, 0, 221, 236, 237, 0,
+ 236, 0, 0, 286, 0, 0, 0, 288, 0, 209,
+ 0, 0, 213, 0, 0, 217, 276, 0, 268, 277,
+ 271, 0, 275, 0, 236, 269, 0, 236, 0, 0,
+ 287, 0, 0, 0, 289, 336, 326, 0, 0, 328,
+ 0, 322, 0, 312, 0, 0, 0, 282, 0, 281,
+ 0, 338, 0, 96, 258, 261, 0, 97, 264, 100,
+ 125, 102, 103, 68, 107, 108, 60, 109, 112, 66,
+ 69, 61, 236, 62, 71, 115, 64, 117, 67, 119,
+ 120, 265, 122, 123, 127, 0, 89, 0, 0, 91,
+ 95, 93, 80, 92, 94, 0, 90, 79, 259, 257,
+ 135, 136, 141, 0, 134, 0, 311, 0, 298, 299,
+ 0, 310, 0, 0, 0, 301, 306, 304, 307, 0,
+ 0, 305, 306, 0, 302, 0, 303, 260, 309, 0,
+ 260, 308, 0, 313, 314, 0, 260, 315, 316, 0,
+ 0, 317, 0, 0, 0, 318, 319, 153, 152, 0,
+ 0, 0, 285, 0, 0, 0, 300, 273, 266, 0,
+ 274, 270, 0, 272, 262, 0, 263, 267, 83, 0,
+ 0, 87, 74, 0, 76, 85, 0, 77, 86, 88,
+ 78, 84, 75, 0, 81, 157, 155, 159, 156, 154,
+ 158, 2, 5, 0, 7, 0, 6, 0, 1, 18,
9, 0, 0, 0, 10, 0, 11, 0, 16, 17,
- 0, 12, 13, 0, 14, 15, 8, 80, 20, 0,
- 4, 0, 27, 56, 0, 59, 25, 61, 60, 28,
- 21, 0, 0, 57, 0, 37, 36, 35, 0, 0,
- 48, 0, 49, 0, 54, 55, 0, 0, 46, 0,
- 47, 0, 50, 51, 0, 0, 0, 0, 0, 52,
- 53, 0, 44, 38, 45, 39, 0, 0, 0, 0,
- 41, 0, 42, 43, 40, 26, 22, 0, 31, 32,
- 33, 34, 133, 258, 0, 0, 95, 262, 98, 123,
- 100, 101, 66, 105, 106, 58, 107, 110, 64, 67,
- 59, 234, 60, 69, 113, 62, 115, 65, 117, 118,
- 263, 120, 121, 125, 133, 0, 23, 0, 29, 24,
- 30, 337};
+ 0, 12, 13, 0, 14, 15, 8, 82, 20, 0,
+ 4, 0, 27, 58, 0, 61, 25, 63, 62, 28,
+ 21, 0, 0, 59, 0, 37, 36, 35, 0, 0,
+ 50, 0, 51, 0, 56, 57, 37, 0, 0, 0,
+ 0, 0, 46, 47, 0, 48, 0, 49, 0, 52,
+ 53, 0, 0, 0, 0, 0, 54, 55, 0, 44,
+ 38, 45, 39, 0, 0, 0, 0, 41, 0, 42,
+ 43, 40, 26, 22, 0, 31, 32, 33, 34, 135,
+ 260, 0, 0, 97, 264, 100, 125, 102, 103, 68,
+ 107, 108, 60, 109, 112, 66, 69, 61, 236, 62,
+ 71, 115, 64, 117, 67, 119, 120, 265, 122, 123,
+ 127, 135, 0, 23, 0, 29, 24, 30, 339};
const int QmlJSGrammar::goto_default [] = {
4, 498, 354, 192, 497, 520, 492, 496, 494, 499,
- 19, 495, 15, 529, 531, 530, 615, 522, 519, 187,
- 191, 193, 197, 546, 566, 565, 196, 228, 23, 470,
+ 19, 495, 15, 529, 531, 530, 622, 522, 519, 187,
+ 191, 193, 197, 547, 573, 572, 196, 228, 23, 470,
469, 352, 351, 6, 350, 353, 103, 14, 141, 21,
10, 140, 16, 22, 53, 20, 5, 25, 24, 265,
12, 259, 7, 255, 9, 257, 8, 256, 17, 263,
@@ -205,317 +205,340 @@ const int QmlJSGrammar::goto_default [] = {
180, 194, 202, 201, 0};
const int QmlJSGrammar::action_index [] = {
- 128, 1036, 2026, -39, 49, 73, -97, 54, 10, -69,
- 243, -97, 285, 1, -97, -97, 503, 29, 75, 246,
- 202, -97, -97, -97, 477, 288, 1036, -97, -97, -97,
- 289, -97, 1840, 1476, 1036, 1036, 1036, -97, 691, 1036,
- -97, -97, 1036, 1036, -97, -97, -97, -97, -97, 1036,
- -97, 1036, 1036, -97, 1036, 1036, 86, 211, -97, -97,
- 1036, 1036, 1036, -97, -97, -97, 197, 1036, 245, 1036,
- 1036, 1036, 1036, 438, 1036, 1036, 1036, 1036, 1036, 1036,
- 288, 1036, 1036, 1036, 133, 129, 132, 288, 288, 288,
- 288, 288, 410, 420, 386, 1036, -6, 1036, 62, 1747,
- 1036, 1036, -97, -97, -97, -97, -97, -97, -97, -97,
+ 136, 1173, 2163, -89, 8, 112, -97, 51, 13, -35,
+ 267, -97, 367, 33, -97, -97, 658, 27, 92, 205,
+ 232, -97, -97, -97, 564, 261, 1173, -97, -97, -97,
+ 307, -97, 1977, 1438, 1173, 1173, 1173, -97, 913, 1173,
+ -97, -97, 1173, 1173, -97, -97, -97, -97, -97, 1173,
+ -97, 1173, 1173, -97, 1173, 1173, 90, 237, -97, -97,
+ 1173, 1173, 1173, -97, -97, -97, 252, 1173, 349, 1173,
+ 1173, 1173, 1173, 450, 1173, 1173, 1173, 1173, 1173, 1173,
+ 245, 1173, 1173, 1173, 134, 141, 132, 334, 241, 238,
+ 207, 334, 440, 564, 422, 1173, -1, 1173, 81, 1884,
+ 1173, 1173, -97, -97, -97, -97, -97, -97, -97, -97,
-97, -97, -97, -97, -97, -97, -97, -97, -97, -97,
-97, -97, -97, -97, -97, -97, -97, -97, -97, -97,
- -97, -97, -97, -97, -97, -97, 112, 1036, -97, -97,
- 18, -38, -97, 1036, -97, -97, 1036, -97, -97, -97,
+ -97, -97, -97, -97, -97, -97, 143, 1173, -97, -97,
+ 57, -43, -97, 1173, -97, -97, 1173, -97, -97, -97,
-97, -97, -97, -97, -97, -97, -97, -97, -97, -97,
- 1036, -47, 1036, 1036, 35, 34, 1036, -97, 1747, 1036,
- 1036, -97, 118, -97, -46, -97, -97, 60, -97, 295,
- 89, 50, -97, 298, -97, 38, 2119, -97, -97, -97,
- -97, -97, 205, -97, -97, 14, -97, -97, -97, -97,
- -97, -97, 2119, -97, -97, 346, -97, 512, 83, 2026,
- 30, 280, 100, 70, 2305, 93, 1036, -97, 80, 66,
- 1036, 65, -97, 59, 67, -97, -97, 276, -97, -97,
- -97, -97, -97, -97, 79, -97, -97, -97, -97, 87,
- -97, -97, -97, -97, -97, -97, 44, 48, 1036, 106,
- 76, -97, -97, 1212, -97, 77, 42, -9, -97, 331,
- 69, 32, 523, 78, 131, 444, 288, 292, 1036, 277,
- 1036, 1036, 1036, 1036, 444, 1036, 1036, 1036, 1036, 1036,
- 288, 288, 288, 288, 288, 349, 355, 359, 1036, -12,
- 1036, 82, 1036, -97, 606, 1036, -97, 1036, 64, 31,
- 1036, 16, 2026, -97, 1036, 122, 2026, -97, 1036, 57,
- 1036, 1036, 84, 81, 1036, -97, 68, 135, 63, -97,
- -97, 1036, -97, 244, 1036, -97, -41, 1036, -42, 2026,
- -97, 1036, 151, 2026, -97, -17, 226, -37, -8, 2119,
- -28, -97, 2026, -97, 1036, 110, 2026, 5, 2026, -97,
- -5, -4, -55, -97, -97, 2026, -22, 424, 46, 421,
- 99, 1036, 2026, 40, 20, 369, 52, 26, 768, 47,
- 41, -97, 1126, -97, 27, 2, 23, 1036, 22, 6,
- 1036, 127, 1036, 9, 7, 1036, -97, 1933, 28, -97,
- -97, -97, -97, -97, -97, 1036, -97, -97, -97, -97,
- 204, -97, 1036, -3, -97, 2026, -97, 85, -97, -97,
- 2026, -97, 1036, 103, -25, -97, 37, -97, 37, 98,
- 1036, -97, 37, -2, -97, 13, -97, 2026, -97, 108,
- 2026, -97, 189, -97, -97, 130, 2026, 12, -97, 25,
- 11, -97, 273, -10, 19, -97, -97, -97, -97, 1036,
- 216, 2026, -97, 1036, 147, 2026, -97, -1, -97, 154,
- -97, -97, 1036, -97, -97, 240, -97, -97, -97, 119,
- 1387, -97, -97, 1654, -97, -97, 1565, -97, -97, -97,
- -97, -97, -97, 134, -97, -97, -97, -97, -97, -97,
- -97, -97, -97, 776, -97, 223, -11, 663, -97, -97,
- 120, 776, 176, 163, -97, 117, -97, 90, -97, -97,
- 303, -97, -97, 61, -97, -97, -97, 97, -97, 58,
- -97, 863, -97, -97, 43, 157, -97, 51, 36, -97,
- -97, 950, 125, -97, 158, -97, -97, -97, -26, 164,
- -97, 1036, -97, 156, -97, -97, 45, 191, -97, 1036,
- -97, 180, -97, -97, 160, 53, 74, 1036, 187, -97,
- -97, 166, -97, 170, -97, 56, 15, 233, 161, 268,
- -97, 95, -97, -97, -97, -97, -97, 1298, -97, -97,
- -97, -97, 283, 2212, 1476, 71, 397, 94, 437, 115,
- 1036, 2026, 92, -19, 364, 8, -24, 691, 21, 17,
- -97, 1126, -97, 4, -30, 0, 1036, 39, 3, 1036,
- 33, 1036, -23, 24, 370, 111, -97, 584, -97, -97,
- -97, -97,
+ 1173, 22, 1173, 1173, 37, 30, 1173, -97, 1884, 1173,
+ 1173, -97, 128, -97, -53, -97, -97, -12, -97, 287,
+ 7, -50, -97, 264, -97, 68, 2256, -97, -97, -97,
+ -97, -97, 230, -97, -97, 67, -97, -97, -97, -97,
+ -97, -97, 2256, -97, -97, 449, -97, 462, 127, 2163,
+ 62, 276, 77, 58, 2442, 72, 1173, -97, 73, 47,
+ 1173, 52, -97, 50, 76, -97, -97, 273, -97, -97,
+ -97, -97, -97, -97, 105, -97, -97, -97, -97, 109,
+ -97, -97, -97, -97, -97, -97, 38, 45, 1173, 95,
+ 79, -97, -97, 1259, -97, 66, 24, -8, -97, 289,
+ 61, 32, 577, 74, 146, 398, 334, 258, 1173, 332,
+ 1173, 1173, 1173, 1173, 490, 1173, 1173, 1173, 1173, 1173,
+ 334, 334, 334, 334, 210, 490, 490, 391, 1173, -8,
+ 1173, 91, 1173, -97, 540, 1173, -97, 1173, 87, 64,
+ 1173, 54, 2163, -97, 1173, 151, 2163, -97, 1173, 69,
+ 1173, 1173, 180, 84, 1173, -97, 80, 99, 71, -97,
+ -97, 1173, -97, 290, 1173, -97, 78, 1173, 44, 2163,
+ -97, 1173, 101, 2163, -97, -22, 246, -48, -24, 2256,
+ -34, -97, 2163, -97, 1173, 113, 2163, 6, 2163, -97,
+ -7, -6, -49, -97, -97, 2163, -51, 470, 12, 400,
+ 133, 1173, 2163, 48, 17, 375, 42, 15, 701, 49,
+ 56, -97, 1349, -97, 55, 21, 53, 1173, 41, 14,
+ 1173, 25, 1173, -2, -3, 1173, -97, 2070, 36, -97,
+ -97, -97, -97, -97, -97, 1173, -97, -97, -97, -97,
+ 270, -97, 1173, -25, -97, 2163, -97, 88, -97, -97,
+ 2163, -97, 1173, 108, -28, -97, 85, -97, 85, 110,
+ 1173, -97, 85, 4, -97, -39, -97, 2163, -97, 111,
+ 2163, -97, 189, -97, -97, 93, 2163, 20, -97, 0,
+ -5, -97, 316, -29, 26, -97, -97, -97, -97, 1173,
+ 130, 2163, -97, 1173, 149, 2163, -97, 3, -97, 197,
+ -97, -97, 1173, -97, -97, 281, -97, -97, -97, 102,
+ 1613, -97, -97, 1702, -97, -97, 1791, -97, -97, -97,
+ -97, -97, -97, 115, -97, -97, -97, -97, -97, -97,
+ -97, -97, -97, 828, -97, 341, -16, 743, -97, -97,
+ 176, 743, 262, 340, -97, 145, -97, 116, -97, -97,
+ 298, -97, -97, 118, -97, -97, -97, 122, -97, 31,
+ -97, 1087, -97, -97, 34, 140, -97, 40, 39, -97,
+ -97, 1000, 121, -97, 185, -97, -97, -97, 29, 191,
+ -97, 1173, -97, 200, -97, -97, -10, 82, 198, 63,
+ 60, 83, -97, -97, 155, -97, 1173, -97, 193, -97,
+ -97, 194, 46, 70, 1173, 195, -97, -97, 157, -97,
+ 147, -97, 65, 28, 323, 192, 331, -97, 125, -97,
+ -97, -97, -97, -97, 1524, -97, -97, -97, -97, 416,
+ 2349, 1438, 75, 436, 89, 427, 86, 1173, 2163, 59,
+ -23, 351, 11, -11, 820, 16, -4, -97, 1349, -97,
+ 19, 18, 43, 1173, 23, 5, 1173, 35, 1173, 10,
+ 9, 416, 97, -97, 611, -97, -97, -97, -97,
- -105, 8, 11, -105, -105, -105, -105, -105, -105, -105,
- -105, -105, -105, -105, -105, -105, -50, -105, -105, -105,
- -105, -105, -105, -105, -105, -105, 104, -105, -105, -105,
- 35, -105, -105, -4, 34, 85, 75, -105, 164, 167,
- -105, -105, 171, 170, -105, -105, -105, -105, -105, 160,
- -105, 166, 163, -105, 154, 177, -105, -105, -105, -105,
- 174, 108, 116, -105, -105, -105, -105, 122, -105, 121,
- 114, 109, 111, -105, 123, 124, 143, 147, 153, 151,
- -105, 146, 138, 131, -105, -105, -105, -105, -105, -105,
- -105, -105, -105, -105, -105, 137, -105, 126, -105, 90,
- 52, 41, -105, -105, -105, -105, -105, -105, -105, -105,
+ -105, 11, 15, -105, -105, -105, -105, -105, -105, -105,
+ -105, -105, -105, -105, -105, -105, -54, -105, -105, -105,
+ -105, -105, -105, -105, -105, -105, 79, -105, -105, -105,
+ 12, -105, -105, 4, 26, 98, 161, -105, 186, 158,
+ -105, -105, 173, 169, -105, -105, -105, -105, -105, 131,
+ -105, 127, 124, -105, 122, 118, -105, -105, -105, -105,
+ 148, 143, 139, -105, -105, -105, -105, 65, -105, 138,
+ 134, 151, 146, -105, 130, 115, 123, 114, 167, 174,
+ -105, 164, 103, 162, -105, -105, -105, -105, -105, -105,
+ -105, -105, -105, -105, -105, 97, -105, 95, -105, 85,
+ -1, 5, -105, -105, -105, -105, -105, -105, -105, -105,
-105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
-105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
- -105, -105, -105, -105, -105, -105, -105, 58, -105, -105,
- -105, -105, -105, 59, -105, -105, 38, -105, -105, -105,
+ -105, -105, -105, -105, -105, -105, -105, 50, -105, -105,
+ -105, -105, -105, 9, -105, -105, 35, -105, -105, -105,
-105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
- 175, -105, 139, -26, -105, -105, 37, -105, 227, 29,
- 76, -105, -105, -105, -105, -105, -105, -105, -105, -10,
- -105, -105, -105, 30, -105, -105, 4, -105, -105, -105,
+ 71, -105, 61, 48, -105, -105, 36, -105, 242, 53,
+ 68, -105, -105, -105, -105, -105, -105, -105, -105, -11,
+ -105, -105, -105, 47, -105, -105, 56, -105, -105, -105,
-105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
- -105, -105, 83, -105, -105, 39, -105, 54, -105, 60,
- -105, 49, -105, -105, -105, -105, 46, -105, -105, -105,
- 65, 68, -105, -105, -105, -105, -105, 9, -105, -105,
+ -105, -105, 109, -105, -105, 39, -105, 37, -105, 42,
+ -105, 73, -105, -105, -105, -105, 72, -105, -105, -105,
+ 70, 60, -105, -105, -105, -105, -105, -6, -105, -105,
-105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
- -105, -105, -105, -105, -105, -105, -105, -105, 24, -105,
- -105, -105, -105, 107, -105, -105, -105, -105, -105, -105,
- -105, -105, -105, -105, -105, -105, -105, 21, 223, -105,
- 219, 211, 230, 234, -105, 96, 93, 74, 95, 97,
- -105, -105, -105, -105, -105, -105, -105, -105, 179, -105,
- 183, -105, 195, -105, -105, 209, -105, 184, -105, -105,
- 101, -105, 7, -105, 16, -105, 15, -105, 191, -105,
- 193, 185, -105, -105, 182, -105, -105, -105, -105, -105,
- -105, 233, -105, 91, 203, -105, -105, 198, -105, 62,
- -105, 57, -105, 173, -105, -105, 86, -105, -105, 84,
- -105, -105, 56, -105, 45, -105, 55, -105, 80, -105,
- -105, -105, -105, -105, -105, 77, -105, 12, -105, 63,
- -105, 82, 61, -105, -105, 47, -105, -105, 102, -105,
- -105, -105, 13, -105, -105, -105, -105, 36, -105, 22,
- 71, -105, 92, -105, -105, -33, -105, -24, -105, -105,
- -105, -105, -105, -105, -105, -19, -105, -105, -105, -105,
- -105, -105, 73, -105, -105, 3, -105, -105, -105, -105,
- 70, -105, 42, -105, -105, -105, -105, -105, -58, -105,
- 64, -105, -56, -105, -105, -105, -105, -45, -105, -105,
- -41, -105, -105, -105, -105, -105, -105, -31, -105, -105,
- 50, -105, 66, -105, 69, -105, -105, -105, -105, 81,
- -105, 44, -105, 53, -105, 51, -105, -105, -105, -105,
- -105, -105, 48, -105, -105, 78, -105, -105, -105, -105,
- 40, -105, -105, 249, -105, -105, 43, -105, -105, -105,
+ -105, -105, -105, -105, -105, -105, -105, -105, 17, -105,
+ -105, -105, -105, 111, -105, -105, -105, -105, -105, -105,
+ -105, -105, -105, -105, -105, -105, -105, 10, 214, -105,
+ 224, 194, 210, 204, -105, 96, 83, 89, 82, 62,
+ -105, -105, -105, -105, -105, -105, -105, -105, 182, -105,
+ 216, -105, 184, -105, -105, 251, -105, 141, -105, -105,
+ 125, -105, 23, -105, 6, -105, 93, -105, 192, -105,
+ 176, 191, -105, -105, 180, -105, -105, -105, -105, -105,
+ -105, 198, -105, 147, 88, -105, -105, 113, -105, 80,
+ -105, 75, -105, 74, -105, -105, 77, -105, -105, 86,
+ -105, -105, 78, -105, 81, -105, 30, -105, 46, -105,
+ -105, -105, -105, -105, -105, 52, -105, 33, -105, 28,
+ -105, 153, 34, -105, -105, 43, -105, -105, 116, -105,
+ -105, -105, 59, -105, -105, -105, -105, 69, -105, 45,
+ 104, -105, 90, -105, -105, 38, -105, 40, -105, -105,
+ -105, -105, -105, -105, -105, 44, -105, -105, -105, -105,
+ -105, -105, 84, -105, -105, 55, -105, -105, -105, -105,
+ 58, -105, 63, -105, -105, -105, -105, -105, -24, -105,
+ 64, -105, -28, -105, -105, -105, -105, -14, -105, -105,
+ -18, -105, -105, -105, -105, -105, -105, -57, -105, -105,
+ 31, -105, 29, -105, 27, -105, -105, -105, -105, 32,
+ -105, 41, -105, 49, -105, 51, -105, -105, -105, -105,
+ -105, -105, 14, -105, -105, 106, -105, -105, -105, -105,
+ 54, -105, -105, 67, -105, -105, 57, -105, -105, -105,
-105, -105, -105, -105, -105, -105, -105, -105, -105, -105,
- -105, -105, -105, 67, -105, -105, 72, 110, -105, -105,
- -105, 2, -105, 6, -105, -105, -105, -105, -105, -105,
- 10, -105, -105, -105, -105, -105, -105, -105, -105, -105,
- -105, 344, -105, -105, -105, -105, -105, -105, -105, -105,
- -105, 274, -105, -105, -22, -105, -105, -105, -105, -105,
- -105, 1, -105, -105, -105, -105, -105, -105, -105, 5,
- -105, -105, -105, -105, -20, -105, -105, 17, -105, -105,
- -105, -105, -105, 31, -105, -105, -105, 28, 27, 32,
- -105, -105, -105, -105, -105, -105, -105, 284, -105, -105,
- -105, -105, -105, -105, 210, 26, 14, -105, 18, -105,
- 88, 23, -105, -105, 19, -105, -105, 79, -105, -105,
- -105, 25, -105, -105, -105, -105, 20, -105, 33, 103,
- -105, 89, -105, -105, -105, -105, -105, 87, -105, -105,
- -105, -105};
+ -105, -105, -105, 76, -105, -105, -3, 188, -105, -105,
+ -105, -10, -105, -9, -105, -105, -105, -105, -105, -105,
+ 22, -105, -105, -105, -105, -105, -105, -105, -105, -105,
+ -105, 346, -105, -105, -105, -105, -105, -105, -105, -105,
+ -105, 257, -105, -105, -19, -105, -105, -105, -105, -105,
+ -105, 24, -105, -105, -105, -105, -105, -105, 3, -105,
+ -105, -105, -105, -105, -105, -105, 20, -105, -105, -105,
+ -105, -5, -105, -105, 25, -105, -105, -105, -105, -105,
+ -16, -105, -105, -105, 19, 7, 21, -105, -105, -105,
+ -105, -105, -105, -105, 269, -105, -105, -105, -105, -105,
+ -105, 237, -2, 0, -105, 1, -105, 66, 8, -105,
+ -105, -4, -105, -105, 102, -105, -105, -105, 13, -105,
+ -105, -105, -105, 16, -105, 2, 108, -105, 91, -105,
+ -105, -105, -105, -105, 92, -105, -105, -105, -105};
const int QmlJSGrammar::action_info [] = {
- 397, 95, 385, 539, 387, 427, 412, -114, 416, 137,
- 97, -92, 344, 449, 175, -89, 462, 253, 329, 336,
- 327, 348, 145, 338, -93, 339, 143, 341, -111, -116,
- -114, 160, 440, 399, -92, 395, 436, 160, 412, 436,
- -119, 166, 420, 453, 436, 449, -116, -103, -93, 621,
- 444, 493, 436, -122, -111, 67, 253, 404, 95, -89,
- 453, 442, 344, 67, 568, 561, 253, 290, 426, 232,
- 290, 186, 137, 97, 547, 571, 302, 292, 268, 493,
- 308, 557, 556, 268, 248, 321, 308, 410, 314, 0,
- 288, 521, 300, 297, 331, 449, 179, 183, 436, -103,
- 405, -122, 412, 453, 521, 288, 344, 342, 423, 534,
- 185, 137, 168, 54, 137, 430, 137, 554, 137, 617,
- 137, 247, 515, 514, 55, 162, 137, 473, 58, 163,
- 137, 169, 577, 0, -119, 168, 439, 252, 251, 59,
- 238, 237, 137, 323, 245, 244, 409, 408, 243, 242,
- 440, 509, 508, 424, 169, 137, 573, 572, 521, 137,
- 245, 244, 465, 414, 137, 0, 250, 618, 138, 54,
- 346, 541, 54, 54, 173, 474, 245, 244, 512, 511,
- 55, 310, 306, 55, 55, 311, 535, 535, 137, 535,
- 535, 168, 31, 0, 484, 137, 324, 137, 549, 535,
- 0, 0, 563, 0, 0, 0, 0, 455, 510, 60,
- 169, 333, 402, 137, 60, 466, 464, 545, 544, 168,
- 3, 2, 1, 60, 137, 542, 540, 564, 562, 44,
- 46, 45, 537, 537, 0, 537, 537, 0, 169, 0,
- 402, 553, 552, 536, 536, 537, 536, 536, 560, 559,
- 434, 433, 550, 548, 61, 31, 536, 0, 99, 61,
- 62, 168, 31, 69, 70, 62, 231, 230, 61, 31,
- 505, 0, 0, 31, 62, 0, 451, 100, 0, 101,
- 169, 0, 170, 0, 506, 504, 0, 0, 0, 0,
- 71, 72, 44, 46, 45, 270, 271, 31, 168, 44,
- 46, 45, 31, 69, 70, 31, 44, 46, 45, 31,
- 44, 46, 45, 81, 503, 82, -80, 169, 31, 170,
- 0, 31, 272, 273, 31, 0, 83, 31, 0, 0,
- 71, 72, 31, 0, 44, 46, 45, 0, 0, 44,
- 46, 45, 44, 46, 45, 0, 44, 46, 45, 270,
- 271, 0, 0, 0, 0, 44, 46, 45, 44, 46,
- 45, 44, 46, 45, 44, 46, 45, 0, 0, 44,
- 46, 45, 275, 276, 0, 31, 272, 273, 275, 276,
- 0, 277, 275, 276, 278, 168, 279, 277, 0, 0,
- 278, 277, 279, 31, 278, 0, 279, 0, 31, 0,
- -333, 0, 0, -80, 169, -333, 170, 236, 235, 74,
- 75, 0, 44, 46, 45, 0, 0, 76, 77, 0,
- 0, 78, 0, 79, 0, 0, 31, 0, 0, 0,
- 44, 46, 45, 74, 75, 44, 46, 45, 0, 0,
- 0, 76, 77, 74, 75, 78, 0, 79, 0, 0,
- 31, 76, 77, 31, 0, 78, 0, 79, 236, 235,
- 0, 74, 75, 44, 46, 45, 31, 275, 276, 76,
- 77, 0, 0, 78, 0, 79, 277, 0, 0, 278,
- 0, 279, 241, 240, 0, 236, 235, 44, 46, 45,
- 44, 46, 45, 0, 0, 0, 0, 0, 241, 240,
- 74, 75, 0, 44, 46, 45, 147, 0, 76, 77,
- 0, 0, 78, 0, 79, 0, 148, 0, 0, 0,
- 149, 0, 0, 0, 0, 0, 147, 0, 0, 150,
- 0, 151, 0, 0, 0, 0, 148, 0, 0, 0,
- 149, 31, 152, 0, 153, 58, 0, 0, 0, 150,
- 0, 151, 154, 0, 304, 155, 59, 0, 0, 0,
- 0, 156, 152, 0, 153, 58, 0, 157, 0, 0,
- 0, 0, 154, 241, 240, 155, 59, 0, 44, 46,
- 45, 156, 0, 158, 0, 0, 0, 157, 0, 0,
- 0, 0, 0, 0, 0, 0, 27, 28, 0, 0,
- 0, 0, 0, 158, 0, 0, 30, 0, 0, 147,
- 0, 0, 0, 31, 0, 0, 0, 32, 33, 148,
- 34, 0, 0, 149, 0, 0, 0, 501, 0, 0,
- 0, 41, 150, 0, 151, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 152, 0, 153, 58, 47,
- 44, 46, 45, 0, 48, 154, 0, 0, 155, 59,
- 0, 0, 0, 0, 156, 40, 50, 29, 0, 0,
- 157, 37, 0, 0, 0, 27, 28, 0, 0, 0,
- 0, 0, 0, 0, 0, 30, 158, 0, 0, 0,
- 0, 0, 31, 0, 0, 0, 32, 33, 0, 34,
- 0, 0, 0, 27, 28, 0, 501, 0, 0, 0,
- 41, 0, 0, 30, 0, 0, 0, 0, 0, 0,
- 31, 0, 0, 0, 32, 33, 0, 34, 47, 44,
- 46, 45, 0, 48, 38, 0, 0, 0, 41, 0,
+ 385, 493, 387, -95, 399, 416, 397, 175, 628, 339,
+ 185, 427, 338, 253, 336, 183, 426, 145, -91, -124,
+ 462, 341, 348, -113, 179, 344, -94, 548, 436, 160,
+ -118, 444, -121, 453, 449, 404, 442, 166, 436, 160,
+ 440, 137, -121, 395, 97, 453, 449, 436, -118, -91,
+ -116, 344, 67, 253, 412, -105, -113, 412, 539, 436,
+ -116, 95, -94, -95, 521, 143, -105, 268, 568, 292,
+ 95, 290, 288, 575, 493, 563, 308, 564, 97, 405,
+ 410, 248, 67, 412, 342, 436, 449, 550, 578, 551,
+ 420, 314, 268, 297, 344, 137, -124, 321, 253, 439,
+ 534, 186, 331, 137, 329, 624, 561, 323, 521, 137,
+ 473, 554, 453, 440, 302, 247, 137, 288, 430, 137,
+ 423, 137, 232, 137, 0, 300, 0, 0, 584, 0,
+ 0, 0, 58, 0, 0, 0, 137, 168, 137, 327,
+ 252, 251, 162, 59, 553, 552, 163, 245, 244, 409,
+ 408, 137, 54, 625, 521, 250, 169, 137, 474, 137,
+ 324, 333, 556, 55, 0, 424, 238, 237, 414, 546,
+ 243, 242, 54, 346, 54, 484, 535, 509, 508, 515,
+ 514, 54, 308, 55, 173, 55, 580, 579, 245, 244,
+ 451, 168, 55, 570, 245, 244, 310, 137, 541, 138,
+ 311, 137, 0, 137, 0, 465, 512, 511, 137, 455,
+ 169, 306, 0, 0, 535, 537, 557, 555, 571, 569,
+ 168, 535, 537, 535, 0, 0, 536, 535, 3, 2,
+ 1, 0, 81, 536, 82, 81, 510, 82, 137, 169,
+ 0, 170, 0, 0, 60, 83, 0, 0, 83, 60,
+ 434, 433, 542, 540, 560, 559, 567, 566, 466, 464,
+ 537, 545, 544, 81, 60, 82, 81, 537, 82, 537,
+ 81, 536, 82, 537, 0, 31, 83, 168, 536, 83,
+ 536, 0, 99, 83, 536, 168, 81, 31, 82, 61,
+ 0, 231, 230, 31, 61, 62, 169, 0, 402, 83,
+ 62, 100, 31, 101, 169, 31, 402, 270, 271, 61,
+ 31, 0, 44, 46, 45, 62, 31, 0, 0, 31,
+ 0, 0, 0, 0, 44, 46, 45, 31, 0, 0,
+ 44, 46, 45, 0, 272, 273, 31, 0, 0, 44,
+ 46, 45, 44, 46, 45, 31, 0, 44, 46, 45,
+ 270, 271, 31, 44, 46, 45, 44, 46, 45, 81,
+ 31, 82, 0, 0, 44, 46, 45, 69, 70, 31,
+ 0, 0, 83, 44, 46, 45, 0, 272, 273, 0,
+ 31, 0, 44, 46, 45, 69, 70, -335, 505, 44,
+ 46, 45, 0, 0, 71, 72, 0, 44, 46, 45,
+ 0, 0, 506, 504, 31, 0, 44, 46, 45, 0,
+ 0, -335, 71, 72, 275, 276, 0, 44, 46, 45,
+ 0, 275, 276, 277, 0, 0, 278, 0, 279, 31,
+ 277, 168, 503, 278, 0, 279, 0, 0, 0, 0,
+ 0, 44, 46, 45, 0, 74, 75, 0, 0, -82,
+ 169, 0, 170, 76, 77, 0, 31, 78, 0, 79,
+ 0, 241, 240, 74, 75, 31, 44, 46, 45, 0,
+ 0, 76, 77, 74, 75, 78, 0, 79, 31, 0,
+ 0, 76, 77, 0, 0, 78, 0, 79, 241, 240,
+ 0, 31, 0, 44, 46, 45, 0, 236, 235, 31,
+ 0, 0, 44, 46, 45, 0, 0, 0, 0, 0,
+ 236, 235, 0, 275, 276, 44, 46, 45, 0, 0,
+ 0, 0, 277, 241, 240, 278, 0, 279, 44, 46,
+ 45, 236, 235, 0, 0, 0, 44, 46, 45, 0,
+ 0, 0, 0, 147, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 148, 0, 0, 0, 149, 0, 0,
+ 0, 0, 0, 0, 0, 0, 150, 0, 151, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 152,
+ 147, 153, 58, 0, 0, 0, 0, 74, 75, 154,
+ 148, 0, 155, 59, 149, 76, 77, 0, 156, 78,
+ 0, 79, 0, 150, 157, 151, 0, 0, 304, 0,
+ 0, 0, 0, 0, 0, 0, 152, 0, 153, 58,
+ 158, 0, 0, 27, 28, 0, 154, 0, 0, 155,
+ 59, 0, 0, 30, 0, 156, 0, 0, 0, 0,
+ 31, 157, 0, 0, 32, 33, 0, 34, 0, 0,
+ 0, 0, 0, 0, 501, 0, 0, 158, 41, 0,
+ 0, 147, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 148, 0, 0, 0, 149, 47, 44, 46, 45,
+ 0, 48, 0, 0, 150, 0, 151, 0, 0, 0,
+ 0, 0, 40, 50, 29, 0, 0, 152, 37, 153,
+ 58, 0, 0, 0, 0, 0, 0, 154, 0, 0,
+ 155, 59, 0, 27, 28, 0, 156, 0, 0, 0,
+ 0, 0, 157, 30, 0, 0, 0, 0, 0, 0,
+ 31, 0, 0, 0, 32, 33, 0, 34, 158, 0,
+ 0, 0, 0, 0, 38, 0, 0, 0, 41, 0,
+ 0, 0, 0, 0, 0, 27, 28, 0, 0, 0,
+ 0, 0, 0, 0, 0, 30, 47, 44, 46, 45,
+ 0, 48, 31, 0, 0, 0, 32, 33, 0, 34,
+ 0, 0, 40, 50, 29, 0, 501, 0, 37, 0,
+ 41, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 47, 44,
+ 46, 45, 0, 48, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 40, 50, 29, 0, 0, 0,
- 37, 0, 0, 0, 0, 0, 47, 44, 46, 45,
- 0, 48, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 40, 50, 29, 0, 0, 0, 37, 0,
- 27, 28, 0, 0, 0, 0, 0, 0, 27, 28,
- 30, 0, 0, 0, 0, 0, 0, 31, 30, 0,
- 0, 32, 33, 0, 34, 31, 0, 0, 0, 32,
- 33, 38, 34, 0, 0, 41, 0, 0, 0, 501,
- 0, 0, 0, 41, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 47, 44, 46, 45, 0, 48, 0,
- 0, 47, 44, 46, 45, 0, 48, 0, 0, 40,
- 50, 29, 0, 0, 0, 37, 0, 40, 50, 29,
- 0, 0, 0, 37, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 524, 0, 27, 28, 0, 0, 0,
- 0, 0, 0, 0, 0, 211, 0, 0, 0, 0,
+ 37, 0, 27, 28, 0, 0, 0, 0, 0, 0,
+ 27, 28, 30, 0, 0, 0, 0, 0, 0, 31,
+ 30, 0, 0, 32, 33, 0, 34, 31, 0, 0,
+ 0, 32, 33, 38, 34, 0, 0, 41, 0, 0,
+ 0, 501, 0, 0, 0, 41, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 47, 44, 46, 45, 0,
+ 48, 0, 0, 47, 44, 46, 45, 0, 48, 0,
+ 0, 40, 50, 29, 0, 0, 0, 37, 0, 40,
+ 50, 29, 0, 0, 0, 37, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 27, 28, 0, 0, 0,
+ 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,
0, 0, 31, 0, 0, 0, 32, 33, 0, 34,
- 0, 0, 0, 0, 0, 0, 501, 0, 0, 0,
- 41, 0, 0, 0, 0, 0, 0, 0, 526, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 47, 525,
- 528, 527, 0, 48, 0, 0, 0, 0, 222, 0,
- 0, 0, 0, 0, 40, 50, 29, 206, 0, 0,
+ 0, 0, 0, 0, 0, 0, 38, 0, 0, 0,
+ 41, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 47, 44,
+ 46, 45, 0, 48, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 40, 50, 29, 0, 0, 0,
37, 0, 0, 0, 0, 0, 0, 0, 0, 0,
524, 0, 27, 28, 0, 0, 0, 0, 0, 0,
0, 0, 211, 0, 0, 0, 0, 0, 0, 31,
0, 0, 0, 32, 33, 0, 34, 0, 0, 0,
0, 0, 0, 501, 0, 0, 0, 41, 0, 0,
- 0, 0, 0, 0, 0, 575, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 582, 0, 0, 0, 0,
0, 0, 0, 0, 0, 47, 525, 528, 527, 0,
48, 0, 0, 0, 0, 222, 0, 0, 0, 0,
0, 40, 50, 29, 206, 0, 0, 37, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 26, 27, 28,
- 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,
- 0, 0, 0, 0, 0, 31, 0, 0, 0, 32,
- 33, 0, 34, 0, 0, 0, 35, 0, 36, 38,
- 39, 0, 0, 41, 0, 0, 0, 42, 0, 43,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 47, 44, 46, 45, 0, 48, 0, 49, 0,
- 51, 0, 52, 0, 0, 0, 0, 40, 50, 29,
- 0, 0, 0, 37, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, -112, 0, 0, 0, 26, 27, 28,
- 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,
- 0, 0, 0, 0, 0, 31, 0, 0, 0, 32,
- 33, 0, 34, 0, 0, 0, 35, 0, 36, 38,
- 39, 0, 0, 41, 0, 0, 0, 42, 0, 43,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 47, 44, 46, 45, 0, 48, 0, 49, 0,
- 51, 0, 52, 0, 0, 0, 0, 40, 50, 29,
- 0, 0, 0, 37, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 26, 27, 28, 0, 0, 0, 0,
- 0, 0, 0, 0, 30, 0, 0, 0, 0, 0,
- 0, 31, 0, 0, 0, 32, 33, 0, 34, 0,
- 0, 0, 35, 0, 36, 38, 39, 0, 0, 41,
- 0, 0, 0, 42, 0, 43, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 47, 44, 46,
- 45, 0, 48, 0, 49, 0, 51, 267, 52, 0,
- 0, 0, 0, 40, 50, 29, 0, 0, 0, 37,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 26,
+ 0, 0, 0, 0, 0, 0, 0, 524, 0, 27,
+ 28, 0, 0, 0, 0, 0, 0, 0, 0, 211,
+ 0, 0, 0, 0, 0, 0, 31, 0, 0, 0,
+ 32, 33, 0, 34, 0, 0, 0, 0, 0, 0,
+ 501, 0, 0, 0, 41, 0, 0, 0, 0, 0,
+ 0, 0, 526, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 47, 525, 528, 527, 0, 48, 0, 0,
+ 0, 0, 222, 0, 0, 0, 0, 0, 40, 50,
+ 29, 206, 0, 0, 37, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 26, 27, 28, 0, 0, 0,
+ 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,
+ 0, 0, 31, 0, 0, 0, 32, 33, 0, 34,
+ 0, 0, 0, 35, 0, 36, 38, 39, 0, 0,
+ 41, 0, 0, 0, 42, 0, 43, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 47, 44,
+ 46, 45, 0, 48, 0, 49, 0, 51, 0, 52,
+ 0, 0, 0, 0, 40, 50, 29, 0, 0, 0,
+ 37, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 26, 27, 28, 0, 0, 0, 0, 0, 0, 0,
+ 0, 30, 0, 0, 0, 0, 0, 0, 31, 0,
+ 0, 0, 32, 33, 0, 34, 0, 0, 0, 35,
+ 0, 36, 38, 39, 0, 0, 41, 0, 0, 0,
+ 42, 0, 43, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 47, 44, 46, 45, 0, 48,
+ 0, 49, 0, 51, 267, 52, 0, 0, 0, 0,
+ 40, 50, 29, 0, 0, 0, 37, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, -114, 0, 0, 0,
+ 26, 27, 28, 0, 0, 0, 0, 0, 0, 0,
+ 0, 30, 0, 0, 0, 0, 0, 0, 31, 0,
+ 0, 0, 32, 33, 0, 34, 0, 0, 0, 35,
+ 0, 36, 38, 39, 0, 0, 41, 0, 0, 0,
+ 42, 0, 43, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 47, 44, 46, 45, 0, 48,
+ 0, 49, 0, 51, 0, 52, 0, 0, 0, 0,
+ 40, 50, 29, 0, 0, 0, 37, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 471, 0, 0, 26,
27, 28, 0, 0, 0, 0, 0, 0, 0, 0,
- 30, 0, 0, 0, 0, 0, 0, 31, 213, 0,
- 0, 583, 584, 0, 34, 0, 0, 0, 35, 0,
+ 30, 0, 0, 0, 0, 0, 0, 31, 0, 0,
+ 0, 32, 33, 0, 34, 0, 0, 0, 35, 0,
36, 38, 39, 0, 0, 41, 0, 0, 0, 42,
- 0, 43, 0, 0, 0, 0, 0, 0, 0, 217,
+ 0, 43, 0, 0, 472, 0, 0, 0, 0, 0,
0, 0, 0, 47, 44, 46, 45, 0, 48, 0,
49, 0, 51, 0, 52, 0, 0, 0, 0, 40,
50, 29, 0, 0, 0, 37, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 479, 0, 0, 26, 27,
- 28, 0, 0, 0, 0, 0, 0, 0, 0, 30,
- 0, 0, 0, 0, 0, 0, 31, 0, 0, 0,
- 32, 33, 0, 34, 0, 0, 0, 35, 0, 36,
- 38, 39, 0, 0, 41, 0, 0, 0, 42, 0,
- 43, 0, 0, 482, 0, 0, 0, 0, 0, 0,
- 0, 0, 47, 44, 46, 45, 0, 48, 0, 49,
- 0, 51, 0, 52, 0, 0, 0, 0, 40, 50,
- 29, 0, 0, 0, 37, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 471, 0, 0, 26, 27, 28,
- 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,
- 0, 0, 0, 0, 0, 31, 0, 0, 0, 32,
- 33, 0, 34, 0, 0, 0, 35, 0, 36, 38,
- 39, 0, 0, 41, 0, 0, 0, 42, 0, 43,
- 0, 0, 472, 0, 0, 0, 0, 0, 0, 0,
- 0, 47, 44, 46, 45, 0, 48, 0, 49, 0,
- 51, 0, 52, 0, 0, 0, 0, 40, 50, 29,
- 0, 0, 0, 37, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 479, 0, 0, 26, 27, 28, 0,
- 0, 0, 0, 0, 0, 0, 0, 30, 0, 0,
- 0, 0, 0, 0, 31, 0, 0, 0, 32, 33,
- 0, 34, 0, 0, 0, 35, 0, 36, 38, 39,
- 0, 0, 41, 0, 0, 0, 42, 0, 43, 0,
- 0, 480, 0, 0, 0, 0, 0, 0, 0, 0,
- 47, 44, 46, 45, 0, 48, 0, 49, 0, 51,
- 0, 52, 0, 0, 0, 0, 40, 50, 29, 0,
- 0, 0, 37, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 471, 0, 0, 26, 27, 28, 0, 0,
+ 0, 0, 0, 0, 0, 26, 27, 28, 0, 0,
0, 0, 0, 0, 0, 0, 30, 0, 0, 0,
- 0, 0, 0, 31, 0, 0, 0, 32, 33, 0,
+ 0, 0, 0, 31, 213, 0, 0, 590, 591, 0,
34, 0, 0, 0, 35, 0, 36, 38, 39, 0,
0, 41, 0, 0, 0, 42, 0, 43, 0, 0,
- 477, 0, 0, 0, 0, 0, 0, 0, 0, 47,
+ 0, 0, 0, 0, 0, 217, 0, 0, 0, 47,
44, 46, 45, 0, 48, 0, 49, 0, 51, 0,
52, 0, 0, 0, 0, 40, 50, 29, 0, 0,
0, 37, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 479, 0, 0, 26, 27, 28, 0, 0, 0,
+ 0, 0, 0, 0, 0, 30, 0, 0, 0, 0,
+ 0, 0, 31, 0, 0, 0, 32, 33, 0, 34,
+ 0, 0, 0, 35, 0, 36, 38, 39, 0, 0,
+ 41, 0, 0, 0, 42, 0, 43, 0, 0, 482,
+ 0, 0, 0, 0, 0, 0, 0, 0, 47, 44,
+ 46, 45, 0, 48, 0, 49, 0, 51, 0, 52,
+ 0, 0, 0, 0, 40, 50, 29, 0, 0, 0,
+ 37, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 471, 0, 0, 26, 27, 28, 0, 0, 0, 0,
+ 0, 0, 0, 0, 30, 0, 0, 0, 0, 0,
+ 0, 31, 0, 0, 0, 32, 33, 0, 34, 0,
+ 0, 0, 35, 0, 36, 38, 39, 0, 0, 41,
+ 0, 0, 0, 42, 0, 43, 0, 0, 477, 0,
+ 0, 0, 0, 0, 0, 0, 0, 47, 44, 46,
+ 45, 0, 48, 0, 49, 0, 51, 0, 52, 0,
+ 0, 0, 0, 40, 50, 29, 0, 0, 0, 37,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 479,
+ 0, 0, 26, 27, 28, 0, 0, 0, 0, 0,
+ 0, 0, 0, 30, 0, 0, 0, 0, 0, 0,
+ 31, 0, 0, 0, 32, 33, 0, 34, 0, 0,
+ 0, 35, 0, 36, 38, 39, 0, 0, 41, 0,
+ 0, 0, 42, 0, 43, 0, 0, 480, 0, 0,
+ 0, 0, 0, 0, 0, 0, 47, 44, 46, 45,
+ 0, 48, 0, 49, 0, 51, 0, 52, 0, 0,
+ 0, 0, 40, 50, 29, 0, 0, 0, 37, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 105, 106,
+ 107, 0, 0, 109, 111, 112, 0, 0, 113, 0,
+ 114, 0, 0, 0, 116, 117, 118, 0, 0, 0,
+ 0, 0, 0, 31, 119, 120, 121, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 122, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 125, 0, 0, 0, 0, 0, 0,
+ 44, 46, 45, 126, 127, 128, 0, 130, 131, 132,
+ 133, 134, 135, 0, 0, 123, 129, 115, 108, 110,
+ 124, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 105, 106, 107, 0, 0, 109, 111, 112, 0,
0, 113, 0, 114, 0, 0, 0, 116, 117, 118,
- 0, 0, 0, 0, 0, 0, 31, 119, 120, 121,
+ 0, 0, 0, 0, 0, 0, 389, 119, 120, 121,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 122, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 122, 0, 0, 0, 390, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 125, 0, 0, 0,
- 0, 0, 0, 44, 46, 45, 126, 127, 128, 0,
+ 0, 0, 394, 391, 393, 0, 126, 127, 128, 0,
130, 131, 132, 133, 134, 135, 0, 0, 123, 129,
115, 108, 110, 124, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 105, 106, 107, 0, 0, 109,
@@ -523,22 +546,22 @@ const int QmlJSGrammar::action_info [] = {
116, 117, 118, 0, 0, 0, 0, 0, 0, 389,
119, 120, 121, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 122, 0, 0, 0, 390, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 125,
+ 0, 0, 0, 0, 0, 392, 0, 0, 0, 125,
0, 0, 0, 0, 0, 394, 391, 393, 0, 126,
127, 128, 0, 130, 131, 132, 133, 134, 135, 0,
0, 123, 129, 115, 108, 110, 124, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 105, 106, 107,
- 0, 0, 109, 111, 112, 0, 0, 113, 0, 114,
- 0, 0, 0, 116, 117, 118, 0, 0, 0, 0,
- 0, 0, 389, 119, 120, 121, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 122, 0, 0, 0,
- 390, 0, 0, 0, 0, 0, 0, 0, 392, 0,
- 0, 0, 125, 0, 0, 0, 0, 0, 394, 391,
- 393, 0, 126, 127, 128, 0, 130, 131, 132, 133,
- 134, 135, 0, 0, 123, 129, 115, 108, 110, 124,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 205, 0, 0,
+ 0, 0, 207, 0, 26, 27, 28, 209, 0, 0,
+ 0, 0, 0, 0, 210, 30, 0, 0, 0, 0,
+ 0, 0, 212, 213, 0, 0, 214, 33, 0, 34,
+ 0, 0, 0, 35, 0, 36, 38, 39, 0, 0,
+ 41, 0, 0, 0, 42, 0, 43, 0, 0, 0,
+ 0, 0, 216, 0, 217, 0, 0, 0, 47, 215,
+ 218, 45, 219, 48, 220, 49, 221, 51, 222, 52,
+ 223, 224, 0, 0, 40, 50, 29, 206, 208, 0,
+ 37, 0, 0, 0, 0, 0, 0, 0, 0, 0,
205, 0, 0, 0, 0, 207, 0, 26, 27, 28,
- 209, 0, 0, 0, 0, 0, 0, 210, 30, 0,
+ 209, 0, 0, 0, 0, 0, 0, 210, 211, 0,
0, 0, 0, 0, 0, 212, 213, 0, 0, 214,
33, 0, 34, 0, 0, 0, 35, 0, 36, 38,
39, 0, 0, 41, 0, 0, 0, 42, 0, 43,
@@ -546,178 +569,174 @@ const int QmlJSGrammar::action_info [] = {
0, 47, 215, 218, 45, 219, 48, 220, 49, 221,
51, 222, 52, 223, 224, 0, 0, 40, 50, 29,
206, 208, 0, 37, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 205, 0, 0, 0, 0, 207, 0,
- 26, 27, 28, 209, 0, 0, 0, 0, 0, 0,
- 210, 211, 0, 0, 0, 0, 0, 0, 212, 213,
- 0, 0, 214, 33, 0, 34, 0, 0, 0, 35,
- 0, 36, 38, 39, 0, 0, 41, 0, 0, 0,
- 42, 0, 43, 0, 0, 0, 0, 0, 216, 0,
- 217, 0, 0, 0, 47, 215, 218, 45, 219, 48,
- 220, 49, 221, 51, 222, 52, 223, 224, 0, 0,
- 40, 50, 29, 206, 208, 0, 37, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 586, 106, 107, 0,
- 0, 588, 111, 590, 27, 28, 591, 0, 114, 0,
- 0, 0, 116, 593, 594, 0, 0, 0, 0, 0,
- 0, 595, 596, 120, 121, 214, 33, 0, 34, 0,
- 0, 0, 35, 0, 36, 597, 39, 0, 0, 599,
- 0, 0, 0, 42, 0, 43, 0, 0, 0, 0,
- 0, 601, 0, 217, 0, 0, 0, 603, 600, 602,
- 45, 604, 605, 606, 49, 608, 609, 610, 611, 612,
- 613, 0, 0, 598, 607, 592, 587, 589, 124, 37,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 357,
- 106, 107, 0, 0, 359, 111, 361, 27, 28, 362,
- 0, 114, 0, 0, 0, 116, 364, 365, 0, 0,
- 0, 0, 0, 0, 366, 367, 120, 121, 214, 33,
- 0, 34, 0, 0, 0, 35, 0, 36, 368, 39,
- 0, 0, 370, 0, 0, 0, 42, 0, 43, 0,
- -258, 0, 0, 0, 372, 0, 217, 0, 0, 0,
- 374, 371, 373, 45, 375, 376, 377, 49, 379, 380,
- 381, 382, 383, 384, 0, 0, 369, 378, 363, 358,
- 360, 124, 37, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,
+ 0, 0, 0, 593, 106, 107, 0, 0, 595, 111,
+ 597, 27, 28, 598, 0, 114, 0, 0, 0, 116,
+ 600, 601, 0, 0, 0, 0, 0, 0, 602, 603,
+ 120, 121, 214, 33, 0, 34, 0, 0, 0, 35,
+ 0, 36, 604, 39, 0, 0, 606, 0, 0, 0,
+ 42, 0, 43, 0, 0, 0, 0, 0, 608, 0,
+ 217, 0, 0, 0, 610, 607, 609, 45, 611, 612,
+ 613, 49, 615, 616, 617, 618, 619, 620, 0, 0,
+ 605, 614, 599, 594, 596, 124, 37, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 357, 106, 107, 0,
+ 0, 359, 111, 361, 27, 28, 362, 0, 114, 0,
+ 0, 0, 116, 364, 365, 0, 0, 0, 0, 0,
+ 0, 366, 367, 120, 121, 214, 33, 0, 34, 0,
+ 0, 0, 35, 0, 36, 368, 39, 0, 0, 370,
+ 0, 0, 0, 42, 0, 43, 0, -260, 0, 0,
+ 0, 372, 0, 217, 0, 0, 0, 374, 371, 373,
+ 45, 375, 376, 377, 49, 379, 380, 381, 382, 383,
+ 384, 0, 0, 369, 378, 363, 358, 360, 124, 37,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 386, 538, 182, 555, 543, 406, 203, 165, 551, 303,
- 388, 13, 502, 491, 396, 146, 298, 307, 507, 305,
- 558, 457, 513, 432, 234, 246, 234, 249, 298, 468,
- 239, 178, 172, 316, 428, 425, 421, 483, 431, 432,
- 574, 435, 184, 620, 570, 413, 452, 178, 345, 298,
- 569, 234, 435, 456, 567, 136, 454, 347, 343, 178,
- 332, 335, 246, 246, 330, 441, 239, 429, 432, 446,
- 167, 159, 411, 481, 142, 239, 478, 500, 443, 398,
- 516, 463, 349, 0, 450, 203, 203, 435, 445, 400,
- 457, 139, 144, 0, 0, 0, 0, 517, 182, 0,
- 619, 0, 102, 316, 298, 0, 142, 0, 0, 142,
- 0, 403, 400, 56, 174, 447, 56, 56, 401, 486,
- 517, 282, 0, 518, 56, 104, 176, 56, 0, 485,
- 56, 56, 176, 448, 56, 56, 448, 56, 56, 56,
- 281, 401, 283, 280, 284, 56, 56, 447, 176, 262,
- 56, 56, 64, 56, 266, 0, 56, 93, 56, 94,
- 65, 467, 92, 56, 56, 56, 56, 301, 56, 73,
- 80, 87, 68, 56, 400, 334, 325, 86, 98, 56,
- 56, 56, 340, 337, 85, 56, 233, 298, 56, 56,
- 88, 96, 84, 56, 89, 56, 56, 164, 91, 57,
- 90, 298, 56, 401, 490, 56, 298, 448, 56, 56,
- 447, 487, 56, 56, 489, 488, 56, 56, 63, 56,
- 614, 56, 66, 616, 294, 56, 266, 294, 0, 266,
- 266, 161, 266, 56, 289, 56, 291, 294, 266, 102,
- 266, 0, 266, 468, 0, 0, 315, 0, 309, 313,
- 299, 294, 312, 56, 0, 0, 266, 0, 266, 293,
- 285, 56, 104, 171, 328, 56, 266, 0, 274, 326,
- 266, 0, 56, 296, 269, 294, 56, 266, 476, 286,
- 266, 266, 475, 287, 517, 0, 0, 0, 0, 576,
- 0, 0, 532, 0, 582, 0, 0, 322, 0, 0,
- 523, 533, 585, 578, 579, 580, 581, 0, 0, 0,
+ 502, 182, 136, 507, 538, 516, 457, 574, 178, 305,
+ 246, 146, 234, 239, 13, 627, 298, 491, 562, 432,
+ 249, 435, 316, 558, 178, 303, 549, 543, 565, 483,
+ 576, 581, 347, 577, 513, 450, 246, 468, 142, 441,
+ 239, 443, 144, 452, 246, 234, 445, 463, 349, 239,
+ 446, 234, 454, 456, 398, 178, 172, 406, 203, 184,
+ 411, 431, 298, 425, 435, 428, 413, 429, 159, 167,
+ 421, 386, 432, 432, 388, 298, 334, 396, 332, 435,
+ 343, 165, 330, 139, 345, 335, 500, 481, 203, 182,
+ 478, 298, 0, 0, 0, 307, 476, 102, 0, 0,
+ 475, 142, 517, 56, 56, 626, 174, 56, 56, 284,
+ 176, 203, 400, 56, 0, 68, 298, 142, 457, 164,
+ 104, 56, 403, 176, 56, 56, 400, 161, 298, 283,
+ 281, 56, 56, 56, 448, 448, 282, 56, 56, 56,
+ 56, 401, 485, 280, 298, 56, 56, 98, 447, 85,
+ 56, 96, 447, 262, 326, 401, 56, 56, 266, 316,
+ 56, 89, 87, 66, 56, 56, 56, 57, 448, 56,
+ 88, 447, 56, 56, 337, 490, 56, 80, 0, 328,
+ 56, 56, 92, 65, 340, 56, 73, 64, 56, 467,
+ 56, 301, 63, 56, 94, 56, 400, 176, 517, 93,
+ 56, 518, 487, 56, 56, 486, 56, 299, 86, 56,
+ 84, 56, 233, 489, 90, 56, 56, 488, 56, 0,
+ 0, 91, 294, 266, 56, 401, 294, 266, 0, 266,
+ 0, 266, 325, 294, 56, 312, 56, 289, 266, 266,
+ 294, 266, 0, 285, 315, 266, 56, 621, 293, 309,
+ 623, 266, 56, 287, 102, 313, 56, 266, 56, 286,
+ 0, 266, 322, 266, 0, 269, 56, 517, 0, 291,
+ 468, 266, 583, 274, 0, 532, 0, 104, 171, 589,
+ 0, 0, 0, 523, 533, 0, 0, 592, 585, 586,
+ 587, 588, 0, 294, 0, 0, 0, 0, 266, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 296, 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, 517, 0, 0, 0, 0, 0,
- 0, 0, 532, 0, 0, 0, 0, 0, 0, 0,
- 523, 533, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 517, 0, 0, 0,
+ 0, 0, 0, 0, 532, 0, 0, 0, 0, 0,
+ 0, 0, 523, 533, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0};
const int QmlJSGrammar::action_check [] = {
- 55, 48, 7, 29, 8, 7, 36, 7, 33, 8,
- 79, 7, 36, 36, 60, 7, 17, 36, 60, 36,
- 61, 16, 60, 60, 7, 33, 8, 55, 7, 7,
- 7, 2, 20, 55, 7, 7, 33, 2, 36, 33,
- 7, 7, 5, 36, 33, 36, 7, 7, 7, 0,
- 60, 90, 33, 7, 7, 1, 36, 60, 48, 7,
- 36, 36, 36, 1, 8, 29, 36, 79, 55, 55,
- 79, 33, 8, 79, 29, 60, 60, 8, 1, 90,
- 2, 7, 29, 1, 36, 17, 2, 7, 7, -1,
- 48, 33, 61, 61, 31, 36, 36, 8, 33, 7,
- 7, 7, 36, 36, 33, 48, 36, 7, 10, 66,
- 60, 8, 15, 40, 8, 7, 8, 66, 8, 8,
- 8, 77, 61, 62, 51, 50, 8, 8, 42, 54,
- 8, 34, 7, -1, 7, 15, 6, 61, 62, 53,
- 61, 62, 8, 8, 61, 62, 61, 62, 61, 62,
- 20, 61, 62, 55, 34, 8, 61, 62, 33, 8,
- 61, 62, 8, 60, 8, -1, 60, 56, 56, 40,
- 60, 7, 40, 40, 56, 56, 61, 62, 61, 62,
- 51, 50, 60, 51, 51, 54, 29, 29, 8, 29,
- 29, 15, 29, -1, 60, 8, 61, 8, 7, 29,
- -1, -1, 36, -1, -1, -1, -1, 60, 91, 12,
- 34, 60, 36, 8, 12, 61, 62, 61, 62, 15,
- 92, 93, 94, 12, 8, 61, 62, 61, 62, 66,
- 67, 68, 75, 75, -1, 75, 75, -1, 34, -1,
- 36, 61, 62, 86, 86, 75, 86, 86, 61, 62,
- 61, 62, 61, 62, 57, 29, 86, -1, 15, 57,
- 63, 15, 29, 18, 19, 63, 61, 62, 57, 29,
- 47, -1, -1, 29, 63, -1, 60, 34, -1, 36,
- 34, -1, 36, -1, 61, 62, -1, -1, -1, -1,
- 45, 46, 66, 67, 68, 18, 19, 29, 15, 66,
- 67, 68, 29, 18, 19, 29, 66, 67, 68, 29,
- 66, 67, 68, 25, 91, 27, 33, 34, 29, 36,
- -1, 29, 45, 46, 29, -1, 38, 29, -1, -1,
- 45, 46, 29, -1, 66, 67, 68, -1, -1, 66,
- 67, 68, 66, 67, 68, -1, 66, 67, 68, 18,
- 19, -1, -1, -1, -1, 66, 67, 68, 66, 67,
- 68, 66, 67, 68, 66, 67, 68, -1, -1, 66,
- 67, 68, 23, 24, -1, 29, 45, 46, 23, 24,
- -1, 32, 23, 24, 35, 15, 37, 32, -1, -1,
- 35, 32, 37, 29, 35, -1, 37, -1, 29, -1,
- 36, -1, -1, 33, 34, 36, 36, 61, 62, 23,
- 24, -1, 66, 67, 68, -1, -1, 31, 32, -1,
- -1, 35, -1, 37, -1, -1, 29, -1, -1, -1,
- 66, 67, 68, 23, 24, 66, 67, 68, -1, -1,
- -1, 31, 32, 23, 24, 35, -1, 37, -1, -1,
- 29, 31, 32, 29, -1, 35, -1, 37, 61, 62,
- -1, 23, 24, 66, 67, 68, 29, 23, 24, 31,
- 32, -1, -1, 35, -1, 37, 32, -1, -1, 35,
- -1, 37, 61, 62, -1, 61, 62, 66, 67, 68,
- 66, 67, 68, -1, -1, -1, -1, -1, 61, 62,
- 23, 24, -1, 66, 67, 68, 3, -1, 31, 32,
- -1, -1, 35, -1, 37, -1, 13, -1, -1, -1,
- 17, -1, -1, -1, -1, -1, 3, -1, -1, 26,
- -1, 28, -1, -1, -1, -1, 13, -1, -1, -1,
- 17, 29, 39, -1, 41, 42, -1, -1, -1, 26,
- -1, 28, 49, -1, 31, 52, 53, -1, -1, -1,
- -1, 58, 39, -1, 41, 42, -1, 64, -1, -1,
- -1, -1, 49, 61, 62, 52, 53, -1, 66, 67,
- 68, 58, -1, 80, -1, -1, -1, 64, -1, -1,
- -1, -1, -1, -1, -1, -1, 12, 13, -1, -1,
- -1, -1, -1, 80, -1, -1, 22, -1, -1, 3,
- -1, -1, -1, 29, -1, -1, -1, 33, 34, 13,
- 36, -1, -1, 17, -1, -1, -1, 43, -1, -1,
- -1, 47, 26, -1, 28, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 39, -1, 41, 42, 65,
- 66, 67, 68, -1, 70, 49, -1, -1, 52, 53,
- -1, -1, -1, -1, 58, 81, 82, 83, -1, -1,
- 64, 87, -1, -1, -1, 12, 13, -1, -1, -1,
- -1, -1, -1, -1, -1, 22, 80, -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,
+ 7, 90, 8, 7, 55, 33, 55, 60, 0, 33,
+ 60, 7, 60, 36, 36, 8, 55, 60, 7, 7,
+ 17, 55, 16, 7, 36, 36, 7, 37, 33, 2,
+ 7, 60, 7, 36, 36, 60, 36, 7, 33, 2,
+ 20, 8, 7, 7, 79, 36, 36, 33, 7, 7,
+ 7, 36, 1, 36, 36, 7, 7, 36, 29, 33,
+ 7, 48, 7, 7, 33, 8, 7, 1, 29, 8,
+ 48, 79, 48, 8, 90, 29, 2, 7, 79, 7,
+ 7, 36, 1, 36, 7, 33, 36, 24, 60, 29,
+ 5, 7, 1, 61, 36, 8, 7, 17, 36, 6,
+ 66, 33, 31, 8, 60, 8, 66, 8, 33, 8,
+ 8, 29, 36, 20, 60, 77, 8, 48, 7, 8,
+ 10, 8, 55, 8, -1, 61, -1, -1, 7, -1,
+ -1, -1, 42, -1, -1, -1, 8, 15, 8, 61,
+ 61, 62, 50, 53, 61, 62, 54, 61, 62, 61,
+ 62, 8, 40, 56, 33, 60, 34, 8, 56, 8,
+ 61, 60, 7, 51, -1, 55, 61, 62, 60, 29,
+ 61, 62, 40, 60, 40, 60, 29, 61, 62, 61,
+ 62, 40, 2, 51, 56, 51, 61, 62, 61, 62,
+ 60, 15, 51, 36, 61, 62, 50, 8, 7, 56,
+ 54, 8, -1, 8, -1, 8, 61, 62, 8, 60,
+ 34, 60, -1, -1, 29, 75, 61, 62, 61, 62,
+ 15, 29, 75, 29, -1, -1, 86, 29, 92, 93,
+ 94, -1, 25, 86, 27, 25, 91, 27, 8, 34,
+ -1, 36, -1, -1, 12, 38, -1, -1, 38, 12,
+ 61, 62, 61, 62, 61, 62, 61, 62, 61, 62,
+ 75, 61, 62, 25, 12, 27, 25, 75, 27, 75,
+ 25, 86, 27, 75, -1, 29, 38, 15, 86, 38,
+ 86, -1, 15, 38, 86, 15, 25, 29, 27, 57,
+ -1, 61, 62, 29, 57, 63, 34, -1, 36, 38,
+ 63, 34, 29, 36, 34, 29, 36, 18, 19, 57,
+ 29, -1, 66, 67, 68, 63, 29, -1, -1, 29,
+ -1, -1, -1, -1, 66, 67, 68, 29, -1, -1,
+ 66, 67, 68, -1, 45, 46, 29, -1, -1, 66,
+ 67, 68, 66, 67, 68, 29, -1, 66, 67, 68,
+ 18, 19, 29, 66, 67, 68, 66, 67, 68, 25,
+ 29, 27, -1, -1, 66, 67, 68, 18, 19, 29,
+ -1, -1, 38, 66, 67, 68, -1, 45, 46, -1,
+ 29, -1, 66, 67, 68, 18, 19, 36, 47, 66,
+ 67, 68, -1, -1, 45, 46, -1, 66, 67, 68,
+ -1, -1, 61, 62, 29, -1, 66, 67, 68, -1,
+ -1, 36, 45, 46, 23, 24, -1, 66, 67, 68,
+ -1, 23, 24, 32, -1, -1, 35, -1, 37, 29,
+ 32, 15, 91, 35, -1, 37, -1, -1, -1, -1,
+ -1, 66, 67, 68, -1, 23, 24, -1, -1, 33,
+ 34, -1, 36, 31, 32, -1, 29, 35, -1, 37,
+ -1, 61, 62, 23, 24, 29, 66, 67, 68, -1,
+ -1, 31, 32, 23, 24, 35, -1, 37, 29, -1,
+ -1, 31, 32, -1, -1, 35, -1, 37, 61, 62,
+ -1, 29, -1, 66, 67, 68, -1, 61, 62, 29,
+ -1, -1, 66, 67, 68, -1, -1, -1, -1, -1,
+ 61, 62, -1, 23, 24, 66, 67, 68, -1, -1,
+ -1, -1, 32, 61, 62, 35, -1, 37, 66, 67,
+ 68, 61, 62, -1, -1, -1, 66, 67, 68, -1,
+ -1, -1, -1, 3, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 13, -1, -1, -1, 17, -1, -1,
+ -1, -1, -1, -1, -1, -1, 26, -1, 28, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 39,
+ 3, 41, 42, -1, -1, -1, -1, 23, 24, 49,
+ 13, -1, 52, 53, 17, 31, 32, -1, 58, 35,
+ -1, 37, -1, 26, 64, 28, -1, -1, 31, -1,
+ -1, -1, -1, -1, -1, -1, 39, -1, 41, 42,
+ 80, -1, -1, 12, 13, -1, 49, -1, -1, 52,
+ 53, -1, -1, 22, -1, 58, -1, -1, -1, -1,
+ 29, 64, -1, -1, 33, 34, -1, 36, -1, -1,
+ -1, -1, -1, -1, 43, -1, -1, 80, 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, -1, -1, -1, -1, 49, -1, -1,
+ 52, 53, -1, 12, 13, -1, 58, -1, -1, -1,
+ -1, -1, 64, 22, -1, -1, -1, -1, -1, -1,
+ 29, -1, -1, -1, 33, 34, -1, 36, 80, -1,
+ -1, -1, -1, -1, 43, -1, -1, -1, 47, -1,
+ -1, -1, -1, -1, -1, 12, 13, -1, -1, -1,
+ -1, -1, -1, -1, -1, 22, 65, 66, 67, 68,
+ -1, 70, 29, -1, -1, -1, 33, 34, -1, 36,
+ -1, -1, 81, 82, 83, -1, 43, -1, 87, -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, -1, -1,
-1, -1, -1, -1, 81, 82, 83, -1, -1, -1,
- 87, -1, -1, -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,
- 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,
- -1, -1, -1, 87, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 10, -1, 12, 13, -1, -1, -1,
+ 87, -1, 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, -1, -1, -1, 87, -1, -1, -1, -1,
+ -1, -1, -1, -1, -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,
+ 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,
+ 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,
10, -1, 12, 13, -1, -1, -1, -1, -1, -1,
-1, -1, 22, -1, -1, -1, -1, -1, -1, 29,
@@ -727,84 +746,102 @@ const int QmlJSGrammar::action_check [] = {
-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, 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, 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, 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, -1, -1, -1, -1, -1, 11,
+ -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, 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,
+ 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, -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, 8, -1, -1, 11,
12, 13, -1, -1, -1, -1, -1, -1, -1, -1,
- 22, -1, -1, -1, -1, -1, -1, 29, 30, -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, 61,
+ -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, 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, 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, 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, 8, -1, -1, 11, 12, 13, -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,
+ -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,
- 56, -1, -1, -1, -1, -1, -1, -1, -1, 65,
+ -1, -1, -1, -1, -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, 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,
+ 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, 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, 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, -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,
+ 43, -1, -1, -1, 47, -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,
+ -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, 4, 5, 6, -1, -1, 9,
@@ -812,20 +849,20 @@ const int QmlJSGrammar::action_check [] = {
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, 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, -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,
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,
@@ -835,79 +872,70 @@ const int QmlJSGrammar::action_check [] = {
-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, 4, -1, -1, -1, -1, 9, -1,
- 11, 12, 13, 14, -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,
- -1, -1, 33, 34, -1, 36, -1, -1, -1, 40,
+ 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, -1, 87, -1, -1, -1,
+ 81, 82, 83, 84, 85, 86, 87, -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, -1, -1, -1,
+ -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, 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, -1, -1, -1, -1, -1,
- 33, 23, 12, 23, 3, 2, 2, 33, 3, 2,
- 34, 3, 10, 2, 33, 65, 3, 2, 12, 3,
- 3, 12, 12, 3, 12, 2, 12, 3, 3, 33,
- 12, 12, 3, 12, 79, 91, 94, 3, 79, 3,
- 12, 19, 12, 17, 12, 3, 2, 12, 3, 3,
- 23, 12, 19, 2, 23, 3, 3, 2, 2, 12,
- 3, 12, 2, 2, 2, 96, 12, 3, 3, 19,
- 33, 33, 2, 33, 33, 12, 33, 10, 12, 2,
- 8, 33, 2, -1, 3, 2, 2, 19, 19, 10,
- 12, 33, 33, -1, -1, -1, -1, 10, 12, -1,
- 13, -1, 12, 12, 3, -1, 33, -1, -1, 33,
- -1, 38, 10, 42, 38, 44, 42, 42, 39, 44,
- 10, 47, -1, 13, 42, 35, 44, 42, -1, 44,
- 42, 42, 44, 44, 42, 42, 44, 42, 42, 42,
- 47, 39, 47, 47, 47, 42, 42, 44, 44, 42,
- 42, 42, 44, 42, 47, -1, 42, 48, 42, 48,
- 44, 83, 48, 42, 42, 42, 42, 66, 42, 48,
- 47, 47, 50, 42, 10, 2, 85, 46, 52, 42,
- 42, 42, 98, 97, 46, 42, 103, 3, 42, 42,
- 47, 54, 46, 42, 47, 42, 42, 58, 47, 45,
- 47, 3, 42, 39, 44, 42, 3, 44, 42, 42,
- 44, 44, 42, 42, 44, 44, 42, 42, 44, 42,
- 10, 42, 45, 13, 42, 42, 47, 42, -1, 47,
- 47, 56, 47, 42, 55, 42, 53, 42, 47, 12,
- 47, -1, 47, 33, -1, -1, 64, -1, 57, 64,
- 66, 42, 59, 42, -1, -1, 47, -1, 47, 64,
- 49, 42, 35, 36, 66, 42, 47, -1, 49, 66,
- 47, -1, 42, 64, 51, 42, 42, 47, 29, 49,
- 47, 47, 33, 49, 10, -1, -1, -1, -1, 15,
- -1, -1, 18, -1, 10, -1, -1, 64, -1, -1,
- 26, 27, 18, 19, 20, 21, 22, -1, -1, -1,
+ 10, 12, 3, 12, 23, 8, 12, 23, 12, 3,
+ 2, 65, 12, 12, 3, 17, 3, 2, 23, 3,
+ 3, 19, 12, 3, 12, 2, 23, 3, 3, 3,
+ 23, 12, 2, 12, 12, 3, 2, 33, 33, 96,
+ 12, 12, 33, 2, 2, 12, 19, 33, 2, 12,
+ 19, 12, 3, 2, 2, 12, 3, 2, 2, 12,
+ 2, 79, 3, 91, 19, 79, 3, 3, 33, 33,
+ 94, 33, 3, 3, 34, 3, 2, 33, 3, 19,
+ 2, 33, 2, 33, 3, 12, 10, 33, 2, 12,
+ 33, 3, -1, -1, -1, 2, 29, 12, -1, -1,
+ 33, 33, 10, 42, 42, 13, 38, 42, 42, 47,
+ 44, 2, 10, 42, -1, 50, 3, 33, 12, 58,
+ 35, 42, 38, 44, 42, 42, 10, 56, 3, 47,
+ 47, 42, 42, 42, 44, 44, 47, 42, 42, 42,
+ 42, 39, 44, 47, 3, 42, 42, 52, 44, 46,
+ 42, 54, 44, 42, 66, 39, 42, 42, 47, 12,
+ 42, 47, 47, 45, 42, 42, 42, 45, 44, 42,
+ 47, 44, 42, 42, 97, 44, 42, 47, -1, 66,
+ 42, 42, 48, 44, 98, 42, 48, 44, 42, 83,
+ 42, 66, 44, 42, 48, 42, 10, 44, 10, 48,
+ 42, 13, 44, 42, 42, 44, 42, 66, 46, 42,
+ 46, 42, 103, 44, 47, 42, 42, 44, 42, -1,
+ -1, 47, 42, 47, 42, 39, 42, 47, -1, 47,
+ -1, 47, 85, 42, 42, 59, 42, 55, 47, 47,
+ 42, 47, -1, 49, 64, 47, 42, 10, 64, 57,
+ 13, 47, 42, 49, 12, 64, 42, 47, 42, 49,
+ -1, 47, 64, 47, -1, 51, 42, 10, -1, 53,
+ 33, 47, 15, 49, -1, 18, -1, 35, 36, 10,
+ -1, -1, -1, 26, 27, -1, -1, 18, 19, 20,
+ 21, 22, -1, 42, -1, -1, -1, -1, 47, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 64, -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, 10, -1, -1, -1,
+ -1, -1, -1, -1, 18, -1, -1, -1, -1, -1,
+ -1, -1, 26, 27, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 10, -1, -1, -1, -1, -1,
- -1, -1, 18, -1, -1, -1, -1, -1, -1, -1,
- 26, 27, -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, -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};
diff --git a/src/declarative/qml/parser/qmljsgrammar_p.h b/src/declarative/qml/parser/qmljsgrammar_p.h
index 0610bfe..57fcccc 100644
--- a/src/declarative/qml/parser/qmljsgrammar_p.h
+++ b/src/declarative/qml/parser/qmljsgrammar_p.h
@@ -2,6 +2,7 @@
/****************************************************************************
**
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the QtCore module of the Qt Toolkit.
@@ -21,10 +22,9 @@
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
-** In addition, as a special exception, Nokia gives you certain
-** additional rights. These rights are described in the Nokia Qt LGPL
-** Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
-** package.
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** If you have questions regarding the use of this file, please contact
** Nokia at qt-info@nokia.com.
@@ -156,15 +156,15 @@ public:
T_XOR = 79,
T_XOR_EQ = 80,
- ACCEPT_STATE = 621,
- RULE_COUNT = 337,
- STATE_COUNT = 622,
+ ACCEPT_STATE = 628,
+ RULE_COUNT = 339,
+ STATE_COUNT = 629,
TERMINAL_COUNT = 97,
NON_TERMINAL_COUNT = 105,
- GOTO_INDEX_OFFSET = 622,
- GOTO_INFO_OFFSET = 2402,
- GOTO_CHECK_OFFSET = 2402
+ GOTO_INDEX_OFFSET = 629,
+ GOTO_INFO_OFFSET = 2539,
+ GOTO_CHECK_OFFSET = 2539
};
static const char *const spell [];
diff --git a/src/declarative/qml/parser/qmljsparser.cpp b/src/declarative/qml/parser/qmljsparser.cpp
index ab4ff63..c08e2af 100644
--- a/src/declarative/qml/parser/qmljsparser.cpp
+++ b/src/declarative/qml/parser/qmljsparser.cpp
@@ -400,6 +400,17 @@ case 44: {
} break;
case 46: {
+ AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(4).sval, sym(6).sval);
+ node->typeModifier = sym(2).sval;
+ node->propertyToken = loc(1);
+ node->typeModifierToken = loc(2);
+ node->typeToken = loc(4);
+ node->identifierToken = loc(6);
+ node->semicolonToken = loc(7);
+ sym(1).Node = node;
+} break;
+
+case 48: {
AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(2).sval, sym(3).sval);
node->propertyToken = loc(1);
node->typeToken = loc(2);
@@ -408,7 +419,7 @@ case 46: {
sym(1).Node = node;
} break;
-case 48: {
+case 50: {
AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(3).sval, sym(4).sval);
node->isDefaultMember = true;
node->defaultToken = loc(1);
@@ -419,7 +430,7 @@ case 48: {
sym(1).Node = node;
} break;
-case 50: {
+case 52: {
AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(2).sval, sym(3).sval,
sym(5).Expression);
node->propertyToken = loc(1);
@@ -430,7 +441,7 @@ case 50: {
sym(1).Node = node;
} break;
-case 52: {
+case 54: {
AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(3).sval, sym(4).sval,
sym(6).Expression);
node->isReadonlyMember = true;
@@ -443,7 +454,7 @@ case 52: {
sym(1).Node = node;
} break;
-case 54: {
+case 56: {
AST::UiPublicMember *node = makeAstNode<AST::UiPublicMember> (driver->nodePool(), sym(3).sval, sym(4).sval,
sym(6).Expression);
node->isDefaultMember = true;
@@ -456,75 +467,75 @@ case 54: {
sym(1).Node = node;
} break;
-case 55: {
+case 57: {
sym(1).Node = makeAstNode<AST::UiSourceElement>(driver->nodePool(), sym(1).Node);
} break;
-case 56: {
+case 58: {
sym(1).Node = makeAstNode<AST::UiSourceElement>(driver->nodePool(), sym(1).Node);
} break;
-case 58: {
+case 60: {
QString s = QLatin1String(QmlJSGrammar::spell[T_PROPERTY]);
sym(1).sval = driver->intern(s.constData(), s.length());
break;
}
-case 59: {
+case 61: {
QString s = QLatin1String(QmlJSGrammar::spell[T_SIGNAL]);
sym(1).sval = driver->intern(s.constData(), s.length());
break;
}
-case 60: {
+case 62: {
QString s = QLatin1String(QmlJSGrammar::spell[T_READONLY]);
sym(1).sval = driver->intern(s.constData(), s.length());
break;
}
-case 61: {
+case 63: {
AST::ThisExpression *node = makeAstNode<AST::ThisExpression> (driver->nodePool());
node->thisToken = loc(1);
sym(1).Node = node;
} break;
-case 62: {
+case 64: {
AST::IdentifierExpression *node = makeAstNode<AST::IdentifierExpression> (driver->nodePool(), sym(1).sval);
node->identifierToken = loc(1);
sym(1).Node = node;
} break;
-case 63: {
+case 65: {
AST::NullExpression *node = makeAstNode<AST::NullExpression> (driver->nodePool());
node->nullToken = loc(1);
sym(1).Node = node;
} break;
-case 64: {
+case 66: {
AST::TrueLiteral *node = makeAstNode<AST::TrueLiteral> (driver->nodePool());
node->trueToken = loc(1);
sym(1).Node = node;
} break;
-case 65: {
+case 67: {
AST::FalseLiteral *node = makeAstNode<AST::FalseLiteral> (driver->nodePool());
node->falseToken = loc(1);
sym(1).Node = node;
} break;
-case 66: {
+case 68: {
AST::NumericLiteral *node = makeAstNode<AST::NumericLiteral> (driver->nodePool(), sym(1).dval);
node->literalToken = loc(1);
sym(1).Node = node;
} break;
-case 67:
-case 68: {
+case 69:
+case 70: {
AST::StringLiteral *node = makeAstNode<AST::StringLiteral> (driver->nodePool(), sym(1).sval);
node->literalToken = loc(1);
sym(1).Node = node;
} break;
-case 69: {
+case 71: {
bool rx = lexer->scanRegExp(Lexer::NoPrefix);
if (!rx) {
diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, location(lexer), lexer->errorMessage()));
@@ -535,7 +546,7 @@ case 69: {
sym(1).Node = node;
} break;
-case 70: {
+case 72: {
bool rx = lexer->scanRegExp(Lexer::EqualPrefix);
if (!rx) {
diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, location(lexer), lexer->errorMessage()));
@@ -546,28 +557,28 @@ case 70: {
sym(1).Node = node;
} break;
-case 71: {
+case 73: {
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 72: {
+case 74: {
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 73: {
+case 75: {
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 74: {
+case 76: {
AST::ArrayLiteral *node = makeAstNode<AST::ArrayLiteral> (driver->nodePool(), sym(2).ElementList->finish (),
(AST::Elision *) 0);
node->lbracketToken = loc(1);
@@ -576,7 +587,7 @@ case 74: {
sym(1).Node = node;
} break;
-case 75: {
+case 77: {
AST::ArrayLiteral *node = makeAstNode<AST::ArrayLiteral> (driver->nodePool(), sym(2).ElementList->finish (),
sym(4).Elision->finish());
node->lbracketToken = loc(1);
@@ -585,7 +596,7 @@ case 75: {
sym(1).Node = node;
} break;
-case 76: {
+case 78: {
AST::ObjectLiteral *node = 0;
if (sym(2).Node)
node = makeAstNode<AST::ObjectLiteral> (driver->nodePool(),
@@ -597,7 +608,7 @@ case 76: {
sym(1).Node = node;
} break;
-case 77: {
+case 79: {
AST::ObjectLiteral *node = makeAstNode<AST::ObjectLiteral> (driver->nodePool(),
sym(2).PropertyNameAndValueList->finish ());
node->lbraceToken = loc(1);
@@ -605,14 +616,14 @@ case 77: {
sym(1).Node = node;
} break;
-case 78: {
+case 80: {
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 79: {
+case 81: {
if (AST::ArrayMemberExpression *mem = AST::cast<AST::ArrayMemberExpression *>(sym(1).Expression)) {
diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Warning, mem->lbracketToken,
QLatin1String("Ignored annotation")));
@@ -632,48 +643,48 @@ case 79: {
}
} break;
-case 80: {
+case 82: {
sym(1).Node = makeAstNode<AST::ElementList> (driver->nodePool(), (AST::Elision *) 0, sym(1).Expression);
} break;
-case 81: {
+case 83: {
sym(1).Node = makeAstNode<AST::ElementList> (driver->nodePool(), sym(1).Elision->finish(), sym(2).Expression);
} break;
-case 82: {
+case 84: {
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 83: {
+case 85: {
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 84: {
+case 86: {
AST::Elision *node = makeAstNode<AST::Elision> (driver->nodePool());
node->commaToken = loc(1);
sym(1).Node = node;
} break;
-case 85: {
+case 87: {
AST::Elision *node = makeAstNode<AST::Elision> (driver->nodePool(), sym(1).Elision);
node->commaToken = loc(2);
sym(1).Node = node;
} break;
-case 86: {
+case 88: {
AST::PropertyNameAndValueList *node = makeAstNode<AST::PropertyNameAndValueList> (driver->nodePool(),
sym(1).PropertyName, sym(3).Expression);
node->colonToken = loc(2);
sym(1).Node = node;
} break;
-case 87: {
+case 89: {
AST::PropertyNameAndValueList *node = makeAstNode<AST::PropertyNameAndValueList> (driver->nodePool(),
sym(1).PropertyNameAndValueList, sym(3).PropertyName, sym(5).Expression);
node->commaToken = loc(2);
@@ -681,40 +692,36 @@ case 87: {
sym(1).Node = node;
} break;
-case 88: {
+case 90: {
AST::IdentifierPropertyName *node = makeAstNode<AST::IdentifierPropertyName> (driver->nodePool(), sym(1).sval);
node->propertyNameToken = loc(1);
sym(1).Node = node;
} break;
-case 89:
-case 90: {
+case 91:
+case 92: {
AST::IdentifierPropertyName *node = makeAstNode<AST::IdentifierPropertyName> (driver->nodePool(), driver->intern(lexer->characterBuffer(), lexer->characterCount()));
node->propertyNameToken = loc(1);
sym(1).Node = node;
} break;
-case 91: {
+case 93: {
AST::StringLiteralPropertyName *node = makeAstNode<AST::StringLiteralPropertyName> (driver->nodePool(), sym(1).sval);
node->propertyNameToken = loc(1);
sym(1).Node = node;
} break;
-case 92: {
+case 94: {
AST::NumericLiteralPropertyName *node = makeAstNode<AST::NumericLiteralPropertyName> (driver->nodePool(), sym(1).dval);
node->propertyNameToken = loc(1);
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:
@@ -772,25 +779,29 @@ case 122:
case 123:
case 124:
+
+case 125:
+
+case 126:
{
sym(1).sval = driver->intern(lexer->characterBuffer(), lexer->characterCount());
} break;
-case 129: {
+case 131: {
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 130: {
+case 132: {
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 131: {
+case 133: {
AST::NewMemberExpression *node = makeAstNode<AST::NewMemberExpression> (driver->nodePool(), sym(2).Expression, sym(4).ArgumentList);
node->newToken = loc(1);
node->lparenToken = loc(3);
@@ -798,316 +809,309 @@ case 131: {
sym(1).Node = node;
} break;
-case 133: {
+case 135: {
AST::NewExpression *node = makeAstNode<AST::NewExpression> (driver->nodePool(), sym(2).Expression);
node->newToken = loc(1);
sym(1).Node = node;
} break;
-case 134: {
+case 136: {
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 135: {
+case 137: {
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 136: {
+case 138: {
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 137: {
+case 139: {
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 138: {
+case 140: {
sym(1).Node = 0;
} break;
-case 139: {
+case 141: {
sym(1).Node = sym(1).ArgumentList->finish();
} break;
-case 140: {
+case 142: {
sym(1).Node = makeAstNode<AST::ArgumentList> (driver->nodePool(), sym(1).Expression);
} break;
-case 141: {
+case 143: {
AST::ArgumentList *node = makeAstNode<AST::ArgumentList> (driver->nodePool(), sym(1).ArgumentList, sym(3).Expression);
node->commaToken = loc(2);
sym(1).Node = node;
} break;
-case 145: {
+case 147: {
AST::PostIncrementExpression *node = makeAstNode<AST::PostIncrementExpression> (driver->nodePool(), sym(1).Expression);
node->incrementToken = loc(2);
sym(1).Node = node;
} break;
-case 146: {
+case 148: {
AST::PostDecrementExpression *node = makeAstNode<AST::PostDecrementExpression> (driver->nodePool(), sym(1).Expression);
node->decrementToken = loc(2);
sym(1).Node = node;
} break;
-case 148: {
+case 150: {
AST::DeleteExpression *node = makeAstNode<AST::DeleteExpression> (driver->nodePool(), sym(2).Expression);
node->deleteToken = loc(1);
sym(1).Node = node;
} break;
-case 149: {
+case 151: {
AST::VoidExpression *node = makeAstNode<AST::VoidExpression> (driver->nodePool(), sym(2).Expression);
node->voidToken = loc(1);
sym(1).Node = node;
} break;
-case 150: {
+case 152: {
AST::TypeOfExpression *node = makeAstNode<AST::TypeOfExpression> (driver->nodePool(), sym(2).Expression);
node->typeofToken = loc(1);
sym(1).Node = node;
} break;
-case 151: {
+case 153: {
AST::PreIncrementExpression *node = makeAstNode<AST::PreIncrementExpression> (driver->nodePool(), sym(2).Expression);
node->incrementToken = loc(1);
sym(1).Node = node;
} break;
-case 152: {
+case 154: {
AST::PreDecrementExpression *node = makeAstNode<AST::PreDecrementExpression> (driver->nodePool(), sym(2).Expression);
node->decrementToken = loc(1);
sym(1).Node = node;
} break;
-case 153: {
+case 155: {
AST::UnaryPlusExpression *node = makeAstNode<AST::UnaryPlusExpression> (driver->nodePool(), sym(2).Expression);
node->plusToken = loc(1);
sym(1).Node = node;
} break;
-case 154: {
+case 156: {
AST::UnaryMinusExpression *node = makeAstNode<AST::UnaryMinusExpression> (driver->nodePool(), sym(2).Expression);
node->minusToken = loc(1);
sym(1).Node = node;
} break;
-case 155: {
+case 157: {
AST::TildeExpression *node = makeAstNode<AST::TildeExpression> (driver->nodePool(), sym(2).Expression);
node->tildeToken = loc(1);
sym(1).Node = node;
} break;
-case 156: {
+case 158: {
AST::NotExpression *node = makeAstNode<AST::NotExpression> (driver->nodePool(), sym(2).Expression);
node->notToken = loc(1);
sym(1).Node = node;
} break;
-case 158: {
+case 160: {
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 159: {
+case 161: {
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 160: {
+case 162: {
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 162: {
+case 164: {
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 163: {
+case 165: {
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 165: {
+case 167: {
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 166: {
+case 168: {
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 167: {
+case 169: {
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 169: {
+case 171: {
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 170: {
+case 172: {
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 171: {
+case 173: {
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 172: {
+case 174: {
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 173: {
+case 175: {
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 174: {
+case 176: {
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 176: {
+case 178: {
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 177: {
+case 179: {
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 178: {
+case 180: {
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 179: {
+case 181: {
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 180: {
+case 182: {
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 182: {
+case 184: {
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 183: {
+case 185: {
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 184: {
+case 186: {
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 185: {
+case 187: {
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 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: {
- 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: {
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;
@@ -1121,7 +1125,7 @@ case 194: {
case 196: {
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;
@@ -1135,7 +1139,7 @@ case 198: {
case 200: {
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;
@@ -1149,7 +1153,7 @@ case 202: {
case 204: {
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;
@@ -1163,7 +1167,7 @@ case 206: {
case 208: {
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;
@@ -1176,6 +1180,13 @@ case 210: {
} break;
case 212: {
+ 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 214: {
AST::ConditionalExpression *node = makeAstNode<AST::ConditionalExpression> (driver->nodePool(), sym(1).Expression,
sym(3).Expression, sym(5).Expression);
node->questionToken = loc(2);
@@ -1183,7 +1194,7 @@ case 212: {
sym(1).Node = node;
} break;
-case 214: {
+case 216: {
AST::ConditionalExpression *node = makeAstNode<AST::ConditionalExpression> (driver->nodePool(), sym(1).Expression,
sym(3).Expression, sym(5).Expression);
node->questionToken = loc(2);
@@ -1191,112 +1202,112 @@ case 214: {
sym(1).Node = node;
} break;
-case 216: {
+case 218: {
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 218: {
+case 220: {
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 219: {
+case 221: {
sym(1).ival = QSOperator::Assign;
} break;
-case 220: {
+case 222: {
sym(1).ival = QSOperator::InplaceMul;
} break;
-case 221: {
+case 223: {
sym(1).ival = QSOperator::InplaceDiv;
} break;
-case 222: {
+case 224: {
sym(1).ival = QSOperator::InplaceMod;
} break;
-case 223: {
+case 225: {
sym(1).ival = QSOperator::InplaceAdd;
} break;
-case 224: {
+case 226: {
sym(1).ival = QSOperator::InplaceSub;
} break;
-case 225: {
+case 227: {
sym(1).ival = QSOperator::InplaceLeftShift;
} break;
-case 226: {
+case 228: {
sym(1).ival = QSOperator::InplaceRightShift;
} break;
-case 227: {
+case 229: {
sym(1).ival = QSOperator::InplaceURightShift;
} break;
-case 228: {
+case 230: {
sym(1).ival = QSOperator::InplaceAnd;
} break;
-case 229: {
+case 231: {
sym(1).ival = QSOperator::InplaceXor;
} break;
-case 230: {
+case 232: {
sym(1).ival = QSOperator::InplaceOr;
} break;
-case 232: {
+case 234: {
AST::Expression *node = makeAstNode<AST::Expression> (driver->nodePool(), sym(1).Expression, sym(3).Expression);
node->commaToken = loc(2);
sym(1).Node = node;
} break;
-case 233: {
+case 235: {
sym(1).Node = 0;
} break;
-case 236: {
+case 238: {
AST::Expression *node = makeAstNode<AST::Expression> (driver->nodePool(), sym(1).Expression, sym(3).Expression);
node->commaToken = loc(2);
sym(1).Node = node;
} break;
-case 237: {
+case 239: {
sym(1).Node = 0;
} break;
-case 254: {
+case 256: {
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 255: {
+case 257: {
sym(1).Node = makeAstNode<AST::StatementList> (driver->nodePool(), sym(1).Statement);
} break;
-case 256: {
+case 258: {
sym(1).Node = makeAstNode<AST::StatementList> (driver->nodePool(), sym(1).StatementList, sym(2).Statement);
} break;
-case 257: {
+case 259: {
sym(1).Node = 0;
} break;
-case 258: {
+case 260: {
sym(1).Node = sym(1).StatementList->finish ();
} break;
-case 260: {
+case 262: {
AST::VariableStatement *node = makeAstNode<AST::VariableStatement> (driver->nodePool(),
sym(2).VariableDeclarationList->finish (/*readOnly=*/sym(1).ival == T_CONST));
node->declarationKindToken = loc(1);
@@ -1304,76 +1315,76 @@ case 260: {
sym(1).Node = node;
} break;
-case 261: {
+case 263: {
sym(1).ival = T_CONST;
} break;
-case 262: {
+case 264: {
sym(1).ival = T_VAR;
} break;
-case 263: {
+case 265: {
sym(1).Node = makeAstNode<AST::VariableDeclarationList> (driver->nodePool(), sym(1).VariableDeclaration);
} break;
-case 264: {
+case 266: {
AST::VariableDeclarationList *node = makeAstNode<AST::VariableDeclarationList> (driver->nodePool(),
sym(1).VariableDeclarationList, sym(3).VariableDeclaration);
node->commaToken = loc(2);
sym(1).Node = node;
} break;
-case 265: {
+case 267: {
sym(1).Node = makeAstNode<AST::VariableDeclarationList> (driver->nodePool(), sym(1).VariableDeclaration);
} break;
-case 266: {
+case 268: {
sym(1).Node = makeAstNode<AST::VariableDeclarationList> (driver->nodePool(), sym(1).VariableDeclarationList, sym(3).VariableDeclaration);
} break;
-case 267: {
+case 269: {
AST::VariableDeclaration *node = makeAstNode<AST::VariableDeclaration> (driver->nodePool(), sym(1).sval, sym(2).Expression);
node->identifierToken = loc(1);
sym(1).Node = node;
} break;
-case 268: {
+case 270: {
AST::VariableDeclaration *node = makeAstNode<AST::VariableDeclaration> (driver->nodePool(), sym(1).sval, sym(2).Expression);
node->identifierToken = loc(1);
sym(1).Node = node;
} break;
-case 269: {
+case 271: {
// ### TODO: AST for initializer
sym(1) = sym(2);
} break;
-case 270: {
+case 272: {
sym(1).Node = 0;
} break;
-case 272: {
+case 274: {
// ### TODO: AST for initializer
sym(1) = sym(2);
} break;
-case 273: {
+case 275: {
sym(1).Node = 0;
} break;
-case 275: {
+case 277: {
AST::EmptyStatement *node = makeAstNode<AST::EmptyStatement> (driver->nodePool());
node->semicolonToken = loc(1);
sym(1).Node = node;
} break;
-case 277: {
+case 279: {
AST::ExpressionStatement *node = makeAstNode<AST::ExpressionStatement> (driver->nodePool(), sym(1).Expression);
node->semicolonToken = loc(2);
sym(1).Node = node;
} break;
-case 278: {
+case 280: {
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);
@@ -1382,7 +1393,7 @@ case 278: {
sym(1).Node = node;
} break;
-case 279: {
+case 281: {
AST::IfStatement *node = makeAstNode<AST::IfStatement> (driver->nodePool(), sym(3).Expression, sym(5).Statement);
node->ifToken = loc(1);
node->lparenToken = loc(2);
@@ -1390,7 +1401,7 @@ case 279: {
sym(1).Node = node;
} break;
-case 281: {
+case 283: {
AST::DoWhileStatement *node = makeAstNode<AST::DoWhileStatement> (driver->nodePool(), sym(2).Statement, sym(5).Expression);
node->doToken = loc(1);
node->whileToken = loc(3);
@@ -1400,7 +1411,7 @@ case 281: {
sym(1).Node = node;
} break;
-case 282: {
+case 284: {
AST::WhileStatement *node = makeAstNode<AST::WhileStatement> (driver->nodePool(), sym(3).Expression, sym(5).Statement);
node->whileToken = loc(1);
node->lparenToken = loc(2);
@@ -1408,7 +1419,7 @@ case 282: {
sym(1).Node = node;
} break;
-case 283: {
+case 285: {
AST::ForStatement *node = makeAstNode<AST::ForStatement> (driver->nodePool(), sym(3).Expression,
sym(5).Expression, sym(7).Expression, sym(9).Statement);
node->forToken = loc(1);
@@ -1419,7 +1430,7 @@ case 283: {
sym(1).Node = node;
} break;
-case 284: {
+case 286: {
AST::LocalForStatement *node = makeAstNode<AST::LocalForStatement> (driver->nodePool(),
sym(4).VariableDeclarationList->finish (/*readOnly=*/false), sym(6).Expression,
sym(8).Expression, sym(10).Statement);
@@ -1432,7 +1443,7 @@ case 284: {
sym(1).Node = node;
} break;
-case 285: {
+case 287: {
AST:: ForEachStatement *node = makeAstNode<AST::ForEachStatement> (driver->nodePool(), sym(3).Expression,
sym(5).Expression, sym(7).Statement);
node->forToken = loc(1);
@@ -1442,7 +1453,7 @@ case 285: {
sym(1).Node = node;
} break;
-case 286: {
+case 288: {
AST::LocalForEachStatement *node = makeAstNode<AST::LocalForEachStatement> (driver->nodePool(),
sym(4).VariableDeclaration, sym(6).Expression, sym(8).Statement);
node->forToken = loc(1);
@@ -1453,14 +1464,14 @@ case 286: {
sym(1).Node = node;
} break;
-case 288: {
+case 290: {
AST::ContinueStatement *node = makeAstNode<AST::ContinueStatement> (driver->nodePool());
node->continueToken = loc(1);
node->semicolonToken = loc(2);
sym(1).Node = node;
} break;
-case 290: {
+case 292: {
AST::ContinueStatement *node = makeAstNode<AST::ContinueStatement> (driver->nodePool(), sym(2).sval);
node->continueToken = loc(1);
node->identifierToken = loc(2);
@@ -1468,14 +1479,14 @@ case 290: {
sym(1).Node = node;
} break;
-case 292: {
+case 294: {
AST::BreakStatement *node = makeAstNode<AST::BreakStatement> (driver->nodePool());
node->breakToken = loc(1);
node->semicolonToken = loc(2);
sym(1).Node = node;
} break;
-case 294: {
+case 296: {
AST::BreakStatement *node = makeAstNode<AST::BreakStatement> (driver->nodePool(), sym(2).sval);
node->breakToken = loc(1);
node->identifierToken = loc(2);
@@ -1483,14 +1494,14 @@ case 294: {
sym(1).Node = node;
} break;
-case 296: {
+case 298: {
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 297: {
+case 299: {
AST::WithStatement *node = makeAstNode<AST::WithStatement> (driver->nodePool(), sym(3).Expression, sym(5).Statement);
node->withToken = loc(1);
node->lparenToken = loc(2);
@@ -1498,7 +1509,7 @@ case 297: {
sym(1).Node = node;
} break;
-case 298: {
+case 300: {
AST::SwitchStatement *node = makeAstNode<AST::SwitchStatement> (driver->nodePool(), sym(3).Expression, sym(5).CaseBlock);
node->switchToken = loc(1);
node->lparenToken = loc(2);
@@ -1506,90 +1517,90 @@ case 298: {
sym(1).Node = node;
} break;
-case 299: {
+case 301: {
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 300: {
+case 302: {
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 301: {
+case 303: {
sym(1).Node = makeAstNode<AST::CaseClauses> (driver->nodePool(), sym(1).CaseClause);
} break;
-case 302: {
+case 304: {
sym(1).Node = makeAstNode<AST::CaseClauses> (driver->nodePool(), sym(1).CaseClauses, sym(2).CaseClause);
} break;
-case 303: {
+case 305: {
sym(1).Node = 0;
} break;
-case 304: {
+case 306: {
sym(1).Node = sym(1).CaseClauses->finish ();
} break;
-case 305: {
+case 307: {
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 306: {
+case 308: {
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 307:
-case 308: {
+case 309:
+case 310: {
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 309: {
+case 311: {
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 311: {
+case 313: {
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 312: {
+case 314: {
AST::TryStatement *node = makeAstNode<AST::TryStatement> (driver->nodePool(), sym(2).Statement, sym(3).Catch);
node->tryToken = loc(1);
sym(1).Node = node;
} break;
-case 313: {
+case 315: {
AST::TryStatement *node = makeAstNode<AST::TryStatement> (driver->nodePool(), sym(2).Statement, sym(3).Finally);
node->tryToken = loc(1);
sym(1).Node = node;
} break;
-case 314: {
+case 316: {
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 315: {
+case 317: {
AST::Catch *node = makeAstNode<AST::Catch> (driver->nodePool(), sym(3).sval, sym(5).Block);
node->catchToken = loc(1);
node->lparenToken = loc(2);
@@ -1598,20 +1609,20 @@ case 315: {
sym(1).Node = node;
} break;
-case 316: {
+case 318: {
AST::Finally *node = makeAstNode<AST::Finally> (driver->nodePool(), sym(2).Block);
node->finallyToken = loc(1);
sym(1).Node = node;
} break;
-case 318: {
+case 320: {
AST::DebuggerStatement *node = makeAstNode<AST::DebuggerStatement> (driver->nodePool());
node->debuggerToken = loc(1);
node->semicolonToken = loc(2);
sym(1).Node = node;
} break;
-case 319: {
+case 321: {
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);
@@ -1622,7 +1633,7 @@ case 319: {
sym(1).Node = node;
} break;
-case 320: {
+case 322: {
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)
@@ -1634,56 +1645,56 @@ case 320: {
sym(1).Node = node;
} break;
-case 321: {
+case 323: {
AST::FormalParameterList *node = makeAstNode<AST::FormalParameterList> (driver->nodePool(), sym(1).sval);
node->identifierToken = loc(1);
sym(1).Node = node;
} break;
-case 322: {
+case 324: {
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 323: {
+case 325: {
sym(1).Node = 0;
} break;
-case 324: {
+case 326: {
sym(1).Node = sym(1).FormalParameterList->finish ();
} break;
-case 325: {
+case 327: {
sym(1).Node = 0;
} break;
-case 327: {
+case 329: {
sym(1).Node = makeAstNode<AST::FunctionBody> (driver->nodePool(), sym(1).SourceElements->finish ());
} break;
-case 328: {
+case 330: {
sym(1).Node = makeAstNode<AST::SourceElements> (driver->nodePool(), sym(1).SourceElement);
} break;
-case 329: {
+case 331: {
sym(1).Node = makeAstNode<AST::SourceElements> (driver->nodePool(), sym(1).SourceElements, sym(2).SourceElement);
} break;
-case 330: {
+case 332: {
sym(1).Node = makeAstNode<AST::StatementSourceElement> (driver->nodePool(), sym(1).Statement);
} break;
-case 331: {
+case 333: {
sym(1).Node = makeAstNode<AST::FunctionSourceElement> (driver->nodePool(), sym(1).FunctionDeclaration);
} break;
-case 332: {
+case 334: {
sym(1).sval = 0;
} break;
-case 334: {
+case 336: {
sym(1).Node = 0;
} break;
diff --git a/src/declarative/qml/parser/qmljsparser_p.h b/src/declarative/qml/parser/qmljsparser_p.h
index 573031f..46d5952 100644
--- a/src/declarative/qml/parser/qmljsparser_p.h
+++ b/src/declarative/qml/parser/qmljsparser_p.h
@@ -222,9 +222,9 @@ protected:
-#define J_SCRIPT_REGEXPLITERAL_RULE1 69
+#define J_SCRIPT_REGEXPLITERAL_RULE1 71
-#define J_SCRIPT_REGEXPLITERAL_RULE2 70
+#define J_SCRIPT_REGEXPLITERAL_RULE2 72
QT_QML_END_NAMESPACE
diff --git a/src/declarative/qml/qmlboundsignal.cpp b/src/declarative/qml/qmlboundsignal.cpp
index 9af4003..08c3387 100644
--- a/src/declarative/qml/qmlboundsignal.cpp
+++ b/src/declarative/qml/qmlboundsignal.cpp
@@ -42,6 +42,7 @@
#include "qmlboundsignal_p.h"
#include "private/qmetaobjectbuilder_p.h"
#include "private/qmlengine_p.h"
+#include "private/qmlexpression_p.h"
#include "private/qmlcontext_p.h"
#include <qfxglobal.h>
#include <qmlmetatype.h>
@@ -51,41 +52,135 @@
QT_BEGIN_NAMESPACE
-int QmlBoundSignal::evaluateIdx = -1;
-QmlBoundSignal::QmlBoundSignal(QmlContext *ctxt, const QString &val, QObject *me, int idx, QObject *parent)
-: QmlExpression(ctxt, val, me), _idx(idx)
+class QmlBoundSignalParameters : public QObject
+{
+Q_OBJECT
+public:
+ QmlBoundSignalParameters(const QMetaMethod &, QObject * = 0);
+ ~QmlBoundSignalParameters();
+
+ void setValues(void **);
+ void clearValues();
+
+private:
+ friend class MetaObject;
+ int metaCall(QMetaObject::Call, int _id, void **);
+ struct MetaObject : public QAbstractDynamicMetaObject {
+ MetaObject(QmlBoundSignalParameters *b)
+ : parent(b) {}
+
+ int metaCall(QMetaObject::Call c, int id, void **a) {
+ return parent->metaCall(c, id, a);
+ }
+ QmlBoundSignalParameters *parent;
+ };
+
+ int *types;
+ void **values;
+ QMetaObject *myMetaObject;
+};
+
+static int evaluateIdx = -1;
+
+QmlAbstractBoundSignal::QmlAbstractBoundSignal(QObject *parent)
+: QObject(parent)
+{
+}
+
+QmlAbstractBoundSignal::~QmlAbstractBoundSignal()
+{
+}
+
+QmlBoundSignal::QmlBoundSignal(QObject *scope, const QMetaMethod &signal,
+ QObject *parent)
+: m_expression(0), m_idx(signal.methodIndex()), m_params(0)
+{
+ // A cached evaluation of the QmlExpression::value() slot index.
+ //
+ // This is thread safe. Although it may be updated by two threads, they
+ // will both set it to the same value - so the worst thing that can happen
+ // is that they both do the work to figure it out. Boo hoo.
+ if (evaluateIdx == -1) evaluateIdx = metaObject()->methodCount();
+
+ QFx_setParent_noEvent(this, parent);
+ QMetaObject::connect(scope, m_idx, this, evaluateIdx);
+
+ if (!signal.parameterTypes().isEmpty())
+ m_params = new QmlBoundSignalParameters(signal, this);
+}
+
+QmlBoundSignal::QmlBoundSignal(QmlContext *ctxt, const QString &val,
+ QObject *scope, const QMetaMethod &signal,
+ QObject *parent)
+: m_expression(0), m_idx(signal.methodIndex()), m_params(0)
{
// A cached evaluation of the QmlExpression::value() slot index.
//
// This is thread safe. Although it may be updated by two threads, they
// will both set it to the same value - so the worst thing that can happen
// is that they both do the work to figure it out. Boo hoo.
- if (evaluateIdx == -1) evaluateIdx = QmlExpression::staticMetaObject.indexOfMethod("value()");
+ if (evaluateIdx == -1) evaluateIdx = metaObject()->methodCount();
- setTrackChange(false);
QFx_setParent_noEvent(this, parent);
- QMetaObject::connect(me, _idx, this, evaluateIdx);
+ QMetaObject::connect(scope, m_idx, this, evaluateIdx);
+
+ m_expression = new QmlExpression(ctxt, val, scope);
+ m_expression->setTrackChange(false);
+
+ if (!signal.parameterTypes().isEmpty())
+ m_params = new QmlBoundSignalParameters(signal, this);
}
-QmlBoundSignalProxy::QmlBoundSignalProxy(QmlContext *ctxt, const QString &val, QObject *me, int idx, QObject *parent)
-: QmlBoundSignal(ctxt, val, me, idx, parent)
+QmlBoundSignal::~QmlBoundSignal()
{
- QMetaMethod signal = me->metaObject()->method(idx);
+ delete m_expression;
+ m_expression = 0;
+}
- params = new QmlBoundSignalParameters(signal, this);
+int QmlBoundSignal::index() const
+{
+ return m_idx;
+}
- ctxt->d_func()->addDefaultObject(params, QmlContextPrivate::HighPriority);
+/*!
+ Returns the signal expression.
+*/
+QmlExpression *QmlBoundSignal::expression() const
+{
+ return m_expression;
+}
+
+/*!
+ Sets the signal expression to \a e. Returns the current signal expression,
+ or null if there is no signal expression.
+
+ The QmlBoundSignal instance takes ownership of \a e. The caller is
+ assumes ownership of the returned QmlExpression.
+*/
+QmlExpression *QmlBoundSignal::setExpression(QmlExpression *e)
+{
+ QmlExpression *rv = m_expression;
+ m_expression = e;
+ if (m_expression) m_expression->setTrackChange(false);
+ return rv;
}
-int QmlBoundSignalProxy::qt_metacall(QMetaObject::Call c, int id, void **a)
+QmlBoundSignal *QmlBoundSignal::cast(QObject *o)
+{
+ QmlAbstractBoundSignal *s = qobject_cast<QmlAbstractBoundSignal*>(o);
+ return static_cast<QmlBoundSignal *>(s);
+}
+
+int QmlBoundSignal::qt_metacall(QMetaObject::Call c, int id, void **a)
{
if (c == QMetaObject::InvokeMetaMethod && id == evaluateIdx) {
- params->setValues(a);
- value();
- params->clearValues();
+ if (m_params) m_params->setValues(a);
+ if (m_expression)
+ QmlExpressionPrivate::get(m_expression)->value(m_params);
+ if (m_params) m_params->clearValues();
return -1;
} else {
- return QmlBoundSignal::qt_metacall(c, id, a);
+ return QObject::qt_metacall(c, id, a);
}
}
@@ -157,3 +252,5 @@ int QmlBoundSignalParameters::metaCall(QMetaObject::Call c, int id, void **a)
}
QT_END_NAMESPACE
+
+#include "qmlboundsignal.moc"
diff --git a/src/declarative/qml/qmlboundsignal_p.h b/src/declarative/qml/qmlboundsignal_p.h
index de8f91d..51c7155 100644
--- a/src/declarative/qml/qmlboundsignal_p.h
+++ b/src/declarative/qml/qmlboundsignal_p.h
@@ -58,56 +58,37 @@
QT_BEGIN_NAMESPACE
-class QmlBoundSignal : public QmlExpression
+class QmlAbstractBoundSignal : public QObject
{
-Q_OBJECT
+ Q_OBJECT
public:
- QmlBoundSignal(QmlContext *, const QString &, QObject *me, int idx, QObject *parent);
-
- int index() const { return _idx; }
-protected:
- static int evaluateIdx;
-private:
- int _idx;
+ QmlAbstractBoundSignal(QObject *parent = 0);
+ virtual ~QmlAbstractBoundSignal() = 0;
};
-class QmlBoundSignalParameters : public QObject
+class QmlBoundSignalParameters;
+class QmlBoundSignal : public QmlAbstractBoundSignal
{
-Q_OBJECT
public:
- QmlBoundSignalParameters(const QMetaMethod &, QObject * = 0);
- ~QmlBoundSignalParameters();
-
- void setValues(void **);
- void clearValues();
-
-private:
- friend class MetaObject;
- int metaCall(QMetaObject::Call, int _id, void **);
- struct MetaObject : public QAbstractDynamicMetaObject {
- MetaObject(QmlBoundSignalParameters *b)
- : parent(b) {}
+ QmlBoundSignal(QObject *scope, const QMetaMethod &signal, QObject *parent);
+ QmlBoundSignal(QmlContext *ctxt, const QString &val, QObject *scope,
+ const QMetaMethod &signal, QObject *parent);
+ virtual ~QmlBoundSignal();
- int metaCall(QMetaObject::Call c, int id, void **a) {
- return parent->metaCall(c, id, a);
- }
- QmlBoundSignalParameters *parent;
- };
+ int index() const;
- int *types;
- void **values;
- QMetaObject *myMetaObject;
-};
+ QmlExpression *expression() const;
+ QmlExpression *setExpression(QmlExpression *);
-class QmlBoundSignalProxy : public QmlBoundSignal
-{
-public:
- QmlBoundSignalProxy(QmlContext *, const QString &, QObject *me, int idx, QObject *parent);
+ static QmlBoundSignal *cast(QObject *);
protected:
virtual int qt_metacall(QMetaObject::Call c, int id, void **a);
+
private:
- QmlBoundSignalParameters *params;
+ QmlExpression *m_expression;
+ int m_idx;
+ QmlBoundSignalParameters *m_params;
};
QT_END_NAMESPACE
diff --git a/src/declarative/qml/qmlcompiler.cpp b/src/declarative/qml/qmlcompiler.cpp
index f02dad5..053c6f8 100644
--- a/src/declarative/qml/qmlcompiler.cpp
+++ b/src/declarative/qml/qmlcompiler.cpp
@@ -53,6 +53,7 @@
#include <QPointF>
#include <QSizeF>
#include <QRectF>
+#include <QAtomicInt>
#include <private/qmlstringconverters_p.h>
#include <private/qmlengine_p.h>
#include <qmlengine.h>
@@ -644,11 +645,12 @@ void QmlCompiler::compileTree(Object *tree)
output->imports = unit->imports;
- if (tree->metatype)
+ if (tree->metatype) {
static_cast<QMetaObject &>(output->root) = *tree->metaObject();
- else
+ QmlEnginePrivate::get(engine)->registerCompositeType(output);
+ } else {
static_cast<QMetaObject &>(output->root) = *output->types.at(tree->type).metaObject();
-
+ }
}
bool QmlCompiler::buildObject(Object *obj, const BindingContext &ctxt)
@@ -1260,7 +1262,7 @@ bool QmlCompiler::buildProperty(QmlParser::Property *prop,
COMPILE_CHECK(buildGroupedProperty(prop, obj, ctxt));
- } else if (QmlMetaType::isQmlList(prop->type) ||
+ } else if (QmlEnginePrivate::get(engine)->isQmlList(prop->type) ||
QmlMetaType::isList(prop->type)) {
COMPILE_CHECK(buildListProperty(prop, obj, ctxt));
@@ -1306,12 +1308,15 @@ QmlCompiler::buildPropertyInNamespace(QmlEnginePrivate::ImportedNamespace *ns,
COMPILE_CHECK(buildAttachedProperty(prop, obj, ctxt));
}
+
+ return true;
}
void QmlCompiler::genValueProperty(QmlParser::Property *prop,
QmlParser::Object *obj)
{
- if (QmlMetaType::isQmlList(prop->type) || QmlMetaType::isList(prop->type)) {
+ if (QmlEnginePrivate::get(engine)->isQmlList(prop->type) ||
+ QmlMetaType::isList(prop->type)) {
genListProperty(prop, obj);
} else {
genPropertyAssignment(prop, obj);
@@ -1325,10 +1330,10 @@ void QmlCompiler::genListProperty(QmlParser::Property *prop,
QmlInstruction::Type storeType;
int listType;
- if (QmlMetaType::isQmlList(prop->type)) {
+ if (QmlEnginePrivate::get(engine)->isQmlList(prop->type)) {
fetchType = QmlInstruction::FetchQmlList;
storeType = QmlInstruction::StoreObjectQmlList;
- listType = QmlMetaType::qmlListType(prop->type);
+ listType = QmlEnginePrivate::get(engine)->qmlListType(prop->type);
} else {
fetchType = QmlInstruction::FetchQList;
storeType = QmlInstruction::StoreObjectQList;
@@ -1541,7 +1546,7 @@ bool QmlCompiler::buildGroupedProperty(QmlParser::Property *prop,
Q_ASSERT(prop->type != 0);
Q_ASSERT(prop->index != -1);
- if (prop->type < QVariant::UserType) {
+ if (prop->type < (int)QVariant::UserType) {
QmlEnginePrivate *ep =
static_cast<QmlEnginePrivate *>(QObjectPrivate::get(engine));
if (ep->valueTypes[prop->type]) {
@@ -1554,7 +1559,8 @@ bool QmlCompiler::buildGroupedProperty(QmlParser::Property *prop,
} else {
// Load the nested property's meta type
- prop->value->metatype = QmlMetaType::metaObjectForType(prop->type);
+ prop->value->metatype =
+ QmlEnginePrivate::get(engine)->metaObjectForType(prop->type);
if (!prop->value->metatype)
COMPILE_EXCEPTION(prop, "Cannot nest non-QObject property" <<
prop->name);
@@ -1627,14 +1633,14 @@ bool QmlCompiler::buildListProperty(QmlParser::Property *prop,
const BindingContext &ctxt)
{
Q_ASSERT(QmlMetaType::isList(prop->type) ||
- QmlMetaType::isQmlList(prop->type));
+ QmlEnginePrivate::get(engine)->isQmlList(prop->type));
int t = prop->type;
obj->addValueProperty(prop);
- if (QmlMetaType::isQmlList(t)) {
- int listType = QmlMetaType::qmlListType(t);
+ if (QmlEnginePrivate::get(engine)->isQmlList(t)) {
+ int listType = QmlEnginePrivate::get(engine)->qmlListType(t);
bool listTypeIsInterface = QmlMetaType::isInterface(listType);
for (int ii = 0; ii < prop->values.count(); ++ii) {
@@ -1768,7 +1774,7 @@ bool QmlCompiler::buildPropertyObjectAssignment(QmlParser::Property *prop,
// actual property type before we applied any extensions that might
// effect the properties on the type, but don't effect assignability
const QMetaObject *propertyMetaObject =
- QmlMetaType::rawMetaObjectForType(prop->type);
+ QmlEnginePrivate::get(engine)->rawMetaObjectForType(prop->type);
// Will be true if the assgned type inherits propertyMetaObject
bool isAssignable = false;
@@ -1902,8 +1908,13 @@ bool QmlCompiler::mergeDynamicMetaProperties(QmlParser::Object *obj)
return true;
}
+static QAtomicInt classIndexCounter;
+
bool QmlCompiler::buildDynamicMeta(QmlParser::Object *obj, DynamicMetaMode mode)
{
+ Q_ASSERT(obj);
+ Q_ASSERT(obj->metatype);
+
if (obj->dynamicProperties.isEmpty() &&
obj->dynamicSignals.isEmpty() &&
obj->dynamicSlots.isEmpty())
@@ -1913,9 +1924,13 @@ bool QmlCompiler::buildDynamicMeta(QmlParser::Object *obj, DynamicMetaMode mode)
QByteArray dynamicData(sizeof(QmlVMEMetaData), (char)0);
+ QByteArray newClassName = obj->metatype->className();
+ newClassName.append("_QML_");
+ int idx = classIndexCounter.fetchAndAddRelaxed(1);
+ newClassName.append(QByteArray::number(idx));
+
QMetaObjectBuilder builder;
- if (obj->metatype)
- builder.setClassName(QByteArray(obj->metatype->className()) + "_QML");
+ builder.setClassName(newClassName);
builder.setFlags(QMetaObjectBuilder::DynamicMetaObject);
bool hasAlias = false;
@@ -1937,11 +1952,46 @@ bool QmlCompiler::buildDynamicMeta(QmlParser::Object *obj, DynamicMetaMode mode)
QByteArray type;
int propertyType = 0;
+ bool readonly = false;
switch(p.type) {
case Object::DynamicProperty::Alias:
hasAlias = true;
continue;
break;
+ case Object::DynamicProperty::CustomList:
+ case Object::DynamicProperty::Custom:
+ {
+ QByteArray customTypeName;
+ QmlType *qmltype = 0;
+ QUrl url;
+ QmlEnginePrivate *priv = QmlEnginePrivate::get(engine);
+ if (!priv->resolveType(unit->imports, p.customType, &qmltype,
+ &url, 0, 0, 0))
+ COMPILE_EXCEPTION(&p, "Invalid property type");
+
+ if (!qmltype) {
+ QmlCompositeTypeData *tdata = priv->typeManager.get(url);
+ Q_ASSERT(tdata);
+ Q_ASSERT(tdata->status == QmlCompositeTypeData::Complete);
+
+ QmlCompiledData *data = tdata->toCompiledComponent(engine);
+ customTypeName = data->root.className();
+ } else {
+ customTypeName = qmltype->typeName();
+ }
+
+ if (p.type == Object::DynamicProperty::Custom) {
+ type = customTypeName + "*";
+ propertyType = QMetaType::QObjectStar;
+ } else {
+ readonly = true;
+ type = "QmlList<";
+ type.append(customTypeName);
+ type.append("*>*");
+ propertyType = qMetaTypeId<QmlList<QObject*>* >();
+ }
+ }
+ break;
case Object::DynamicProperty::Variant:
propertyType = -1;
type = "QVariant";
@@ -1981,7 +2031,10 @@ bool QmlCompiler::buildDynamicMeta(QmlParser::Object *obj, DynamicMetaMode mode)
dynamicData.append((char *)&propertyData, sizeof(propertyData));
builder.addSignal(p.name + "Changed()");
- builder.addProperty(p.name, type, ii).setScriptable(true);
+ QMetaPropertyBuilder propBuilder =
+ builder.addProperty(p.name, type, ii);
+ propBuilder.setScriptable(true);
+ propBuilder.setWritable(!readonly);
}
if (mode == ResolveAliases) {
@@ -2251,7 +2304,8 @@ bool QmlCompiler::completeComponentBuild()
*/
bool QmlCompiler::canCoerce(int to, QmlParser::Object *from)
{
- const QMetaObject *toMo = QmlMetaType::rawMetaObjectForType(to);
+ const QMetaObject *toMo =
+ QmlEnginePrivate::get(engine)->rawMetaObjectForType(to);
const QMetaObject *fromMo = from->metaObject();
while (fromMo) {
@@ -2268,8 +2322,10 @@ bool QmlCompiler::canCoerce(int to, QmlParser::Object *from)
*/
bool QmlCompiler::canCoerce(int to, int from)
{
- const QMetaObject *toMo = QmlMetaType::rawMetaObjectForType(to);
- const QMetaObject *fromMo = QmlMetaType::rawMetaObjectForType(from);
+ const QMetaObject *toMo =
+ QmlEnginePrivate::get(engine)->rawMetaObjectForType(to);
+ const QMetaObject *fromMo =
+ QmlEnginePrivate::get(engine)->rawMetaObjectForType(from);
while (fromMo) {
if (fromMo == toMo)
diff --git a/src/declarative/qml/qmlcompiler_p.h b/src/declarative/qml/qmlcompiler_p.h
index 83c415c..7f5e98f 100644
--- a/src/declarative/qml/qmlcompiler_p.h
+++ b/src/declarative/qml/qmlcompiler_p.h
@@ -231,9 +231,9 @@ private:
int componentTypeRef();
static int findSignalByName(const QMetaObject *, const QByteArray &name);
- static bool canCoerce(int to, QmlParser::Object *from);
- static bool canCoerce(int to, int from);
static QmlType *toQmlType(QmlParser::Object *from);
+ bool canCoerce(int to, QmlParser::Object *from);
+ bool canCoerce(int to, int from);
QStringList deferredProperties(QmlParser::Object *);
diff --git a/src/declarative/qml/qmldom.cpp b/src/declarative/qml/qmldom.cpp
index 9e12485..ce1bb93 100644
--- a/src/declarative/qml/qmldom.cpp
+++ b/src/declarative/qml/qmldom.cpp
@@ -151,7 +151,7 @@ bool QmlDomDocument::load(QmlEngine *engine, const QByteArray &data, const QUrl
d->errors.clear();
d->imports.clear();
- QmlCompiledData component;
+ QmlCompiledData *component = new QmlCompiledData;
QmlCompiler compiler;
QmlCompositeTypeData *td = ((QmlEnginePrivate *)QmlEnginePrivate::get(engine))->typeManager.getImmediate(data, url);
@@ -159,20 +159,23 @@ bool QmlDomDocument::load(QmlEngine *engine, const QByteArray &data, const QUrl
if(td->status == QmlCompositeTypeData::Error) {
d->errors = td->errors;
td->release();
+ component->release();
return false;
} else if(td->status == QmlCompositeTypeData::Waiting) {
QmlError error;
error.setDescription(QLatin1String("QmlDomDocument supports local types only"));
d->errors << error;
td->release();
+ component->release();
return false;
}
- compiler.compile(engine, td, &component);
+ compiler.compile(engine, td, component);
if (compiler.isError()) {
d->errors = compiler.errors();
td->release();
+ component->release();
return false;
}
@@ -196,6 +199,7 @@ bool QmlDomDocument::load(QmlEngine *engine, const QByteArray &data, const QUrl
d->root->addref();
}
+ component->release();
return true;
}
diff --git a/src/declarative/qml/qmlengine.cpp b/src/declarative/qml/qmlengine.cpp
index c6edbe2..4be5230 100644
--- a/src/declarative/qml/qmlengine.cpp
+++ b/src/declarative/qml/qmlengine.cpp
@@ -209,6 +209,8 @@ QmlEnginePrivate::~QmlEnginePrivate()
clear(bindValues[ii]);
for(int ii = 0; ii < parserStatus.count(); ++ii)
clear(parserStatus[ii]);
+ for(QHash<int, QmlCompiledData*>::ConstIterator iter = m_compositeTypes.constBegin(); iter != m_compositeTypes.constEnd(); ++iter)
+ (*iter)->release();
}
void QmlEnginePrivate::clear(SimpleList<QmlAbstractBinding> &bvs)
@@ -1519,8 +1521,9 @@ public:
bool found = false;
foreach (QString p, importPath) {
QString dir = p+QLatin1Char('/')+url;
- if (QFile::exists(dir+QLatin1String("/qmldir"))) {
- url = QLatin1String("file://")+dir;
+ QFileInfo fi(dir+QLatin1String("/qmldir"));
+ if (fi.isFile()) {
+ url = QUrl::fromLocalFile(fi.absolutePath()).toString();
found = true;
break;
}
@@ -1747,4 +1750,75 @@ void QmlEnginePrivate::resolveTypeInNamespace(ImportedNamespace* ns, const QByte
ns->find(type,vmaj,vmin,type_return,url_return);
}
+static void voidptr_destructor(void *v)
+{
+ void **ptr = (void **)v;
+ delete ptr;
+}
+
+static void *voidptr_constructor(const void *v)
+{
+ if (!v) {
+ return new void*;
+ } else {
+ return new void*(*(void **)v);
+ }
+}
+
+void QmlEnginePrivate::registerCompositeType(QmlCompiledData *data)
+{
+ QByteArray name = data->root.className();
+
+ QByteArray ptr = name + "*";
+ QByteArray lst = "QmlList<" + ptr + ">*";
+
+ int ptr_type = QMetaType::registerType(ptr.constData(), voidptr_destructor,
+ voidptr_constructor);
+ int lst_type = QMetaType::registerType(lst.constData(), voidptr_destructor,
+ voidptr_constructor);
+
+ m_qmlLists.insert(lst_type, ptr_type);
+ m_compositeTypes.insert(ptr_type, data);
+ data->addref();
+}
+
+bool QmlEnginePrivate::isQmlList(int t) const
+{
+ return m_qmlLists.contains(t) || QmlMetaType::isQmlList(t);
+}
+
+bool QmlEnginePrivate::isObject(int t)
+{
+ return m_compositeTypes.contains(t) || QmlMetaType::isObject(t);
+}
+
+int QmlEnginePrivate::qmlListType(int t) const
+{
+ QHash<int, int>::ConstIterator iter = m_qmlLists.find(t);
+ if (iter != m_qmlLists.end())
+ return *iter;
+ else
+ return QmlMetaType::qmlListType(t);
+}
+
+const QMetaObject *QmlEnginePrivate::rawMetaObjectForType(int t) const
+{
+ QHash<int, QmlCompiledData*>::ConstIterator iter = m_compositeTypes.find(t);
+ if (iter != m_compositeTypes.end()) {
+ return &(*iter)->root;
+ } else {
+ return QmlMetaType::rawMetaObjectForType(t);
+ }
+}
+
+const QMetaObject *QmlEnginePrivate::metaObjectForType(int t) const
+{
+ QHash<int, QmlCompiledData*>::ConstIterator iter = m_compositeTypes.find(t);
+ if (iter != m_compositeTypes.end()) {
+ return &(*iter)->root;
+ } else {
+ return QmlMetaType::metaObjectForType(t);
+ }
+}
+
QT_END_NAMESPACE
diff --git a/src/declarative/qml/qmlengine_p.h b/src/declarative/qml/qmlengine_p.h
index cca8355..74e24d4 100644
--- a/src/declarative/qml/qmlengine_p.h
+++ b/src/declarative/qml/qmlengine_p.h
@@ -242,6 +242,15 @@ public:
int *version_major, int *version_minor ) const;
+ void registerCompositeType(QmlCompiledData *);
+ bool isQmlList(int) const;
+ bool isObject(int);
+ int qmlListType(int) const;
+ const QMetaObject *rawMetaObjectForType(int) const;
+ const QMetaObject *metaObjectForType(int) const;
+ QHash<int, int> m_qmlLists;
+ QHash<int, QmlCompiledData *> m_compositeTypes;
+
static QScriptValue qmlScriptObject(QObject*, QmlEngine*);
static QScriptValue createComponent(QScriptContext*, QScriptEngine*);
static QScriptValue createQmlObject(QScriptContext*, QScriptEngine*);
diff --git a/src/declarative/qml/qmlenginedebug.cpp b/src/declarative/qml/qmlenginedebug.cpp
index 7f9e530..a53ab2a 100644
--- a/src/declarative/qml/qmlenginedebug.cpp
+++ b/src/declarative/qml/qmlenginedebug.cpp
@@ -104,11 +104,7 @@ QmlEngineDebugServer::propertyData(QObject *obj, int propIdx)
if (prop.type() < QVariant::UserType) {
rv.type = QmlObjectProperty::Basic;
- if (qobject_cast<QmlBoundSignalParameters*>(obj) && prop.name() != QByteArray("objectName"))
- // these "properties" only have meaning during signal emission
- rv.value = tr("(signal parameter)");
- else
- rv.value = prop.read(obj);
+ rv.value = prop.read(obj);
} else if (QmlMetaType::isObject(prop.userType())) {
rv.type = QmlObjectProperty::Object;
} else if (QmlMetaType::isList(prop.userType()) ||
diff --git a/src/declarative/qml/qmlexpression.cpp b/src/declarative/qml/qmlexpression.cpp
index 845dcf6..db9d39f 100644
--- a/src/declarative/qml/qmlexpression.cpp
+++ b/src/declarative/qml/qmlexpression.cpp
@@ -212,7 +212,7 @@ QVariant QmlExpressionPrivate::evalSSE()
return rv;
}
-QVariant QmlExpressionPrivate::evalQtScript()
+QVariant QmlExpressionPrivate::evalQtScript(QObject *secondaryScope)
{
#ifdef Q_ENABLE_PERFORMANCE_LOG
QFxPerfTimer<QFxPerf::BindValueQt> perfqt;
@@ -223,6 +223,9 @@ QVariant QmlExpressionPrivate::evalQtScript()
if (me)
ctxtPriv->defaultObjects.insert(ctxtPriv->highPriorityCount, me);
+ if (secondaryScope)
+ ctxtPriv->defaultObjects.insert(ctxtPriv->highPriorityCount,
+ secondaryScope);
QScriptEngine *scriptEngine = QmlEnginePrivate::getScriptEngine(engine);
@@ -263,6 +266,8 @@ QVariant QmlExpressionPrivate::evalQtScript()
if (me)
ctxtPriv->defaultObjects.removeAt(ctxtPriv->highPriorityCount);
+ if (secondaryScope)
+ ctxtPriv->defaultObjects.removeAt(ctxtPriv->highPriorityCount);
QVariant rv;
@@ -306,42 +311,38 @@ QVariant QmlExpressionPrivate::evalQtScript()
return rv;
}
-/*!
- Returns the value of the expression, or an invalid QVariant if the
- expression is invalid or has an error.
-*/
-QVariant QmlExpression::value()
+QVariant QmlExpressionPrivate::value(QObject *secondaryScope)
{
- Q_D(QmlExpression);
+ Q_Q(QmlExpression);
QVariant rv;
- if (!engine() || (!d->sse.isValid() && d->expression.isEmpty()))
+ if (!q->engine() || (!sse.isValid() && expression.isEmpty()))
return rv;
#ifdef Q_ENABLE_PERFORMANCE_LOG
QFxPerfTimer<QFxPerf::BindValue> perf;
#endif
- QmlEnginePrivate *ep = QmlEnginePrivate::get(engine());
+ QmlEnginePrivate *ep = QmlEnginePrivate::get(q->engine());
QmlExpression *lastCurrentExpression = ep->currentExpression;
QPODVector<QmlEnginePrivate::CapturedProperty> lastCapturedProperties;
ep->capturedProperties.copyAndClear(lastCapturedProperties);
- ep->currentExpression = this;
+ ep->currentExpression = q;
- if (d->sse.isValid()) {
- rv = d->evalSSE();
+ if (sse.isValid()) {
+ rv = evalSSE();
} else {
- rv = d->evalQtScript();
+ rv = evalQtScript(secondaryScope);
}
ep->currentExpression = lastCurrentExpression;
- if ((!trackChange() || !ep->capturedProperties.count()) && d->guardList) {
- d->clearGuards();
- } else if(trackChange()) {
- d->updateGuards(ep->capturedProperties);
+ if ((!q->trackChange() || !ep->capturedProperties.count()) && guardList) {
+ clearGuards();
+ } else if(q->trackChange()) {
+ updateGuards(ep->capturedProperties);
}
lastCapturedProperties.copyAndClear(ep->capturedProperties);
@@ -350,6 +351,16 @@ QVariant QmlExpression::value()
}
/*!
+ Returns the value of the expression, or an invalid QVariant if the
+ expression is invalid or has an error.
+*/
+QVariant QmlExpression::value()
+{
+ Q_D(QmlExpression);
+ return d->value();
+}
+
+/*!
Returns true if the expression results in a constant value.
QmlExpression::value() must have been invoked at least once before the
return from this method is valid.
diff --git a/src/declarative/qml/qmlexpression_p.h b/src/declarative/qml/qmlexpression_p.h
index 997bf8d..501e5d8 100644
--- a/src/declarative/qml/qmlexpression_p.h
+++ b/src/declarative/qml/qmlexpression_p.h
@@ -93,6 +93,7 @@ public:
PreTransformedQtScriptData = 2
};
+
void init(QmlContext *, const QString &, QObject *);
void init(QmlContext *, void *, QmlRefCount *, QObject *);
@@ -108,8 +109,9 @@ public:
QString fileName;
int line;
+ QVariant value(QObject *secondaryScope = 0);
QVariant evalSSE();
- QVariant evalQtScript();
+ QVariant evalQtScript(QObject *secondaryScope);
struct SignalGuard : public QGuard<QObject> {
SignalGuard() : isDuplicate(false), notifyIndex(-1) {}
@@ -132,6 +134,10 @@ public:
int guardListLength;
void updateGuards(const QPODVector<QmlEnginePrivate::CapturedProperty> &properties);
void clearGuards();
+
+ static QmlExpressionPrivate *get(QmlExpression *expr) {
+ return static_cast<QmlExpressionPrivate *>(QObjectPrivate::get(expr));
+ }
};
QT_END_NAMESPACE
diff --git a/src/declarative/qml/qmlmetaproperty.cpp b/src/declarative/qml/qmlmetaproperty.cpp
index 792b098..8f76240 100644
--- a/src/declarative/qml/qmlmetaproperty.cpp
+++ b/src/declarative/qml/qmlmetaproperty.cpp
@@ -547,6 +547,9 @@ QmlAbstractBinding *QmlMetaProperty::binding() const
\a newBinding will be enabled, and the returned binding (if any) will be
disabled.
+
+ Ownership of \a newBinding transfers to QML. Ownership of the return value
+ is assumed by the caller.
*/
QmlAbstractBinding *
QmlMetaProperty::setBinding(QmlAbstractBinding *newBinding) const
@@ -577,6 +580,59 @@ QmlMetaProperty::setBinding(QmlAbstractBinding *newBinding) const
return 0;
}
+/*!
+ Returns the expression associated with this signal property, or 0 if no
+ signal expression exists.
+*/
+QmlExpression *QmlMetaProperty::signalExpression() const
+{
+ if (!(type() & SignalProperty))
+ return 0;
+
+ const QObjectList &children = d->object->children();
+
+ for (int ii = 0; ii < children.count(); ++ii) {
+ QObject *child = children.at(ii);
+
+ QmlBoundSignal *signal = QmlBoundSignal::cast(child);
+ if (signal && signal->index() == coreIndex())
+ return signal->expression();
+ }
+
+ return 0;
+}
+
+/*!
+ Set the signal expression associated with this signal property to \a expr.
+ Returns the existing signal expression (if any), otherwise 0.
+
+ Ownership of \a expr transfers to QML. Ownership of the return value is
+ assumed by the caller.
+*/
+QmlExpression *QmlMetaProperty::setSignalExpression(QmlExpression *expr) const
+{
+ if (!(type() & SignalProperty))
+ return 0;
+
+ const QObjectList &children = d->object->children();
+
+ for (int ii = 0; ii < children.count(); ++ii) {
+ QObject *child = children.at(ii);
+
+ QmlBoundSignal *signal = QmlBoundSignal::cast(child);
+ if (signal && signal->index() == coreIndex())
+ return signal->setExpression(expr);
+ }
+
+ if (expr) {
+ QmlBoundSignal *signal = new QmlBoundSignal(d->object, d->signal,
+ d->object);
+ return signal->setExpression(expr);
+ } else {
+ return 0;
+ }
+}
+
void QmlMetaPropertyPrivate::findSignalInt(QObject *obj, const QString &name)
{
const QMetaObject *mo = obj->metaObject();
@@ -617,9 +673,9 @@ QVariant QmlMetaProperty::read() const
const QObjectList &children = object()->children();
for (int ii = 0; ii < children.count(); ++ii) {
- QmlBoundSignal *sig = qobject_cast<QmlBoundSignal *>(children.at(ii));
+ QmlBoundSignal *sig = QmlBoundSignal::cast(children.at(ii));
if (sig && sig->index() == d->coreIdx)
- return sig->expression();
+ return sig->expression()->expression();
}
} else if (type() & Property) {
if (type() & Attached) {
@@ -653,13 +709,13 @@ void QmlMetaPropertyPrivate::writeSignalProperty(const QVariant &value)
const QObjectList &children = object->children();
for (int ii = 0; ii < children.count(); ++ii) {
- QmlBoundSignal *sig = qobject_cast<QmlBoundSignal *>(children.at(ii));
+ QmlBoundSignal *sig = QmlBoundSignal::cast(children.at(ii));
if (sig && sig->index() == coreIdx) {
if (expr.isEmpty()) {
sig->disconnect();
sig->deleteLater();
} else {
- sig->setExpression(expr);
+ sig->expression()->setExpression(expr);
}
return;
}
@@ -667,7 +723,7 @@ void QmlMetaPropertyPrivate::writeSignalProperty(const QVariant &value)
if (!expr.isEmpty()) {
// XXX scope
- (void *)new QmlBoundSignal(qmlContext(object), expr, object, coreIdx, object);
+ (void *)new QmlBoundSignal(qmlContext(object), expr, object, signal, object);
}
}
diff --git a/src/declarative/qml/qmlmetaproperty.h b/src/declarative/qml/qmlmetaproperty.h
index 7b9ff47..62e93c4 100644
--- a/src/declarative/qml/qmlmetaproperty.h
+++ b/src/declarative/qml/qmlmetaproperty.h
@@ -53,6 +53,7 @@ QT_MODULE(Declarative)
class QObject;
class QmlAbstractBinding;
+class QmlExpression;
class QStringList;
class QVariant;
struct QMetaObject;
@@ -125,6 +126,9 @@ public:
QmlAbstractBinding *binding() const;
QmlAbstractBinding *setBinding(QmlAbstractBinding *) const;
+ QmlExpression *signalExpression() const;
+ QmlExpression *setSignalExpression(QmlExpression *) const;
+
static QmlMetaProperty createProperty(QObject *, const QString &);
int coreIndex() const;
diff --git a/src/declarative/qml/qmlparser.cpp b/src/declarative/qml/qmlparser.cpp
index e102f05..40cdd11 100644
--- a/src/declarative/qml/qmlparser.cpp
+++ b/src/declarative/qml/qmlparser.cpp
@@ -153,6 +153,7 @@ QmlParser::Object::DynamicProperty::DynamicProperty()
QmlParser::Object::DynamicProperty::DynamicProperty(const DynamicProperty &o)
: isDefaultProperty(o.isDefaultProperty),
type(o.type),
+ customType(o.customType),
name(o.name),
defaultValue(o.defaultValue),
location(o.location)
diff --git a/src/declarative/qml/qmlparser_p.h b/src/declarative/qml/qmlparser_p.h
index 8a92a9f..65223f4 100644
--- a/src/declarative/qml/qmlparser_p.h
+++ b/src/declarative/qml/qmlparser_p.h
@@ -172,10 +172,11 @@ namespace QmlParser
DynamicProperty();
DynamicProperty(const DynamicProperty &);
- enum Type { Variant, Int, Bool, Real, String, Url, Color, Date, Alias };
+ enum Type { Variant, Int, Bool, Real, String, Url, Color, Date, Alias, Custom, CustomList };
bool isDefaultProperty;
Type type;
+ QByteArray customType;
QByteArray name;
QmlParser::Property *defaultValue;
LocationSpan location;
diff --git a/src/declarative/qml/qmlscriptparser.cpp b/src/declarative/qml/qmlscriptparser.cpp
index 136b247..09efc90 100644
--- a/src/declarative/qml/qmlscriptparser.cpp
+++ b/src/declarative/qml/qmlscriptparser.cpp
@@ -524,6 +524,32 @@ bool ProcessAST::visit(AST::UiPublicMember *node)
}
}
+ if (!typeFound && memberType.at(0).isUpper()) {
+ QString typemodifier;
+ if(node->typeModifier)
+ typemodifier = node->typeModifier->asString();
+ if (typemodifier == QString()) {
+ type = Object::DynamicProperty::Custom;
+ } else if(typemodifier == QLatin1String("list")) {
+ type = Object::DynamicProperty::CustomList;
+ } else {
+ QmlError error;
+ error.setDescription(QCoreApplication::translate("QmlParser","Invalid property type modifier"));
+ error.setLine(node->typeModifierToken.startLine);
+ error.setColumn(node->typeModifierToken.startColumn);
+ _parser->_errors << error;
+ return false;
+ }
+ typeFound = true;
+ } else if (node->typeModifier) {
+ QmlError error;
+ error.setDescription(QCoreApplication::translate("QmlParser","Unexpected property type modifier"));
+ error.setLine(node->typeModifierToken.startLine);
+ error.setColumn(node->typeModifierToken.startColumn);
+ _parser->_errors << error;
+ return false;
+ }
+
if(!typeFound) {
QmlError error;
error.setDescription(QCoreApplication::translate("QmlParser","Expected property type"));
@@ -545,6 +571,12 @@ bool ProcessAST::visit(AST::UiPublicMember *node)
Object::DynamicProperty property;
property.isDefaultProperty = node->isDefaultMember;
property.type = type;
+ if (type >= Object::DynamicProperty::Custom) {
+ QmlScriptParser::TypeReference *typeRef =
+ _parser->findOrCreateType(memberType);
+ typeRef->refObjects.append(_stateStack.top().object);
+ property.customType = memberType.toUtf8();
+ }
property.name = name.toUtf8();
property.location = location(node->firstSourceLocation(),
node->lastSourceLocation());
diff --git a/src/declarative/qml/qmlvme.cpp b/src/declarative/qml/qmlvme.cpp
index 4d133e3..d377cc3 100644
--- a/src/declarative/qml/qmlvme.cpp
+++ b/src/declarative/qml/qmlvme.cpp
@@ -537,11 +537,7 @@ QObject *QmlVME::run(QStack<QObject *> &stack, QmlContext *ctxt, QmlCompiledData
QMetaMethod signal =
target->metaObject()->method(instr.storeSignal.signalIndex);
- if (signal.parameterTypes().isEmpty()) {
- (void *)new QmlBoundSignal(ctxt, primitives.at(instr.storeSignal.value), target, instr.storeSignal.signalIndex, target);
- } else {
- (void *)new QmlBoundSignalProxy(new QmlContext(ctxt, target, true), primitives.at(instr.storeSignal.value), target, instr.storeSignal.signalIndex, target);
- }
+ (void *)new QmlBoundSignal(ctxt, primitives.at(instr.storeSignal.value), target, signal, target);
}
break;
diff --git a/src/declarative/qml/qmlvmemetaobject.cpp b/src/declarative/qml/qmlvmemetaobject.cpp
index 9ce63b1..f473743 100644
--- a/src/declarative/qml/qmlvmemetaobject.cpp
+++ b/src/declarative/qml/qmlvmemetaobject.cpp
@@ -74,11 +74,16 @@ QmlVMEMetaObject::QmlVMEMetaObject(QObject *obj,
data = new QVariant[metaData->propertyCount];
aConnected.resize(metaData->aliasCount);
+ int list_type = qMetaTypeId<QmlList<QObject*>* >();
// ### Optimize
for (int ii = 0; ii < metaData->propertyCount; ++ii) {
int t = (metaData->propertyData() + ii)->propertyType;
- if (t != -1)
+ if (t == list_type) {
+ listProperties.append(new List(this, ii));
+ data[ii] = QVariant::fromValue((QmlList<QObject *>*)listProperties.last());
+ } else if (t != -1) {
data[ii] = QVariant((QVariant::Type)t);
+ }
}
}
@@ -88,6 +93,7 @@ QmlVMEMetaObject::~QmlVMEMetaObject()
ref->release();
if (parent)
delete parent;
+ qDeleteAll(listProperties);
delete [] data;
}
@@ -137,9 +143,15 @@ int QmlVMEMetaObject::metaCall(QMetaObject::Call c, int _id, void **a)
case QVariant::Date:
*reinterpret_cast<QDate *>(a[0]) = data[id].toDate();
break;
+ case QMetaType::QObjectStar:
+ *reinterpret_cast<QObject **>(a[0]) = data[id].value<QObject*>();
+ break;
default:
break;
}
+ if (t == qMetaTypeId<QmlList<QObject*>* >()) {
+ *reinterpret_cast<QmlList<QObject *> **>(a[0]) = data[id].value<QmlList<QObject*>*>();
+ }
} else if (c == QMetaObject::WriteProperty) {
@@ -236,4 +248,9 @@ int QmlVMEMetaObject::metaCall(QMetaObject::Call c, int _id, void **a)
return object->qt_metacall(c, _id, a);
}
+void QmlVMEMetaObject::listChanged(int id)
+{
+ activate(object, methodOffset + id, 0);
+}
+
QT_END_NAMESPACE
diff --git a/src/declarative/qml/qmlvmemetaobject_p.h b/src/declarative/qml/qmlvmemetaobject_p.h
index 931d22c..1c26241 100644
--- a/src/declarative/qml/qmlvmemetaobject_p.h
+++ b/src/declarative/qml/qmlvmemetaobject_p.h
@@ -118,13 +118,36 @@ private:
QVariant *data;
QBitArray aConnected;
-#if 0
- QList<QString> *slotData;
- int slotDataIdx;
-#endif
-
QAbstractDynamicMetaObject *parent;
+ void listChanged(int);
+ class List : public QmlConcreteList<QObject*>
+ {
+ public:
+ List(QmlVMEMetaObject *p, int propIdx)
+ : parent(p), parentProperty(propIdx) { }
+
+ virtual void append(QObject *v) {
+ QmlConcreteList<QObject*>::append(v);
+ parent->listChanged(parentProperty);
+ }
+ virtual void insert(int i, QObject *v) {
+ QmlConcreteList<QObject*>::insert(i, v);
+ parent->listChanged(parentProperty);
+ }
+ virtual void clear() {
+ QmlConcreteList<QObject*>::clear();
+ parent->listChanged(parentProperty);
+ }
+ virtual void removeAt(int i) {
+ QmlConcreteList<QObject*>::removeAt(i);
+ parent->listChanged(parentProperty);
+ }
+ private:
+ QmlVMEMetaObject *parent;
+ int parentProperty;
+ };
+ QList<List *> listProperties;
};
QT_END_NAMESPACE
diff --git a/src/declarative/util/qmlconnection.cpp b/src/declarative/util/qmlconnection.cpp
index 6dca2d1..c77d0f6 100644
--- a/src/declarative/util/qmlconnection.cpp
+++ b/src/declarative/util/qmlconnection.cpp
@@ -187,10 +187,7 @@ void QmlConnection::connectIfValid()
return;
}
- if (sigparams.isEmpty())
- d->boundsignal = new QmlBoundSignal(qmlContext(this), d->script, sender, sigIdx, this);
- else
- d->boundsignal = new QmlBoundSignalProxy(new QmlContext(qmlContext(this),this), d->script, sender, sigIdx, this);
+ d->boundsignal = new QmlBoundSignal(qmlContext(this), d->script, sender, mo->method(sigIdx), this);
}
}
@@ -238,7 +235,7 @@ void QmlConnection::setScript(const QString& script)
} else {
// must exist - update
d->script = script;
- d->boundsignal->setExpression(script);
+ d->boundsignal->expression()->setExpression(script);
}
} else {
d->script = script;
diff --git a/src/declarative/util/qmllistaccessor.cpp b/src/declarative/util/qmllistaccessor.cpp
index 1228952..ef21ebf 100644
--- a/src/declarative/util/qmllistaccessor.cpp
+++ b/src/declarative/util/qmllistaccessor.cpp
@@ -44,6 +44,9 @@
#include <qmlmetatype.h>
#include <QtCore/qdebug.h>
+// ### Remove me
+#include <private/qmlengine_p.h>
+
QT_BEGIN_NAMESPACE
QmlListAccessor::QmlListAccessor()
@@ -60,10 +63,12 @@ QVariant QmlListAccessor::list() const
return d;
}
-void QmlListAccessor::setList(const QVariant &v)
+void QmlListAccessor::setList(const QVariant &v, QmlEngine *engine)
{
d = v;
+ QmlEnginePrivate *enginePrivate = engine?QmlEnginePrivate::get(engine):0;
+
if (!d.isValid()) {
m_type = Invalid;
} else if (d.type() == QVariant::StringList) {
@@ -75,12 +80,14 @@ void QmlListAccessor::setList(const QVariant &v)
m_type = Integer;
} else if (d.type() != QVariant::UserType) {
m_type = Instance;
- } else if (QmlMetaType::isObject(d.userType())) {
+ } else if ((!enginePrivate && QmlMetaType::isObject(d.userType())) ||
+ (enginePrivate && enginePrivate->isObject(d.userType()))) {
QObject *data = 0;
data = *(QObject **)v.constData();
d = QVariant::fromValue(data);
m_type = Instance;
- } else if (QmlMetaType::isQmlList(d.userType())) {
+ } else if ((!enginePrivate && QmlMetaType::isQmlList(d.userType())) ||
+ (enginePrivate && enginePrivate->isQmlList(d.userType()))) {
m_type = QmlList;
} else if (QmlMetaType::isList(d.userType())) {
qDebug() << "list";
diff --git a/src/declarative/util/qmllistaccessor.h b/src/declarative/util/qmllistaccessor.h
index f0d293f..c3ff632 100644
--- a/src/declarative/util/qmllistaccessor.h
+++ b/src/declarative/util/qmllistaccessor.h
@@ -50,6 +50,7 @@ QT_BEGIN_NAMESPACE
QT_MODULE(Declarative)
+class QmlEngine;
class Q_DECLARATIVE_EXPORT QmlListAccessor
{
public:
@@ -57,7 +58,7 @@ public:
virtual ~QmlListAccessor();
QVariant list() const;
- void setList(const QVariant &);
+ void setList(const QVariant &, QmlEngine * = 0);
bool isValid() const;
diff --git a/src/declarative/util/qfxview.cpp b/src/declarative/util/qmlview.cpp
index f67dc75..7cce2da 100644
--- a/src/declarative/util/qfxview.cpp
+++ b/src/declarative/util/qmlview.cpp
@@ -56,7 +56,7 @@
#include "private/qperformancelog_p.h"
#include "private/qfxperf_p.h"
-#include "qfxview.h"
+#include "qmlview.h"
#include <QtDeclarative/qmlengine.h>
#include <QtDeclarative/qmlcontext.h>
#include <QtDeclarative/qmldebug.h>
@@ -67,11 +67,11 @@ QT_BEGIN_NAMESPACE
DEFINE_BOOL_CONFIG_OPTION(frameRateDebug, QML_SHOW_FRAMERATE)
-class QFxViewDebugServer;
+class QmlViewDebugServer;
class FrameBreakAnimation : public QAbstractAnimation
{
public:
- FrameBreakAnimation(QFxViewDebugServer *s)
+ FrameBreakAnimation(QmlViewDebugServer *s)
: QAbstractAnimation((QObject*)s), server(s)
{
start();
@@ -81,13 +81,13 @@ public:
virtual void updateCurrentTime(int msecs);
private:
- QFxViewDebugServer *server;
+ QmlViewDebugServer *server;
};
-class QFxViewDebugServer : public QmlDebugService
+class QmlViewDebugServer : public QmlDebugService
{
public:
- QFxViewDebugServer(QObject *parent = 0) : QmlDebugService(QLatin1String("CanvasFrameRate"), parent), breaks(0)
+ QmlViewDebugServer(QObject *parent = 0) : QmlDebugService(QLatin1String("CanvasFrameRate"), parent), breaks(0)
{
timer.start();
new FrameBreakAnimation(this);
@@ -103,7 +103,7 @@ public:
int e = timer.elapsed();
QByteArray data;
QDataStream ds(&data, QIODevice::WriteOnly);
- ds << (int)pe << (int)pe << (int)tbf << (int)e
+ ds << (int)pe << (int)tbf << (int)e
<< (bool)isFrameBreak;
sendMessage(data);
}
@@ -115,7 +115,7 @@ private:
int breaks;
};
-Q_GLOBAL_STATIC(QFxViewDebugServer, qfxViewDebugServer);
+Q_GLOBAL_STATIC(QmlViewDebugServer, qfxViewDebugServer);
void FrameBreakAnimation::updateCurrentTime(int msecs)
{
@@ -129,13 +129,13 @@ static QVariant stringToKeySequence(const QString &str)
return QVariant::fromValue(QKeySequence(str));
}
-class QFxViewPrivate
+class QmlViewPrivate
{
public:
- QFxViewPrivate(QFxView *w)
+ QmlViewPrivate(QmlView *w)
: q(w), root(0), component(0), resizable(false) {}
- QFxView *q;
+ QmlView *q;
QFxItem *root;
QUrl source;
@@ -155,16 +155,16 @@ public:
};
/*!
- \class QFxView
- \brief The QFxView class provides a widget for displaying a Qt Declarative user interface.
+ \class QmlView
+ \brief The QmlView class provides a widget for displaying a Qt Declarative user interface.
- QFxView currently provides a minimal interface for displaying QML
+ QmlView currently provides a minimal interface for displaying QML
files, and connecting between QML and C++ Qt objects.
Typical usage:
\code
...
- QFxView *view = new QFxView(this);
+ QmlView *view = new QmlView(this);
vbox->addWidget(view);
QUrl url(fileName);
@@ -176,18 +176,18 @@ public:
*/
/*!
- \fn QFxView::QFxView(QWidget *parent)
+ \fn QmlView::QmlView(QWidget *parent)
- Constructs a QFxView with the given \a parent.
+ Constructs a QmlView with the given \a parent.
*/
-QFxView::QFxView(QWidget *parent)
-: QGraphicsView(parent), d(new QFxViewPrivate(this))
+QmlView::QmlView(QWidget *parent)
+: QGraphicsView(parent), d(new QmlViewPrivate(this))
{
setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
d->init();
}
-void QFxViewPrivate::init()
+void QmlViewPrivate::init()
{
// XXX: These need to be put in a central location for this kind of thing
QmlMetaType::registerCustomStringConverter(QVariant::KeySequence, &stringToKeySequence);
@@ -218,7 +218,7 @@ void QFxViewPrivate::init()
\sa clearItems()
*/
-QFxView::~QFxView()
+QmlView::~QmlView()
{
clearItems();
delete d; d = 0;
@@ -228,7 +228,7 @@ QFxView::~QFxView()
Sets the source to the \a url. The QML string is set to
empty.
*/
-void QFxView::setUrl(const QUrl& url)
+void QmlView::setUrl(const QUrl& url)
{
d->source = url;
d->qml = QString();
@@ -238,7 +238,7 @@ void QFxView::setUrl(const QUrl& url)
Sets the source to the URL from the \a filename, and sets
the QML string to \a qml.
*/
-void QFxView::setQml(const QString &qml, const QString &filename)
+void QmlView::setQml(const QString &qml, const QString &filename)
{
d->source = QUrl::fromLocalFile(filename);
d->qml = qml;
@@ -247,7 +247,7 @@ void QFxView::setQml(const QString &qml, const QString &filename)
/*!
Returns the QML string.
*/
-QString QFxView::qml() const
+QString QmlView::qml() const
{
return d->qml;
}
@@ -256,7 +256,7 @@ QString QFxView::qml() const
Returns a pointer to the QmlEngine used for instantiating
QML Components.
*/
-QmlEngine* QFxView::engine()
+QmlEngine* QmlView::engine()
{
return &d->engine;
}
@@ -268,7 +268,7 @@ QmlEngine* QFxView::engine()
arranged hierarchically and this hierarchy is managed by the
QmlEngine.
*/
-QmlContext* QFxView::rootContext()
+QmlContext* QmlView::rootContext()
{
return d->engine.rootContext();
}
@@ -276,7 +276,7 @@ QmlContext* QFxView::rootContext()
/*!
Displays the Qt Declarative user interface.
*/
-void QFxView::execute()
+void QmlView::execute()
{
if (d->qml.isEmpty()) {
d->component = new QmlComponent(&d->engine, d->source, this);
@@ -295,7 +295,7 @@ void QFxView::execute()
/*!
\internal
*/
-void QFxView::continueExecute()
+void QmlView::continueExecute()
{
disconnect(d->component, SIGNAL(statusChanged(QmlComponent::Status)), this, SLOT(continueExecute()));
@@ -366,18 +366,18 @@ void QFxView::continueExecute()
}
}
-/*! \fn void QFxView::sceneResized(QSize size)
+/*! \fn void QmlView::sceneResized(QSize size)
This signal is emitted when the view is resized to \a size.
*/
-/*! \fn void QFxView::errors(const QList<QmlError> &errors)
+/*! \fn void QmlView::errors(const QList<QmlError> &errors)
This signal is emitted when the qml loaded contains \a errors.
*/
/*!
\internal
*/
-void QFxView::sizeChanged()
+void QmlView::sizeChanged()
{
// delay, so we catch both width and height changing.
d->resizetimer.start(0,this);
@@ -387,7 +387,7 @@ void QFxView::sizeChanged()
If the \l {QTimerEvent} {timer event} \a e is this
view's resize timer, sceneResized() is emitted.
*/
-void QFxView::timerEvent(QTimerEvent* e)
+void QmlView::timerEvent(QTimerEvent* e)
{
if (!e || e->timerId() == d->resizetimer.timerId()) {
if (d->root) {
@@ -403,7 +403,7 @@ void QFxView::timerEvent(QTimerEvent* e)
// modelled on QScrollArea::widgetResizable
/*!
- \property QFxView::contentResizable
+ \property QmlView::contentResizable
\brief whether the view should resize the canvas contents
If this property is set to false (the default), the view
@@ -416,7 +416,7 @@ void QFxView::timerEvent(QTimerEvent* e)
is the initial size of the root item.
*/
-void QFxView::setContentResizable(bool on)
+void QmlView::setContentResizable(bool on)
{
if (d->resizable != on) {
d->resizable = on;
@@ -432,7 +432,7 @@ void QFxView::setContentResizable(bool on)
}
}
-bool QFxView::contentResizable() const
+bool QmlView::contentResizable() const
{
return d->resizable;
}
@@ -441,7 +441,7 @@ bool QFxView::contentResizable() const
/*!
The size hint is the size of the root item.
*/
-QSize QFxView::sizeHint() const
+QSize QmlView::sizeHint() const
{
if (d->root) {
if (d->initialSize.width() <= 0)
@@ -458,7 +458,7 @@ QSize QFxView::sizeHint() const
\a parent item is provided, it becomes the new item's
parent. \a parent should be in this view's item hierarchy.
*/
-QFxItem* QFxView::addItem(const QString &qml, QFxItem* parent)
+QFxItem* QmlView::addItem(const QString &qml, QFxItem* parent)
{
if (!d->root)
return 0;
@@ -500,7 +500,7 @@ QFxItem* QFxView::addItem(const QString &qml, QFxItem* parent)
Deletes the view's \l {QFxItem} {items} and the \l {QmlEngine}
{QML engine's} Component cache.
*/
-void QFxView::reset()
+void QmlView::reset()
{
clearItems();
d->engine.clearComponentCache();
@@ -510,7 +510,7 @@ void QFxView::reset()
/*!
Deletes the view's \l {QFxItem} {items}.
*/
-void QFxView::clearItems()
+void QmlView::clearItems()
{
if (!d->root)
return;
@@ -521,7 +521,7 @@ void QFxView::clearItems()
/*!
Returns the view's root \l {QFxItem} {item}.
*/
-QFxItem *QFxView::root() const
+QFxItem *QmlView::root() const
{
return d->root;
}
@@ -530,7 +530,7 @@ QFxItem *QFxView::root() const
This function handles the \l {QResizeEvent} {resize event}
\a e.
*/
-void QFxView::resizeEvent(QResizeEvent *e)
+void QmlView::resizeEvent(QResizeEvent *e)
{
if (d->resizable && d->root) {
d->root->setWidth(width());
@@ -543,34 +543,34 @@ void QFxView::resizeEvent(QResizeEvent *e)
/*!
\reimp
*/
-void QFxView::paintEvent(QPaintEvent *event)
+void QmlView::paintEvent(QPaintEvent *event)
{
int time = 0;
- if (frameRateDebug() || QFxViewDebugServer::isDebuggingEnabled())
+ if (frameRateDebug() || QmlViewDebugServer::isDebuggingEnabled())
time = d->frameTimer.restart();
QGraphicsView::paintEvent(event);
- if (QFxViewDebugServer::isDebuggingEnabled())
+ if (QmlViewDebugServer::isDebuggingEnabled())
qfxViewDebugServer()->addTiming(d->frameTimer.elapsed(), time);
if (frameRateDebug())
qDebug() << "paintEvent:" << d->frameTimer.elapsed() << "time since last frame:" << time;
}
-/*! \fn void QFxView::focusInEvent(QFocusEvent *e)
+/*! \fn void QmlView::focusInEvent(QFocusEvent *e)
This virtual function does nothing with the event \a e
in this class.
*/
-void QFxView::focusInEvent(QFocusEvent *e)
+void QmlView::focusInEvent(QFocusEvent *e)
{
// Do nothing (do not call QWidget::update())
QGraphicsView::focusInEvent(e);
}
-/*! \fn void QFxView::focusOutEvent(QFocusEvent *e)
+/*! \fn void QmlView::focusOutEvent(QFocusEvent *e)
This virtual function does nothing with the event \a e
in this class.
*/
-void QFxView::focusOutEvent(QFocusEvent *e)
+void QmlView::focusOutEvent(QFocusEvent *e)
{
// Do nothing (do not call QWidget::update())
QGraphicsView::focusOutEvent(e);
diff --git a/src/declarative/util/qfxview.h b/src/declarative/util/qmlview.h
index 25e2997..b54101f 100644
--- a/src/declarative/util/qfxview.h
+++ b/src/declarative/util/qmlview.h
@@ -59,15 +59,15 @@ class QmlEngine;
class QmlContext;
class QmlError;
-class QFxViewPrivate;
-class Q_DECLARATIVE_EXPORT QFxView : public QGraphicsView
+class QmlViewPrivate;
+class Q_DECLARATIVE_EXPORT QmlView : public QGraphicsView
{
Q_OBJECT
Q_PROPERTY(bool contentResizable READ contentResizable WRITE setContentResizable)
public:
- explicit QFxView(QWidget *parent = 0);
+ explicit QmlView(QWidget *parent = 0);
- virtual ~QFxView();
+ virtual ~QmlView();
void setUrl(const QUrl&);
void setQml(const QString &qml, const QString &filename=QString());
@@ -102,8 +102,8 @@ protected:
void timerEvent(QTimerEvent*);
private:
- friend class QFxViewPrivate;
- QFxViewPrivate *d;
+ friend class QmlViewPrivate;
+ QmlViewPrivate *d;
};
QT_END_NAMESPACE
diff --git a/src/declarative/util/util.pri b/src/declarative/util/util.pri
index 442380a..41c9019 100644
--- a/src/declarative/util/util.pri
+++ b/src/declarative/util/util.pri
@@ -1,5 +1,5 @@
SOURCES += \
- util/qfxview.cpp \
+ util/qmlview.cpp \
util/qfxperf.cpp \
util/qperformancelog.cpp \
util/qmlconnection.cpp \
@@ -23,7 +23,7 @@ SOURCES += \
util/qmlbind.cpp
HEADERS += \
- util/qfxview.h \
+ util/qmlview.h \
util/qfxperf_p.h \
util/qfxglobal.h \
util/qperformancelog_p.h \
diff --git a/tests/auto/declarative/anchors/tst_anchors.cpp b/tests/auto/declarative/anchors/tst_anchors.cpp
index 98ede65..a8b119c 100644
--- a/tests/auto/declarative/anchors/tst_anchors.cpp
+++ b/tests/auto/declarative/anchors/tst_anchors.cpp
@@ -1,7 +1,7 @@
#include <qtest.h>
#include <QtDeclarative/qmlengine.h>
#include <QtDeclarative/qmlcomponent.h>
-#include <QtDeclarative/qfxview.h>
+#include <QtDeclarative/qmlview.h>
#include <QtDeclarative/qfxrect.h>
class tst_anchors : public QObject
@@ -43,7 +43,7 @@ T *tst_anchors::findItem(QFxItem *parent, const QString &objectName)
void tst_anchors::basicAnchors()
{
- QFxView *view = new QFxView;
+ QmlView *view = new QmlView;
view->setUrl(QUrl("file://" SRCDIR "/data/anchors.qml"));
view->execute();
@@ -93,7 +93,7 @@ void tst_anchors::basicAnchors()
void tst_anchors::loops()
{
{
- QFxView *view = new QFxView;
+ QmlView *view = new QmlView;
view->setUrl(QUrl("file://" SRCDIR "/data/loop1.qml"));
@@ -105,7 +105,7 @@ void tst_anchors::loops()
}
{
- QFxView *view = new QFxView;
+ QmlView *view = new QmlView;
view->setUrl(QUrl("file://" SRCDIR "/data/loop2.qml"));
@@ -120,7 +120,7 @@ void tst_anchors::loops()
void tst_anchors::illegalSets()
{
{
- QFxView *view = new QFxView;
+ QmlView *view = new QmlView;
view->setUrl(QUrl("file://" SRCDIR "/data/illegal1.qml"));
@@ -132,7 +132,7 @@ void tst_anchors::illegalSets()
}
{
- QFxView *view = new QFxView;
+ QmlView *view = new QmlView;
view->setUrl(QUrl("file://" SRCDIR "/data/illegal2.qml"));
@@ -144,7 +144,7 @@ void tst_anchors::illegalSets()
}
{
- QFxView *view = new QFxView;
+ QmlView *view = new QmlView;
view->setUrl(QUrl("file://" SRCDIR "/data/illegal3.qml"));
diff --git a/tests/auto/declarative/animations/tst_animations.cpp b/tests/auto/declarative/animations/tst_animations.cpp
index 8e1abc6..f627527 100644
--- a/tests/auto/declarative/animations/tst_animations.cpp
+++ b/tests/auto/declarative/animations/tst_animations.cpp
@@ -1,7 +1,7 @@
#include <qtest.h>
#include <QtDeclarative/qmlengine.h>
#include <QtDeclarative/qmlcomponent.h>
-#include <QtDeclarative/qfxview.h>
+#include <QtDeclarative/qmlview.h>
#include <QtDeclarative/qfxrect.h>
#include <QtDeclarative/QmlNumberAnimation>
@@ -97,7 +97,7 @@ void tst_animations::badTypes()
{
//don't crash
{
- QFxView *view = new QFxView;
+ QmlView *view = new QmlView;
view->setUrl(QUrl("file://" SRCDIR "/data/badtype1.qml"));
view->execute();
diff --git a/tests/auto/declarative/layouts/tst_layouts.cpp b/tests/auto/declarative/layouts/tst_layouts.cpp
index 3416b2e..d1e6aab 100644
--- a/tests/auto/declarative/layouts/tst_layouts.cpp
+++ b/tests/auto/declarative/layouts/tst_layouts.cpp
@@ -1,6 +1,6 @@
#include <QtTest/QtTest>
#include <qlistmodelinterface.h>
-#include <qfxview.h>
+#include <qmlview.h>
#include <qfxrect.h>
#include <qmlexpression.h>
@@ -19,7 +19,7 @@ private slots:
void test_grid_spacing();
private:
- QFxView *createView(const QString &filename);
+ QmlView *createView(const QString &filename);
};
tst_QFxLayouts::tst_QFxLayouts()
@@ -28,7 +28,7 @@ tst_QFxLayouts::tst_QFxLayouts()
void tst_QFxLayouts::test_horizontal()
{
- QFxView *canvas = createView(SRCDIR "/data/horizontal.qml");
+ QmlView *canvas = createView(SRCDIR "/data/horizontal.qml");
canvas->execute();
qApp->processEvents();
@@ -52,7 +52,7 @@ void tst_QFxLayouts::test_horizontal()
void tst_QFxLayouts::test_horizontal_spacing()
{
- QFxView *canvas = createView(SRCDIR "/data/horizontal-spacing.qml");
+ QmlView *canvas = createView(SRCDIR "/data/horizontal-spacing.qml");
canvas->execute();
qApp->processEvents();
@@ -76,7 +76,7 @@ void tst_QFxLayouts::test_horizontal_spacing()
void tst_QFxLayouts::test_vertical()
{
- QFxView *canvas = createView(SRCDIR "/data/vertical.qml");
+ QmlView *canvas = createView(SRCDIR "/data/vertical.qml");
canvas->execute();
qApp->processEvents();
@@ -100,7 +100,7 @@ void tst_QFxLayouts::test_vertical()
void tst_QFxLayouts::test_vertical_spacing()
{
- QFxView *canvas = createView(SRCDIR "/data/vertical-spacing.qml");
+ QmlView *canvas = createView(SRCDIR "/data/vertical-spacing.qml");
canvas->execute();
qApp->processEvents();
@@ -124,7 +124,7 @@ void tst_QFxLayouts::test_vertical_spacing()
void tst_QFxLayouts::test_grid()
{
- QFxView *canvas = createView("data/grid.qml");
+ QmlView *canvas = createView("data/grid.qml");
canvas->execute();
qApp->processEvents();
@@ -154,7 +154,7 @@ void tst_QFxLayouts::test_grid()
void tst_QFxLayouts::test_grid_spacing()
{
- QFxView *canvas = createView("data/grid-spacing.qml");
+ QmlView *canvas = createView("data/grid-spacing.qml");
canvas->execute();
qApp->processEvents();
@@ -182,9 +182,9 @@ void tst_QFxLayouts::test_grid_spacing()
QCOMPARE(five->y(), 54.0);
}
-QFxView *tst_QFxLayouts::createView(const QString &filename)
+QmlView *tst_QFxLayouts::createView(const QString &filename)
{
- QFxView *canvas = new QFxView(0);
+ QmlView *canvas = new QmlView(0);
QFile file(filename);
file.open(QFile::ReadOnly);
diff --git a/tests/auto/declarative/listview/tst_listview.cpp b/tests/auto/declarative/listview/tst_listview.cpp
index ebc3053..19d324d 100644
--- a/tests/auto/declarative/listview/tst_listview.cpp
+++ b/tests/auto/declarative/listview/tst_listview.cpp
@@ -1,6 +1,6 @@
#include <QtTest/QtTest>
#include <qlistmodelinterface.h>
-#include <qfxview.h>
+#include <qmlview.h>
#include <qfxlistview.h>
#include <qfxtext.h>
#include <qmlcontext.h>
@@ -31,7 +31,7 @@ private:
template <class T> void changed();
template <class T> void inserted();
template <class T> void removed();
- QFxView *createView(const QString &filename);
+ QmlView *createView(const QString &filename);
template<typename T>
T *findItem(QFxItem *parent, const QString &id, int index=0);
};
@@ -169,7 +169,7 @@ tst_QFxListView::tst_QFxListView()
template <class T>
void tst_QFxListView::items()
{
- QFxView *canvas = createView(SRCDIR "/data/listview.qml");
+ QmlView *canvas = createView(SRCDIR "/data/listview.qml");
T model;
model.addItem("Fred", "12345");
@@ -205,7 +205,7 @@ void tst_QFxListView::items()
template <class T>
void tst_QFxListView::changed()
{
- QFxView *canvas = createView(SRCDIR "/data/listview.qml");
+ QmlView *canvas = createView(SRCDIR "/data/listview.qml");
T model;
model.addItem("Fred", "12345");
@@ -238,7 +238,7 @@ void tst_QFxListView::changed()
template <class T>
void tst_QFxListView::inserted()
{
- QFxView *canvas = createView(SRCDIR "/data/listview.qml");
+ QmlView *canvas = createView(SRCDIR "/data/listview.qml");
T model;
model.addItem("Fred", "12345");
@@ -305,7 +305,7 @@ void tst_QFxListView::inserted()
template <class T>
void tst_QFxListView::removed()
{
- QFxView *canvas = createView(SRCDIR "/data/listview.qml");
+ QmlView *canvas = createView(SRCDIR "/data/listview.qml");
T model;
for (int i = 0; i < 30; i++)
@@ -438,9 +438,9 @@ void tst_QFxListView::qAbstractItemModel_removed()
removed<TestModel2>();
}
-QFxView *tst_QFxListView::createView(const QString &filename)
+QmlView *tst_QFxListView::createView(const QString &filename)
{
- QFxView *canvas = new QFxView(0);
+ QmlView *canvas = new QmlView(0);
canvas->setFixedSize(240,320);
QFile file(filename);
diff --git a/tests/auto/declarative/pathview/tst_pathview.cpp b/tests/auto/declarative/pathview/tst_pathview.cpp
index 2933323..e2da191 100644
--- a/tests/auto/declarative/pathview/tst_pathview.cpp
+++ b/tests/auto/declarative/pathview/tst_pathview.cpp
@@ -1,6 +1,6 @@
#include <QtTest/QtTest>
#include <qlistmodelinterface.h>
-#include <qfxview.h>
+#include <qmlview.h>
#include <qfxpathview.h>
#include <qfxtext.h>
#include <qfxrect.h>
@@ -19,7 +19,7 @@ private slots:
void limitedItems();
private:
- QFxView *createView(const QString &filename);
+ QmlView *createView(const QString &filename);
template<typename T>
T *findItem(QFxItem *parent, const QString &id, int index=0);
};
@@ -101,7 +101,7 @@ tst_QFxPathView::tst_QFxPathView()
void tst_QFxPathView::items()
{
- QFxView *canvas = createView(SRCDIR "/data/pathview.qml");
+ QmlView *canvas = createView(SRCDIR "/data/pathview.qml");
TestModel model;
model.addItem("Fred", "12345");
@@ -133,7 +133,7 @@ void tst_QFxPathView::items()
void tst_QFxPathView::pathMoved()
{
- QFxView *canvas = createView(SRCDIR "/data/pathview.qml");
+ QmlView *canvas = createView(SRCDIR "/data/pathview.qml");
TestModel model;
model.addItem("Ben", "12345");
@@ -176,7 +176,7 @@ void tst_QFxPathView::pathMoved()
void tst_QFxPathView::limitedItems()
{
- QFxView *canvas = createView(SRCDIR "/data/pathview.qml");
+ QmlView *canvas = createView(SRCDIR "/data/pathview.qml");
TestModel model;
for(int i=0; i<100; i++)
@@ -213,9 +213,9 @@ void tst_QFxPathView::limitedItems()
QVERIFY(testItem != 0);
}
-QFxView *tst_QFxPathView::createView(const QString &filename)
+QmlView *tst_QFxPathView::createView(const QString &filename)
{
- QFxView *canvas = new QFxView(0);
+ QmlView *canvas = new QmlView(0);
canvas->setFixedSize(240,320);
QFile file(filename);
diff --git a/tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp b/tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp
index c4fc506..ffbb09b 100644
--- a/tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp
+++ b/tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp
@@ -424,10 +424,10 @@ void tst_qfxtextedit::selection()
QVERIFY(textEditObject->selectedText().size() == 10);
}
-#include <QFxView>
+#include <QmlView>
void tst_qfxtextedit::cursorDelegate()
{
- QFxView* view = new QFxView(0);
+ QmlView* view = new QmlView(0);
view->show();
view->setUrl(QUrl("data/cursorTest.qml"));
view->execute();
diff --git a/tests/auto/declarative/qfxtextinput/tst_qfxtextinput.cpp b/tests/auto/declarative/qfxtextinput/tst_qfxtextinput.cpp
index c883aa3..13a301d 100644
--- a/tests/auto/declarative/qfxtextinput/tst_qfxtextinput.cpp
+++ b/tests/auto/declarative/qfxtextinput/tst_qfxtextinput.cpp
@@ -2,7 +2,7 @@
#include "../../../shared/util.h"
#include <QtDeclarative/qmlengine.h>
#include <QFile>
-#include <QtDeclarative/qfxview.h>
+#include <QtDeclarative/qmlview.h>
#include <QFxTextInput>
#include <QDebug>
@@ -28,8 +28,8 @@ private slots:
void navigation();
private:
- void simulateKey(QFxView *, int key);
- QFxView *createView(const QString &filename);
+ void simulateKey(QmlView *, int key);
+ QmlView *createView(const QString &filename);
QmlEngine engine;
QStringList standard;
@@ -268,7 +268,7 @@ void tst_qfxtextinput::selection()
void tst_qfxtextinput::maxLength()
{
- QFxView *canvas = createView(SRCDIR "/data/navigation.qml");
+ QmlView *canvas = createView(SRCDIR "/data/navigation.qml");
canvas->execute();
canvas->show();
@@ -282,7 +282,7 @@ void tst_qfxtextinput::maxLength()
void tst_qfxtextinput::masks()
{
- QFxView *canvas = createView(SRCDIR "/data/navigation.qml");
+ QmlView *canvas = createView(SRCDIR "/data/navigation.qml");
canvas->execute();
canvas->show();
@@ -296,7 +296,7 @@ void tst_qfxtextinput::masks()
void tst_qfxtextinput::validators()
{
- QFxView *canvas = createView(SRCDIR "/data/navigation.qml");
+ QmlView *canvas = createView(SRCDIR "/data/navigation.qml");
canvas->execute();
canvas->show();
@@ -314,7 +314,7 @@ the extent of the text, then they should ignore the keys.
*/
void tst_qfxtextinput::navigation()
{
- QFxView *canvas = createView(SRCDIR "/data/navigation.qml");
+ QmlView *canvas = createView(SRCDIR "/data/navigation.qml");
canvas->execute();
canvas->show();
@@ -339,7 +339,7 @@ void tst_qfxtextinput::cursorDelegate()
//TODO:Get the QFxTextInput test passing first
}
-void tst_qfxtextinput::simulateKey(QFxView *view, int key)
+void tst_qfxtextinput::simulateKey(QmlView *view, int key)
{
QKeyEvent press(QKeyEvent::KeyPress, key, 0);
QKeyEvent release(QKeyEvent::KeyRelease, key, 0);
@@ -348,9 +348,9 @@ void tst_qfxtextinput::simulateKey(QFxView *view, int key)
QApplication::sendEvent(view, &release);
}
-QFxView *tst_qfxtextinput::createView(const QString &filename)
+QmlView *tst_qfxtextinput::createView(const QString &filename)
{
- QFxView *canvas = new QFxView(0);
+ QmlView *canvas = new QmlView(0);
QFile file(filename);
file.open(QFile::ReadOnly);
diff --git a/tests/auto/declarative/qmlparser/assignSignal.qml b/tests/auto/declarative/qmlparser/assignSignal.qml
index 153b403..3abc04d 100644
--- a/tests/auto/declarative/qmlparser/assignSignal.qml
+++ b/tests/auto/declarative/qmlparser/assignSignal.qml
@@ -1,4 +1,5 @@
import Test 1.0
MyQmlObject {
onBasicSignal: basicSlot()
+ onBasicParameterizedSignal: basicSlot(parameter)
}
diff --git a/tests/auto/declarative/qmlparser/importVersionMissingBuiltIn.errors.txt b/tests/auto/declarative/qmlparser/importVersionMissingBuiltIn.errors.txt
new file mode 100644
index 0000000..2235cbc
--- /dev/null
+++ b/tests/auto/declarative/qmlparser/importVersionMissingBuiltIn.errors.txt
@@ -0,0 +1 @@
+SHOULD GIVE AN ERROR ABOUT MISSING VERSION
diff --git a/tests/auto/declarative/qmlparser/importVersionMissingBuiltIn.qml b/tests/auto/declarative/qmlparser/importVersionMissingBuiltIn.qml
new file mode 100644
index 0000000..23ed566
--- /dev/null
+++ b/tests/auto/declarative/qmlparser/importVersionMissingBuiltIn.qml
@@ -0,0 +1,7 @@
+import Test as S
+
+S.MyQmlObject {
+ property real x;
+ property real y;
+}
+
diff --git a/tests/auto/declarative/qmlparser/importVersionMissingInstalled.errors.txt b/tests/auto/declarative/qmlparser/importVersionMissingInstalled.errors.txt
new file mode 100644
index 0000000..2235cbc
--- /dev/null
+++ b/tests/auto/declarative/qmlparser/importVersionMissingInstalled.errors.txt
@@ -0,0 +1 @@
+SHOULD GIVE AN ERROR ABOUT MISSING VERSION
diff --git a/tests/auto/declarative/qmlparser/importVersionMissingInstalled.qml b/tests/auto/declarative/qmlparser/importVersionMissingInstalled.qml
new file mode 100644
index 0000000..97ec222
--- /dev/null
+++ b/tests/auto/declarative/qmlparser/importVersionMissingInstalled.qml
@@ -0,0 +1,3 @@
+import com.nokia.installedtest as T
+
+T.InstalledTest {}
diff --git a/tests/auto/declarative/qmlparser/testtypes.h b/tests/auto/declarative/qmlparser/testtypes.h
index e3e9aae..f6f966f 100644
--- a/tests/auto/declarative/qmlparser/testtypes.h
+++ b/tests/auto/declarative/qmlparser/testtypes.h
@@ -97,9 +97,11 @@ public:
void setCustomType(const MyCustomVariantType &v) { m_custom = v; }
public slots:
void basicSlot() { qWarning("MyQmlObject::basicSlot"); }
+ void basicSlot(int v) { qWarning("MyQmlObject::basicSlot(%d)", v); }
signals:
void basicSignal();
+ void basicParameterizedSignal(int parameter);
private:
friend class tst_qmlparser;
diff --git a/tests/auto/declarative/qmlparser/tst_qmlparser.cpp b/tests/auto/declarative/qmlparser/tst_qmlparser.cpp
index b8bd0e7..c2f1e1a 100644
--- a/tests/auto/declarative/qmlparser/tst_qmlparser.cpp
+++ b/tests/auto/declarative/qmlparser/tst_qmlparser.cpp
@@ -160,6 +160,8 @@ void tst_qmlparser::errors_data()
QTest::newRow("finalOverride") << "finalOverride.qml" << "finalOverride.errors.txt" << false;
QTest::newRow("importNamespaceConflict") << "importNamespaceConflict.qml" << "importNamespaceConflict.errors.txt" << false;
+ QTest::newRow("importVersionMissing (builtin)") << "importVersionMissingBuiltIn.qml" << "importVersionMissingBuiltIn.errors.txt" << false;
+ QTest::newRow("importVersionMissing (installed)") << "importVersionMissingInstalled.qml" << "importVersionMissingInstalled.errors.txt" << false;
QTest::newRow("customParserIdNotAllowed") << "customParserIdNotAllowed.qml" << "customParserIdNotAllowed.errors.txt" << false;
}
@@ -374,6 +376,8 @@ void tst_qmlparser::assignSignal()
QVERIFY(object != 0);
QTest::ignoreMessage(QtWarningMsg, "MyQmlObject::basicSlot");
emit object->basicSignal();
+ QTest::ignoreMessage(QtWarningMsg, "MyQmlObject::basicSlot(9)");
+ emit object->basicParameterizedSignal(9);
}
// Tests the creation and assignment of dynamic properties
diff --git a/tests/auto/declarative/repeater/tst_repeater.cpp b/tests/auto/declarative/repeater/tst_repeater.cpp
index 08f9154..5fce70e 100644
--- a/tests/auto/declarative/repeater/tst_repeater.cpp
+++ b/tests/auto/declarative/repeater/tst_repeater.cpp
@@ -1,6 +1,6 @@
#include <QtTest/QtTest>
#include <qlistmodelinterface.h>
-#include <qfxview.h>
+#include <qmlview.h>
#include <qfxrepeater.h>
#include <qfxtext.h>
#include <qmlcontext.h>
@@ -15,7 +15,7 @@ private slots:
void stringList();
private:
- QFxView *createView(const QString &filename);
+ QmlView *createView(const QString &filename);
template<typename T>
T *findItem(QObject *parent, const QString &id);
};
@@ -26,7 +26,7 @@ tst_QFxRepeater::tst_QFxRepeater()
void tst_QFxRepeater::stringList()
{
- QFxView *canvas = createView(SRCDIR "/data/repeater.qml");
+ QmlView *canvas = createView(SRCDIR "/data/repeater.qml");
QStringList data;
data << "One";
@@ -58,9 +58,9 @@ void tst_QFxRepeater::stringList()
}
-QFxView *tst_QFxRepeater::createView(const QString &filename)
+QmlView *tst_QFxRepeater::createView(const QString &filename)
{
- QFxView *canvas = new QFxView(0);
+ QmlView *canvas = new QmlView(0);
canvas->setFixedSize(240,320);
QFile file(filename);
diff --git a/tests/auto/declarative/visual/tst_visual.cpp b/tests/auto/declarative/visual/tst_visual.cpp
index f540e62..10823e8 100644
--- a/tests/auto/declarative/visual/tst_visual.cpp
+++ b/tests/auto/declarative/visual/tst_visual.cpp
@@ -1,5 +1,5 @@
#include <qtest.h>
-#include <QFxView>
+#include <QmlView>
#include <QApplication>
#include <QFxTestView>
#include <QFile>
diff --git a/tools/qmldebugger/canvasframerate.cpp b/tools/qmldebugger/canvasframerate.cpp
index ae514a5..0d23050 100644
--- a/tools/qmldebugger/canvasframerate.cpp
+++ b/tools/qmldebugger/canvasframerate.cpp
@@ -13,6 +13,8 @@
#include <QPushButton>
#include <QLineEdit>
#include <QCheckBox>
+#include <QSpinBox>
+#include <QLabel>
QT_BEGIN_NAMESPACE
@@ -26,6 +28,7 @@ public:
public slots:
void addSample(int, int, int, bool);
+ void setResolutionForHeight(int);
protected:
virtual void paintEvent(QPaintEvent *);
@@ -153,7 +156,7 @@ void QLineGraph::drawSample(QPainter *p, int s, const QRect &rect)
first = qMax(0, _samples.count() - samplesPerWidth - 1);
int last = qMin(_samples.count() - 1, first + samplesPerWidth);
- qreal scaleY = rect.height() / resolutionForHeight;
+ qreal scaleY = qreal(rect.height()) / resolutionForHeight;
qreal scaleX = qreal(rect.width()) / qreal(samplesPerWidth);
int xEnd;
@@ -205,6 +208,12 @@ void QLineGraph::paintEvent(QPaintEvent *)
drawTime(&p, r);
}
+void QLineGraph::setResolutionForHeight(int resolution)
+{
+ resolutionForHeight = resolution;
+ update();
+}
+
class CanvasFrameRatePlugin : public QmlDebugClient
{
Q_OBJECT
@@ -256,7 +265,18 @@ CanvasFrameRate::CanvasFrameRate(QmlDebugConnection *client, QWidget *parent)
layout->addWidget(m_tabs);
QHBoxLayout *bottom = new QHBoxLayout;
+ bottom->setSpacing(5);
layout->addLayout(bottom);
+
+ QLabel *label = new QLabel("Resolution", this);
+ bottom->addWidget(label);
+
+ m_spin = new QSpinBox(this);
+ m_spin->setRange(50,200);
+ m_spin->setValue(50);
+ m_spin->setSuffix("ms");
+ bottom->addWidget(m_spin);
+
bottom->addStretch(2);
QCheckBox *check = new QCheckBox("Enable", this);
@@ -284,6 +304,7 @@ void CanvasFrameRate::newTab()
QLineGraph *graph = new QLineGraph(this);
QObject::connect(m_plugin, SIGNAL(sample(int,int,int,bool)),
graph, SLOT(addSample(int,int,int,bool)));
+ QObject::connect(m_spin, SIGNAL(valueChanged(int)), graph, SLOT(setResolutionForHeight(int)));
QString name = QLatin1String("Graph ") + QString::number(id);
m_tabs->addTab(graph, name);
diff --git a/tools/qmldebugger/canvasframerate.h b/tools/qmldebugger/canvasframerate.h
index 912412b..cef267d 100644
--- a/tools/qmldebugger/canvasframerate.h
+++ b/tools/qmldebugger/canvasframerate.h
@@ -7,6 +7,7 @@ QT_BEGIN_NAMESPACE
class QmlDebugConnection;
class QTabWidget;
+class QSpinBox;
class CanvasFrameRate : public QWidget
{
Q_OBJECT
@@ -19,6 +20,7 @@ private slots:
private:
QTabWidget *m_tabs;
+ QSpinBox *m_spin;
QObject *m_plugin;
};
diff --git a/tools/qmldebugger/engine.cpp b/tools/qmldebugger/engine.cpp
index 1f4bcc2..6e163e6 100644
--- a/tools/qmldebugger/engine.cpp
+++ b/tools/qmldebugger/engine.cpp
@@ -43,7 +43,7 @@ EnginePane::EnginePane(QmlDebugConnection *client, QWidget *parent)
enginesFile.open(QFile::ReadOnly);
Q_ASSERT(enginesFile.isOpen());
- m_engineView = new QFxView(this);
+ m_engineView = new QmlView(this);
m_engineView->rootContext()->setContextProperty("engines", qVariantFromValue(&m_engineItems));
m_engineView->setContentResizable(true);
m_engineView->setQml(enginesFile.readAll());
diff --git a/tools/qmldebugger/engine.h b/tools/qmldebugger/engine.h
index 52f0608..5ef28ae 100644
--- a/tools/qmldebugger/engine.h
+++ b/tools/qmldebugger/engine.h
@@ -4,7 +4,7 @@
#include <QWidget>
#include <QtDeclarative/qmlengine.h>
#include <QtDeclarative/qmlcontext.h>
-#include <QtDeclarative/qfxview.h>
+#include <QtDeclarative/qmlview.h>
#include <QtDeclarative/qmldebug.h>
QT_BEGIN_NAMESPACE
@@ -51,7 +51,7 @@ private:
QTreeWidget *m_objTree;
QTableWidget *m_propTable;
- QFxView *m_engineView;
+ QmlView *m_engineView;
QList<QObject *> m_engineItems;
};
diff --git a/tools/qmlviewer/qfxtester.cpp b/tools/qmlviewer/qfxtester.cpp
index 3732aaf..d4802f6 100644
--- a/tools/qmlviewer/qfxtester.cpp
+++ b/tools/qmlviewer/qfxtester.cpp
@@ -14,7 +14,7 @@
#include <qfxtester.h>
#include <QDebug>
#include <QApplication>
-#include <QFxView>
+#include <qmlview.h>
#include <QFile>
#include <QmlComponent>
#include <QCryptographicHash>
@@ -29,7 +29,7 @@ QML_DEFINE_TYPE(Qt.VisualTest, 4, 6, (QT_VERSION&0x00ff00)>>8, Mouse, QFxVisualT
QML_DEFINE_TYPE(Qt.VisualTest, 4, 6, (QT_VERSION&0x00ff00)>>8, Key, QFxVisualTestKey);
QFxTester::QFxTester(const QString &script, QmlViewer::ScriptOptions opts,
- QFxView *parent)
+ QmlView *parent)
: QAbstractAnimation(parent), m_view(parent), filterEvents(true), options(opts),
testscript(0), hasFailed(false)
{
diff --git a/tools/qmlviewer/qfxtester.h b/tools/qmlviewer/qfxtester.h
index e37d6aa..4ace2d1 100644
--- a/tools/qmlviewer/qfxtester.h
+++ b/tools/qmlviewer/qfxtester.h
@@ -155,7 +155,7 @@ QML_DECLARE_TYPE(QFxVisualTestKey)
class QFxTester : public QAbstractAnimation
{
public:
- QFxTester(const QString &script, QmlViewer::ScriptOptions options, QFxView *parent);
+ QFxTester(const QString &script, QmlViewer::ScriptOptions options, QmlView *parent);
virtual int duration() const;
@@ -174,7 +174,7 @@ private:
enum Destination { View, ViewPort };
void addKeyEvent(Destination, QKeyEvent *);
void addMouseEvent(Destination, QMouseEvent *);
- QFxView *m_view;
+ QmlView *m_view;
struct MouseEvent {
MouseEvent(QMouseEvent *e)
diff --git a/tools/qmlviewer/qmlviewer.cpp b/tools/qmlviewer/qmlviewer.cpp
index 2894f1d..11d0ef0 100644
--- a/tools/qmlviewer/qmlviewer.cpp
+++ b/tools/qmlviewer/qmlviewer.cpp
@@ -11,7 +11,7 @@
**
****************************************************************************/
-#include <qfxview.h>
+#include <qmlview.h>
#include "ui_recopts.h"
#include "qmlviewer.h"
@@ -286,7 +286,7 @@ QmlViewer::QmlViewer(QWidget *parent, Qt::WindowFlags flags)
if (!(flags & Qt::FramelessWindowHint))
createMenu(menuBar(),0);
- canvas = new QFxView(this);
+ canvas = new QmlView(this);
canvas->setAttribute(Qt::WA_OpaquePaintEvent);
canvas->setAttribute(Qt::WA_NoSystemBackground);
canvas->setContentResizable(!skin || !scaleSkin);
@@ -348,7 +348,7 @@ void QmlViewer::createMenu(QMenuBar *menu, QMenu *flatmenu)
connect(snapshotAction, SIGNAL(triggered()), this, SLOT(takeSnapShot()));
recordMenu->addAction(snapshotAction);
- recordAction = new QAction(tr("Start Recording &Video\tF2"), parent);
+ recordAction = new QAction(tr("Start Recording &Video\tF9"), parent);
connect(recordAction, SIGNAL(triggered()), this, SLOT(toggleRecordingWithSelection()));
recordMenu->addAction(recordAction);
@@ -570,7 +570,7 @@ void QmlViewer::toggleRecording()
return;
}
bool recording = !recordTimer.isRunning();
- recordAction->setText(recording ? tr("&Stop Recording Video\tF2") : tr("&Start Recording Video\tF2"));
+ recordAction->setText(recording ? tr("&Stop Recording Video\tF9") : tr("&Start Recording Video\tF9"));
setRecording(recording);
}
diff --git a/tools/qmlviewer/qmlviewer.h b/tools/qmlviewer/qmlviewer.h
index f0e997c..c785e89 100644
--- a/tools/qmlviewer/qmlviewer.h
+++ b/tools/qmlviewer/qmlviewer.h
@@ -21,7 +21,7 @@
QT_BEGIN_NAMESPACE
-class QFxView;
+class QmlView;
class PreviewDeviceSkin;
class QFxTestEngine;
class QProcess;
@@ -95,7 +95,7 @@ private:
QString currentFileName;
PreviewDeviceSkin *skin;
QSize skinscreensize;
- QFxView *canvas;
+ QmlView *canvas;
QmlTimer recordTimer;
QString frame_fmt;
QImage frame;