summaryrefslogtreecommitdiffstats
path: root/tests/auto/declarative
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-04-21 11:29:25 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-04-21 11:29:25 (GMT)
commit38b8940413fc83d2e641be580369125709ffa8e1 (patch)
tree6612da384fae93e4b31fb8ea7007d3e3934b01d9 /tests/auto/declarative
parentc74dac2a0ef5d1b428c4da4e48fab05f9886233a (diff)
parentedc74eecf2967b295c7b881977527474be8e1c80 (diff)
downloadQt-38b8940413fc83d2e641be580369125709ffa8e1.zip
Qt-38b8940413fc83d2e641be580369125709ffa8e1.tar.gz
Qt-38b8940413fc83d2e641be580369125709ffa8e1.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-qml: (118 commits) Update test files to new syntax Compile without Qt3 support. Ensure workerscript.qml works (autotested). Update strings in test remove debugs Make the dynamic creation functions on the Qt object More focus example cleanup. Autotests Add hasModelChildren property to delegates with QAbstractItemModel model type. Emit released and hoveredChanged in MouseArea when a UngrabMouse is received Balance grid items for larger displays. Autotest Cleanup declarative focus example. Add forceFocus method to QDeclarativeItem. Don't allow properties in Component elements Fix crash when QDeclarativeInfo objects are copied Ignore message in QDeclarativeLoader test. Fix crash. Fix qmlvisual/animation/parentAnimation autotest delete the viewer before calling exit(). Ensures correct cleanup. ...
Diffstat (limited to 'tests/auto/declarative')
-rw-r--r--tests/auto/declarative/declarative.pro2
-rw-r--r--tests/auto/declarative/parserstress/tst_parserstress.cpp8
-rw-r--r--tests/auto/declarative/qdeclarativeanchors/tst_qdeclarativeanchors.cpp50
-rw-r--r--tests/auto/declarative/qdeclarativeanimatedimage/tst_qdeclarativeanimatedimage.cpp2
-rw-r--r--tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp14
-rw-r--r--tests/auto/declarative/qdeclarativebehaviors/tst_qdeclarativebehaviors.cpp6
-rw-r--r--tests/auto/declarative/qdeclarativeborderimage/tst_qdeclarativeborderimage.cpp8
-rw-r--r--tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp93
-rw-r--r--tests/auto/declarative/qdeclarativedebugclient/tst_qdeclarativedebugclient.cpp46
-rw-r--r--tests/auto/declarative/qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp47
-rw-r--r--tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp3
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/ScopeObject.qml6
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/canAssignNullToQObject.1.qml9
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/canAssignNullToQObject.2.qml11
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/deletedObject.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/dynamicCreation.qml8
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/dynamicDeletion.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/extensionObjectsPropertyOverride.qml7
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/externalScript.1.qml11
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/externalScript.2.js8
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/externalScript.2.qml11
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/externalScript.3.qml13
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/externalScript.4.qml15
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/externalScript.js6
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scope.2.qml6
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scope.qml14
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptAccess.js7
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptAccess.qml17
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.1.js4
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.1.qml10
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.2.js5
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.2.qml10
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.6.js3
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.6.qml11
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.1.js6
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.1.qml11
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.2.qml11
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.3.qml11
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.4.qml13
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptErrors.js2
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptErrors.qml6
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptScope.1.qml13
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptScope.2.qml11
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptScope.js5
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/testtypes.cpp10
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/testtypes.h31
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp151
-rw-r--r--tests/auto/declarative/qdeclarativeflipable/tst_qdeclarativeflipable.cpp4
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/data/forcefocus.qml81
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/data/test.qml2
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/data/test4.qml2
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/data/test5.qml2
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp57
-rw-r--r--tests/auto/declarative/qdeclarativefontloader/tst_qdeclarativefontloader.cpp4
-rw-r--r--tests/auto/declarative/qdeclarativeimage/data/green.pngbin0 -> 314 bytes
-rw-r--r--tests/auto/declarative/qdeclarativeimage/data/tiling.qml16
-rw-r--r--tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp83
-rw-r--r--tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp6
-rw-r--r--tests/auto/declarative/qdeclarativeinfo/tst_qdeclarativeinfo.cpp16
-rw-r--r--tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp57
-rw-r--r--tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp7
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/assignToNamespace.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/assignToNamespace.qml5
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/component.7.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/component.7.qml7
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/component.8.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/component.8.qml7
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/component.9.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/component.9.qml7
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.1.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.1.qml6
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.2.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.2.qml6
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.3.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.3.qml6
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.4.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.4.qml6
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.5.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.5.qml5
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.1.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.1.qml5
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.2.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.2.qml6
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.3.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.3.qml6
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.4.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.4.qml7
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.5.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.5.qml7
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.6.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.6.qml7
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.12.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.12.qml6
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.13.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.13.qml8
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidOn.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidOn.qml4
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/listAssignment.1.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/listAssignment.1.qml6
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/multiSet.11.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/multiSet.11.qml6
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/noCreation.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/noCreation.qml4
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/readOnly.4.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/readOnly.4.qml4
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/readOnly.5.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/readOnly.5.qml4
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/scriptString.1.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/scriptString.1.qml5
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/scriptString.2.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/scriptString.2.qml6
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/wrongType.16.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/wrongType.16.qml5
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/testtypes.cpp3
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/testtypes.h24
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp34
-rw-r--r--tests/auto/declarative/qdeclarativelistmodel/data/enumerate.qml24
-rw-r--r--tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp124
-rw-r--r--tests/auto/declarative/qdeclarativelistreference/tst_qdeclarativelistreference.cpp1
-rw-r--r--tests/auto/declarative/qdeclarativeloader/data/SetSourceComponent.qml5
-rw-r--r--tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp31
-rw-r--r--tests/auto/declarative/qdeclarativemoduleplugin/plugin/plugin.cpp2
-rw-r--r--tests/auto/declarative/qdeclarativemousearea/data/dragging.qml28
-rw-r--r--tests/auto/declarative/qdeclarativemousearea/data/updateMousePosOnResize.qml38
-rw-r--r--tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp97
-rw-r--r--tests/auto/declarative/qdeclarativeproperty/tst_qdeclarativeproperty.cpp8
-rw-r--r--tests/auto/declarative/qdeclarativeqt/data/createComponent.qml15
-rw-r--r--tests/auto/declarative/qdeclarativeqt/data/createQmlObject.qml32
-rw-r--r--tests/auto/declarative/qdeclarativeqt/data/hsla.qml4
-rw-r--r--tests/auto/declarative/qdeclarativeqt/data/rgba.qml4
-rw-r--r--tests/auto/declarative/qdeclarativeqt/tst_qdeclarativeqt.cpp95
-rw-r--r--tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp53
-rw-r--r--tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp4
-rw-r--r--tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp2
-rw-r--r--tests/auto/declarative/qdeclarativetimer/tst_qdeclarativetimer.cpp17
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/testtypes.h3
-rw-r--r--tests/auto/declarative/qdeclarativeview/data/resizemodedeclarativeitem.qml5
-rw-r--r--tests/auto/declarative/qdeclarativeview/data/resizemodegraphicswidget.qml5
-rw-r--r--tests/auto/declarative/qdeclarativeview/qdeclarativeview.pro7
-rw-r--r--tests/auto/declarative/qdeclarativeview/tst_qdeclarativeview.cpp272
-rw-r--r--tests/auto/declarative/qdeclarativevisualdatamodel/data/visualdatamodel.qml11
-rw-r--r--tests/auto/declarative/qdeclarativevisualdatamodel/qdeclarativevisualdatamodel.pro11
-rw-r--r--tests/auto/declarative/qdeclarativevisualdatamodel/tst_qdeclarativevisualdatamodel.cpp111
-rw-r--r--tests/auto/declarative/qdeclarativexmllistmodel/tst_qdeclarativexmllistmodel.cpp4
-rw-r--r--tests/auto/declarative/qmlvisual/fillmode/data/fillmode.0.pngbin26099 -> 28886 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/fillmode/data/fillmode.qml2
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/borders.qml2
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test_flipable_resize.qml207
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflipable/test_flipable_resize.qml62
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.0.pngbin0 -> 1701 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.1.pngbin0 -> 1701 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.10.pngbin0 -> 1721 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.11.pngbin0 -> 1705 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.12.pngbin0 -> 1705 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.13.pngbin0 -> 1701 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.2.pngbin0 -> 1704 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.3.pngbin0 -> 1704 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.4.pngbin0 -> 1705 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.5.pngbin0 -> 1705 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.6.pngbin0 -> 1701 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.7.pngbin0 -> 1701 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.8.pngbin0 -> 1705 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.9.pngbin0 -> 1701 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.qml5127
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/mousearea-flickable.qml52
-rw-r--r--tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp3
-rw-r--r--tests/auto/declarative/qpacketprotocol/tst_qpacketprotocol.cpp8
-rw-r--r--tests/auto/declarative/shared/debugutil.cpp81
-rw-r--r--tests/auto/declarative/shared/debugutil_p.h56
169 files changed, 7114 insertions, 830 deletions
diff --git a/tests/auto/declarative/declarative.pro b/tests/auto/declarative/declarative.pro
index 7834650..9b3b3d0 100644
--- a/tests/auto/declarative/declarative.pro
+++ b/tests/auto/declarative/declarative.pro
@@ -59,10 +59,12 @@ SUBDIRS += \
qdeclarativerepeater \ # Cover
qdeclarativeworkerscript \ # Cover
qdeclarativevaluetypes \ # Cover
+ qdeclarativeview \ # Cover
qdeclarativexmlhttprequest \ # Cover
qdeclarativeimageprovider \ # Cover
qdeclarativestyledtext \ # Cover
qdeclarativesqldatabase \ # Cover
+ qdeclarativevisualdatamodel \ # Cover
qmlvisual # Cover
contains(QT_CONFIG, webkit) {
diff --git a/tests/auto/declarative/parserstress/tst_parserstress.cpp b/tests/auto/declarative/parserstress/tst_parserstress.cpp
index 41c0a1b..f61ca9f 100644
--- a/tests/auto/declarative/parserstress/tst_parserstress.cpp
+++ b/tests/auto/declarative/parserstress/tst_parserstress.cpp
@@ -65,7 +65,7 @@ QStringList tst_parserstress::findJSFiles(const QDir &d)
{
QStringList rv;
- QStringList files = d.entryList(QStringList() << QLatin1String("*.js"),
+ QStringList files = d.entryList(QStringList() << QLatin1String("*.js"),
QDir::Files);
foreach (const QString &file, files) {
if (file == "browser.js")
@@ -73,7 +73,7 @@ QStringList tst_parserstress::findJSFiles(const QDir &d)
rv << d.absoluteFilePath(file);
}
- QStringList dirs = d.entryList(QDir::Dirs | QDir::NoDotAndDotDot |
+ QStringList dirs = d.entryList(QDir::Dirs | QDir::NoDotAndDotDot |
QDir::NoSymLinks);
foreach (const QString &dir, dirs) {
QDir sub = d;
@@ -131,8 +131,8 @@ void tst_parserstress::ecmascript()
QDeclarativeComponent component(&engine);
component.setData(qmlData, QUrl::fromLocalFile(SRCDIR + QString("/dummy.qml")));
QSet<QString> failingTests;
- failingTests << "uc-003.js" << "uc-005.js" << "regress-352044-02-n.js"
- << "regress-334158.js" << "regress-58274.js" << "dowhile-006.js" << "dowhile-005.js";
+ failingTests << "regress-352044-02-n.js"
+ << "regress-334158.js";
QFileInfo info(file);
foreach (const QString &failing, failingTests) {
if (info.fileName().endsWith(failing)) {
diff --git a/tests/auto/declarative/qdeclarativeanchors/tst_qdeclarativeanchors.cpp b/tests/auto/declarative/qdeclarativeanchors/tst_qdeclarativeanchors.cpp
index 01b5bc5..dff62c7 100644
--- a/tests/auto/declarative/qdeclarativeanchors/tst_qdeclarativeanchors.cpp
+++ b/tests/auto/declarative/qdeclarativeanchors/tst_qdeclarativeanchors.cpp
@@ -49,7 +49,7 @@
#include <private/qdeclarativetext_p.h>
#include <QtDeclarative/private/qdeclarativeanchors_p_p.h>
-Q_DECLARE_METATYPE(QDeclarativeAnchors::UsedAnchor)
+Q_DECLARE_METATYPE(QDeclarativeAnchors::Anchor)
Q_DECLARE_METATYPE(QDeclarativeAnchorLine::AnchorLine)
@@ -262,7 +262,7 @@ void tst_qdeclarativeanchors::loops()
{
QUrl source(QUrl::fromLocalFile(SRCDIR "/data/loop1.qml"));
- QString expect = "QML Text (" + source.toString() + ":6:5" + ") Possible anchor loop detected on horizontal anchor.";
+ QString expect = source.toString() + ":6:5: QML Text: Possible anchor loop detected on horizontal anchor.";
QTest::ignoreMessage(QtWarningMsg, expect.toLatin1());
QTest::ignoreMessage(QtWarningMsg, expect.toLatin1());
QTest::ignoreMessage(QtWarningMsg, expect.toLatin1());
@@ -277,7 +277,7 @@ void tst_qdeclarativeanchors::loops()
{
QUrl source(QUrl::fromLocalFile(SRCDIR "/data/loop2.qml"));
- QString expect = "QML Image (" + source.toString() + ":8:3" + ") Possible anchor loop detected on horizontal anchor.";
+ QString expect = source.toString() + ":8:3: QML Image: Possible anchor loop detected on horizontal anchor.";
QTest::ignoreMessage(QtWarningMsg, expect.toLatin1());
QDeclarativeView *view = new QDeclarativeView;
@@ -312,62 +312,62 @@ void tst_qdeclarativeanchors::illegalSets_data()
QTest::newRow("H - too many anchors")
<< "Rectangle { id: rect; Rectangle { anchors.left: rect.left; anchors.right: rect.right; anchors.horizontalCenter: rect.horizontalCenter } }"
- << "QML Rectangle (file::2:23) Cannot specify left, right, and hcenter anchors.";
+ << "file::2:23: QML Rectangle: Cannot specify left, right, and hcenter anchors.";
foreach (const QString &side, QStringList() << "left" << "right") {
QTest::newRow("H - anchor to V")
<< QString("Rectangle { Rectangle { anchors.%1: parent.top } }").arg(side)
- << "QML Rectangle (file::2:13) Cannot anchor a horizontal edge to a vertical edge.";
+ << "file::2:13: QML Rectangle: Cannot anchor a horizontal edge to a vertical edge.";
QTest::newRow("H - anchor to non parent/sibling")
<< QString("Rectangle { Item { Rectangle { id: rect } } Rectangle { anchors.%1: rect.%1 } }").arg(side)
- << "QML Rectangle (file::2:45) Cannot anchor to an item that isn't a parent or sibling.";
+ << "file::2:45: QML Rectangle: Cannot anchor to an item that isn't a parent or sibling.";
QTest::newRow("H - anchor to self")
<< QString("Rectangle { id: rect; anchors.%1: rect.%1 }").arg(side)
- << "QML Rectangle (file::2:1) Cannot anchor item to self.";
+ << "file::2:1: QML Rectangle: Cannot anchor item to self.";
}
QTest::newRow("V - too many anchors")
<< "Rectangle { id: rect; Rectangle { anchors.top: rect.top; anchors.bottom: rect.bottom; anchors.verticalCenter: rect.verticalCenter } }"
- << "QML Rectangle (file::2:23) Cannot specify top, bottom, and vcenter anchors.";
+ << "file::2:23: QML Rectangle: Cannot specify top, bottom, and vcenter anchors.";
QTest::newRow("V - too many anchors with baseline")
<< "Rectangle { Text { id: text1; text: \"Hello\" } Text { anchors.baseline: text1.baseline; anchors.top: text1.top; } }"
- << "QML Text (file::2:47) Baseline anchor cannot be used in conjunction with top, bottom, or vcenter anchors.";
+ << "file::2:47: QML Text: Baseline anchor cannot be used in conjunction with top, bottom, or vcenter anchors.";
foreach (const QString &side, QStringList() << "top" << "bottom" << "baseline") {
QTest::newRow("V - anchor to H")
<< QString("Rectangle { Rectangle { anchors.%1: parent.left } }").arg(side)
- << "QML Rectangle (file::2:13) Cannot anchor a vertical edge to a horizontal edge.";
+ << "file::2:13: QML Rectangle: Cannot anchor a vertical edge to a horizontal edge.";
QTest::newRow("V - anchor to non parent/sibling")
<< QString("Rectangle { Item { Rectangle { id: rect } } Rectangle { anchors.%1: rect.%1 } }").arg(side)
- << "QML Rectangle (file::2:45) Cannot anchor to an item that isn't a parent or sibling.";
+ << "file::2:45: QML Rectangle: Cannot anchor to an item that isn't a parent or sibling.";
QTest::newRow("V - anchor to self")
<< QString("Rectangle { id: rect; anchors.%1: rect.%1 }").arg(side)
- << "QML Rectangle (file::2:1) Cannot anchor item to self.";
+ << "file::2:1: QML Rectangle: Cannot anchor item to self.";
}
QTest::newRow("centerIn - anchor to non parent/sibling")
<< "Rectangle { Item { Rectangle { id: rect } } Rectangle { anchors.centerIn: rect} }"
- << "QML Rectangle (file::2:45) Cannot anchor to an item that isn't a parent or sibling.";
+ << "file::2:45: QML Rectangle: Cannot anchor to an item that isn't a parent or sibling.";
QTest::newRow("fill - anchor to non parent/sibling")
<< "Rectangle { Item { Rectangle { id: rect } } Rectangle { anchors.fill: rect} }"
- << "QML Rectangle (file::2:45) Cannot anchor to an item that isn't a parent or sibling.";
+ << "file::2:45: QML Rectangle: Cannot anchor to an item that isn't a parent or sibling.";
}
void tst_qdeclarativeanchors::reset()
{
QFETCH(QString, side);
QFETCH(QDeclarativeAnchorLine::AnchorLine, anchorLine);
- QFETCH(QDeclarativeAnchors::UsedAnchor, usedAnchor);
+ QFETCH(QDeclarativeAnchors::Anchor, usedAnchor);
QDeclarativeItem *baseItem = new QDeclarativeItem;
@@ -394,16 +394,16 @@ void tst_qdeclarativeanchors::reset_data()
{
QTest::addColumn<QString>("side");
QTest::addColumn<QDeclarativeAnchorLine::AnchorLine>("anchorLine");
- QTest::addColumn<QDeclarativeAnchors::UsedAnchor>("usedAnchor");
+ QTest::addColumn<QDeclarativeAnchors::Anchor>("usedAnchor");
- QTest::newRow("left") << "left" << QDeclarativeAnchorLine::Left << QDeclarativeAnchors::HasLeftAnchor;
- QTest::newRow("top") << "top" << QDeclarativeAnchorLine::Top << QDeclarativeAnchors::HasTopAnchor;
- QTest::newRow("right") << "right" << QDeclarativeAnchorLine::Right << QDeclarativeAnchors::HasRightAnchor;
- QTest::newRow("bottom") << "bottom" << QDeclarativeAnchorLine::Bottom << QDeclarativeAnchors::HasBottomAnchor;
+ QTest::newRow("left") << "left" << QDeclarativeAnchorLine::Left << QDeclarativeAnchors::LeftAnchor;
+ QTest::newRow("top") << "top" << QDeclarativeAnchorLine::Top << QDeclarativeAnchors::TopAnchor;
+ QTest::newRow("right") << "right" << QDeclarativeAnchorLine::Right << QDeclarativeAnchors::RightAnchor;
+ QTest::newRow("bottom") << "bottom" << QDeclarativeAnchorLine::Bottom << QDeclarativeAnchors::BottomAnchor;
- QTest::newRow("hcenter") << "horizontalCenter" << QDeclarativeAnchorLine::HCenter << QDeclarativeAnchors::HasHCenterAnchor;
- QTest::newRow("vcenter") << "verticalCenter" << QDeclarativeAnchorLine::VCenter << QDeclarativeAnchors::HasVCenterAnchor;
- QTest::newRow("baseline") << "baseline" << QDeclarativeAnchorLine::Baseline << QDeclarativeAnchors::HasBaselineAnchor;
+ QTest::newRow("hcenter") << "horizontalCenter" << QDeclarativeAnchorLine::HCenter << QDeclarativeAnchors::HCenterAnchor;
+ QTest::newRow("vcenter") << "verticalCenter" << QDeclarativeAnchorLine::VCenter << QDeclarativeAnchors::VCenterAnchor;
+ QTest::newRow("baseline") << "baseline" << QDeclarativeAnchorLine::Baseline << QDeclarativeAnchors::BaselineAnchor;
}
void tst_qdeclarativeanchors::resetConvenience()
@@ -437,7 +437,7 @@ void tst_qdeclarativeanchors::nullItem()
const QMetaObject *meta = item->anchors()->metaObject();
QMetaProperty p = meta->property(meta->indexOfProperty(side.toUtf8().constData()));
- QTest::ignoreMessage(QtWarningMsg, "QML Item (unknown location) Cannot anchor to a null item.");
+ QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: QML Item: Cannot anchor to a null item.");
QVERIFY(p.write(item->anchors(), qVariantFromValue(anchor)));
delete item;
@@ -461,7 +461,7 @@ void tst_qdeclarativeanchors::crash1()
{
QUrl source(QUrl::fromLocalFile(SRCDIR "/data/crash1.qml"));
- QString expect = "QML Text (" + source.toString() + ":4:5" + ") Possible anchor loop detected on fill.";
+ QString expect = source.toString() + ":4:5: QML Text: Possible anchor loop detected on fill.";
QTest::ignoreMessage(QtWarningMsg, expect.toLatin1());
diff --git a/tests/auto/declarative/qdeclarativeanimatedimage/tst_qdeclarativeanimatedimage.cpp b/tests/auto/declarative/qdeclarativeanimatedimage/tst_qdeclarativeanimatedimage.cpp
index 0fb080c..237a436 100644
--- a/tests/auto/declarative/qdeclarativeanimatedimage/tst_qdeclarativeanimatedimage.cpp
+++ b/tests/auto/declarative/qdeclarativeanimatedimage/tst_qdeclarativeanimatedimage.cpp
@@ -199,7 +199,7 @@ void tst_qdeclarativeanimatedimage::invalidSource()
component.setData("import Qt 4.7\n AnimatedImage { source: \"no-such-file.gif\" }", QUrl::fromLocalFile(""));
QVERIFY(component.isReady());
- QTest::ignoreMessage(QtWarningMsg, "Error Reading Animated Image File QUrl( \"file:no-such-file.gif\" ) ");
+ QTest::ignoreMessage(QtWarningMsg, "file::2:2: QML AnimatedImage: Error Reading Animated Image File file:no-such-file.gif");
QDeclarativeAnimatedImage *anim = qobject_cast<QDeclarativeAnimatedImage *>(component.create());
QVERIFY(anim);
diff --git a/tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp b/tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp
index 959cc19..e217e34 100644
--- a/tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp
+++ b/tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp
@@ -339,13 +339,13 @@ void tst_qdeclarativeanimations::badProperties()
QDeclarativeEngine engine;
QDeclarativeComponent c1(&engine, QUrl::fromLocalFile(SRCDIR "/data/badproperty1.qml"));
- QByteArray message = "QML ColorAnimation (" + QUrl::fromLocalFile(SRCDIR "/data/badproperty1.qml").toString().toUtf8() + ":18:9) Cannot animate non-existent property \"border.colr\"";
+ QByteArray message = QUrl::fromLocalFile(SRCDIR "/data/badproperty1.qml").toString().toUtf8() + ":18:9: QML ColorAnimation: Cannot animate non-existent property \"border.colr\"";
QTest::ignoreMessage(QtWarningMsg, message);
QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c1.create());
QVERIFY(rect);
QDeclarativeComponent c2(&engine, QUrl::fromLocalFile(SRCDIR "/data/badproperty2.qml"));
- message = "QML ColorAnimation (" + QUrl::fromLocalFile(SRCDIR "/data/badproperty2.qml").toString().toUtf8() + ":18:9) Cannot animate read-only property \"border\"";
+ message = QUrl::fromLocalFile(SRCDIR "/data/badproperty2.qml").toString().toUtf8() + ":18:9: QML ColorAnimation: Cannot animate read-only property \"border\"";
QTest::ignoreMessage(QtWarningMsg, message);
rect = qobject_cast<QDeclarativeRectangle*>(c2.create());
QVERIFY(rect);
@@ -549,12 +549,12 @@ void tst_qdeclarativeanimations::propertiesTransition()
void tst_qdeclarativeanimations::invalidDuration()
{
QDeclarativePropertyAnimation *animation = new QDeclarativePropertyAnimation;
- QTest::ignoreMessage(QtWarningMsg, "QML PropertyAnimation (unknown location) Cannot set a duration of < 0");
+ QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: QML PropertyAnimation: Cannot set a duration of < 0");
animation->setDuration(-1);
QCOMPARE(animation->duration(), 250);
QDeclarativePauseAnimation *pauseAnimation = new QDeclarativePauseAnimation;
- QTest::ignoreMessage(QtWarningMsg, "QML PauseAnimation (unknown location) Cannot set a duration of < 0");
+ QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: QML PauseAnimation: Cannot set a duration of < 0");
pauseAnimation->setDuration(-1);
QCOMPARE(pauseAnimation->duration(), 250);
}
@@ -620,7 +620,8 @@ void tst_qdeclarativeanimations::dontStart()
QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/dontStart.qml"));
- QTest::ignoreMessage(QtWarningMsg, "QDeclarativeAbstractAnimation: setRunning() cannot be used on non-root animation nodes");
+ QString warning = c.url().toString() + ":14:13: QML NumberAnimation: setRunning() cannot be used on non-root animation nodes.";
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning));
QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
QVERIFY(rect);
@@ -634,7 +635,8 @@ void tst_qdeclarativeanimations::dontStart()
QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/dontStart2.qml"));
- QTest::ignoreMessage(QtWarningMsg, "QDeclarativeAbstractAnimation: setRunning() cannot be used on non-root animation nodes");
+ QString warning = c.url().toString() + ":15:17: QML NumberAnimation: setRunning() cannot be used on non-root animation nodes.";
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning));
QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
QVERIFY(rect);
diff --git a/tests/auto/declarative/qdeclarativebehaviors/tst_qdeclarativebehaviors.cpp b/tests/auto/declarative/qdeclarativebehaviors/tst_qdeclarativebehaviors.cpp
index 3bff2f5..ee9e282 100644
--- a/tests/auto/declarative/qdeclarativebehaviors/tst_qdeclarativebehaviors.cpp
+++ b/tests/auto/declarative/qdeclarativebehaviors/tst_qdeclarativebehaviors.cpp
@@ -272,7 +272,8 @@ void tst_qdeclarativebehaviors::reassignedAnimation()
{
QDeclarativeEngine engine;
QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/reassignedAnimation.qml"));
- QTest::ignoreMessage(QtWarningMsg, QString("QML Behavior (" + QUrl::fromLocalFile(SRCDIR "/data/reassignedAnimation.qml").toString() + ":9:9) Cannot change the animation assigned to a Behavior.").toUtf8().constData());
+ QString warning = QUrl::fromLocalFile(SRCDIR "/data/reassignedAnimation.qml").toString() + ":9:9: QML Behavior: Cannot change the animation assigned to a Behavior.";
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning));
QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
QTRY_VERIFY(rect);
QTRY_COMPARE(qobject_cast<QDeclarativeNumberAnimation*>(
@@ -303,7 +304,8 @@ void tst_qdeclarativebehaviors::dontStart()
QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/dontStart.qml"));
- QTest::ignoreMessage(QtWarningMsg, "QDeclarativeAbstractAnimation: setRunning() cannot be used on non-root animation nodes");
+ QString warning = c.url().toString() + ":13:13: QML NumberAnimation: setRunning() cannot be used on non-root animation nodes.";
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning));
QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
QTRY_VERIFY(rect);
diff --git a/tests/auto/declarative/qdeclarativeborderimage/tst_qdeclarativeborderimage.cpp b/tests/auto/declarative/qdeclarativeborderimage/tst_qdeclarativeborderimage.cpp
index 8621239..69b4a89 100644
--- a/tests/auto/declarative/qdeclarativeborderimage/tst_qdeclarativeborderimage.cpp
+++ b/tests/auto/declarative/qdeclarativeborderimage/tst_qdeclarativeborderimage.cpp
@@ -121,10 +121,10 @@ void tst_qdeclarativeborderimage::imageSource_data()
QTest::newRow("local") << QUrl::fromLocalFile(SRCDIR "/data/colors.png").toString() << false << "";
QTest::newRow("local not found") << QUrl::fromLocalFile(SRCDIR "/data/no-such-file.png").toString() << false
- << "QML BorderImage (file::2:1) Cannot open: " + QUrl::fromLocalFile(SRCDIR "/data/no-such-file.png").toString();
+ << "file::2:1: QML BorderImage: Cannot open: " + QUrl::fromLocalFile(SRCDIR "/data/no-such-file.png").toString();
QTest::newRow("remote") << SERVER_ADDR "/colors.png" << true << "";
QTest::newRow("remote not found") << SERVER_ADDR "/no-such-file.png" << true
- << "QML BorderImage (file::2:1) Error downloading " SERVER_ADDR "/no-such-file.png - server replied: Not found";
+ << "file::2:1: QML BorderImage: Error downloading " SERVER_ADDR "/no-such-file.png - server replied: Not found";
}
void tst_qdeclarativeborderimage::imageSource()
@@ -304,8 +304,8 @@ void tst_qdeclarativeborderimage::sciSource_data()
void tst_qdeclarativeborderimage::invalidSciFile()
{
- QTest::ignoreMessage(QtWarningMsg, "Unknown tile rule specified. Using Stretch "); // for "Roun"
- QTest::ignoreMessage(QtWarningMsg, "Unknown tile rule specified. Using Stretch "); // for "Repea"
+ QTest::ignoreMessage(QtWarningMsg, "QDeclarativeGridScaledImage: Invalid tile rule specified. Using Stretch."); // for "Roun"
+ QTest::ignoreMessage(QtWarningMsg, "QDeclarativeGridScaledImage: Invalid tile rule specified. Using Stretch."); // for "Repea"
QString componentStr = "import Qt 4.7\nBorderImage { source: \"" + QUrl::fromLocalFile(SRCDIR "/data/invalid.sci").toString() +"\"; width: 300; height: 300 }";
QDeclarativeComponent component(&engine);
diff --git a/tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp b/tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp
index 133dcb8..e2d3ee4 100644
--- a/tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp
+++ b/tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp
@@ -60,6 +60,7 @@
#include <private/qdeclarativemetatype_p.h>
#include <private/qdeclarativeproperty_p.h>
+#include "../../../shared/util.h"
#include "../shared/debugutil_p.h"
Q_DECLARE_METATYPE(QDeclarativeDebugWatch::State)
@@ -69,14 +70,6 @@ class tst_QDeclarativeDebug : public QObject
{
Q_OBJECT
-public:
- tst_QDeclarativeDebug(QDeclarativeDebugTestData *data)
- {
- m_conn = data->conn;
- m_engine = data->engine;
- m_rootItem = data->items[0];
- }
-
private:
QDeclarativeDebugObjectReference findRootObject();
QDeclarativeDebugPropertyReference findProperty(const QList<QDeclarativeDebugPropertyReference> &props, const QString &name) const;
@@ -93,8 +86,11 @@ private:
QDeclarativeEngine *m_engine;
QDeclarativeItem *m_rootItem;
+ QObjectList m_components;
+
private slots:
void initTestCase();
+ void cleanupTestCase();
void watch_property();
void watch_object();
@@ -278,9 +274,52 @@ void tst_QDeclarativeDebug::compareProperties(const QDeclarativeDebugPropertyRef
void tst_QDeclarativeDebug::initTestCase()
{
+ qRegisterMetaType<QDeclarativeDebugWatch::State>();
+
+ QTest::ignoreMessage(QtWarningMsg, "QDeclarativeDebugServer: Waiting for connection on port 3768...");
+ qputenv("QML_DEBUG_SERVER_PORT", "3768");
+ m_engine = new QDeclarativeEngine(this);
+
+ QList<QByteArray> qml;
+ qml << "import Qt 4.7\n"
+ "Item {"
+ "width: 10; height: 20; scale: blueRect.scale;"
+ "Rectangle { id: blueRect; width: 500; height: 600; color: \"blue\"; }"
+ "Text { color: blueRect.color; }"
+ "MouseArea {"
+ "onEntered: { console.log('hello') }"
+ "}"
+ "}";
+ // add second component to test multiple root contexts
+ qml << "import Qt 4.7\n"
+ "Item {}";
+
+ for (int i=0; i<qml.count(); i++) {
+ QDeclarativeComponent component(m_engine);
+ component.setData(qml[i], QUrl::fromLocalFile(""));
+ Q_ASSERT(component.isReady()); // fails if bad syntax
+ m_components << qobject_cast<QDeclarativeItem*>(component.create());
+ }
+ m_rootItem = qobject_cast<QDeclarativeItem*>(m_components.first());
+
+ // add an extra context to test for multiple contexts
+ QDeclarativeContext *context = new QDeclarativeContext(m_engine->rootContext(), this);
+ context->setObjectName("tst_QDeclarativeDebug_childContext");
+
+ m_conn = new QDeclarativeDebugConnection(this);
+ m_conn->connectToHost("127.0.0.1", 3768);
+
+ QTest::ignoreMessage(QtWarningMsg, "QDeclarativeDebugServer: Connection established");
+ bool ok = m_conn->waitForConnected();
+ Q_ASSERT(ok);
+ QTRY_VERIFY(QDeclarativeDebugService::hasDebuggingClient());
+
m_dbg = new QDeclarativeEngineDebug(m_conn, this);
+}
- qRegisterMetaType<QDeclarativeDebugWatch::State>();
+void tst_QDeclarativeDebug::cleanupTestCase()
+{
+ qDeleteAll(m_components);
}
void tst_QDeclarativeDebug::watch_property()
@@ -804,40 +843,6 @@ void tst_QDeclarativeDebug::tst_QDeclarativeDebugPropertyReference()
compareProperties(r, ref);
}
-
-class tst_QDeclarativeDebug_Factory : public QDeclarativeTestFactory
-{
-public:
- QObject *createTest(QDeclarativeDebugTestData *data)
- {
- tst_QDeclarativeDebug *test = new tst_QDeclarativeDebug(data);
- QDeclarativeContext *c = new QDeclarativeContext(data->engine->rootContext(), test);
- c->setObjectName("tst_QDeclarativeDebug_childContext");
- return test;
- }
-};
-
-int main(int argc, char *argv[])
-{
- QApplication app(argc, argv);
-
- QList<QByteArray> qml;
- qml << "import Qt 4.7\n"
- "Item {"
- "width: 10; height: 20; scale: blueRect.scale;"
- "Rectangle { id: blueRect; width: 500; height: 600; color: \"blue\"; }"
- "Text { color: blueRect.color; }"
- "MouseArea {"
- "onEntered: { console.log('hello') }"
- "}"
- "}";
- // add second component to test multiple root contexts
- qml << "import Qt 4.7\n"
- "Item {}";
- tst_QDeclarativeDebug_Factory factory;
- return QDeclarativeDebugTest::runTests(&factory, qml);
-}
-
-//QTEST_MAIN(tst_QDeclarativeDebug)
+QTEST_MAIN(tst_QDeclarativeDebug)
#include "tst_qdeclarativedebug.moc"
diff --git a/tests/auto/declarative/qdeclarativedebugclient/tst_qdeclarativedebugclient.cpp b/tests/auto/declarative/qdeclarativedebugclient/tst_qdeclarativedebugclient.cpp
index d3679a7..a19c2c2 100644
--- a/tests/auto/declarative/qdeclarativedebugclient/tst_qdeclarativedebugclient.cpp
+++ b/tests/auto/declarative/qdeclarativedebugclient/tst_qdeclarativedebugclient.cpp
@@ -52,21 +52,19 @@
#include <private/qdeclarativedebugclient_p.h>
#include <private/qdeclarativedebugservice_p.h>
+#include "../../../shared/util.h"
#include "../shared/debugutil_p.h"
class tst_QDeclarativeDebugClient : public QObject
{
Q_OBJECT
-public:
- tst_QDeclarativeDebugClient(QDeclarativeDebugTestData *data)
- {
- m_conn = data->conn;
- }
-
+private:
QDeclarativeDebugConnection *m_conn;
private slots:
+ void initTestCase();
+
void name();
void isEnabled();
void setEnabled();
@@ -74,6 +72,23 @@ private slots:
void sendMessage();
};
+void tst_QDeclarativeDebugClient::initTestCase()
+{
+ QTest::ignoreMessage(QtWarningMsg, "QDeclarativeDebugServer: Waiting for connection on port 3770...");
+
+ qputenv("QML_DEBUG_SERVER_PORT", "3770");
+ new QDeclarativeEngine(this);
+
+ m_conn = new QDeclarativeDebugConnection(this);
+ m_conn->connectToHost("127.0.0.1", 3770);
+
+ QTest::ignoreMessage(QtWarningMsg, "QDeclarativeDebugServer: Connection established");
+ bool ok = m_conn->waitForConnected();
+ Q_ASSERT(ok);
+
+ QTRY_VERIFY(QDeclarativeDebugService::hasDebuggingClient());
+}
+
void tst_QDeclarativeDebugClient::name()
{
QString name = "tst_QDeclarativeDebugClient::name()";
@@ -136,22 +151,7 @@ void tst_QDeclarativeDebugClient::sendMessage()
QCOMPARE(resp, msg);
}
-
-class tst_QDeclarativeDebugClient_Factory : public QDeclarativeTestFactory
-{
-public:
- QObject *createTest(QDeclarativeDebugTestData *data) { return new tst_QDeclarativeDebugClient(data); }
-};
-
-
-// This does not use QTEST_MAIN because the test has to be created and run
-// in a separate thread.
-int main(int argc, char *argv[])
-{
- QApplication app(argc, argv);
-
- tst_QDeclarativeDebugClient_Factory factory;
- return QDeclarativeDebugTest::runTests(&factory);
-}
+QTEST_MAIN(tst_QDeclarativeDebugClient)
#include "tst_qdeclarativedebugclient.moc"
+
diff --git a/tests/auto/declarative/qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp b/tests/auto/declarative/qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp
index c8fc001..9ebbbaf 100644
--- a/tests/auto/declarative/qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp
+++ b/tests/auto/declarative/qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp
@@ -52,21 +52,19 @@
#include <private/qdeclarativedebugclient_p.h>
#include <private/qdeclarativedebugservice_p.h>
+#include "../../../shared/util.h"
#include "../shared/debugutil_p.h"
+
class tst_QDeclarativeDebugService : public QObject
{
Q_OBJECT
-
-public:
- tst_QDeclarativeDebugService(QDeclarativeDebugTestData *data)
- {
- m_conn = data->conn;
- }
-
+private:
QDeclarativeDebugConnection *m_conn;
private slots:
+ void initTestCase();
+
void name();
void isEnabled();
void enabledChanged();
@@ -76,6 +74,22 @@ private slots:
void objectToString();
};
+void tst_QDeclarativeDebugService::initTestCase()
+{
+ QTest::ignoreMessage(QtWarningMsg, "QDeclarativeDebugServer: Waiting for connection on port 3769...");
+ qputenv("QML_DEBUG_SERVER_PORT", "3769");
+ new QDeclarativeEngine(this);
+
+ m_conn = new QDeclarativeDebugConnection(this);
+ m_conn->connectToHost("127.0.0.1", 3769);
+
+ QTest::ignoreMessage(QtWarningMsg, "QDeclarativeDebugServer: Connection established");
+ bool ok = m_conn->waitForConnected();
+ Q_ASSERT(ok);
+
+ QTRY_VERIFY(QDeclarativeDebugService::hasDebuggingClient());
+}
+
void tst_QDeclarativeDebugService::name()
{
QString name = "tst_QDeclarativeDebugService::name()";
@@ -140,7 +154,7 @@ void tst_QDeclarativeDebugService::idForObject()
int idB = QDeclarativeDebugService::idForObject(objB);
QVERIFY(idB != idA);
QCOMPARE(QDeclarativeDebugService::objectForId(idB), objB);
-
+
delete objA;
delete objB;
}
@@ -170,21 +184,6 @@ void tst_QDeclarativeDebugService::objectToString()
delete obj;
}
-
-class tst_QDeclarativeDebugService_Factory : public QDeclarativeTestFactory
-{
-public:
- QObject *createTest(QDeclarativeDebugTestData *data) { return new tst_QDeclarativeDebugService(data); }
-};
-
-// This does not use QTEST_MAIN because the test has to be created and run
-// in a separate thread.
-int main(int argc, char *argv[])
-{
- QApplication app(argc, argv);
-
- tst_QDeclarativeDebugService_Factory factory;
- return QDeclarativeDebugTest::runTests(&factory);
-}
+QTEST_MAIN(tst_QDeclarativeDebugService)
#include "tst_qdeclarativedebugservice.moc"
diff --git a/tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp b/tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp
index 1f0c47c..a951827 100644
--- a/tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp
+++ b/tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp
@@ -1303,7 +1303,8 @@ void tst_qdeclarativedom::position()
QCOMPARE(child2Value.length(), 6);
// All QDeclarativeDomList
- qWarning("QDeclarativeListValue position test required");
+ QCOMPARE(childrenList.position(), 189);
+ QCOMPARE(childrenList.length(), 18);
}
QTEST_MAIN(tst_qdeclarativedom)
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/ScopeObject.qml b/tests/auto/declarative/qdeclarativeecmascript/data/ScopeObject.qml
index b7bec63..12ac754 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/ScopeObject.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/ScopeObject.qml
@@ -5,10 +5,8 @@ Item {
property int binding: myFunction();
property int binding2: myCompFunction();
- Script {
- function myCompFunction() {
- return a;
- }
+ function myCompFunction() {
+ return a;
}
}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/canAssignNullToQObject.1.qml b/tests/auto/declarative/qdeclarativeecmascript/data/canAssignNullToQObject.1.qml
new file mode 100644
index 0000000..3fd9131
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/canAssignNullToQObject.1.qml
@@ -0,0 +1,9 @@
+import Qt.test 1.0
+
+MyQmlObject {
+ property bool runTest: false
+
+ property variant a: MyQmlObject {}
+
+ objectProperty: (runTest == false)?a:null
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/canAssignNullToQObject.2.qml b/tests/auto/declarative/qdeclarativeecmascript/data/canAssignNullToQObject.2.qml
new file mode 100644
index 0000000..19b0c42
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/canAssignNullToQObject.2.qml
@@ -0,0 +1,11 @@
+import Qt.test 1.0
+import Qt 4.6
+
+MyQmlObject {
+ objectProperty: MyQmlObject {}
+
+ Component.onCompleted: {
+ objectProperty = null;
+ }
+}
+
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/deletedObject.qml b/tests/auto/declarative/qdeclarativeecmascript/data/deletedObject.qml
index 29eba42..64b83af 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/deletedObject.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/deletedObject.qml
@@ -20,6 +20,6 @@ QtObject {
myObject.deleteOnSet = 1;
test3 = myObject.value == undefined;
- // test4 = obj.value == undefined;
+ test4 = obj.value == undefined;
}
}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/dynamicCreation.qml b/tests/auto/declarative/qdeclarativeecmascript/data/dynamicCreation.qml
index 2fef03a..3047e9b 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/dynamicCreation.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/dynamicCreation.qml
@@ -5,23 +5,23 @@ MyQmlObject{
objectName: "obj"
function createOne()
{
- obj.objectProperty = createQmlObject('import Qt.test 1.0; MyQmlObject{objectName:"objectOne"}', obj);
+ obj.objectProperty = Qt.createQmlObject('import Qt.test 1.0; MyQmlObject{objectName:"objectOne"}', obj);
}
function createTwo()
{
- var component = createComponent('dynamicCreation.helper.qml');
+ var component = Qt.createComponent('dynamicCreation.helper.qml');
obj.objectProperty = component.createObject();
}
function createThree()
{
- obj.objectProperty = createQmlObject('TypeForDynamicCreation{}', obj);
+ obj.objectProperty = Qt.createQmlObject('TypeForDynamicCreation{}', obj);
}
function dontCrash()
{
- var component = createComponent('file-doesnt-exist.qml');
+ var component = Qt.createComponent('file-doesnt-exist.qml');
obj.objectProperty = component.createObject();
}
}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/dynamicDeletion.qml b/tests/auto/declarative/qdeclarativeecmascript/data/dynamicDeletion.qml
index 0855b29..f41e526 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/dynamicDeletion.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/dynamicDeletion.qml
@@ -5,7 +5,7 @@ MyQmlObject{
objectName: "obj"
function create()
{
- obj.objectProperty = createQmlObject('import Qt.test 1.0; MyQmlObject{objectName:"emptyObject"}', obj);
+ obj.objectProperty = Qt.createQmlObject('import Qt.test 1.0; MyQmlObject{objectName:"emptyObject"}', obj);
}
function killOther()
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/extensionObjectsPropertyOverride.qml b/tests/auto/declarative/qdeclarativeecmascript/data/extensionObjectsPropertyOverride.qml
new file mode 100644
index 0000000..3c443cb
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/extensionObjectsPropertyOverride.qml
@@ -0,0 +1,7 @@
+import Qt.test 1.0
+
+OverrideDefaultPropertyObject
+{
+ MyBaseExtendedObject {
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/externalScript.1.qml b/tests/auto/declarative/qdeclarativeecmascript/data/externalScript.1.qml
deleted file mode 100644
index 2ac7b6e..0000000
--- a/tests/auto/declarative/qdeclarativeecmascript/data/externalScript.1.qml
+++ /dev/null
@@ -1,11 +0,0 @@
-import Qt 4.6
-
-QtObject {
- property int test: external_script_func();
-
- Script {
- // Single source as non-array literal
- source: "externalScript.js"
- }
-}
-
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/externalScript.2.js b/tests/auto/declarative/qdeclarativeecmascript/data/externalScript.2.js
deleted file mode 100644
index 78c3a86..0000000
--- a/tests/auto/declarative/qdeclarativeecmascript/data/externalScript.2.js
+++ /dev/null
@@ -1,8 +0,0 @@
-function external_script_func2() {
- return a;
-}
-
-function is_a_undefined() {
- return a == undefined;
-}
-
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/externalScript.2.qml b/tests/auto/declarative/qdeclarativeecmascript/data/externalScript.2.qml
deleted file mode 100644
index dec657c..0000000
--- a/tests/auto/declarative/qdeclarativeecmascript/data/externalScript.2.qml
+++ /dev/null
@@ -1,11 +0,0 @@
-import Qt 4.6
-
-QtObject {
- property int test: external_script_func();
-
- Script {
- // Single source as array
- source: [ "externalScript.js" ]
- }
-}
-
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/externalScript.3.qml b/tests/auto/declarative/qdeclarativeecmascript/data/externalScript.3.qml
deleted file mode 100644
index d7acf38..0000000
--- a/tests/auto/declarative/qdeclarativeecmascript/data/externalScript.3.qml
+++ /dev/null
@@ -1,13 +0,0 @@
-import Qt 4.6
-
-QtObject {
- property int test: external_script_func();
- property int test2: external_script_func2();
- property bool test3: is_a_undefined();
-
- Script {
- // Multiple script
- source: [ "externalScript.js", "externalScript.2.js" ]
- }
-}
-
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/externalScript.4.qml b/tests/auto/declarative/qdeclarativeecmascript/data/externalScript.4.qml
deleted file mode 100644
index 16211aa..0000000
--- a/tests/auto/declarative/qdeclarativeecmascript/data/externalScript.4.qml
+++ /dev/null
@@ -1,15 +0,0 @@
-import Qt 4.6
-
-QtObject {
- property int test: external_script_func();
- property bool test2: is_a_undefined();
-
- // Disconnected scripts
- Script {
- source: "externalScript.js"
- }
-
- Script {
- source: "externalScript.2.js"
- }
-}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/externalScript.js b/tests/auto/declarative/qdeclarativeecmascript/data/externalScript.js
deleted file mode 100644
index 8928652..0000000
--- a/tests/auto/declarative/qdeclarativeecmascript/data/externalScript.js
+++ /dev/null
@@ -1,6 +0,0 @@
-var a = 92;
-
-function external_script_func() {
- return a;
-}
-
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scope.2.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scope.2.qml
index 8e5aa0b..9beda6a 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/scope.2.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scope.2.qml
@@ -4,10 +4,8 @@ Item {
property int a: 0
property int b: 0
- Script {
- function b() { return 11; }
- function c() { return 33; }
- }
+ function b() { return 11; }
+ function c() { return 33; }
QtObject {
id: a
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scope.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scope.qml
index cccd3d3..1c0be98 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/scope.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scope.qml
@@ -7,21 +7,17 @@ Item {
property int binding: a
property string binding2: a + "Test"
property int binding3: myFunction()
- property int binding4: myNestedFunction()
+ property int binding4: nestedObject.myNestedFunction()
- Script {
- function myFunction() {
- return a;
- }
+ function myFunction() {
+ return a;
}
Item {
id: nestedObject
- Script {
- function myNestedFunction() {
- return a;
- }
+ function myNestedFunction() {
+ return a;
}
property int a: 2
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptAccess.js b/tests/auto/declarative/qdeclarativeecmascript/data/scriptAccess.js
deleted file mode 100644
index c00d285..0000000
--- a/tests/auto/declarative/qdeclarativeecmascript/data/scriptAccess.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var extVariable = 19;
-
-function extMethod()
-{
- return extVariable;
-}
-
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptAccess.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptAccess.qml
deleted file mode 100644
index feb6d16..0000000
--- a/tests/auto/declarative/qdeclarativeecmascript/data/scriptAccess.qml
+++ /dev/null
@@ -1,17 +0,0 @@
-import Qt 4.6
-
-Item {
- Script {
- function method() {
- return 10;
- }
- }
-
- Script {
- source: "scriptAccess.js"
- }
-
- property int test1: method()
- property int test2: extMethod()
- property int test3: extVariable
-}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.1.js b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.1.js
new file mode 100644
index 0000000..54284fe
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.1.js
@@ -0,0 +1,4 @@
+function testFunction() {
+ test = true;
+}
+
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.1.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.1.qml
index 2bdd706..d6e4207 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.1.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.1.qml
@@ -1,16 +1,10 @@
import Qt.test 1.0
import Qt 4.6
-
+import "scriptConnect.1.js" as Script
MyQmlObject {
property bool test: false
id: root
- Script {
- function testFunction() {
- test = true;
- }
- }
-
- Component.onCompleted: root.argumentSignal.connect(testFunction);
+ Component.onCompleted: root.argumentSignal.connect(Script.testFunction);
}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.2.js b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.2.js
new file mode 100644
index 0000000..595c778
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.2.js
@@ -0,0 +1,5 @@
+function testFunction() {
+ if (this.b == 12)
+ test = true;
+}
+
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.2.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.2.qml
index fa90918..7992ba5 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.2.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.2.qml
@@ -1,22 +1,16 @@
import Qt.test 1.0
import Qt 4.6
+import "scriptConnect.2.js" as Script
MyQmlObject {
property bool test: false
id: root
- Script {
- function testFunction() {
- if (this.b == 12)
- test = true;
- }
- }
-
Component.onCompleted: {
var a = new Object;
a.b = 12;
- root.argumentSignal.connect(a, testFunction);
+ root.argumentSignal.connect(a, Script.testFunction);
}
}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.6.js b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.6.js
new file mode 100644
index 0000000..71bdd08
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.6.js
@@ -0,0 +1,3 @@
+function testFunction() {
+ test++;
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.6.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.6.qml
index 8c35db1..d546495 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.6.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.6.qml
@@ -1,20 +1,15 @@
import Qt.test 1.0
import Qt 4.6
+import "scriptConnect.6.js" as Script
MyQmlObject {
property int test: 0
id: root
-
- Script {
- function testFunction() {
- test++;
- }
- }
Component.onCompleted: {
- root.argumentSignal.connect(testFunction);
- root.argumentSignal.connect(testFunction);
+ root.argumentSignal.connect(Script.testFunction);
+ root.argumentSignal.connect(Script.testFunction);
}
}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.1.js b/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.1.js
new file mode 100644
index 0000000..407426f
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.1.js
@@ -0,0 +1,6 @@
+function testFunction() {
+ test++;
+}
+
+function otherFunction() {
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.1.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.1.qml
index 45c4f73..0d262c6 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.1.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.1.qml
@@ -1,18 +1,13 @@
import Qt.test 1.0
import Qt 4.6
+import "scriptDisconnect.1.js" as Script
MyQmlObject {
property int test: 0
id: root
- Script {
- function testFunction() {
- test++;
- }
- }
+ Component.onCompleted: root.argumentSignal.connect(Script.testFunction);
- Component.onCompleted: root.argumentSignal.connect(testFunction);
-
- onBasicSignal: root.argumentSignal.disconnect(testFunction);
+ onBasicSignal: root.argumentSignal.disconnect(Script.testFunction);
}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.2.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.2.qml
index a47fe74..6d379e6 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.2.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.2.qml
@@ -1,19 +1,14 @@
import Qt.test 1.0
import Qt 4.6
+import "scriptDisconnect.1.js" as Script
MyQmlObject {
property int test: 0
id: root
- Script {
- function testFunction() {
- test++;
- }
- }
+ Component.onCompleted: root.argumentSignal.connect(root, Script.testFunction);
- Component.onCompleted: root.argumentSignal.connect(root, testFunction);
-
- onBasicSignal: root.argumentSignal.disconnect(root, testFunction);
+ onBasicSignal: root.argumentSignal.disconnect(root, Script.testFunction);
}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.3.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.3.qml
index c95ffbf..526580a 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.3.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.3.qml
@@ -1,19 +1,14 @@
import Qt.test 1.0
import Qt 4.6
+import "scriptDisconnect.1.js" as Script
MyQmlObject {
property int test: 0
id: root
- Script {
- function testFunction() {
- test++;
- }
- }
+ Component.onCompleted: root.argumentSignal.connect(root, Script.testFunction);
- Component.onCompleted: root.argumentSignal.connect(root, testFunction);
-
- onBasicSignal: root.argumentSignal.disconnect(testFunction);
+ onBasicSignal: root.argumentSignal.disconnect(Script.testFunction);
}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.4.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.4.qml
index 342f24a..18b05ad 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.4.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.4.qml
@@ -1,20 +1,13 @@
import Qt.test 1.0
import Qt 4.6
+import "scriptDisconnect.1.js" as Script
MyQmlObject {
property int test: 0
id: root
- Script {
- function testFunction() {
- test++;
- }
- function otherFunction() {
- }
- }
+ Component.onCompleted: root.argumentSignal.connect(Script.testFunction);
- Component.onCompleted: root.argumentSignal.connect(testFunction);
-
- onBasicSignal: root.argumentSignal.disconnect(otherFunction);
+ onBasicSignal: root.argumentSignal.disconnect(Script.otherFunction);
}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptErrors.js b/tests/auto/declarative/qdeclarativeecmascript/data/scriptErrors.js
index 1d7b357..d22f623 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/scriptErrors.js
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptErrors.js
@@ -1,2 +1,4 @@
// Comment
a = 10
+
+function getValue() { a = 10; return 0; }
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptErrors.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptErrors.qml
index c2edb41..e8f7b62 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/scriptErrors.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptErrors.qml
@@ -1,11 +1,9 @@
import Qt.test 1.0
+import "scriptErrors.js" as Script
MyQmlObject {
- Script { source: "scriptErrors.js" }
- Script { function getValue() { a = 10; return 0; } }
-
property int t: a.value
- property int w: getValue();
+ property int w: Script.getValue();
property int x: undefinedObject
property int y: (a.value, undefinedObject)
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptScope.1.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptScope.1.qml
deleted file mode 100644
index 9b11fa9..0000000
--- a/tests/auto/declarative/qdeclarativeecmascript/data/scriptScope.1.qml
+++ /dev/null
@@ -1,13 +0,0 @@
-import Qt.test 1.0
-
-MyQmlObject {
- property string result
-
- Script{
- function f() {
- result = b
- }
-
- }
- onArgumentSignal: f()
-}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptScope.2.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptScope.2.qml
deleted file mode 100644
index ec727e2..0000000
--- a/tests/auto/declarative/qdeclarativeecmascript/data/scriptScope.2.qml
+++ /dev/null
@@ -1,11 +0,0 @@
-import Qt.test 1.0
-
-MyQmlObject {
- property string result
- property string aProp: "hello"
-
- Script{
- source: "scriptScope.js"
- }
- onBasicSignal: f()
-}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptScope.js b/tests/auto/declarative/qdeclarativeecmascript/data/scriptScope.js
deleted file mode 100644
index 5689930..0000000
--- a/tests/auto/declarative/qdeclarativeecmascript/data/scriptScope.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var aProp = "world";
-
-function f() {
- result = aProp;
-}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/testtypes.cpp b/tests/auto/declarative/qdeclarativeecmascript/testtypes.cpp
index 0d07055..154ff4d 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/testtypes.cpp
+++ b/tests/auto/declarative/qdeclarativeecmascript/testtypes.cpp
@@ -72,6 +72,14 @@ private:
int m_value;
};
+class DefaultPropertyExtensionObject : public QObject
+{
+ Q_OBJECT
+ Q_CLASSINFO("DefaultProperty", "firstProperty")
+public:
+ DefaultPropertyExtensionObject(QObject *parent) : QObject(parent) {}
+};
+
void registerTypes()
{
qmlRegisterType<MyQmlObject>("Qt.test", 1,0, "MyQmlObject");
@@ -81,6 +89,8 @@ void registerTypes()
qmlRegisterExtendedType<MyExtendedObject, ExtensionObject>("Qt.test", 1,0, "MyExtendedObject");
qmlRegisterType<MyTypeObject>("Qt.test", 1,0, "MyTypeObject");
qmlRegisterType<NumberAssignment>("Qt.test", 1,0, "NumberAssignment");
+ qmlRegisterExtendedType<DefaultPropertyExtendedObject, DefaultPropertyExtensionObject>("Qt.test", 1,0, "DefaultPropertyExtendedObject");
+ qmlRegisterType<OverrideDefaultPropertyObject>("Qt.test", 1,0, "OverrideDefaultPropertyObject");
}
#include "testtypes.moc"
diff --git a/tests/auto/declarative/qdeclarativeecmascript/testtypes.h b/tests/auto/declarative/qdeclarativeecmascript/testtypes.h
index 4424419..1381d57 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/testtypes.h
+++ b/tests/auto/declarative/qdeclarativeecmascript/testtypes.h
@@ -170,7 +170,6 @@ private:
};
QML_DECLARE_TYPEINFO(MyQmlObject, QML_HAS_ATTACHED_PROPERTIES)
-QML_DECLARE_TYPE(MyQmlObject);
class MyQmlContainer : public QObject
{
@@ -185,7 +184,6 @@ private:
QList<MyQmlObject*> m_children;
};
-QML_DECLARE_TYPE(MyQmlContainer);
class MyExpression : public QDeclarativeExpression
{
@@ -258,7 +256,6 @@ private:
QObject *m_object;
QObject *m_object2;
};
-QML_DECLARE_TYPE(MyDeferredObject);
class MyBaseExtendedObject : public QObject
{
@@ -273,7 +270,6 @@ public:
private:
int m_value;
};
-QML_DECLARE_TYPE(MyBaseExtendedObject);
class MyExtendedObject : public MyBaseExtendedObject
{
@@ -288,7 +284,6 @@ public:
private:
int m_value;
};
-QML_DECLARE_TYPE(MyExtendedObject);
class MyTypeObject : public QObject
{
@@ -555,7 +550,6 @@ signals:
void rectPropertyChanged();
};
Q_DECLARE_OPERATORS_FOR_FLAGS(MyTypeObject::MyFlags)
-QML_DECLARE_TYPE(MyTypeObject);
Q_DECLARE_METATYPE(QScriptValue);
class MyInvokableObject : public QObject
@@ -665,6 +659,31 @@ public:
void setTest12(unsigned int v) { _test12 = v; }
};
+class DefaultPropertyExtendedObject : public QObject
+{
+ Q_OBJECT
+ Q_PROPERTY(QObject *firstProperty READ firstProperty WRITE setFirstProperty)
+ Q_PROPERTY(QObject *secondProperty READ secondProperty WRITE setSecondProperty)
+public:
+ DefaultPropertyExtendedObject(QObject *parent = 0) : QObject(parent), m_firstProperty(0), m_secondProperty(0) {}
+
+ QObject *firstProperty() const { return m_firstProperty; }
+ QObject *secondProperty() const { return m_secondProperty; }
+ void setFirstProperty(QObject *property) { m_firstProperty = property; }
+ void setSecondProperty(QObject *property) { m_secondProperty = property; }
+private:
+ QObject* m_firstProperty;
+ QObject* m_secondProperty;
+};
+
+class OverrideDefaultPropertyObject : public DefaultPropertyExtendedObject
+{
+ Q_OBJECT
+ Q_CLASSINFO("DefaultProperty", "secondProperty")
+public:
+ OverrideDefaultPropertyObject() {}
+};
+
void registerTypes();
#endif // TESTTYPES_H
diff --git a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
index 098ac36..6939290 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
+++ b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
@@ -90,6 +90,7 @@ private slots:
void objectPropertiesTriggerReeval();
void deferredProperties();
void extensionObjects();
+ void overrideExtensionProperties();
void attachedProperties();
void enums();
void valueTypeFunctions();
@@ -100,7 +101,6 @@ private slots:
void scope();
void signalParameterTypes();
void objectsCompareAsEqual();
- void scriptAccess();
void dynamicCreation_data();
void dynamicCreation();
void dynamicDestruction();
@@ -117,14 +117,12 @@ private slots:
void exceptionBindingProducesWarning();
void transientErrors();
void shutdownErrors();
- void externalScript();
void compositePropertyType();
void jsObject();
void undefinedResetsProperty();
void listToVariant();
void multiEngineObject();
void deletedObject();
- void scriptScope();
void attachedPropertyScope();
void scriptConnect();
void scriptDisconnect();
@@ -143,6 +141,7 @@ private slots:
void variantsAssignedUndefined();
void qtbug_9792();
void noSpuriousWarningsAtShutdown();
+ void canAssignNullToQObject();
void callQtInvokables();
private:
@@ -320,7 +319,7 @@ void tst_qdeclarativeecmascript::methods()
void tst_qdeclarativeecmascript::bindingLoop()
{
QDeclarativeComponent component(&engine, TEST_FILE("bindingLoop.qml"));
- QString warning = "QML MyQmlObject (" + component.url().toString() + ":9:9) Binding loop detected for property \"stringProperty\"";
+ QString warning = component.url().toString() + ":9:9: QML MyQmlObject: Binding loop detected for property \"stringProperty\"";
QTest::ignoreMessage(QtWarningMsg, warning.toLatin1().constData());
QObject *object = component.create();
QVERIFY(object != 0);
@@ -568,6 +567,16 @@ void tst_qdeclarativeecmascript::extensionObjects()
}
+void tst_qdeclarativeecmascript::overrideExtensionProperties()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("extensionObjectsPropertyOverride.qml"));
+ OverrideDefaultPropertyObject *object =
+ qobject_cast<OverrideDefaultPropertyObject *>(component.create());
+ QVERIFY(object != 0);
+ QVERIFY(object->secondProperty() != 0);
+ QVERIFY(object->firstProperty() == 0);
+}
+
void tst_qdeclarativeecmascript::attachedProperties()
{
QDeclarativeComponent component(&engine, TEST_FILE("attachedProperty.qml"));
@@ -837,24 +846,6 @@ void tst_qdeclarativeecmascript::aliasPropertyAndBinding()
QCOMPARE(object->property("c3").toInt(), 19);
}
-/*
-Tests that only methods of Script {} blocks are exposed.
-*/
-void tst_qdeclarativeecmascript::scriptAccess()
-{
- QDeclarativeComponent component(&engine, TEST_FILE("scriptAccess.qml"));
-
- QString warning = component.url().toString() + ":16: Unable to assign [undefined] to int";
- QTest::ignoreMessage(QtWarningMsg, qPrintable(warning));
-
- QObject *object = component.create();
- QVERIFY(object != 0);
-
- QCOMPARE(object->property("test1").toInt(), 10);
- QCOMPARE(object->property("test2").toInt(), 19);
- QCOMPARE(object->property("test3").toInt(), 0);
-}
-
void tst_qdeclarativeecmascript::dynamicCreation_data()
{
QTest::addColumn<QString>("method");
@@ -977,13 +968,13 @@ void tst_qdeclarativeecmascript::scriptErrors()
QString url = component.url().toString();
QString warning1 = url.left(url.length() - 3) + "js:2: Error: Invalid write to global property \"a\"";
- QString warning2 = url + ":7: TypeError: Result of expression 'a' [undefined] is not an object.";
- QString warning3 = url + ":5: Error: Invalid write to global property \"a\"";
- QString warning4 = url + ":12: TypeError: Result of expression 'a' [undefined] is not an object.";
- QString warning5 = url + ":10: TypeError: Result of expression 'a' [undefined] is not an object.";
- QString warning6 = url + ":9: Unable to assign [undefined] to int";
- QString warning7 = url + ":14: Error: Cannot assign to read-only property \"trueProperty\"";
- QString warning8 = url + ":15: Error: Cannot assign to non-existent property \"fakeProperty\"";
+ QString warning2 = url + ":5: TypeError: Result of expression 'a' [undefined] is not an object.";
+ QString warning3 = url.left(url.length() - 3) + "js:4: Error: Invalid write to global property \"a\"";
+ QString warning4 = url + ":10: TypeError: Result of expression 'a' [undefined] is not an object.";
+ QString warning5 = url + ":8: TypeError: Result of expression 'a' [undefined] is not an object.";
+ QString warning6 = url + ":7: Unable to assign [undefined] to int";
+ QString warning7 = url + ":12: Error: Cannot assign to read-only property \"trueProperty\"";
+ QString warning8 = url + ":13: Error: Cannot assign to non-existent property \"fakeProperty\"";
QTest::ignoreMessage(QtWarningMsg, warning1.toLatin1().constData());
QTest::ignoreMessage(QtWarningMsg, warning2.toLatin1().constData());
@@ -1166,53 +1157,6 @@ void tst_qdeclarativeecmascript::shutdownErrors()
QCOMPARE(transientErrorsMsgCount, 0);
}
-// Check that Script::source property works as expected
-void tst_qdeclarativeecmascript::externalScript()
-{
- {
- QDeclarativeComponent component(&engine, TEST_FILE("externalScript.1.qml"));
- QObject *object = component.create();
- QVERIFY(object != 0);
-
- QCOMPARE(object->property("test").toInt(), 92);
-
- delete object;
- }
-
- {
- QDeclarativeComponent component(&engine, TEST_FILE("externalScript.2.qml"));
- QObject *object = component.create();
- QVERIFY(object != 0);
-
- QCOMPARE(object->property("test").toInt(), 92);
-
- delete object;
- }
-
- {
- QDeclarativeComponent component(&engine, TEST_FILE("externalScript.3.qml"));
- QObject *object = component.create();
- QVERIFY(object != 0);
-
- QCOMPARE(object->property("test").toInt(), 92);
- QCOMPARE(object->property("test2").toInt(), 92);
- QCOMPARE(object->property("test3").toBool(), false);
-
- delete object;
- }
-
- {
- QDeclarativeComponent component(&engine, TEST_FILE("externalScript.4.qml"));
- QObject *object = component.create();
- QVERIFY(object != 0);
-
- QCOMPARE(object->property("test").toInt(), 92);
- QCOMPARE(object->property("test2").toBool(), true);
-
- delete object;
- }
-}
-
void tst_qdeclarativeecmascript::compositePropertyType()
{
QDeclarativeComponent component(&engine, TEST_FILE("compositePropertyType.qml"));
@@ -1764,37 +1708,11 @@ void tst_qdeclarativeecmascript::deletedObject()
QCOMPARE(object->property("test1").toBool(), true);
QCOMPARE(object->property("test2").toBool(), true);
QCOMPARE(object->property("test3").toBool(), true);
- QEXPECT_FAIL("", "QTBUG-8077", Continue);
QCOMPARE(object->property("test4").toBool(), true);
delete object;
}
-void tst_qdeclarativeecmascript::scriptScope()
-{
- {
- QDeclarativeComponent component(&engine, TEST_FILE("scriptScope.1.qml"));
-
- MyQmlObject *object = qobject_cast<MyQmlObject *>(component.create());
- QVERIFY(object != 0);
- emit object->argumentSignal(19, "Hello world!", 10.3);
- QCOMPARE(object->property("result").toString(), QString());
-
- delete object;
- }
-
- {
- QDeclarativeComponent component(&engine, TEST_FILE("scriptScope.2.qml"));
-
- MyQmlObject *object = qobject_cast<MyQmlObject *>(component.create());
- QVERIFY(object != 0);
- emit object->basicSignal();
- QCOMPARE(object->property("result").toString(), QLatin1String("world"));
-
- delete object;
- }
-}
-
void tst_qdeclarativeecmascript::attachedPropertyScope()
{
QDeclarativeComponent component(&engine, TEST_FILE("attachedPropertyScope.qml"));
@@ -2273,6 +2191,35 @@ void tst_qdeclarativeecmascript::noSpuriousWarningsAtShutdown()
}
}
+void tst_qdeclarativeecmascript::canAssignNullToQObject()
+{
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("canAssignNullToQObject.1.qml"));
+
+ MyQmlObject *o = qobject_cast<MyQmlObject *>(component.create());
+ QVERIFY(o != 0);
+
+ QVERIFY(o->objectProperty() != 0);
+
+ o->setProperty("runTest", true);
+
+ QVERIFY(o->objectProperty() == 0);
+
+ delete o;
+ }
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("canAssignNullToQObject.2.qml"));
+
+ MyQmlObject *o = qobject_cast<MyQmlObject *>(component.create());
+ QVERIFY(o != 0);
+
+ QVERIFY(o->objectProperty() == 0);
+
+ delete o;
+ }
+}
+
QTEST_MAIN(tst_qdeclarativeecmascript)
#include "tst_qdeclarativeecmascript.moc"
diff --git a/tests/auto/declarative/qdeclarativeflipable/tst_qdeclarativeflipable.cpp b/tests/auto/declarative/qdeclarativeflipable/tst_qdeclarativeflipable.cpp
index 4155edb..f32cdbd 100644
--- a/tests/auto/declarative/qdeclarativeflipable/tst_qdeclarativeflipable.cpp
+++ b/tests/auto/declarative/qdeclarativeflipable/tst_qdeclarativeflipable.cpp
@@ -103,11 +103,11 @@ void tst_qdeclarativeflipable::setFrontAndBack()
QVERIFY(obj->front() != 0);
QVERIFY(obj->back() != 0);
- QString message = "QML Flipable (" + c.url().toString() + ":3:1) front is a write-once property";
+ QString message = c.url().toString() + ":3:1: QML Flipable: front is a write-once property";
QTest::ignoreMessage(QtWarningMsg, qPrintable(message));
obj->setFront(new QDeclarativeRectangle());
- message = "QML Flipable (" + c.url().toString() + ":3:1) back is a write-once property";
+ message = c.url().toString() + ":3:1: QML Flipable: back is a write-once property";
QTest::ignoreMessage(QtWarningMsg, qPrintable(message));
obj->setBack(new QDeclarativeRectangle());
delete obj;
diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/forcefocus.qml b/tests/auto/declarative/qdeclarativefocusscope/data/forcefocus.qml
new file mode 100644
index 0000000..adde522
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativefocusscope/data/forcefocus.qml
@@ -0,0 +1,81 @@
+import Qt 4.6
+
+Rectangle {
+ width: 800; height: 600
+
+ FocusScope {
+ focus: true
+
+ FocusScope {
+ id: firstScope
+ focus: true
+
+ Rectangle {
+ objectName: "item0"
+ height: 120; width: 420
+
+ color: "transparent"
+ border.width: 5; border.color: firstScope.wantsFocus?"blue":"black"
+
+ Rectangle {
+ id: item1; objectName: "item1"
+ x: 10; y: 10; width: 100; height: 100; color: "green"
+ border.width: 5; border.color: wantsFocus?"blue":"black"
+ focus: true
+
+ Rectangle {
+ width: 50; height: 50; anchors.centerIn: parent
+ color: parent.focus?"red":"transparent"
+ }
+ }
+
+ Rectangle {
+ id: item2; objectName: "item2"
+ x: 310; y: 10; width: 100; height: 100; color: "green"
+ border.width: 5; border.color: wantsFocus?"blue":"black"
+
+ Rectangle {
+ width: 50; height: 50; anchors.centerIn: parent
+ color: parent.focus?"red":"transparent"
+ }
+ }
+ }
+ }
+
+ FocusScope {
+ id: secondScope
+
+ Rectangle {
+ objectName: "item3"
+ y: 160; height: 120; width: 420
+
+ color: "transparent"
+ border.width: 5; border.color: secondScope.wantsFocus?"blue":"black"
+
+ Rectangle {
+ id: item4; objectName: "item4"
+ x: 10; y: 10; width: 100; height: 100; color: "green"
+ border.width: 5; border.color: wantsFocus?"blue":"black"
+
+ Rectangle {
+ width: 50; height: 50; anchors.centerIn: parent
+ color: parent.focus?"red":"transparent"
+ }
+ }
+
+ Rectangle {
+ id: item5; objectName: "item5"
+ x: 310; y: 10; width: 100; height: 100; color: "green"
+ border.width: 5; border.color: wantsFocus?"blue":"black"
+
+ Rectangle {
+ width: 50; height: 50; anchors.centerIn: parent
+ color: parent.focus?"red":"transparent"
+ }
+ }
+ }
+ }
+ }
+ Keys.onDigit4Pressed: item4.focus = true
+ Keys.onDigit5Pressed: item5.forceFocus()
+}
diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/test.qml b/tests/auto/declarative/qdeclarativefocusscope/data/test.qml
index 647e5bf..f060bdc 100644
--- a/tests/auto/declarative/qdeclarativefocusscope/data/test.qml
+++ b/tests/auto/declarative/qdeclarativefocusscope/data/test.qml
@@ -20,7 +20,7 @@ Rectangle {
color: "transparent"
border.width: 5
- //border.color: myScope.wantsFocus?"blue":"black"
+ border.color: myScope.wantsFocus?"blue":"black"
Rectangle {
id: item1; objectName: "item1"
diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/test4.qml b/tests/auto/declarative/qdeclarativefocusscope/data/test4.qml
index d8bd390..e41c6b8 100644
--- a/tests/auto/declarative/qdeclarativefocusscope/data/test4.qml
+++ b/tests/auto/declarative/qdeclarativefocusscope/data/test4.qml
@@ -19,7 +19,7 @@ Rectangle {
color: "transparent"
border.width: 5
- //border.color: myScope.wantsFocus?"blue":"black"
+ border.color: myScope.wantsFocus?"blue":"black"
Rectangle {
id: item1; objectName: "item1"
diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/test5.qml b/tests/auto/declarative/qdeclarativefocusscope/data/test5.qml
index da452cf..838e557 100644
--- a/tests/auto/declarative/qdeclarativefocusscope/data/test5.qml
+++ b/tests/auto/declarative/qdeclarativefocusscope/data/test5.qml
@@ -20,7 +20,7 @@ Rectangle {
color: "transparent"
border.width: 5
- //border.color: myScope.wantsFocus?"blue":"black"
+ border.color: myScope.wantsFocus?"blue":"black"
Rectangle {
x: 10; y: 10
diff --git a/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp b/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp
index 1bd8331..04bb1c5 100644
--- a/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp
+++ b/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp
@@ -63,6 +63,7 @@ private slots:
void nested();
void noFocus();
void textEdit();
+ void forceFocus();
};
/*
@@ -273,6 +274,62 @@ void tst_qdeclarativefocusscope::textEdit()
delete view;
}
+void tst_qdeclarativefocusscope::forceFocus()
+{
+ QDeclarativeView *view = new QDeclarativeView;
+ view->setSource(QUrl::fromLocalFile(SRCDIR "/data/forcefocus.qml"));
+
+ QDeclarativeRectangle *item0 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item0"));
+ QDeclarativeRectangle *item1 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item1"));
+ QDeclarativeRectangle *item2 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item2"));
+ QDeclarativeRectangle *item3 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item3"));
+ QDeclarativeRectangle *item4 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item4"));
+ QDeclarativeRectangle *item5 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item5"));
+ QVERIFY(item0 != 0);
+ QVERIFY(item1 != 0);
+ QVERIFY(item2 != 0);
+ QVERIFY(item3 != 0);
+ QVERIFY(item4 != 0);
+ QVERIFY(item5 != 0);
+
+ view->show();
+ qApp->setActiveWindow(view);
+ qApp->processEvents();
+
+#ifdef Q_WS_X11
+ // to be safe and avoid failing setFocus with window managers
+ qt_x11_wait_for_window_manager(view);
+#endif
+
+ QVERIFY(view->hasFocus());
+ QVERIFY(view->scene()->hasFocus());
+ QVERIFY(item0->wantsFocus() == true);
+ QVERIFY(item1->hasFocus() == true);
+ QVERIFY(item2->hasFocus() == false);
+ QVERIFY(item3->wantsFocus() == false);
+ QVERIFY(item4->hasFocus() == false);
+ QVERIFY(item5->hasFocus() == false);
+
+ QTest::keyClick(view, Qt::Key_4);
+ QVERIFY(item0->wantsFocus() == true);
+ QVERIFY(item1->hasFocus() == true);
+ QVERIFY(item2->hasFocus() == false);
+ QVERIFY(item3->wantsFocus() == false);
+ QVERIFY(item4->hasFocus() == false);
+ QVERIFY(item5->hasFocus() == false);
+
+ QTest::keyClick(view, Qt::Key_5);
+ QVERIFY(item0->wantsFocus() == false);
+ QVERIFY(item1->hasFocus() == false);
+ QVERIFY(item2->hasFocus() == false);
+ QVERIFY(item3->wantsFocus() == true);
+ QVERIFY(item4->hasFocus() == false);
+ QVERIFY(item5->hasFocus() == true);
+
+ delete view;
+}
+
+
QTEST_MAIN(tst_qdeclarativefocusscope)
#include "tst_qdeclarativefocusscope.moc"
diff --git a/tests/auto/declarative/qdeclarativefontloader/tst_qdeclarativefontloader.cpp b/tests/auto/declarative/qdeclarativefontloader/tst_qdeclarativefontloader.cpp
index 5cdc96c..36908d9 100644
--- a/tests/auto/declarative/qdeclarativefontloader/tst_qdeclarativefontloader.cpp
+++ b/tests/auto/declarative/qdeclarativefontloader/tst_qdeclarativefontloader.cpp
@@ -121,7 +121,7 @@ void tst_qdeclarativefontloader::localFont()
void tst_qdeclarativefontloader::failLocalFont()
{
QString componentStr = "import Qt 4.7\nFontLoader { source: \"" + QUrl::fromLocalFile(SRCDIR "/data/dummy.ttf").toString() + "\" }";
- QTest::ignoreMessage(QtWarningMsg, QString("Cannot load font: QUrl( \"" + QUrl::fromLocalFile(SRCDIR "/data/dummy.ttf").toString() + "\" ) ").toUtf8().constData());
+ QTest::ignoreMessage(QtWarningMsg, QString("file::2:1: QML FontLoader: Cannot load font: \"" + QUrl::fromLocalFile(SRCDIR "/data/dummy.ttf").toString() + "\"").toUtf8().constData());
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeFontLoader *fontObject = qobject_cast<QDeclarativeFontLoader*>(component.create());
@@ -165,7 +165,7 @@ void tst_qdeclarativefontloader::redirWebFont()
void tst_qdeclarativefontloader::failWebFont()
{
QString componentStr = "import Qt 4.7\nFontLoader { source: \"http://localhost:14448/nonexist.ttf\" }";
- QTest::ignoreMessage(QtWarningMsg, "Cannot load font: QUrl( \"http://localhost:14448/nonexist.ttf\" ) ");
+ QTest::ignoreMessage(QtWarningMsg, "file::2:1: QML FontLoader: Cannot load font: \"http://localhost:14448/nonexist.ttf\"");
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeFontLoader *fontObject = qobject_cast<QDeclarativeFontLoader*>(component.create());
diff --git a/tests/auto/declarative/qdeclarativeimage/data/green.png b/tests/auto/declarative/qdeclarativeimage/data/green.png
new file mode 100644
index 0000000..0a2e153
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeimage/data/green.png
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativeimage/data/tiling.qml b/tests/auto/declarative/qdeclarativeimage/data/tiling.qml
new file mode 100644
index 0000000..32839bb
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeimage/data/tiling.qml
@@ -0,0 +1,16 @@
+import Qt 4.7
+
+Rectangle {
+ width: 800; height: 600
+
+ Image {
+ objectName: "vTiling"; height: 550; width: 200
+ source: "green.png"; fillMode: Image.TileVertically
+ }
+
+ Image {
+ objectName: "hTiling"; x: 225; height: 250; width: 550
+ source: "green.png"; fillMode: Image.TileHorizontally
+ }
+}
+
diff --git a/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp b/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp
index 854bcdd..73aefaf 100644
--- a/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp
+++ b/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp
@@ -51,6 +51,7 @@
#include <private/qdeclarativeimagebase_p.h>
#include <private/qdeclarativeloader_p.h>
#include <QtDeclarative/qdeclarativecontext.h>
+#include <QtDeclarative/qdeclarativeexpression.h>
#include "../shared/testhttpserver.h"
@@ -86,8 +87,12 @@ private slots:
void pixmap();
void svg();
void big();
+ void tiling_QTBUG_6716();
private:
+ template<typename T>
+ T *findItem(QGraphicsObject *parent, const QString &id, int index=-1);
+
QDeclarativeEngine engine;
};
@@ -124,13 +129,13 @@ void tst_qdeclarativeimage::imageSource_data()
QTest::newRow("local") << QUrl::fromLocalFile(SRCDIR "/data/colors.png").toString() << 120.0 << 120.0 << false << false << "";
QTest::newRow("local async") << QUrl::fromLocalFile(SRCDIR "/data/colors1.png").toString() << 120.0 << 120.0 << false << true << "";
QTest::newRow("local not found") << QUrl::fromLocalFile(SRCDIR "/data/no-such-file.png").toString() << 0.0 << 0.0 << false
- << false << "QML Image (file::2:1) Cannot open: " + QUrl::fromLocalFile(SRCDIR "/data/no-such-file.png").toString();
+ << false << "file::2:1: QML Image: Cannot open: " + QUrl::fromLocalFile(SRCDIR "/data/no-such-file.png").toString();
QTest::newRow("local async not found") << QUrl::fromLocalFile(SRCDIR "/data/no-such-file-1.png").toString() << 0.0 << 0.0 << false
- << true << "QML Image (file::2:1) Cannot open: " + QUrl::fromLocalFile(SRCDIR "/data/no-such-file-1.png").toString();
+ << true << "file::2:1: QML Image: Cannot open: " + QUrl::fromLocalFile(SRCDIR "/data/no-such-file-1.png").toString();
QTest::newRow("remote") << SERVER_ADDR "/colors.png" << 120.0 << 120.0 << true << false << "";
QTest::newRow("remote svg") << SERVER_ADDR "/heart.svg" << 550.0 << 500.0 << true << false << "";
QTest::newRow("remote not found") << SERVER_ADDR "/no-such-file.png" << 0.0 << 0.0 << true
- << false << "QML Image (file::2:1) Error downloading " SERVER_ADDR "/no-such-file.png - server replied: Not found";
+ << false << "file::2:1: QML Image: Error downloading " SERVER_ADDR "/no-such-file.png - server replied: Not found";
}
@@ -161,7 +166,7 @@ void tst_qdeclarativeimage::imageSource()
if (async)
QVERIFY(obj->asynchronous() == true);
-
+
if (remote || async)
TRY_WAIT(obj->status() == QDeclarativeImage::Loading);
@@ -339,6 +344,76 @@ void tst_qdeclarativeimage::big()
delete obj;
}
+void tst_qdeclarativeimage::tiling_QTBUG_6716()
+{
+ QDeclarativeView *canvas = new QDeclarativeView(0);
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/tiling.qml"));
+ canvas->show();
+ qApp->processEvents();
+
+ QDeclarativeImage *vTiling = findItem<QDeclarativeImage>(canvas->rootObject(), "vTiling");
+ QDeclarativeImage *hTiling = findItem<QDeclarativeImage>(canvas->rootObject(), "hTiling");
+
+ QVERIFY(vTiling != 0);
+ QVERIFY(hTiling != 0);
+
+ {
+ QPixmap pm(vTiling->width(), vTiling->height());
+ QPainter p(&pm);
+ vTiling->paint(&p, 0, 0);
+
+ QImage img = pm.toImage();
+ for (int x = 0; x < vTiling->width(); ++x) {
+ for (int y = 0; y < vTiling->height(); ++y) {
+ QVERIFY(img.pixel(x, y) == qRgb(0, 255, 0));
+ }
+ }
+ }
+
+ {
+ QPixmap pm(hTiling->width(), hTiling->height());
+ QPainter p(&pm);
+ hTiling->paint(&p, 0, 0);
+
+ QImage img = pm.toImage();
+ for (int x = 0; x < hTiling->width(); ++x) {
+ for (int y = 0; y < hTiling->height(); ++y) {
+ QVERIFY(img.pixel(x, y) == qRgb(0, 255, 0));
+ }
+ }
+ }
+}
+
+/*
+ Find an item with the specified objectName. If index is supplied then the
+ item must also evaluate the {index} expression equal to index
+*/
+template<typename T>
+T *tst_qdeclarativeimage::findItem(QGraphicsObject *parent, const QString &objectName, int index)
+{
+ const QMetaObject &mo = T::staticMetaObject;
+ //qDebug() << parent->childItems().count() << "children";
+ for (int i = 0; i < parent->childItems().count(); ++i) {
+ QDeclarativeItem *item = qobject_cast<QDeclarativeItem*>(parent->childItems().at(i));
+ if(!item)
+ continue;
+ //qDebug() << "try" << item;
+ if (mo.cast(item) && (objectName.isEmpty() || item->objectName() == objectName)) {
+ if (index != -1) {
+ QDeclarativeExpression e(qmlContext(item), "index", item);
+ if (e.value().toInt() == index)
+ return static_cast<T*>(item);
+ } else {
+ return static_cast<T*>(item);
+ }
+ }
+ item = findItem<T>(item, objectName, index);
+ if (item)
+ return static_cast<T*>(item);
+ }
+
+ return 0;
+}
QTEST_MAIN(tst_qdeclarativeimage)
diff --git a/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp b/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp
index aca951b..cc4ec20 100644
--- a/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp
+++ b/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp
@@ -96,9 +96,9 @@ void tst_qdeclarativeimageprovider::imageSource_data()
QTest::newRow("exists") << "image://test/exists.png" << "" << QSize(100,100) << "";
QTest::newRow("scaled") << "image://test/exists.png" << "sourceSize: \"80x30\"" << QSize(80,30) << "";
QTest::newRow("missing") << "image://test/no-such-file.png" << "" << QSize()
- << "QML Image (file::2:1) Failed to get image from provider: image://test/no-such-file.png";
+ << "file::2:1: QML Image: Failed to get image from provider: image://test/no-such-file.png";
QTest::newRow("unknown provider") << "image://bogus/exists.png" << "" << QSize()
- << "QML Image (file::2:1) Failed to get image from provider: image://bogus/exists.png";
+ << "file::2:1: QML Image: Failed to get image from provider: image://bogus/exists.png";
}
@@ -158,7 +158,7 @@ void tst_qdeclarativeimageprovider::removeProvider()
QCOMPARE(obj->width(), 100.0);
// remove the provider and confirm
- QString error("QML Image (file::2:1) Failed to get image from provider: image://test2/exists2.png");
+ QString error("file::2:1: QML Image: Failed to get image from provider: image://test2/exists2.png");
QTest::ignoreMessage(QtWarningMsg, error.toUtf8());
diff --git a/tests/auto/declarative/qdeclarativeinfo/tst_qdeclarativeinfo.cpp b/tests/auto/declarative/qdeclarativeinfo/tst_qdeclarativeinfo.cpp
index aa3f03b..36db448 100644
--- a/tests/auto/declarative/qdeclarativeinfo/tst_qdeclarativeinfo.cpp
+++ b/tests/auto/declarative/qdeclarativeinfo/tst_qdeclarativeinfo.cpp
@@ -75,14 +75,14 @@ void tst_qdeclarativeinfo::qmlObject()
QObject *object = component.create();
QVERIFY(object != 0);
- QString message = "QML QObject_QML_0 (" + component.url().toString() + ":3:1) Test Message";
+ QString message = component.url().toString() + ":3:1: QML QObject_QML_0: Test Message";
QTest::ignoreMessage(QtWarningMsg, qPrintable(message));
qmlInfo(object) << "Test Message";
QObject *nested = qvariant_cast<QObject *>(object->property("nested"));
QVERIFY(nested != 0);
- message = "QML QtObject (" + component.url().toString() + ":6:13) Second Test Message";
+ message = component.url().toString() + ":6:13: QML QtObject: Second Test Message";
QTest::ignoreMessage(QtWarningMsg, qPrintable(message));
qmlInfo(nested) << "Second Test Message";
}
@@ -99,11 +99,11 @@ void tst_qdeclarativeinfo::nestedQmlObject()
QObject *nested2 = qvariant_cast<QObject *>(object->property("nested2"));
QVERIFY(nested2 != 0);
- QString message = "QML NestedObject (" + component.url().toString() + ":5:13) Outer Object";
+ QString message = component.url().toString() + ":5:13: QML NestedObject: Outer Object";
QTest::ignoreMessage(QtWarningMsg, qPrintable(message));
qmlInfo(nested) << "Outer Object";
- message = "QML QtObject (" + TEST_FILE("NestedObject.qml").toString() + ":6:14) Inner Object";
+ message = TEST_FILE("NestedObject.qml").toString() + ":6:14: QML QtObject: Inner Object";
QTest::ignoreMessage(QtWarningMsg, qPrintable(message));
qmlInfo(nested2) << "Inner Object";
}
@@ -111,17 +111,17 @@ void tst_qdeclarativeinfo::nestedQmlObject()
void tst_qdeclarativeinfo::nonQmlObject()
{
QObject object;
- QTest::ignoreMessage(QtWarningMsg, "QML QtObject (unknown location) Test Message");
+ QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: QML QtObject: Test Message");
qmlInfo(&object) << "Test Message";
QPushButton pbObject;
- QTest::ignoreMessage(QtWarningMsg, "QML QPushButton (unknown location) Test Message");
+ QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: QML QPushButton: Test Message");
qmlInfo(&pbObject) << "Test Message";
}
void tst_qdeclarativeinfo::nullObject()
{
- QTest::ignoreMessage(QtWarningMsg, "QML (unknown location) Null Object Test Message");
+ QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: Null Object Test Message");
qmlInfo(0) << "Null Object Test Message";
}
@@ -130,7 +130,7 @@ void tst_qdeclarativeinfo::nonQmlContextedObject()
QObject object;
QDeclarativeContext context(&engine);
QDeclarativeEngine::setContextForObject(&object, &context);
- QTest::ignoreMessage(QtWarningMsg, "QML QtObject (unknown location) Test Message");
+ QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: QML QtObject: Test Message");
qmlInfo(&object) << "Test Message";
}
diff --git a/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp b/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp
index f4df130..9ae26f2 100644
--- a/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp
+++ b/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp
@@ -332,16 +332,6 @@ void tst_qdeclarativeinstruction::dump()
{
QDeclarativeInstruction i;
- i.line = 28;
- i.type = QDeclarativeInstruction::StoreScript;
- i.storeScript.value = 2;
- //i.storeScript.fileName = 18;
- //i.storeScript.lineNumber = 28;
- data->bytecode << i;
- }
-
- {
- QDeclarativeInstruction i;
i.line = 29;
i.type = QDeclarativeInstruction::StoreScriptString;
i.storeScriptString.propertyIndex = 24;
@@ -571,30 +561,29 @@ void tst_qdeclarativeinstruction::dump()
<< "25\t\t25\tSTORE_VARIANT_OBJECT\t22"
<< "26\t\t26\tSTORE_INTERFACE\t\t23"
<< "27\t\t27\tSTORE_SIGNAL\t\t2\t3\t\t\"console.log(1921)\""
- << "28\t\t28\tSTORE_SCRIPT\t\t2"
- << "29\t\t29\tSTORE_SCRIPT_STRING\t24\t3\t1"
- << "30\t\t30\tASSIGN_SIGNAL_OBJECT\t0\t\t\t\"mySignal\""
- << "31\t\t31\tASSIGN_CUSTOMTYPE\t25\t4"
- << "32\t\t32\tSTORE_BINDING\t26\t3\t2"
- << "33\t\t33\tSTORE_COMPILED_BINDING\t27\t2\t4"
- << "34\t\t34\tSTORE_VALUE_SOURCE\t29\t4"
- << "35\t\t35\tSTORE_VALUE_INTERCEPTOR\t30\t-4"
- << "36\t\t36\tBEGIN\t\t\t4"
- << "37\t\t38\tSTORE_OBJECT_QLIST"
- << "38\t\t39\tASSIGN_OBJECT_LIST"
- << "39\t\t40\tFETCH_ATTACHED\t\t23"
- << "40\t\t42\tFETCH_QLIST\t\t32"
- << "41\t\t43\tFETCH\t\t\t33"
- << "42\t\t44\tFETCH_VALUE\t\t34\t6"
- << "43\t\t45\tPOP"
- << "44\t\t46\tPOP_QLIST"
- << "45\t\t47\tPOP_VALUE\t\t35\t8"
- << "46\t\t48\tDEFER\t\t\t7"
- << "47\t\tNA\tDEFER\t\t\t7"
- << "48\t\t48\tSTORE_IMPORTED_SCRIPT\t2"
- << "49\t\t50\tXXX UNKOWN INSTRUCTION\t1234"
- << "50\t\t51\tSTORE_VARIANT_INTEGER\t\t32\t11"
- << "51\t\t52\tSTORE_VARIANT_DOUBLE\t\t19\t33.7"
+ << "28\t\t29\tSTORE_SCRIPT_STRING\t24\t3\t1"
+ << "29\t\t30\tASSIGN_SIGNAL_OBJECT\t0\t\t\t\"mySignal\""
+ << "30\t\t31\tASSIGN_CUSTOMTYPE\t25\t4"
+ << "31\t\t32\tSTORE_BINDING\t26\t3\t2"
+ << "32\t\t33\tSTORE_COMPILED_BINDING\t27\t2\t4"
+ << "33\t\t34\tSTORE_VALUE_SOURCE\t29\t4"
+ << "34\t\t35\tSTORE_VALUE_INTERCEPTOR\t30\t-4"
+ << "35\t\t36\tBEGIN\t\t\t4"
+ << "36\t\t38\tSTORE_OBJECT_QLIST"
+ << "37\t\t39\tASSIGN_OBJECT_LIST"
+ << "38\t\t40\tFETCH_ATTACHED\t\t23"
+ << "39\t\t42\tFETCH_QLIST\t\t32"
+ << "40\t\t43\tFETCH\t\t\t33"
+ << "41\t\t44\tFETCH_VALUE\t\t34\t6"
+ << "42\t\t45\tPOP"
+ << "43\t\t46\tPOP_QLIST"
+ << "44\t\t47\tPOP_VALUE\t\t35\t8"
+ << "45\t\t48\tDEFER\t\t\t7"
+ << "46\t\tNA\tDEFER\t\t\t7"
+ << "47\t\t48\tSTORE_IMPORTED_SCRIPT\t2"
+ << "48\t\t50\tXXX UNKOWN INSTRUCTION\t1234"
+ << "49\t\t51\tSTORE_VARIANT_INTEGER\t\t32\t11"
+ << "50\t\t52\tSTORE_VARIANT_DOUBLE\t\t19\t33.7"
<< "-------------------------------------------------------------------------------";
messages = QStringList();
diff --git a/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp b/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp
index 4400116..d2c328e 100644
--- a/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp
+++ b/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp
@@ -385,12 +385,15 @@ void tst_QDeclarativeItem::mapCoordinates()
Q_RETURN_ARG(QVariant, result), Q_ARG(QVariant, x), Q_ARG(QVariant, y)));
QCOMPARE(result.value<QPointF>(), qobject_cast<QGraphicsItem*>(a)->mapFromScene(x, y));
- QTest::ignoreMessage(QtWarningMsg, "mapToItem() given argument \"1122\" which is neither null nor an Item");
+ QString warning1 = QUrl::fromLocalFile(SRCDIR "/data/mapCoordinates.qml").toString() + ":7:5: QML Item: mapToItem() given argument \"1122\" which is neither null nor an Item";
+ QString warning2 = QUrl::fromLocalFile(SRCDIR "/data/mapCoordinates.qml").toString() + ":7:5: QML Item: mapFromItem() given argument \"1122\" which is neither null nor an Item";
+
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning1));
QVERIFY(QMetaObject::invokeMethod(root, "checkMapAToInvalid",
Q_RETURN_ARG(QVariant, result), Q_ARG(QVariant, x), Q_ARG(QVariant, y)));
QVERIFY(result.toBool());
- QTest::ignoreMessage(QtWarningMsg, "mapFromItem() given argument \"1122\" which is neither null nor an Item");
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning2));
QVERIFY(QMetaObject::invokeMethod(root, "checkMapAFromInvalid",
Q_RETURN_ARG(QVariant, result), Q_ARG(QVariant, x), Q_ARG(QVariant, y)));
QVERIFY(result.toBool());
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/assignToNamespace.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/assignToNamespace.errors.txt
new file mode 100644
index 0000000..78aa471
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/assignToNamespace.errors.txt
@@ -0,0 +1 @@
+4:5:Invalid use of namespace
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/assignToNamespace.qml b/tests/auto/declarative/qdeclarativelanguage/data/assignToNamespace.qml
new file mode 100644
index 0000000..4681879
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/assignToNamespace.qml
@@ -0,0 +1,5 @@
+import Qt 4.6 as Qt
+
+Qt.QtObject {
+ Qt: 10
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.7.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/component.7.errors.txt
new file mode 100644
index 0000000..b144814
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/component.7.errors.txt
@@ -0,0 +1 @@
+3:1:Component objects cannot declare new properties.
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.7.qml b/tests/auto/declarative/qdeclarativelanguage/data/component.7.qml
new file mode 100644
index 0000000..ad708fe
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/component.7.qml
@@ -0,0 +1,7 @@
+import Qt 4.6
+
+Component {
+ property int a
+ QtObject {}
+}
+
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.8.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/component.8.errors.txt
new file mode 100644
index 0000000..6f2d0d2
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/component.8.errors.txt
@@ -0,0 +1 @@
+3:1:Component objects cannot declare new signals.
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.8.qml b/tests/auto/declarative/qdeclarativelanguage/data/component.8.qml
new file mode 100644
index 0000000..67b1b89
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/component.8.qml
@@ -0,0 +1,7 @@
+import Qt 4.6
+
+Component {
+ signal a
+ QtObject {}
+}
+
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.9.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/component.9.errors.txt
new file mode 100644
index 0000000..92f1456
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/component.9.errors.txt
@@ -0,0 +1 @@
+3:1:Component objects cannot declare new functions.
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.9.qml b/tests/auto/declarative/qdeclarativelanguage/data/component.9.qml
new file mode 100644
index 0000000..a4dbae0
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/component.9.qml
@@ -0,0 +1,7 @@
+import Qt 4.6
+
+Component {
+ function a() {}
+ QtObject {}
+}
+
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.1.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.1.errors.txt
new file mode 100644
index 0000000..1f9f916
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.1.errors.txt
@@ -0,0 +1 @@
+5:5:Duplicate default property
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.1.qml
new file mode 100644
index 0000000..1efe791
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.1.qml
@@ -0,0 +1,6 @@
+import Qt 4.6
+
+QtObject {
+ default property QtObject a
+ default property QtObject b
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.2.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.2.errors.txt
new file mode 100644
index 0000000..7a4f63b
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.2.errors.txt
@@ -0,0 +1 @@
+5:5:Duplicate property name
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.2.qml
new file mode 100644
index 0000000..4e7b5ae
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.2.qml
@@ -0,0 +1,6 @@
+import Qt 4.6
+
+QtObject {
+ property int a
+ property bool a
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.3.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.3.errors.txt
new file mode 100644
index 0000000..c5860a2
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.3.errors.txt
@@ -0,0 +1 @@
+3:1:Duplicate signal name
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.3.qml b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.3.qml
new file mode 100644
index 0000000..573c1ba
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.3.qml
@@ -0,0 +1,6 @@
+import Qt 4.6
+
+QtObject {
+ signal a
+ signal a
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.4.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.4.errors.txt
new file mode 100644
index 0000000..b293c86
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.4.errors.txt
@@ -0,0 +1 @@
+3:1:Duplicate method name
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.4.qml b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.4.qml
new file mode 100644
index 0000000..51dd834
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.4.qml
@@ -0,0 +1,6 @@
+import Qt 4.6
+
+QtObject {
+ function a() {}
+ function a() {}
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.5.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.5.errors.txt
new file mode 100644
index 0000000..015d55b
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.5.errors.txt
@@ -0,0 +1 @@
+3:1:UnknownType is not a type
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.5.qml b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.5.qml
new file mode 100644
index 0000000..6b93e00
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.5.qml
@@ -0,0 +1,5 @@
+import Qt 4.6
+
+QtObject {
+ property UnknownType a
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.1.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.1.errors.txt
new file mode 100644
index 0000000..9848e48
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.1.errors.txt
@@ -0,0 +1 @@
+3:1:No property alias location
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.1.qml
new file mode 100644
index 0000000..985fb94
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.1.qml
@@ -0,0 +1,5 @@
+import Qt 4.7
+
+QtObject {
+ property alias a
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.2.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.2.errors.txt
new file mode 100644
index 0000000..3e15628
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.2.errors.txt
@@ -0,0 +1 @@
+4:23:Invalid alias location
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.2.qml
new file mode 100644
index 0000000..a2ac91c
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.2.qml
@@ -0,0 +1,6 @@
+import Qt 4.7
+
+QtObject {
+ property alias a: 10
+}
+
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.3.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.3.errors.txt
new file mode 100644
index 0000000..7260be4
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.3.errors.txt
@@ -0,0 +1 @@
+5:23:Invalid alias reference. An alias reference must be specified as <id> or <id>.<property>
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.3.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.3.qml
new file mode 100644
index 0000000..cc71753
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.3.qml
@@ -0,0 +1,6 @@
+import Test 1.0
+
+MyTypeObject {
+ id: root
+ property alias a: root.rectProperty.x
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.4.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.4.errors.txt
new file mode 100644
index 0000000..7260be4
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.4.errors.txt
@@ -0,0 +1 @@
+5:23:Invalid alias reference. An alias reference must be specified as <id> or <id>.<property>
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.4.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.4.qml
new file mode 100644
index 0000000..cfdfca0
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.4.qml
@@ -0,0 +1,7 @@
+import Test 1.0
+
+MyTypeObject {
+ id: root
+ property alias a: print("Hello!")
+}
+
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.5.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.5.errors.txt
new file mode 100644
index 0000000..6f78e59
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.5.errors.txt
@@ -0,0 +1 @@
+5:23:Invalid alias reference. Unable to find id "otherroot"
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.5.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.5.qml
new file mode 100644
index 0000000..0c1d5d7
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.5.qml
@@ -0,0 +1,7 @@
+import Test 1.0
+
+MyTypeObject {
+ id: root
+ property alias a: otherroot
+}
+
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.6.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.6.errors.txt
new file mode 100644
index 0000000..93652a7
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.6.errors.txt
@@ -0,0 +1 @@
+5:23:Invalid alias location
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.6.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.6.qml
new file mode 100644
index 0000000..edfdb24
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.6.qml
@@ -0,0 +1,7 @@
+import Test 1.0
+
+MyTypeObject {
+ id: root
+ property alias a: root.foobar
+}
+
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.12.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.12.errors.txt
new file mode 100644
index 0000000..189a795
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.12.errors.txt
@@ -0,0 +1 @@
+4:13:Attached properties cannot be used here
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.12.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.12.qml
new file mode 100644
index 0000000..7de503e
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.12.qml
@@ -0,0 +1,6 @@
+import Test 1.0
+
+MyTypeObject {
+ grouped.MyQmlObject.value: 10
+}
+
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.13.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.13.errors.txt
new file mode 100644
index 0000000..46d7be2
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.13.errors.txt
@@ -0,0 +1 @@
+5:9:Attached properties cannot be used here
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.13.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.13.qml
new file mode 100644
index 0000000..986ab85
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.13.qml
@@ -0,0 +1,8 @@
+import Test 1.0
+
+MyTypeObject {
+ grouped {
+ MyQmlObject.value: 10
+ }
+}
+
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidOn.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidOn.errors.txt
new file mode 100644
index 0000000..b4210a1
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidOn.errors.txt
@@ -0,0 +1 @@
+3:5:"MyQmlObject" cannot operate on "value"
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidOn.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidOn.qml
new file mode 100644
index 0000000..d748bf4
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidOn.qml
@@ -0,0 +1,4 @@
+import Test 1.0
+MyQmlObject {
+ MyQmlObject on value {}
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/listAssignment.1.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/listAssignment.1.errors.txt
new file mode 100644
index 0000000..35d2d35
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/listAssignment.1.errors.txt
@@ -0,0 +1 @@
+4:24:Cannot assign object to list
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/listAssignment.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/listAssignment.1.qml
new file mode 100644
index 0000000..6c628e4
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/listAssignment.1.qml
@@ -0,0 +1,6 @@
+import Test 1.0
+import Qt 4.7
+MyContainer {
+ containerChildren: QtObject {}
+}
+
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/multiSet.11.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.11.errors.txt
new file mode 100644
index 0000000..e1f7ec5
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.11.errors.txt
@@ -0,0 +1 @@
+5:5:Property value set multiple times
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/multiSet.11.qml b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.11.qml
new file mode 100644
index 0000000..7d03139
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.11.qml
@@ -0,0 +1,6 @@
+import Test 1.0
+
+MyTypeObject {
+ rectProperty.x: 10
+ rectProperty.x: 11
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/noCreation.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/noCreation.errors.txt
new file mode 100644
index 0000000..23cd3f3
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/noCreation.errors.txt
@@ -0,0 +1 @@
+3:1:Keys is only available via attached properties
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/noCreation.qml b/tests/auto/declarative/qdeclarativelanguage/data/noCreation.qml
new file mode 100644
index 0000000..0612fa2
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/noCreation.qml
@@ -0,0 +1,4 @@
+import Qt 4.6
+
+Keys {
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/readOnly.4.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/readOnly.4.errors.txt
new file mode 100644
index 0000000..d857a04
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/readOnly.4.errors.txt
@@ -0,0 +1 @@
+3:5:Invalid property assignment: "readOnlyString" is a read-only property
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/readOnly.4.qml b/tests/auto/declarative/qdeclarativelanguage/data/readOnly.4.qml
new file mode 100644
index 0000000..5338ac7
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/readOnly.4.qml
@@ -0,0 +1,4 @@
+import Test 1.0
+MyQmlObject {
+ MyPropertyValueSource on readOnlyString {}
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/readOnly.5.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/readOnly.5.errors.txt
new file mode 100644
index 0000000..baf4766
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/readOnly.5.errors.txt
@@ -0,0 +1 @@
+3:27:Invalid property assignment: "readOnlyEnumProperty" is a read-only property
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/readOnly.5.qml b/tests/auto/declarative/qdeclarativelanguage/data/readOnly.5.qml
new file mode 100644
index 0000000..422d13d
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/readOnly.5.qml
@@ -0,0 +1,4 @@
+import Test 1.0
+MyTypeObject {
+ readOnlyEnumProperty: MyTypeObject.EnumValue1
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/scriptString.1.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/scriptString.1.errors.txt
new file mode 100644
index 0000000..14463e0
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/scriptString.1.errors.txt
@@ -0,0 +1 @@
+4:21:Invalid property assignment: script expected
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/scriptString.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/scriptString.1.qml
new file mode 100644
index 0000000..f07d223
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/scriptString.1.qml
@@ -0,0 +1,5 @@
+import Test 1.0
+
+MyTypeObject {
+ scriptProperty: MyTypeObject {}
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/scriptString.2.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/scriptString.2.errors.txt
new file mode 100644
index 0000000..f8a776f
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/scriptString.2.errors.txt
@@ -0,0 +1 @@
+4:40:Cannot assign multiple values to a script property
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/scriptString.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/scriptString.2.qml
new file mode 100644
index 0000000..dc825c7
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/scriptString.2.qml
@@ -0,0 +1,6 @@
+import Test 1.0
+
+MyTypeObject {
+ scriptProperty: [ MyTypeObject {}, MyTypeObject {} ]
+}
+
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.16.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.16.errors.txt
new file mode 100644
index 0000000..77cf210
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.16.errors.txt
@@ -0,0 +1 @@
+4:24:Cannot assign object to property
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/wrongType.16.qml b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.16.qml
new file mode 100644
index 0000000..1ddccc0
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/wrongType.16.qml
@@ -0,0 +1,5 @@
+import Test 1.0
+import Qt 4.7
+MyQmlObject {
+ qmlobjectProperty: QtObject {}
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/testtypes.cpp b/tests/auto/declarative/qdeclarativelanguage/testtypes.cpp
index 623775a..5d87404 100644
--- a/tests/auto/declarative/qdeclarativelanguage/testtypes.cpp
+++ b/tests/auto/declarative/qdeclarativelanguage/testtypes.cpp
@@ -52,8 +52,7 @@ void registerTypes()
qmlRegisterType<MyNamespace::MySecondNamespacedType>("Test",1,0,"MySecondNamespacedType");
qmlRegisterType<MyGroupedObject>();
- qmlRegisterCustomType<MyCustomParserType>("Test", 1, 0, "MyCustomParserType", "MyCustomParserType",
- new MyCustomParserTypeParser);
+ qmlRegisterCustomType<MyCustomParserType>("Test", 1, 0, "MyCustomParserType", new MyCustomParserTypeParser);
}
QVariant myCustomVariantTypeConverter(const QString &data)
diff --git a/tests/auto/declarative/qdeclarativelanguage/testtypes.h b/tests/auto/declarative/qdeclarativelanguage/testtypes.h
index 8c163a5..89f99c8 100644
--- a/tests/auto/declarative/qdeclarativelanguage/testtypes.h
+++ b/tests/auto/declarative/qdeclarativelanguage/testtypes.h
@@ -167,8 +167,9 @@ private:
MyCustomVariantType m_custom;
int m_propertyWithNotify;
};
+QML_DECLARE_TYPE(MyQmlObject)
QML_DECLARE_TYPEINFO(MyQmlObject, QML_HAS_ATTACHED_PROPERTIES)
-QML_DECLARE_TYPE(MyQmlObject);
+
class MyGroupedObject : public QObject
{
@@ -187,8 +188,6 @@ private:
QDeclarativeScriptString m_script;
};
-QML_DECLARE_TYPE(MyGroupedObject);
-
class MyTypeObject : public QObject
{
@@ -201,6 +200,7 @@ class MyTypeObject : public QObject
Q_PROPERTY(QDeclarativeComponent *componentProperty READ componentProperty WRITE setComponentProperty)
Q_PROPERTY(MyFlags flagProperty READ flagProperty WRITE setFlagProperty)
Q_PROPERTY(MyEnum enumProperty READ enumProperty WRITE setEnumProperty)
+ Q_PROPERTY(MyEnum readOnlyEnumProperty READ readOnlyEnumProperty)
Q_PROPERTY(QString stringProperty READ stringProperty WRITE setStringProperty)
Q_PROPERTY(uint uintProperty READ uintProperty WRITE setUintProperty)
Q_PROPERTY(int intProperty READ intProperty WRITE setIntProperty)
@@ -274,6 +274,10 @@ public:
enumPropertyValue = v;
}
+ MyEnum readOnlyEnumProperty() const {
+ return EnumVal1;
+ }
+
QString stringPropertyValue;
QString stringProperty() const {
return stringPropertyValue;
@@ -462,28 +466,29 @@ signals:
void rectPropertyChanged();
};
Q_DECLARE_OPERATORS_FOR_FLAGS(MyTypeObject::MyFlags)
-QML_DECLARE_TYPE(MyTypeObject);
+
class MyContainer : public QObject
{
Q_OBJECT
Q_PROPERTY(QDeclarativeListProperty<QObject> children READ children)
+ Q_PROPERTY(QDeclarativeListProperty<MyContainer> containerChildren READ containerChildren)
Q_PROPERTY(QDeclarativeListProperty<MyInterface> qlistInterfaces READ qlistInterfaces)
Q_CLASSINFO("DefaultProperty", "children")
public:
MyContainer() {}
QDeclarativeListProperty<QObject> children() { return QDeclarativeListProperty<QObject>(this, m_children); }
+ QDeclarativeListProperty<MyContainer> containerChildren() { return QDeclarativeListProperty<MyContainer>(this, m_containerChildren); }
QList<QObject *> *getChildren() { return &m_children; }
QDeclarativeListProperty<MyInterface> qlistInterfaces() { return QDeclarativeListProperty<MyInterface>(this, m_interfaces); }
QList<MyInterface *> *getQListInterfaces() { return &m_interfaces; }
+ QList<MyContainer*> m_containerChildren;
QList<QObject*> m_children;
QList<MyInterface *> m_interfaces;
};
-QML_DECLARE_TYPE(MyContainer);
-
class MyPropertyValueSource : public QObject, public QDeclarativePropertyValueSource
{
@@ -499,7 +504,7 @@ public:
prop = p;
}
};
-QML_DECLARE_TYPE(MyPropertyValueSource);
+
class MyDotPropertyObject : public QObject
{
@@ -540,7 +545,6 @@ private:
bool m_ownRWObj;
};
-QML_DECLARE_TYPE(MyDotPropertyObject);
namespace MyNamespace {
class MyNamespacedType : public QObject
@@ -559,8 +563,6 @@ namespace MyNamespace {
QList<MyNamespacedType *> m_list;
};
}
-QML_DECLARE_TYPE(MyNamespace::MyNamespacedType);
-QML_DECLARE_TYPE(MyNamespace::MySecondNamespacedType);
class MyCustomParserType : public QObject
{
@@ -574,8 +576,6 @@ public:
void setCustomData(QObject *, const QByteArray &) {}
};
-QML_DECLARE_TYPE(MyCustomParserType);
-
void registerTypes();
#endif // TESTTYPES_H
diff --git a/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp b/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp
index 8feab32..c1397de 100644
--- a/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp
+++ b/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp
@@ -225,11 +225,15 @@ void tst_qdeclarativelanguage::errors_data()
QTest::newRow("wrongType (number string for int)") << "wrongType.13.qml" << "wrongType.13.errors.txt" << false;
QTest::newRow("wrongType (int for string)") << "wrongType.14.qml" << "wrongType.14.errors.txt" << false;
QTest::newRow("wrongType (int for url)") << "wrongType.15.qml" << "wrongType.15.errors.txt" << false;
+ QTest::newRow("wrongType (invalid object)") << "wrongType.16.qml" << "wrongType.16.errors.txt" << false;
QTest::newRow("readOnly.1") << "readOnly.1.qml" << "readOnly.1.errors.txt" << false;
QTest::newRow("readOnly.2") << "readOnly.2.qml" << "readOnly.2.errors.txt" << false;
QTest::newRow("readOnly.3") << "readOnly.3.qml" << "readOnly.3.errors.txt" << false;
+ QTest::newRow("readOnly.4") << "readOnly.4.qml" << "readOnly.4.errors.txt" << false;
+ QTest::newRow("readOnly.5") << "readOnly.5.qml" << "readOnly.5.errors.txt" << false;
+ QTest::newRow("listAssignment.1") << "listAssignment.1.qml" << "listAssignment.1.errors.txt" << false;
QTest::newRow("listAssignment.2") << "listAssignment.2.qml" << "listAssignment.2.errors.txt" << false;
QTest::newRow("listAssignment.3") << "listAssignment.3.qml" << "listAssignment.3.errors.txt" << false;
@@ -243,6 +247,9 @@ void tst_qdeclarativelanguage::errors_data()
QTest::newRow("invalidID.8") << "invalidID.8.qml" << "invalidID.8.errors.txt" << false;
QTest::newRow("invalidID.9") << "invalidID.9.qml" << "invalidID.9.errors.txt" << false;
+ QTest::newRow("scriptString.1") << "scriptString.1.qml" << "scriptString.1.errors.txt" << false;
+ QTest::newRow("scriptString.2") << "scriptString.2.qml" << "scriptString.2.errors.txt" << false;
+
QTest::newRow("unsupportedProperty") << "unsupportedProperty.qml" << "unsupportedProperty.errors.txt" << false;
QTest::newRow("nullDotProperty") << "nullDotProperty.qml" << "nullDotProperty.errors.txt" << true;
QTest::newRow("fakeDotProperty") << "fakeDotProperty.qml" << "fakeDotProperty.errors.txt" << false;
@@ -296,6 +303,9 @@ void tst_qdeclarativelanguage::errors_data()
QTest::newRow("Component.4") << "component.4.qml" << "component.4.errors.txt" << false;
QTest::newRow("Component.5") << "component.5.qml" << "component.5.errors.txt" << false;
QTest::newRow("Component.6") << "component.6.qml" << "component.6.errors.txt" << false;
+ QTest::newRow("Component.7") << "component.7.qml" << "component.7.errors.txt" << false;
+ QTest::newRow("Component.8") << "component.8.qml" << "component.8.errors.txt" << false;
+ QTest::newRow("Component.9") << "component.9.qml" << "component.9.errors.txt" << false;
QTest::newRow("MultiSet.1") << "multiSet.1.qml" << "multiSet.1.errors.txt" << false;
QTest::newRow("MultiSet.2") << "multiSet.2.qml" << "multiSet.2.errors.txt" << false;
@@ -307,6 +317,20 @@ void tst_qdeclarativelanguage::errors_data()
QTest::newRow("MultiSet.8") << "multiSet.8.qml" << "multiSet.8.errors.txt" << false;
QTest::newRow("MultiSet.9") << "multiSet.9.qml" << "multiSet.9.errors.txt" << false;
QTest::newRow("MultiSet.10") << "multiSet.10.qml" << "multiSet.10.errors.txt" << false;
+ QTest::newRow("MultiSet.11") << "multiSet.11.qml" << "multiSet.11.errors.txt" << false;
+
+ QTest::newRow("dynamicMeta.1") << "dynamicMeta.1.qml" << "dynamicMeta.1.errors.txt" << false;
+ QTest::newRow("dynamicMeta.2") << "dynamicMeta.2.qml" << "dynamicMeta.2.errors.txt" << false;
+ QTest::newRow("dynamicMeta.3") << "dynamicMeta.3.qml" << "dynamicMeta.3.errors.txt" << false;
+ QTest::newRow("dynamicMeta.4") << "dynamicMeta.4.qml" << "dynamicMeta.4.errors.txt" << false;
+ QTest::newRow("dynamicMeta.5") << "dynamicMeta.5.qml" << "dynamicMeta.5.errors.txt" << false;
+
+ QTest::newRow("invalidAlias.1") << "invalidAlias.1.qml" << "invalidAlias.1.errors.txt" << false;
+ QTest::newRow("invalidAlias.2") << "invalidAlias.2.qml" << "invalidAlias.2.errors.txt" << false;
+ QTest::newRow("invalidAlias.3") << "invalidAlias.3.qml" << "invalidAlias.3.errors.txt" << false;
+ QTest::newRow("invalidAlias.4") << "invalidAlias.4.qml" << "invalidAlias.4.errors.txt" << false;
+ QTest::newRow("invalidAlias.5") << "invalidAlias.5.qml" << "invalidAlias.5.errors.txt" << false;
+ QTest::newRow("invalidAlias.6") << "invalidAlias.6.qml" << "invalidAlias.6.errors.txt" << false;
QTest::newRow("invalidAttachedProperty.1") << "invalidAttachedProperty.1.qml" << "invalidAttachedProperty.1.errors.txt" << false;
QTest::newRow("invalidAttachedProperty.2") << "invalidAttachedProperty.2.qml" << "invalidAttachedProperty.2.errors.txt" << false;
@@ -319,6 +343,8 @@ void tst_qdeclarativelanguage::errors_data()
QTest::newRow("invalidAttachedProperty.9") << "invalidAttachedProperty.9.qml" << "invalidAttachedProperty.9.errors.txt" << false;
QTest::newRow("invalidAttachedProperty.10") << "invalidAttachedProperty.10.qml" << "invalidAttachedProperty.10.errors.txt" << false;
QTest::newRow("invalidAttachedProperty.11") << "invalidAttachedProperty.11.qml" << "invalidAttachedProperty.11.errors.txt" << false;
+ QTest::newRow("invalidAttachedProperty.12") << "invalidAttachedProperty.12.qml" << "invalidAttachedProperty.12.errors.txt" << false;
+ QTest::newRow("invalidAttachedProperty.13") << "invalidAttachedProperty.13.qml" << "invalidAttachedProperty.13.errors.txt" << false;
QTest::newRow("emptySignal") << "emptySignal.qml" << "emptySignal.errors.txt" << false;
QTest::newRow("emptySignal.2") << "emptySignal.2.qml" << "emptySignal.2.errors.txt" << false;
@@ -330,7 +356,10 @@ void tst_qdeclarativelanguage::errors_data()
QTest::newRow("missingValueTypeProperty") << "missingValueTypeProperty.qml" << "missingValueTypeProperty.errors.txt" << false;
QTest::newRow("objectValueTypeProperty") << "objectValueTypeProperty.qml" << "objectValueTypeProperty.errors.txt" << false;
QTest::newRow("enumTypes") << "enumTypes.qml" << "enumTypes.errors.txt" << false;
+ QTest::newRow("noCreation") << "noCreation.qml" << "noCreation.errors.txt" << false;
QTest::newRow("destroyedSignal") << "destroyedSignal.qml" << "destroyedSignal.errors.txt" << false;
+ QTest::newRow("assignToNamespace") << "assignToNamespace.qml" << "assignToNamespace.errors.txt" << false;
+ QTest::newRow("invalidOn") << "invalidOn.qml" << "invalidOn.errors.txt" << false;
}
@@ -779,8 +808,7 @@ void tst_qdeclarativelanguage::valueTypes()
QDeclarativeComponent component(&engine, TEST_FILE("valueTypes.qml"));
VERIFY_ERRORS(0);
- QString message = QLatin1String("QML MyTypeObject (") + component.url().toString() +
- QLatin1String(":2:1) Binding loop detected for property \"rectProperty.width\"");
+ QString message = component.url().toString() + ":2:1: QML MyTypeObject: Binding loop detected for property \"rectProperty.width\"";
QTest::ignoreMessage(QtWarningMsg, qPrintable(message));
QTest::ignoreMessage(QtWarningMsg, qPrintable(message));
@@ -1133,8 +1161,6 @@ void tst_qdeclarativelanguage::testType(const QString& qml, const QString& type,
}
}
-QML_DECLARE_TYPE(TestType)
-QML_DECLARE_TYPE(TestType2)
// Import tests (QT-558)
diff --git a/tests/auto/declarative/qdeclarativelistmodel/data/enumerate.qml b/tests/auto/declarative/qdeclarativelistmodel/data/enumerate.qml
new file mode 100644
index 0000000..8d23d4b
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelistmodel/data/enumerate.qml
@@ -0,0 +1,24 @@
+import Qt 4.6
+
+Item {
+ property string result
+
+ ListModel {
+ id: model
+
+ ListElement {
+ val1: 1
+ val2: 2
+ val3: "str"
+ val4: false
+ val5: true
+ }
+ }
+
+ Component.onCompleted: {
+ var element = model.get(0);
+
+ for (var i in element)
+ result += i+"="+element[i]+(element[i] ? "Y" : "N")+":";
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp b/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp
index 9d61ad0..e4c296f 100644
--- a/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp
+++ b/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp
@@ -51,11 +51,11 @@
#include "../../../shared/util.h"
-class tst_QDeclarativeListModel : public QObject
+class tst_qdeclarativelistmodel : public QObject
{
Q_OBJECT
public:
- tst_QDeclarativeListModel() {}
+ tst_qdeclarativelistmodel() {}
private:
QScriptValue nestedListValue(QScriptEngine *eng) const;
@@ -76,12 +76,13 @@ private slots:
void convertNestedToFlat_fail_data();
void convertNestedToFlat_ok();
void convertNestedToFlat_ok_data();
+ void enumerate();
void error_data();
void error();
void set();
};
-QScriptValue tst_QDeclarativeListModel::nestedListValue(QScriptEngine *eng) const
+QScriptValue tst_qdeclarativelistmodel::nestedListValue(QScriptEngine *eng) const
{
QScriptValue list = eng->newArray();
list.setProperty(0, eng->newObject());
@@ -91,7 +92,7 @@ QScriptValue tst_QDeclarativeListModel::nestedListValue(QScriptEngine *eng) cons
return sv;
}
-QDeclarativeItem *tst_QDeclarativeListModel::createWorkerTest(QDeclarativeEngine *eng, QDeclarativeComponent *component, QDeclarativeListModel *model)
+QDeclarativeItem *tst_qdeclarativelistmodel::createWorkerTest(QDeclarativeEngine *eng, QDeclarativeComponent *component, QDeclarativeListModel *model)
{
QDeclarativeItem *item = qobject_cast<QDeclarativeItem*>(component->create());
QDeclarativeEngine::setContextForObject(model, eng->rootContext());
@@ -100,7 +101,7 @@ QDeclarativeItem *tst_QDeclarativeListModel::createWorkerTest(QDeclarativeEngine
return item;
}
-void tst_QDeclarativeListModel::waitForWorker(QDeclarativeItem *item)
+void tst_qdeclarativelistmodel::waitForWorker(QDeclarativeItem *item)
{
QEventLoop loop;
QTimer timer;
@@ -115,7 +116,7 @@ void tst_QDeclarativeListModel::waitForWorker(QDeclarativeItem *item)
QVERIFY(timer.isActive());
}
-void tst_QDeclarativeListModel::static_i18n()
+void tst_qdeclarativelistmodel::static_i18n()
{
QString expect = QString::fromUtf8("na\303\257ve");
QString componentStr = "import Qt 4.7\nListModel { ListElement { prop1: \""+expect+"\" } }";
@@ -129,7 +130,7 @@ void tst_QDeclarativeListModel::static_i18n()
delete obj;
}
-void tst_QDeclarativeListModel::static_nestedElements()
+void tst_qdeclarativelistmodel::static_nestedElements()
{
QFETCH(int, elementCount);
@@ -163,7 +164,7 @@ void tst_QDeclarativeListModel::static_nestedElements()
delete obj;
}
-void tst_QDeclarativeListModel::static_nestedElements_data()
+void tst_qdeclarativelistmodel::static_nestedElements_data()
{
QTest::addColumn<int>("elementCount");
@@ -173,7 +174,7 @@ void tst_QDeclarativeListModel::static_nestedElements_data()
QTest::newRow("many items") << 5;
}
-void tst_QDeclarativeListModel::dynamic_data()
+void tst_qdeclarativelistmodel::dynamic_data()
{
QTest::addColumn<QString>("script");
QTest::addColumn<int>("result");
@@ -183,58 +184,58 @@ void tst_QDeclarativeListModel::dynamic_data()
QTest::newRow("count") << "count" << 0 << "";
- QTest::newRow("get1") << "{get(0)}" << 0 << "QML ListModel (unknown location) get: index 0 out of range";
- QTest::newRow("get2") << "{get(-1)}" << 0 << "QML ListModel (unknown location) get: index -1 out of range";
+ QTest::newRow("get1") << "{get(0)}" << 0 << "<Unknown File>: QML ListModel: get: index 0 out of range";
+ QTest::newRow("get2") << "{get(-1)}" << 0 << "<Unknown File>: QML ListModel: get: index -1 out of range";
QTest::newRow("append1") << "{append({'foo':123});count}" << 1 << "";
QTest::newRow("append2") << "{append({'foo':123,'bar':456});count}" << 1 << "";
QTest::newRow("append3a") << "{append({'foo':123});append({'foo':456});get(0).foo}" << 123 << "";
QTest::newRow("append3b") << "{append({'foo':123});append({'foo':456});get(1).foo}" << 456 << "";
- QTest::newRow("append4a") << "{append(123)}" << 0 << "QML ListModel (unknown location) append: value is not an object";
- QTest::newRow("append4b") << "{append([1,2,3])}" << 0 << "QML ListModel (unknown location) append: value is not an object";
+ QTest::newRow("append4a") << "{append(123)}" << 0 << "<Unknown File>: QML ListModel: append: value is not an object";
+ QTest::newRow("append4b") << "{append([1,2,3])}" << 0 << "<Unknown File>: QML ListModel: append: value is not an object";
QTest::newRow("clear1") << "{append({'foo':456});clear();count}" << 0 << "";
QTest::newRow("clear2") << "{append({'foo':123});append({'foo':456});clear();count}" << 0 << "";
- QTest::newRow("clear3") << "{append({'foo':123});clear();get(0).foo}" << 0 << "QML ListModel (unknown location) get: index 0 out of range";
+ QTest::newRow("clear3") << "{append({'foo':123});clear();get(0).foo}" << 0 << "<Unknown File>: QML ListModel: get: index 0 out of range";
QTest::newRow("remove1") << "{append({'foo':123});remove(0);count}" << 0 << "";
QTest::newRow("remove2a") << "{append({'foo':123});append({'foo':456});remove(0);count}" << 1 << "";
QTest::newRow("remove2b") << "{append({'foo':123});append({'foo':456});remove(0);get(0).foo}" << 456 << "";
QTest::newRow("remove2c") << "{append({'foo':123});append({'foo':456});remove(1);get(0).foo}" << 123 << "";
- QTest::newRow("remove3") << "{append({'foo':123});remove(0);get(0).foo}" << 0 << "QML ListModel (unknown location) get: index 0 out of range";
- QTest::newRow("remove3a") << "{append({'foo':123});remove(-1);count}" << 1 << "QML ListModel (unknown location) remove: index -1 out of range";
- QTest::newRow("remove4a") << "{remove(0)}" << 0 << "QML ListModel (unknown location) remove: index 0 out of range";
- QTest::newRow("remove4b") << "{append({'foo':123});remove(0);remove(0);count}" << 0 << "QML ListModel (unknown location) remove: index 0 out of range";
- QTest::newRow("remove4c") << "{append({'foo':123});remove(1);count}" << 1 << "QML ListModel (unknown location) remove: index 1 out of range";
+ QTest::newRow("remove3") << "{append({'foo':123});remove(0);get(0).foo}" << 0 << "<Unknown File>: QML ListModel: get: index 0 out of range";
+ QTest::newRow("remove3a") << "{append({'foo':123});remove(-1);count}" << 1 << "<Unknown File>: QML ListModel: remove: index -1 out of range";
+ QTest::newRow("remove4a") << "{remove(0)}" << 0 << "<Unknown File>: QML ListModel: remove: index 0 out of range";
+ QTest::newRow("remove4b") << "{append({'foo':123});remove(0);remove(0);count}" << 0 << "<Unknown File>: QML ListModel: remove: index 0 out of range";
+ QTest::newRow("remove4c") << "{append({'foo':123});remove(1);count}" << 1 << "<Unknown File>: QML ListModel: remove: index 1 out of range";
QTest::newRow("insert1") << "{insert(0,{'foo':123});count}" << 1 << "";
- QTest::newRow("insert2") << "{insert(1,{'foo':123});count}" << 0 << "QML ListModel (unknown location) insert: index 1 out of range";
+ QTest::newRow("insert2") << "{insert(1,{'foo':123});count}" << 0 << "<Unknown File>: QML ListModel: insert: index 1 out of range";
QTest::newRow("insert3a") << "{append({'foo':123});insert(1,{'foo':456});count}" << 2 << "";
QTest::newRow("insert3b") << "{append({'foo':123});insert(1,{'foo':456});get(0).foo}" << 123 << "";
QTest::newRow("insert3c") << "{append({'foo':123});insert(1,{'foo':456});get(1).foo}" << 456 << "";
QTest::newRow("insert3d") << "{append({'foo':123});insert(0,{'foo':456});get(0).foo}" << 456 << "";
QTest::newRow("insert3e") << "{append({'foo':123});insert(0,{'foo':456});get(1).foo}" << 123 << "";
- QTest::newRow("insert4") << "{append({'foo':123});insert(-1,{'foo':456});count}" << 1 << "QML ListModel (unknown location) insert: index -1 out of range";
- QTest::newRow("insert5a") << "{insert(0,123)}" << 0 << "QML ListModel (unknown location) insert: value is not an object";
- QTest::newRow("insert5b") << "{insert(0,[1,2,3])}" << 0 << "QML ListModel (unknown location) insert: value is not an object";
+ QTest::newRow("insert4") << "{append({'foo':123});insert(-1,{'foo':456});count}" << 1 << "<Unknown File>: QML ListModel: insert: index -1 out of range";
+ QTest::newRow("insert5a") << "{insert(0,123)}" << 0 << "<Unknown File>: QML ListModel: insert: value is not an object";
+ QTest::newRow("insert5b") << "{insert(0,[1,2,3])}" << 0 << "<Unknown File>: QML ListModel: insert: value is not an object";
QTest::newRow("set1") << "{append({'foo':123});set(0,{'foo':456});count}" << 1 << "";
QTest::newRow("set2") << "{append({'foo':123});set(0,{'foo':456});get(0).foo}" << 456 << "";
QTest::newRow("set3a") << "{append({'foo':123,'bar':456});set(0,{'foo':999});get(0).foo}" << 999 << "";
QTest::newRow("set3b") << "{append({'foo':123,'bar':456});set(0,{'foo':999});get(0).bar}" << 456 << "";
- QTest::newRow("set4a") << "{set(0,{'foo':456})}" << 0 << "QML ListModel (unknown location) set: index 0 out of range";
- QTest::newRow("set4c") << "{set(-1,{'foo':456})}" << 0 << "QML ListModel (unknown location) set: index -1 out of range";
- QTest::newRow("set5a") << "{append({'foo':123,'bar':456});set(0,123);count}" << 1 << "QML ListModel (unknown location) set: value is not an object";
- QTest::newRow("set5b") << "{append({'foo':123,'bar':456});set(0,[1,2,3]);count}" << 1 << "QML ListModel (unknown location) set: value is not an object";
+ QTest::newRow("set4a") << "{set(0,{'foo':456})}" << 0 << "<Unknown File>: QML ListModel: set: index 0 out of range";
+ QTest::newRow("set4c") << "{set(-1,{'foo':456})}" << 0 << "<Unknown File>: QML ListModel: set: index -1 out of range";
+ QTest::newRow("set5a") << "{append({'foo':123,'bar':456});set(0,123);count}" << 1 << "<Unknown File>: QML ListModel: set: value is not an object";
+ QTest::newRow("set5b") << "{append({'foo':123,'bar':456});set(0,[1,2,3]);count}" << 1 << "<Unknown File>: QML ListModel: set: value is not an object";
QTest::newRow("set6") << "{append({'foo':123});set(1,{'foo':456});count}" << 2 << "";
QTest::newRow("setprop1") << "{append({'foo':123});setProperty(0,'foo',456);count}" << 1 << "";
QTest::newRow("setprop2") << "{append({'foo':123});setProperty(0,'foo',456);get(0).foo}" << 456 << "";
QTest::newRow("setprop3a") << "{append({'foo':123,'bar':456});setProperty(0,'foo',999);get(0).foo}" << 999 << "";
QTest::newRow("setprop3b") << "{append({'foo':123,'bar':456});setProperty(0,'foo',999);get(0).bar}" << 456 << "";
- QTest::newRow("setprop4a") << "{setProperty(0,'foo',456)}" << 0 << "QML ListModel (unknown location) set: index 0 out of range";
- QTest::newRow("setprop4b") << "{setProperty(-1,'foo',456)}" << 0 << "QML ListModel (unknown location) set: index -1 out of range";
- QTest::newRow("setprop4c") << "{append({'foo':123,'bar':456});setProperty(1,'foo',456);count}" << 1 << "QML ListModel (unknown location) set: index 1 out of range";
+ QTest::newRow("setprop4a") << "{setProperty(0,'foo',456)}" << 0 << "<Unknown File>: QML ListModel: set: index 0 out of range";
+ QTest::newRow("setprop4b") << "{setProperty(-1,'foo',456)}" << 0 << "<Unknown File>: QML ListModel: set: index -1 out of range";
+ QTest::newRow("setprop4c") << "{append({'foo':123,'bar':456});setProperty(1,'foo',456);count}" << 1 << "<Unknown File>: QML ListModel: set: index 1 out of range";
QTest::newRow("setprop5") << "{append({'foo':123,'bar':456});append({'foo':111});setProperty(1,'bar',222);get(1).bar}" << 222 << "";
QTest::newRow("move1a") << "{append({'foo':123});append({'foo':456});move(0,1,1);count}" << 2 << "";
@@ -246,10 +247,10 @@ void tst_QDeclarativeListModel::dynamic_data()
QTest::newRow("move2b") << "{append({'foo':123});append({'foo':456});append({'foo':789});move(0,1,2);get(0).foo}" << 789 << "";
QTest::newRow("move2c") << "{append({'foo':123});append({'foo':456});append({'foo':789});move(0,1,2);get(1).foo}" << 123 << "";
QTest::newRow("move2d") << "{append({'foo':123});append({'foo':456});append({'foo':789});move(0,1,2);get(2).foo}" << 456 << "";
- QTest::newRow("move3a") << "{append({'foo':123});append({'foo':456});append({'foo':789});move(1,0,3);count}" << 3 << "QML ListModel (unknown location) move: out of range";
- QTest::newRow("move3b") << "{append({'foo':123});append({'foo':456});append({'foo':789});move(1,-1,1);count}" << 3 << "QML ListModel (unknown location) move: out of range";
- QTest::newRow("move3c") << "{append({'foo':123});append({'foo':456});append({'foo':789});move(1,0,-1);count}" << 3 << "QML ListModel (unknown location) move: out of range";
- QTest::newRow("move3d") << "{append({'foo':123});append({'foo':456});append({'foo':789});move(0,3,1);count}" << 3 << "QML ListModel (unknown location) move: out of range";
+ QTest::newRow("move3a") << "{append({'foo':123});append({'foo':456});append({'foo':789});move(1,0,3);count}" << 3 << "<Unknown File>: QML ListModel: move: out of range";
+ QTest::newRow("move3b") << "{append({'foo':123});append({'foo':456});append({'foo':789});move(1,-1,1);count}" << 3 << "<Unknown File>: QML ListModel: move: out of range";
+ QTest::newRow("move3c") << "{append({'foo':123});append({'foo':456});append({'foo':789});move(1,0,-1);count}" << 3 << "<Unknown File>: QML ListModel: move: out of range";
+ QTest::newRow("move3d") << "{append({'foo':123});append({'foo':456});append({'foo':789});move(0,3,1);count}" << 3 << "<Unknown File>: QML ListModel: move: out of range";
// Nested models
@@ -264,7 +265,7 @@ void tst_QDeclarativeListModel::dynamic_data()
//QTest::newRow("nested-setprop") << "{append({'foo':123});setProperty(0,'foo',[{'x':123}]);get(0).foo.get(0).x}" << 123 << "";
}
-void tst_QDeclarativeListModel::dynamic()
+void tst_qdeclarativelistmodel::dynamic()
{
QFETCH(QString, script);
QFETCH(int, result);
@@ -285,12 +286,12 @@ void tst_QDeclarativeListModel::dynamic()
QCOMPARE(actual,result);
}
-void tst_QDeclarativeListModel::dynamic_worker_data()
+void tst_qdeclarativelistmodel::dynamic_worker_data()
{
dynamic_data();
}
-void tst_QDeclarativeListModel::dynamic_worker()
+void tst_qdeclarativelistmodel::dynamic_worker()
{
QFETCH(QString, script);
QFETCH(int, result);
@@ -323,7 +324,13 @@ void tst_QDeclarativeListModel::dynamic_worker()
// execute a set of commands on the worker list model, then check the
// changes are reflected in the list model in the main thread
if (QByteArray(QTest::currentDataTag()).startsWith("nested"))
- QTest::ignoreMessage(QtWarningMsg, "QML ListModel (unknown location) Cannot add nested list values when modifying or after modification from a worker script");
+ QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: QML ListModel: Cannot add nested list values when modifying or after modification from a worker script");
+
+ if (QByteArray(QTest::currentDataTag()).startsWith("nested-append")) {
+ int callsToGet = script.count(QLatin1String(";get("));
+ for (int i=0; i<callsToGet; i++)
+ QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: QML ListModel: get: index 0 out of range");
+ }
QVERIFY(QMetaObject::invokeMethod(item, "evalExpressionViaWorker",
Q_ARG(QVariant, operations.mid(0, operations.length()-1))));
@@ -340,7 +347,7 @@ void tst_QDeclarativeListModel::dynamic_worker()
qApp->processEvents();
}
-void tst_QDeclarativeListModel::convertNestedToFlat_fail()
+void tst_qdeclarativelistmodel::convertNestedToFlat_fail()
{
// If a model has nested data, it cannot be used at all from a worker script
@@ -359,7 +366,7 @@ void tst_QDeclarativeListModel::convertNestedToFlat_fail()
model.append(nestedListValue(&s_eng));
QCOMPARE(model.count(), 2);
- QTest::ignoreMessage(QtWarningMsg, "QML ListModel (unknown location) List contains nested list values and cannot be used from a worker script");
+ QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: QML ListModel: List contains nested list values and cannot be used from a worker script");
QVERIFY(QMetaObject::invokeMethod(item, "evalExpressionViaWorker", Q_ARG(QVariant, script)));
waitForWorker(item);
@@ -369,7 +376,7 @@ void tst_QDeclarativeListModel::convertNestedToFlat_fail()
qApp->processEvents();
}
-void tst_QDeclarativeListModel::convertNestedToFlat_fail_data()
+void tst_qdeclarativelistmodel::convertNestedToFlat_fail_data()
{
QTest::addColumn<QString>("script");
@@ -383,7 +390,7 @@ void tst_QDeclarativeListModel::convertNestedToFlat_fail_data()
QTest::newRow("get") << "get(0)";
}
-void tst_QDeclarativeListModel::convertNestedToFlat_ok()
+void tst_qdeclarativelistmodel::convertNestedToFlat_ok()
{
// If a model only has plain data, it can be modified from a worker script. However,
// once the model is used from a worker script, it no longer accepts nested data
@@ -411,7 +418,7 @@ void tst_QDeclarativeListModel::convertNestedToFlat_ok()
QCOMPARE(model.count(), count+1);
QScriptValue nested = nestedListValue(&s_eng);
- const char *warning = "QML ListModel (unknown location) Cannot add nested list values when modifying or after modification from a worker script";
+ const char *warning = "<Unknown File>: QML ListModel: Cannot add nested list values when modifying or after modification from a worker script";
QTest::ignoreMessage(QtWarningMsg, warning);
model.append(nested);
@@ -428,12 +435,12 @@ void tst_QDeclarativeListModel::convertNestedToFlat_ok()
qApp->processEvents();
}
-void tst_QDeclarativeListModel::convertNestedToFlat_ok_data()
+void tst_qdeclarativelistmodel::convertNestedToFlat_ok_data()
{
convertNestedToFlat_fail_data();
}
-void tst_QDeclarativeListModel::static_types_data()
+void tst_qdeclarativelistmodel::static_types_data()
{
QTest::addColumn<QString>("qml");
QTest::addColumn<QVariant>("value");
@@ -463,7 +470,7 @@ void tst_QDeclarativeListModel::static_types_data()
<< QVariant(double(QDeclarativeText::AlignHCenter));
}
-void tst_QDeclarativeListModel::static_types()
+void tst_qdeclarativelistmodel::static_types()
{
QFETCH(QString, qml);
QFETCH(QVariant, value);
@@ -494,7 +501,24 @@ void tst_QDeclarativeListModel::static_types()
delete obj;
}
-void tst_QDeclarativeListModel::error_data()
+void tst_qdeclarativelistmodel::enumerate()
+{
+ QDeclarativeEngine eng;
+ QDeclarativeComponent component(&eng, QUrl::fromLocalFile(SRCDIR "/data/enumerate.qml"));
+ QVERIFY(!component.isError());
+ QDeclarativeItem *item = qobject_cast<QDeclarativeItem*>(component.create());
+ QVERIFY(item != 0);
+ QStringList r = item->property("result").toString().split(":");
+ QCOMPARE(r[0],QLatin1String("val1=1Y"));
+ QCOMPARE(r[1],QLatin1String("val2=2Y"));
+ QCOMPARE(r[2],QLatin1String("val3=strY"));
+ QCOMPARE(r[3],QLatin1String("val4=falseN"));
+ QCOMPARE(r[4],QLatin1String("val5=trueY"));
+ delete item;
+}
+
+
+void tst_qdeclarativelistmodel::error_data()
{
QTest::addColumn<QString>("qml");
QTest::addColumn<QString>("error");
@@ -532,7 +556,7 @@ void tst_QDeclarativeListModel::error_data()
<< "ListElement: cannot contain nested elements";
}
-void tst_QDeclarativeListModel::error()
+void tst_qdeclarativelistmodel::error()
{
QFETCH(QString, qml);
QFETCH(QString, error);
@@ -551,7 +575,7 @@ void tst_QDeclarativeListModel::error()
}
}
-void tst_QDeclarativeListModel::set()
+void tst_qdeclarativelistmodel::set()
{
QDeclarativeEngine engine;
QDeclarativeListModel model;
@@ -575,6 +599,6 @@ void tst_QDeclarativeListModel::set()
}
-QTEST_MAIN(tst_QDeclarativeListModel)
+QTEST_MAIN(tst_qdeclarativelistmodel)
#include "tst_qdeclarativelistmodel.moc"
diff --git a/tests/auto/declarative/qdeclarativelistreference/tst_qdeclarativelistreference.cpp b/tests/auto/declarative/qdeclarativelistreference/tst_qdeclarativelistreference.cpp
index 908f336..7689270 100644
--- a/tests/auto/declarative/qdeclarativelistreference/tst_qdeclarativelistreference.cpp
+++ b/tests/auto/declarative/qdeclarativelistreference/tst_qdeclarativelistreference.cpp
@@ -102,7 +102,6 @@ public:
QList<TestType *> data;
QDeclarativeListProperty<TestType> property;
};
-QML_DECLARE_TYPE(TestType);
void tst_qdeclarativelistreference::initTestCase()
{
diff --git a/tests/auto/declarative/qdeclarativeloader/data/SetSourceComponent.qml b/tests/auto/declarative/qdeclarativeloader/data/SetSourceComponent.qml
index 1db56c4..f600e85 100644
--- a/tests/auto/declarative/qdeclarativeloader/data/SetSourceComponent.qml
+++ b/tests/auto/declarative/qdeclarativeloader/data/SetSourceComponent.qml
@@ -1,6 +1,9 @@
import Qt 4.6
Item {
+ function clear() {
+ loader.sourceComponent = undefined
+ }
Component { id: comp; Rectangle { width: 100; height: 50 } }
- Loader { sourceComponent: comp }
+ Loader { id: loader; sourceComponent: comp }
}
diff --git a/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp b/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp
index 4a82b50..7cdadb4 100644
--- a/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp
+++ b/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp
@@ -138,7 +138,7 @@ void tst_QDeclarativeLoader::component()
void tst_QDeclarativeLoader::invalidUrl()
{
- QTest::ignoreMessage(QtWarningMsg, QString("(:-1: File error for URL " + QUrl::fromLocalFile(SRCDIR "/data/IDontExist.qml").toString() + ") ").toUtf8().constData());
+ QTest::ignoreMessage(QtWarningMsg, QString("<Unknown File>: File error for URL " + QUrl::fromLocalFile(SRCDIR "/data/IDontExist.qml").toString()).toUtf8().constData());
QDeclarativeComponent component(&engine);
component.setData(QByteArray("import Qt 4.7\nLoader { source: \"IDontExist.qml\" }"), TEST_FILE(""));
@@ -198,6 +198,26 @@ void tst_QDeclarativeLoader::clear()
delete item;
}
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("/SetSourceComponent.qml"));
+ QDeclarativeItem *item = qobject_cast<QDeclarativeItem*>(component.create());
+ QVERIFY(item);
+
+ QDeclarativeLoader *loader = qobject_cast<QDeclarativeLoader*>(item->QGraphicsObject::children().at(1));
+ QVERIFY(loader);
+ QVERIFY(loader->item());
+ QCOMPARE(loader->progress(), 1.0);
+ QCOMPARE(static_cast<QGraphicsItem*>(loader)->children().count(), 1);
+
+ QMetaObject::invokeMethod(item, "clear");
+
+ QVERIFY(loader->item() == 0);
+ QCOMPARE(loader->progress(), 0.0);
+ QCOMPARE(loader->status(), QDeclarativeLoader::Null);
+ QCOMPARE(static_cast<QGraphicsItem*>(loader)->children().count(), 0);
+
+ delete item;
+ }
}
void tst_QDeclarativeLoader::urlToComponent()
@@ -465,7 +485,7 @@ void tst_QDeclarativeLoader::failNetworkRequest()
QVERIFY(server.isValid());
server.serveDirectory(SRCDIR "/data");
- QTest::ignoreMessage(QtWarningMsg, "(:-1: Network error for URL http://127.0.0.1:14450/IDontExist.qml) ");
+ QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: Network error for URL http://127.0.0.1:14450/IDontExist.qml");
QDeclarativeComponent component(&engine);
component.setData(QByteArray("import Qt 4.7\nLoader { source: \"http://127.0.0.1:14450/IDontExist.qml\" }"), QUrl::fromLocalFile("http://127.0.0.1:14450/dummy.qml"));
@@ -505,7 +525,7 @@ void tst_QDeclarativeLoader::deleteComponentCrash()
void tst_QDeclarativeLoader::nonItem()
{
QDeclarativeComponent component(&engine, TEST_FILE("nonItem.qml"));
- QString err = QString("QML Loader (") + QUrl::fromLocalFile(SRCDIR).toString() + QString("/data/nonItem.qml:3:1) Loader does not support loading non-visual elements.");
+ QString err = QUrl::fromLocalFile(SRCDIR).toString() + "/data/nonItem.qml:3:1: QML Loader: Loader does not support loading non-visual elements.";
QTest::ignoreMessage(QtWarningMsg, err.toLatin1().constData());
QDeclarativeLoader *loader = qobject_cast<QDeclarativeLoader*>(component.create());
@@ -518,9 +538,8 @@ void tst_QDeclarativeLoader::nonItem()
void tst_QDeclarativeLoader::vmeErrors()
{
QDeclarativeComponent component(&engine, TEST_FILE("vmeErrors.qml"));
- //ignore message for now
- //QString err = QUrl::fromLocalFile(SRCDIR "/data/VmeError.qml:6: Cannot assign object type QObject with no default method\n onSomethingHappened: QtObject {}) ");
- //QTest::ignoreMessage(QtWarningMsg, err.toLatin1().constData());
+ QString err = QUrl::fromLocalFile(SRCDIR).toString() + "/data/VmeError.qml:6: Cannot assign object type QObject with no default method";
+ QTest::ignoreMessage(QtWarningMsg, err.toLatin1().constData());
QDeclarativeLoader *loader = qobject_cast<QDeclarativeLoader*>(component.create());
QVERIFY(loader);
QVERIFY(loader->item() == 0);
diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/plugin/plugin.cpp b/tests/auto/declarative/qdeclarativemoduleplugin/plugin/plugin.cpp
index fd94cc6..7d89bee 100644
--- a/tests/auto/declarative/qdeclarativemoduleplugin/plugin/plugin.cpp
+++ b/tests/auto/declarative/qdeclarativemoduleplugin/plugin/plugin.cpp
@@ -61,8 +61,6 @@ private:
int v;
};
-QML_DECLARE_TYPE(MyPluginType);
-
class MyPlugin : public QDeclarativeExtensionPlugin
{
diff --git a/tests/auto/declarative/qdeclarativemousearea/data/dragging.qml b/tests/auto/declarative/qdeclarativemousearea/data/dragging.qml
new file mode 100644
index 0000000..a28f049
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativemousearea/data/dragging.qml
@@ -0,0 +1,28 @@
+import Qt 4.7
+Rectangle {
+ id: whiteRect
+ width: 200
+ height: 200
+ color: "white"
+ Rectangle {
+ id: blackRect
+ objectName: "blackrect"
+ color: "black"
+ y: 50
+ x: 50
+ width: 100
+ height: 100
+ opacity: (whiteRect.width-blackRect.x+whiteRect.height-blackRect.y-199)/200
+ Text { text: blackRect.opacity}
+ MouseArea {
+ objectName: "mouseregion"
+ anchors.fill: parent
+ drag.target: blackRect
+ drag.axis: Drag.XandYAxis
+ drag.minimumX: 0
+ drag.maximumX: whiteRect.width-blackRect.width
+ drag.minimumY: 0
+ drag.maximumY: whiteRect.height-blackRect.height
+ }
+ }
+ }
diff --git a/tests/auto/declarative/qdeclarativemousearea/data/updateMousePosOnResize.qml b/tests/auto/declarative/qdeclarativemousearea/data/updateMousePosOnResize.qml
new file mode 100644
index 0000000..63de624
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativemousearea/data/updateMousePosOnResize.qml
@@ -0,0 +1,38 @@
+import Qt 4.6
+
+Rectangle {
+ color: "#ffffff"
+ width: 320; height: 240
+ Rectangle {
+ id: brother
+ objectName: "brother"
+ color: "lightgreen"
+ x: 200; y: 100
+ width: 120; height: 120
+ }
+ MouseArea {
+ id: mouseRegion
+ objectName: "mouseregion"
+
+ property int x1
+ property int y1
+ property int x2
+ property int y2
+ property bool emitPositionChanged: false
+ property bool mouseMatchesPos: true
+
+ anchors.fill: brother
+ onPressed: {
+ if (mouse.x != mouseX || mouse.y != mouseY)
+ mouseMatchesPos = false
+ x1 = mouseX; y1 = mouseY
+ anchors.fill = parent
+ }
+ onPositionChanged: { emitPositionChanged = true }
+ onMousePositionChanged: {
+ if (mouse.x != mouseX || mouse.y != mouseY)
+ mouseMatchesPos = false
+ x2 = mouseX; y2 = mouseY
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp b/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp
index bdb8eca..eb4aa12 100644
--- a/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp
+++ b/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp
@@ -52,7 +52,9 @@ class tst_QDeclarativeMouseArea: public QObject
private slots:
void dragProperties();
void resetDrag();
+ void dragging();
void updateMouseAreaPosOnClick();
+ void updateMouseAreaPosOnResize();
void noOnClickedWithPressAndHold();
private:
QDeclarativeView *createView();
@@ -162,6 +164,61 @@ void tst_QDeclarativeMouseArea::resetDrag()
}
+void tst_QDeclarativeMouseArea::dragging()
+{
+ QDeclarativeView *canvas = createView();
+
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/dragging.qml"));
+ canvas->show();
+ canvas->setFocus();
+ QVERIFY(canvas->rootObject() != 0);
+
+ QDeclarativeMouseArea *mouseRegion = canvas->rootObject()->findChild<QDeclarativeMouseArea*>("mouseregion");
+ QDeclarativeDrag *drag = mouseRegion->drag();
+ QVERIFY(mouseRegion != 0);
+ QVERIFY(drag != 0);
+
+ // target
+ QDeclarativeItem *blackRect = canvas->rootObject()->findChild<QDeclarativeItem*>("blackrect");
+ QVERIFY(blackRect != 0);
+ QVERIFY(blackRect == drag->target());
+
+ QVERIFY(!drag->active());
+
+ QGraphicsScene *scene = canvas->scene();
+ QGraphicsSceneMouseEvent pressEvent(QEvent::GraphicsSceneMousePress);
+ pressEvent.setScenePos(QPointF(100, 100));
+ pressEvent.setButton(Qt::LeftButton);
+ pressEvent.setButtons(Qt::LeftButton);
+ QApplication::sendEvent(scene, &pressEvent);
+
+ QVERIFY(!drag->active());
+ QCOMPARE(blackRect->x(), 50.0);
+ QCOMPARE(blackRect->y(), 50.0);
+
+ QGraphicsSceneMouseEvent moveEvent(QEvent::GraphicsSceneMouseMove);
+ moveEvent.setScenePos(QPointF(110, 110));
+ moveEvent.setButton(Qt::LeftButton);
+ moveEvent.setButtons(Qt::LeftButton);
+ QApplication::sendEvent(scene, &moveEvent);
+
+ QVERIFY(drag->active());
+ QCOMPARE(blackRect->x(), 60.0);
+ QCOMPARE(blackRect->y(), 60.0);
+
+ QGraphicsSceneMouseEvent releaseEvent(QEvent::GraphicsSceneMouseRelease);
+ releaseEvent.setScenePos(QPointF(110, 110));
+ releaseEvent.setButton(Qt::LeftButton);
+ releaseEvent.setButtons(Qt::LeftButton);
+ QApplication::sendEvent(scene, &releaseEvent);
+
+ QVERIFY(!drag->active());
+ QCOMPARE(blackRect->x(), 60.0);
+ QCOMPARE(blackRect->y(), 60.0);
+
+ delete canvas;
+}
+
QDeclarativeView *tst_QDeclarativeMouseArea::createView()
{
QDeclarativeView *canvas = new QDeclarativeView(0);
@@ -203,6 +260,46 @@ void tst_QDeclarativeMouseArea::updateMouseAreaPosOnClick()
delete canvas;
}
+void tst_QDeclarativeMouseArea::updateMouseAreaPosOnResize()
+{
+ QDeclarativeView *canvas = createView();
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/updateMousePosOnResize.qml"));
+ canvas->show();
+ canvas->setFocus();
+ QVERIFY(canvas->rootObject() != 0);
+
+ QDeclarativeMouseArea *mouseRegion = canvas->rootObject()->findChild<QDeclarativeMouseArea*>("mouseregion");
+ QVERIFY(mouseRegion != 0);
+
+ QDeclarativeRectangle *rect = canvas->rootObject()->findChild<QDeclarativeRectangle*>("brother");
+ QVERIFY(rect != 0);
+
+ QCOMPARE(mouseRegion->mouseX(), 0.0);
+ QCOMPARE(mouseRegion->mouseY(), 0.0);
+
+ QGraphicsScene *scene = canvas->scene();
+ QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMousePress);
+ event.setScenePos(rect->pos());
+ event.setButton(Qt::LeftButton);
+ event.setButtons(Qt::LeftButton);
+ QApplication::sendEvent(scene, &event);
+
+ QVERIFY(!mouseRegion->property("emitPositionChanged").toBool());
+ QVERIFY(mouseRegion->property("mouseMatchesPos").toBool());
+
+ QCOMPARE(mouseRegion->property("x1").toInt(), 0);
+ QCOMPARE(mouseRegion->property("y1").toInt(), 0);
+
+ // XXX: is it on purpose that mouseX is real and mouse.x is int?
+ QCOMPARE(mouseRegion->property("x2").toInt(), (int) rect->x());
+ QCOMPARE(mouseRegion->property("y2").toInt(), (int) rect->y());
+
+ QCOMPARE(mouseRegion->mouseX(), rect->x());
+ QCOMPARE(mouseRegion->mouseY(), rect->y());
+
+ delete canvas;
+}
+
void tst_QDeclarativeMouseArea::noOnClickedWithPressAndHold()
{
QDeclarativeView *canvas = createView();
diff --git a/tests/auto/declarative/qdeclarativeproperty/tst_qdeclarativeproperty.cpp b/tests/auto/declarative/qdeclarativeproperty/tst_qdeclarativeproperty.cpp
index 7d51bb6..53614fe 100644
--- a/tests/auto/declarative/qdeclarativeproperty/tst_qdeclarativeproperty.cpp
+++ b/tests/auto/declarative/qdeclarativeproperty/tst_qdeclarativeproperty.cpp
@@ -310,7 +310,7 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object()
QCOMPARE(prop.propertyTypeName(), "int");
QCOMPARE(QString(prop.property().name()), QString("defaultProperty"));
QVERIFY(QDeclarativePropertyPrivate::binding(prop) == 0);
- QTest::ignoreMessage(QtWarningMsg, "<Unknown File>:-1: Unable to assign null to int");
+ QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: Unable to assign null to int");
QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding.data()) == 0);
QVERIFY(binding != 0);
QVERIFY(QDeclarativePropertyPrivate::binding(prop) == binding.data());
@@ -409,7 +409,7 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_string()
QCOMPARE(prop.propertyTypeName(), "int");
QCOMPARE(QString(prop.property().name()), QString("defaultProperty"));
QVERIFY(QDeclarativePropertyPrivate::binding(prop) == 0);
- QTest::ignoreMessage(QtWarningMsg, "<Unknown File>:-1: Unable to assign null to int");
+ QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: Unable to assign null to int");
QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding.data()) == 0);
QVERIFY(binding != 0);
QVERIFY(QDeclarativePropertyPrivate::binding(prop) == binding.data());
@@ -602,7 +602,7 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_context()
QCOMPARE(prop.propertyTypeName(), "int");
QCOMPARE(QString(prop.property().name()), QString("defaultProperty"));
QVERIFY(QDeclarativePropertyPrivate::binding(prop) == 0);
- QTest::ignoreMessage(QtWarningMsg, "<Unknown File>:-1: Unable to assign null to int");
+ QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: Unable to assign null to int");
QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding.data()) == 0);
QVERIFY(binding != 0);
QVERIFY(QDeclarativePropertyPrivate::binding(prop) == binding.data());
@@ -701,7 +701,7 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_string_context()
QCOMPARE(prop.propertyTypeName(), "int");
QCOMPARE(QString(prop.property().name()), QString("defaultProperty"));
QVERIFY(QDeclarativePropertyPrivate::binding(prop) == 0);
- QTest::ignoreMessage(QtWarningMsg, "<Unknown File>:-1: Unable to assign null to int");
+ QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: Unable to assign null to int");
QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding.data()) == 0);
QVERIFY(binding != 0);
QVERIFY(QDeclarativePropertyPrivate::binding(prop) == binding.data());
diff --git a/tests/auto/declarative/qdeclarativeqt/data/createComponent.qml b/tests/auto/declarative/qdeclarativeqt/data/createComponent.qml
index d9b70ec..253a4e3 100644
--- a/tests/auto/declarative/qdeclarativeqt/data/createComponent.qml
+++ b/tests/auto/declarative/qdeclarativeqt/data/createComponent.qml
@@ -1,23 +1,20 @@
import Qt 4.6
QtObject {
- property bool incorrectArgCount1: false
- property bool incorrectArgCount2: false
property bool emptyArg: false
property string relativeUrl
property string absoluteUrl
- Component.onCompleted: {
- // Test that using incorrect argument count returns a null object
- incorrectArgCount1 = (createComponent() == null);
- incorrectArgCount2 = (createComponent("main.qml", 10) == null);
- emptyArg = (createComponent("") == null);
+ property QtObject incorectArgCount1: Qt.createComponent()
+ property QtObject incorectArgCount2: Qt.createComponent("main.qml", 10)
- var r = createComponent("createComponentData.qml");
+ Component.onCompleted: {
+ emptyArg = (Qt.createComponent("") == null);
+ var r = Qt.createComponent("createComponentData.qml");
relativeUrl = r.url;
- var a = createComponent("http://www.example.com/test.qml");
+ var a = Qt.createComponent("http://www.example.com/test.qml");
absoluteUrl = a.url;
}
}
diff --git a/tests/auto/declarative/qdeclarativeqt/data/createQmlObject.qml b/tests/auto/declarative/qdeclarativeqt/data/createQmlObject.qml
index 54a3e7d..9fe169d 100644
--- a/tests/auto/declarative/qdeclarativeqt/data/createQmlObject.qml
+++ b/tests/auto/declarative/qdeclarativeqt/data/createQmlObject.qml
@@ -3,29 +3,29 @@ import Qt 4.6
Item {
id: root
- property bool incorrectArgCount1: false
- property bool incorrectArgCount2: false
+ // errors resulting in exceptions
+ property QtObject incorrectArgCount1: Qt.createQmlObject()
+ property QtObject incorrectArgCount2: Qt.createQmlObject("import Qt 4.6\nQtObject{}", root, "main.qml", 10)
+ property QtObject noParent: Qt.createQmlObject("import Qt 4.6\nQtObject{\nproperty int test: 13}", 0)
+ property QtObject notAvailable: Qt.createQmlObject("import Qt 4.6\nQtObject{Blah{}}", root)
+ property QtObject errors: Qt.createQmlObject("import Qt 4.6\nQtObject{\nproperty int test: 13\nproperty int test: 13\n}", root, "main.qml")
+
property bool emptyArg: false
- property bool noParent: false
- property bool notAvailable: false
- property bool runtimeError: false
- property bool errors: false
property bool success: false
Component.onCompleted: {
- // errors
- incorrectArgCount1 = (createQmlObject() == null);
- incorrectArgCount2 = (createQmlObject("import Qt 4.6\nQtObject{}", root, "main.qml", 10) == null);
- emptyArg = (createQmlObject("", root) == null);
- errors = (createQmlObject("import Qt 4.6\nQtObject{\nproperty int test: 13\nproperty int test: 13\n}", root, "main.qml") == null);
- noParent = (createQmlObject("import Qt 4.6\nQtObject{\nproperty int test: 13}", 0) == null);
- notAvailable = (createQmlObject("import Qt 4.6\nQtObject{Blah{}}", root) == null);
- runtimeError = (createQmlObject("import Qt 4.6\nQtObject{property int test\nonTestChanged: QtObject{}\n}", root) == null);
+ // errors resulting in nulls
+ emptyArg = (Qt.createQmlObject("", root) == null);
+ try {
+ Qt.createQmlObject("import Qt 4.6\nQtObject{property int test\nonTestChanged: QtObject{}\n}", root)
+ } catch (error) {
+ console.log("RunTimeError: ",error.message);
+ }
- var o = createQmlObject("import Qt 4.6\nQtObject{\nproperty int test: 13\n}", root);
+ var o = Qt.createQmlObject("import Qt 4.6\nQtObject{\nproperty int test: 13\n}", root);
success = (o.test == 13);
- createQmlObject("import Qt 4.6\nItem {}\n", root);
+ Qt.createQmlObject("import Qt 4.6\nItem {}\n", root);
}
}
diff --git a/tests/auto/declarative/qdeclarativeqt/data/hsla.qml b/tests/auto/declarative/qdeclarativeqt/data/hsla.qml
index df51ccd..142410b 100644
--- a/tests/auto/declarative/qdeclarativeqt/data/hsla.qml
+++ b/tests/auto/declarative/qdeclarativeqt/data/hsla.qml
@@ -5,7 +5,7 @@ QtObject {
property color test2: Qt.hsla(1, 0.5, 0.3);
property color test3: Qt.hsla(1, 1);
property color test4: Qt.hsla(1, 1, 1, 1, 1);
- property color test5: Qt.hsla(1.2, 1, 1);
- property color test6: Qt.hsla(-0.1, 1, 1);
+ property color test5: Qt.hsla(1.2, 1.3, 1.4, 1.5);
+ property color test6: Qt.hsla(-0.1, -0.2, -0.3, -0.4);
}
diff --git a/tests/auto/declarative/qdeclarativeqt/data/rgba.qml b/tests/auto/declarative/qdeclarativeqt/data/rgba.qml
index 6dd6565..66305a4 100644
--- a/tests/auto/declarative/qdeclarativeqt/data/rgba.qml
+++ b/tests/auto/declarative/qdeclarativeqt/data/rgba.qml
@@ -5,6 +5,6 @@ QtObject {
property color test2: Qt.rgba(1, 0.5, 0.3);
property color test3: Qt.rgba(1, 1);
property color test4: Qt.rgba(1, 1, 1, 1, 1);
- property color test5: Qt.rgba(1.2, 1, 1);
- property color test6: Qt.rgba(-0.1, 1, 1);
+ property color test5: Qt.rgba(1.2, 1.3, 1.4, 1.5);
+ property color test6: Qt.rgba(-0.1, -0.2, -0.3, -0.4);
}
diff --git a/tests/auto/declarative/qdeclarativeqt/tst_qdeclarativeqt.cpp b/tests/auto/declarative/qdeclarativeqt/tst_qdeclarativeqt.cpp
index 98f1200..727d74c 100644
--- a/tests/auto/declarative/qdeclarativeqt/tst_qdeclarativeqt.cpp
+++ b/tests/auto/declarative/qdeclarativeqt/tst_qdeclarativeqt.cpp
@@ -102,14 +102,10 @@ void tst_qdeclarativeqt::rgba()
{
QDeclarativeComponent component(&engine, TEST_FILE("rgba.qml"));
- QString warning1 = component.url().toString() + ":6: Unable to assign null to QColor";
- QString warning2 = component.url().toString() + ":7: Unable to assign null to QColor";
- QString warning3 = component.url().toString() + ":8: Unable to assign null to QColor";
- QString warning4 = component.url().toString() + ":9: Unable to assign null to QColor";
+ QString warning1 = component.url().toString() + ":6: Error: expected 3 or 4 parameters";
+ QString warning2 = component.url().toString() + ":7: Error: expected 3 or 4 parameters";
QTest::ignoreMessage(QtWarningMsg, qPrintable(warning1));
QTest::ignoreMessage(QtWarningMsg, qPrintable(warning2));
- QTest::ignoreMessage(QtWarningMsg, qPrintable(warning3));
- QTest::ignoreMessage(QtWarningMsg, qPrintable(warning4));
QObject *object = component.create();
QVERIFY(object != 0);
@@ -119,8 +115,8 @@ void tst_qdeclarativeqt::rgba()
QCOMPARE(qvariant_cast<QColor>(object->property("test2")), QColor::fromRgbF(1, 0.5, 0.3, 1));
QCOMPARE(qvariant_cast<QColor>(object->property("test3")), QColor());
QCOMPARE(qvariant_cast<QColor>(object->property("test4")), QColor());
- QCOMPARE(qvariant_cast<QColor>(object->property("test5")), QColor());
- QCOMPARE(qvariant_cast<QColor>(object->property("test6")), QColor());
+ QCOMPARE(qvariant_cast<QColor>(object->property("test5")), QColor::fromRgbF(1, 1, 1, 1));
+ QCOMPARE(qvariant_cast<QColor>(object->property("test6")), QColor::fromRgbF(0, 0, 0, 0));
delete object;
}
@@ -129,14 +125,10 @@ void tst_qdeclarativeqt::hsla()
{
QDeclarativeComponent component(&engine, TEST_FILE("hsla.qml"));
- QString warning1 = component.url().toString() + ":6: Unable to assign null to QColor";
- QString warning2 = component.url().toString() + ":7: Unable to assign null to QColor";
- QString warning3 = component.url().toString() + ":8: Unable to assign null to QColor";
- QString warning4 = component.url().toString() + ":9: Unable to assign null to QColor";
+ QString warning1 = component.url().toString() + ":6: Error: expected 3 or 4 parameters";
+ QString warning2 = component.url().toString() + ":7: Error: expected 3 or 4 parameters";
QTest::ignoreMessage(QtWarningMsg, qPrintable(warning1));
QTest::ignoreMessage(QtWarningMsg, qPrintable(warning2));
- QTest::ignoreMessage(QtWarningMsg, qPrintable(warning3));
- QTest::ignoreMessage(QtWarningMsg, qPrintable(warning4));
QObject *object = component.create();
QVERIFY(object != 0);
@@ -145,8 +137,8 @@ void tst_qdeclarativeqt::hsla()
QCOMPARE(qvariant_cast<QColor>(object->property("test2")), QColor::fromHslF(1, 0.5, 0.3, 1));
QCOMPARE(qvariant_cast<QColor>(object->property("test3")), QColor());
QCOMPARE(qvariant_cast<QColor>(object->property("test4")), QColor());
- QCOMPARE(qvariant_cast<QColor>(object->property("test5")), QColor());
- QCOMPARE(qvariant_cast<QColor>(object->property("test6")), QColor());
+ QCOMPARE(qvariant_cast<QColor>(object->property("test5")), QColor::fromHslF(1, 1, 1, 1));
+ QCOMPARE(qvariant_cast<QColor>(object->property("test6")), QColor::fromHslF(0, 0, 0, 0));
delete object;
}
@@ -154,6 +146,12 @@ void tst_qdeclarativeqt::hsla()
void tst_qdeclarativeqt::rect()
{
QDeclarativeComponent component(&engine, TEST_FILE("rect.qml"));
+
+ QString warning1 = component.url().toString() + ":6: Error: expected 4 parameters";
+ QString warning2 = component.url().toString() + ":7: Error: expected 4 parameters";
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning1));
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning2));
+
QObject *object = component.create();
QVERIFY(object != 0);
@@ -169,6 +167,12 @@ void tst_qdeclarativeqt::rect()
void tst_qdeclarativeqt::point()
{
QDeclarativeComponent component(&engine, TEST_FILE("point.qml"));
+
+ QString warning1 = component.url().toString() + ":6: Error: expected 2 parameters";
+ QString warning2 = component.url().toString() + ":7: Error: expected 2 parameters";
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning1));
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning2));
+
QObject *object = component.create();
QVERIFY(object != 0);
@@ -183,6 +187,12 @@ void tst_qdeclarativeqt::point()
void tst_qdeclarativeqt::size()
{
QDeclarativeComponent component(&engine, TEST_FILE("size.qml"));
+
+ QString warning1 = component.url().toString() + ":7: Error: expected 2 parameters";
+ QString warning2 = component.url().toString() + ":8: Error: expected 2 parameters";
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning1));
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning2));
+
QObject *object = component.create();
QVERIFY(object != 0);
@@ -198,6 +208,12 @@ void tst_qdeclarativeqt::size()
void tst_qdeclarativeqt::vector()
{
QDeclarativeComponent component(&engine, TEST_FILE("vector.qml"));
+
+ QString warning1 = component.url().toString() + ":6: Error: expected 3 parameters";
+ QString warning2 = component.url().toString() + ":7: Error: expected 3 parameters";
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning1));
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning2));
+
QObject *object = component.create();
QVERIFY(object != 0);
@@ -212,6 +228,12 @@ void tst_qdeclarativeqt::vector()
void tst_qdeclarativeqt::lighter()
{
QDeclarativeComponent component(&engine, TEST_FILE("lighter.qml"));
+
+ QString warning1 = component.url().toString() + ":5: Error: expected 1 parameter";
+ QString warning2 = component.url().toString() + ":6: Error: expected 1 parameter";
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning1));
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning2));
+
QObject *object = component.create();
QVERIFY(object != 0);
@@ -228,6 +250,12 @@ void tst_qdeclarativeqt::lighter()
void tst_qdeclarativeqt::darker()
{
QDeclarativeComponent component(&engine, TEST_FILE("darker.qml"));
+
+ QString warning1 = component.url().toString() + ":5: Error: expected 1 parameter";
+ QString warning2 = component.url().toString() + ":6: Error: expected 1 parameter";
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning1));
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning2));
+
QObject *object = component.create();
QVERIFY(object != 0);
@@ -245,8 +273,9 @@ void tst_qdeclarativeqt::tint()
{
QDeclarativeComponent component(&engine, TEST_FILE("tint.qml"));
- QString warning1 = component.url().toString() + ":7: Unable to assign null to QColor";
- QString warning2 = component.url().toString() + ":8: Unable to assign null to QColor";
+ QString warning1 = component.url().toString() + ":7: Error: expected 2 parameters";
+ QString warning2 = component.url().toString() + ":8: Error: expected 2 parameters";
+
QTest::ignoreMessage(QtWarningMsg, qPrintable(warning1));
QTest::ignoreMessage(QtWarningMsg, qPrintable(warning2));
@@ -305,13 +334,15 @@ void tst_qdeclarativeqt::md5()
void tst_qdeclarativeqt::createComponent()
{
QDeclarativeComponent component(&engine, TEST_FILE("createComponent.qml"));
+
+ QString warning1 = component.url().toString() + ":9: Error: expected 1 parameter";
+ QString warning2 = component.url().toString() + ":10: Error: expected 1 parameter";
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning1));
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning2));
+
QObject *object = component.create();
QVERIFY(object != 0);
- QCOMPARE(object->property("incorrectArgCount1").toBool(), true);
- QCOMPARE(object->property("incorrectArgCount2").toBool(), true);
- QCOMPARE(object->property("emptyArg").toBool(), true);
-
QCOMPARE(object->property("absoluteUrl").toString(), QString("http://www.example.com/test.qml"));
QCOMPARE(object->property("relativeUrl").toString(), TEST_FILE("createComponentData.qml").toString());
@@ -322,30 +353,24 @@ void tst_qdeclarativeqt::createQmlObject()
{
QDeclarativeComponent component(&engine, TEST_FILE("createQmlObject.qml"));
- QString warning1 = "QDeclarativeEngine::createQmlObject():";
- QString warning2 = " " + TEST_FILE("main.qml").toString() + ":4:1: Duplicate property name";
- QString warning3 = "QDeclarativeEngine::createQmlObject():";
- QString warning4 = " " + TEST_FILE("inline").toString() + ":2:10: Blah is not a type";
- QString warning5 = "QDeclarativeEngine::createQmlObject():";
- QString warning6 = " " + TEST_FILE("inline").toString() + ":3: Cannot assign object type QObject with no default method";
+ QString warning1 = component.url().toString() + ":7: Error: expected 2 or 3 parameters";
+ QString warning2 = component.url().toString()+ ":10: Error: Qt.createQmlObject() failed to create object: " + TEST_FILE("inline").toString() + ":2:10: Blah is not a type\n";
+ QString warning3 = component.url().toString()+ ":11: Error: Qt.createQmlObject() failed to create object: " + TEST_FILE("main.qml").toString() + ":4:1: Duplicate property name\n";
+ QString warning4 = component.url().toString()+ ":9: Error: parent object not found";
+ QString warning5 = component.url().toString()+ ":8: Error: expected 2 or 3 parameters";
+ QString warning6 = "RunTimeError: Qt.createQmlObject() failed to create object: " + TEST_FILE("inline").toString() + ":3: Cannot assign object type QObject with no default method\n";
QTest::ignoreMessage(QtWarningMsg, qPrintable(warning1));
QTest::ignoreMessage(QtWarningMsg, qPrintable(warning2));
QTest::ignoreMessage(QtWarningMsg, qPrintable(warning3));
QTest::ignoreMessage(QtWarningMsg, qPrintable(warning4));
QTest::ignoreMessage(QtWarningMsg, qPrintable(warning5));
- QTest::ignoreMessage(QtWarningMsg, qPrintable(warning6));
+ QTest::ignoreMessage(QtDebugMsg, qPrintable(warning6));
QObject *object = component.create();
QVERIFY(object != 0);
- QCOMPARE(object->property("incorrectArgCount1").toBool(), true);
- QCOMPARE(object->property("incorrectArgCount2").toBool(), true);
QCOMPARE(object->property("emptyArg").toBool(), true);
- QCOMPARE(object->property("errors").toBool(), true);
- QCOMPARE(object->property("noParent").toBool(), true);
- QCOMPARE(object->property("notAvailable").toBool(), true);
- QCOMPARE(object->property("runtimeError").toBool(), true);
QCOMPARE(object->property("success").toBool(), true);
QDeclarativeItem *item = qobject_cast<QDeclarativeItem *>(object);
diff --git a/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp b/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp
index 578bcb4..a016fa7 100644
--- a/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp
+++ b/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp
@@ -68,8 +68,6 @@ private:
int m_prop;
};
-QML_DECLARE_TYPE(MyRect)
-
class tst_qdeclarativestates : public QObject
{
@@ -522,7 +520,7 @@ void tst_qdeclarativestates::parentChangeErrors()
QDeclarativeRectangle *innerRect = qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"));
QVERIFY(innerRect != 0);
- QTest::ignoreMessage(QtWarningMsg, QByteArray("QML ParentChange (" + fullDataPath("/data/parentChange4.qml") + ":25:9) Unable to preserve appearance under non-uniform scale").constData());
+ QTest::ignoreMessage(QtWarningMsg, fullDataPath("/data/parentChange4.qml") + ":25:9: QML ParentChange: Unable to preserve appearance under non-uniform scale");
rect->setState("reparented");
QCOMPARE(innerRect->rotation(), qreal(0));
QCOMPARE(innerRect->scale(), qreal(1));
@@ -538,7 +536,7 @@ void tst_qdeclarativestates::parentChangeErrors()
QDeclarativeRectangle *innerRect = qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"));
QVERIFY(innerRect != 0);
- QTest::ignoreMessage(QtWarningMsg, QByteArray("QML ParentChange (" + fullDataPath("/data/parentChange5.qml") + ":25:9) Unable to preserve appearance under complex transform").constData());
+ QTest::ignoreMessage(QtWarningMsg, fullDataPath("/data/parentChange5.qml") + ":25:9: QML ParentChange: Unable to preserve appearance under complex transform");
rect->setState("reparented");
QCOMPARE(innerRect->rotation(), qreal(0));
QCOMPARE(innerRect->scale(), qreal(1));
@@ -568,10 +566,10 @@ void tst_qdeclarativestates::anchorChanges()
rect->setState("right");
QCOMPARE(innerRect->x(), qreal(150));
- QCOMPARE(aChanges->anchors()->left().anchorLine, QDeclarativeAnchorLine::Invalid); //### was reset (how do we distinguish from not set at all)
QCOMPARE(aChanges->object(), qobject_cast<QDeclarativeItem*>(innerRect));
- QCOMPARE(aChanges->anchors()->right().item, rect->right().item);
- QCOMPARE(aChanges->anchors()->right().anchorLine, rect->right().anchorLine);
+ QCOMPARE(aChanges->object()->anchors()->left().anchorLine, QDeclarativeAnchorLine::Invalid); //### was reset (how do we distinguish from not set at all)
+ QCOMPARE(aChanges->object()->anchors()->right().item, rect->right().item);
+ QCOMPARE(aChanges->object()->anchors()->right().anchorLine, rect->right().anchorLine);
rect->setState("");
QCOMPARE(innerRect->x(), qreal(5));
@@ -591,7 +589,6 @@ void tst_qdeclarativestates::anchorChanges2()
QVERIFY(innerRect != 0);
rect->setState("right");
- QEXPECT_FAIL("", "QTBUG-5338", Continue);
QCOMPARE(innerRect->x(), qreal(150));
rect->setState("");
@@ -627,14 +624,14 @@ void tst_qdeclarativestates::anchorChanges3()
rect->setState("reanchored");
QCOMPARE(aChanges->object(), qobject_cast<QDeclarativeItem*>(innerRect));
- QCOMPARE(aChanges->anchors()->left().item, leftGuideline->left().item);
- QCOMPARE(aChanges->anchors()->left().anchorLine, leftGuideline->left().anchorLine);
- QCOMPARE(aChanges->anchors()->right().item, rect->right().item);
- QCOMPARE(aChanges->anchors()->right().anchorLine, rect->right().anchorLine);
- QCOMPARE(aChanges->anchors()->top().item, rect->top().item);
- QCOMPARE(aChanges->anchors()->top().anchorLine, rect->top().anchorLine);
- QCOMPARE(aChanges->anchors()->bottom().item, bottomGuideline->bottom().item);
- QCOMPARE(aChanges->anchors()->bottom().anchorLine, bottomGuideline->bottom().anchorLine);
+ QCOMPARE(aChanges->object()->anchors()->left().item, leftGuideline->left().item);
+ QCOMPARE(aChanges->object()->anchors()->left().anchorLine, leftGuideline->left().anchorLine);
+ QCOMPARE(aChanges->object()->anchors()->right().item, rect->right().item);
+ QCOMPARE(aChanges->object()->anchors()->right().anchorLine, rect->right().anchorLine);
+ QCOMPARE(aChanges->object()->anchors()->top().item, rect->top().item);
+ QCOMPARE(aChanges->object()->anchors()->top().anchorLine, rect->top().anchorLine);
+ QCOMPARE(aChanges->object()->anchors()->bottom().item, bottomGuideline->bottom().item);
+ QCOMPARE(aChanges->object()->anchors()->bottom().anchorLine, bottomGuideline->bottom().anchorLine);
QCOMPARE(innerRect->x(), qreal(10));
QCOMPARE(innerRect->y(), qreal(0));
@@ -677,10 +674,10 @@ void tst_qdeclarativestates::anchorChanges4()
rect->setState("reanchored");
QCOMPARE(aChanges->object(), qobject_cast<QDeclarativeItem*>(innerRect));
- QCOMPARE(aChanges->anchors()->horizontalCenter().item, bottomGuideline->horizontalCenter().item);
- QCOMPARE(aChanges->anchors()->horizontalCenter().anchorLine, bottomGuideline->horizontalCenter().anchorLine);
- QCOMPARE(aChanges->anchors()->verticalCenter().item, leftGuideline->verticalCenter().item);
- QCOMPARE(aChanges->anchors()->verticalCenter().anchorLine, leftGuideline->verticalCenter().anchorLine);
+ QCOMPARE(aChanges->object()->anchors()->horizontalCenter().item, bottomGuideline->horizontalCenter().item);
+ QCOMPARE(aChanges->object()->anchors()->horizontalCenter().anchorLine, bottomGuideline->horizontalCenter().anchorLine);
+ QCOMPARE(aChanges->object()->anchors()->verticalCenter().item, leftGuideline->verticalCenter().item);
+ QCOMPARE(aChanges->object()->anchors()->verticalCenter().anchorLine, leftGuideline->verticalCenter().anchorLine);
delete rect;
}
@@ -712,10 +709,10 @@ void tst_qdeclarativestates::anchorChanges5()
rect->setState("reanchored");
QCOMPARE(aChanges->object(), qobject_cast<QDeclarativeItem*>(innerRect));
- QCOMPARE(aChanges->anchors()->horizontalCenter().item, bottomGuideline->horizontalCenter().item);
- QCOMPARE(aChanges->anchors()->horizontalCenter().anchorLine, bottomGuideline->horizontalCenter().anchorLine);
- QCOMPARE(aChanges->anchors()->baseline().item, leftGuideline->baseline().item);
- QCOMPARE(aChanges->anchors()->baseline().anchorLine, leftGuideline->baseline().anchorLine);
+ //QCOMPARE(aChanges->anchors()->horizontalCenter().item, bottomGuideline->horizontalCenter().item);
+ //QCOMPARE(aChanges->anchors()->horizontalCenter().anchorLine, bottomGuideline->horizontalCenter().anchorLine);
+ //QCOMPARE(aChanges->anchors()->baseline().item, leftGuideline->baseline().item);
+ //QCOMPARE(aChanges->anchors()->baseline().anchorLine, leftGuideline->baseline().anchorLine);
delete rect;
}
@@ -813,8 +810,8 @@ void tst_qdeclarativestates::propertyErrors()
QCOMPARE(rect->color(),QColor("red"));
- QTest::ignoreMessage(QtWarningMsg, QByteArray("QML PropertyChanges (" + fullDataPath("/data/propertyErrors.qml") + ":8:9) Cannot assign to non-existent property \"colr\"").constData());
- QTest::ignoreMessage(QtWarningMsg, QByteArray("QML PropertyChanges (" + fullDataPath("/data/propertyErrors.qml") + ":8:9) Cannot assign to read-only property \"wantsFocus\"").constData());
+ QTest::ignoreMessage(QtWarningMsg, fullDataPath("/data/propertyErrors.qml") + ":8:9: QML PropertyChanges: Cannot assign to non-existent property \"colr\"");
+ QTest::ignoreMessage(QtWarningMsg, fullDataPath("/data/propertyErrors.qml") + ":8:9: QML PropertyChanges: Cannot assign to read-only property \"wantsFocus\"");
rect->setState("blue");
}
@@ -946,7 +943,7 @@ void tst_qdeclarativestates::illegalTempState()
QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(rectComponent.create());
QVERIFY(rect != 0);
- QTest::ignoreMessage(QtWarningMsg, "Can't apply a state change as part of a state definition. ");
+ QTest::ignoreMessage(QtWarningMsg, "<Unknown File>: QML StateGroup: Can't apply a state change as part of a state definition.");
rect->setState("placed");
QCOMPARE(rect->state(), QLatin1String("placed"));
}
@@ -959,7 +956,7 @@ void tst_qdeclarativestates::nonExistantProperty()
QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(rectComponent.create());
QVERIFY(rect != 0);
- QTest::ignoreMessage(QtWarningMsg, QByteArray("QML PropertyChanges (" + fullDataPath("/data/nonExistantProp.qml") + ":9:9) Cannot assign to non-existent property \"colr\"").constData());
+ QTest::ignoreMessage(QtWarningMsg, fullDataPath("/data/nonExistantProp.qml") + ":9:9: QML PropertyChanges: Cannot assign to non-existent property \"colr\"");
rect->setState("blue");
QCOMPARE(rect->state(), QLatin1String("blue"));
}
diff --git a/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp b/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp
index edb4a32..551e17b 100644
--- a/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp
+++ b/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp
@@ -871,10 +871,10 @@ void tst_qdeclarativetext::embeddedImages_data()
QTest::addColumn<QString>("error");
QTest::newRow("local") << QUrl::fromLocalFile(SRCDIR "/data/embeddedImagesLocal.qml") << "";
QTest::newRow("local-error") << QUrl::fromLocalFile(SRCDIR "/data/embeddedImagesLocalError.qml")
- << "QML Text ("+QUrl::fromLocalFile(SRCDIR "/data/embeddedImagesLocalError.qml").toString()+":3:1) Cannot open: " + QUrl::fromLocalFile(SRCDIR "/data/http/notexists.png").toString();
+ << QUrl::fromLocalFile(SRCDIR "/data/embeddedImagesLocalError.qml").toString()+":3:1: QML Text: Cannot open: " + QUrl::fromLocalFile(SRCDIR "/data/http/notexists.png").toString();
QTest::newRow("remote") << QUrl::fromLocalFile(SRCDIR "/data/embeddedImagesRemote.qml") << "";
QTest::newRow("remote-error") << QUrl::fromLocalFile(SRCDIR "/data/embeddedImagesRemoteError.qml")
- << "QML Text ("+QUrl::fromLocalFile(SRCDIR "/data/embeddedImagesRemoteError.qml").toString()+":3:1) Error downloading http://127.0.0.1:14453/notexists.png - server replied: Not found";
+ << QUrl::fromLocalFile(SRCDIR "/data/embeddedImagesRemoteError.qml").toString()+":3:1: QML Text: Error downloading http://127.0.0.1:14453/notexists.png - server replied: Not found";
}
void tst_qdeclarativetext::embeddedImages()
diff --git a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp
index 25101ba..3307b7c 100644
--- a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp
+++ b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp
@@ -649,7 +649,7 @@ void tst_qdeclarativetextedit::delegateLoading_data()
// import installed
QTest::newRow("pass") << "cursorHttpTestPass.qml" << "";
- QTest::newRow("fail1") << "cursorHttpTestFail1.qml" << ":-1: Network error for URL http://localhost:42332/FailItem.qml ";
+ QTest::newRow("fail1") << "cursorHttpTestFail1.qml" << "<Unknown File>: Network error for URL http://localhost:42332/FailItem.qml ";
QTest::newRow("fail2") << "cursorHttpTestFail2.qml" << "http://localhost:42332/ErrItem.qml:4:5: Fungus is not a type ";
}
diff --git a/tests/auto/declarative/qdeclarativetimer/tst_qdeclarativetimer.cpp b/tests/auto/declarative/qdeclarativetimer/tst_qdeclarativetimer.cpp
index a08a91c..da2d173 100644
--- a/tests/auto/declarative/qdeclarativetimer/tst_qdeclarativetimer.cpp
+++ b/tests/auto/declarative/qdeclarativetimer/tst_qdeclarativetimer.cpp
@@ -43,6 +43,7 @@
#include <QtDeclarative/qdeclarativeengine.h>
#include <QtDeclarative/qdeclarativecomponent.h>
#include <private/qdeclarativetimer_p.h>
+#include <QtDeclarative/qdeclarativeitem.h>
#include <QDebug>
class tst_qdeclarativetimer : public QObject
@@ -60,6 +61,7 @@ private slots:
void triggeredOnStartRepeat();
void changeDuration();
void restart();
+ void parentProperty();
};
class TimerHelper : public QObject
@@ -317,6 +319,21 @@ void tst_qdeclarativetimer::restart()
delete timer;
}
+void tst_qdeclarativetimer::parentProperty()
+{
+ QDeclarativeEngine engine;
+ QDeclarativeComponent component(&engine);
+ component.setData(QByteArray("import Qt 4.7\nItem { Timer { objectName: \"timer\"; running: parent.visible } }"), QUrl::fromLocalFile(""));
+ QDeclarativeItem *item = qobject_cast<QDeclarativeItem*>(component.create());
+ QVERIFY(item != 0);
+ QDeclarativeTimer *timer = item->findChild<QDeclarativeTimer*>("timer");
+ QVERIFY(timer != 0);
+
+ QVERIFY(timer->isRunning());
+
+ delete timer;
+}
+
QTEST_MAIN(tst_qdeclarativetimer)
#include "tst_qdeclarativetimer.moc"
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/testtypes.h b/tests/auto/declarative/qdeclarativevaluetypes/testtypes.h
index dd13429..8a9b981 100644
--- a/tests/auto/declarative/qdeclarativevaluetypes/testtypes.h
+++ b/tests/auto/declarative/qdeclarativevaluetypes/testtypes.h
@@ -133,7 +133,6 @@ signals:
public slots:
QSize method() { return QSize(13, 14); }
};
-QML_DECLARE_TYPE(MyTypeObject);
class MyConstantValueSource : public QObject, public QDeclarativePropertyValueSource
{
@@ -142,7 +141,6 @@ class MyConstantValueSource : public QObject, public QDeclarativePropertyValueSo
public:
virtual void setTarget(const QDeclarativeProperty &p) { p.write(3345); }
};
-QML_DECLARE_TYPE(MyConstantValueSource);
class MyOffsetValueInterceptor : public QObject, public QDeclarativePropertyValueInterceptor
{
@@ -155,7 +153,6 @@ public:
private:
QDeclarativeProperty prop;
};
-QML_DECLARE_TYPE(MyOffsetValueInterceptor);
void registerTypes();
diff --git a/tests/auto/declarative/qdeclarativeview/data/resizemodedeclarativeitem.qml b/tests/auto/declarative/qdeclarativeview/data/resizemodedeclarativeitem.qml
new file mode 100644
index 0000000..27c8454
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeview/data/resizemodedeclarativeitem.qml
@@ -0,0 +1,5 @@
+import Qt 4.7
+Item {
+ width: 200
+ height: 200
+}
diff --git a/tests/auto/declarative/qdeclarativeview/data/resizemodegraphicswidget.qml b/tests/auto/declarative/qdeclarativeview/data/resizemodegraphicswidget.qml
new file mode 100644
index 0000000..964810c
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeview/data/resizemodegraphicswidget.qml
@@ -0,0 +1,5 @@
+import Qt 4.7
+QGraphicsWidget {
+ width: 200
+ height: 200
+}
diff --git a/tests/auto/declarative/qdeclarativeview/qdeclarativeview.pro b/tests/auto/declarative/qdeclarativeview/qdeclarativeview.pro
new file mode 100644
index 0000000..d6be728
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeview/qdeclarativeview.pro
@@ -0,0 +1,7 @@
+load(qttest_p4)
+contains(QT_CONFIG,declarative): QT += declarative gui
+macx:CONFIG -= app_bundle
+
+SOURCES += tst_qdeclarativeview.cpp
+
+DEFINES += SRCDIR=\\\"$$PWD\\\"
diff --git a/tests/auto/declarative/qdeclarativeview/tst_qdeclarativeview.cpp b/tests/auto/declarative/qdeclarativeview/tst_qdeclarativeview.cpp
new file mode 100644
index 0000000..1ed51c1
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeview/tst_qdeclarativeview.cpp
@@ -0,0 +1,272 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** 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.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <qtest.h>
+#include <QtTest/QSignalSpy>
+#include <QtDeclarative/qdeclarativecomponent.h>
+#include <QtDeclarative/qdeclarativecontext.h>
+#include <QtDeclarative/qdeclarativeview.h>
+#include <QtDeclarative/qdeclarativeitem.h>
+#include <QtGui/qgraphicswidget.h>
+
+class tst_QDeclarativeView : public QObject
+
+{
+ Q_OBJECT
+public:
+ tst_QDeclarativeView();
+
+private slots:
+ void resizemodedeclarativeitem();
+ void resizemodegraphicswidget();
+
+private:
+ template<typename T>
+ T *findItem(QGraphicsObject *parent, const QString &objectName);
+};
+
+
+tst_QDeclarativeView::tst_QDeclarativeView()
+{
+}
+
+void tst_QDeclarativeView::resizemodedeclarativeitem()
+{
+ QWidget window;
+ QDeclarativeView *canvas = new QDeclarativeView(&window);
+ QVERIFY(canvas);
+ QSignalSpy sceneResizedSpy(canvas, SIGNAL(sceneResized(QSize)));
+ canvas->setResizeMode(QDeclarativeView::SizeRootObjectToView);
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/resizemodedeclarativeitem.qml"));
+ QDeclarativeItem* declarativeItem = qobject_cast<QDeclarativeItem*>(canvas->rootObject());
+ QVERIFY(declarativeItem);
+ window.show();
+
+ // initial size from root object
+ QCOMPARE(declarativeItem->width(), 200.0);
+ QCOMPARE(declarativeItem->height(), 200.0);
+ QCOMPARE(canvas->size(), QSize(200, 200));
+ QCOMPARE(canvas->size(), canvas->sizeHint());
+ QCOMPARE(sceneResizedSpy.count(), 1);
+
+ // size update from view
+ canvas->resize(QSize(80,100));
+ QCOMPARE(declarativeItem->width(), 80.0);
+ QCOMPARE(declarativeItem->height(), 100.0);
+ QCOMPARE(canvas->size(), QSize(80, 100));
+ QCOMPARE(canvas->size(), canvas->sizeHint());
+ QCOMPARE(sceneResizedSpy.count(), 2);
+
+ canvas->setResizeMode(QDeclarativeView::SizeViewToRootObject);
+
+ // size update from view disabled
+ canvas->resize(QSize(60,80));
+ QCOMPARE(declarativeItem->width(), 80.0);
+ QCOMPARE(declarativeItem->height(), 100.0);
+ QCOMPARE(canvas->size(), QSize(60, 80));
+ QCOMPARE(sceneResizedSpy.count(), 3);
+
+ // size update from root object
+ declarativeItem->setWidth(250);
+ declarativeItem->setHeight(350);
+ qApp->processEvents();
+ QCOMPARE(declarativeItem->width(), 250.0);
+ QCOMPARE(declarativeItem->height(), 350.0);
+ QCOMPARE(canvas->size(), QSize(250, 350));
+ QCOMPARE(canvas->size(), canvas->sizeHint());
+ QCOMPARE(sceneResizedSpy.count(), 4);
+
+ // reset canvas
+ window.hide();
+ delete canvas;
+ canvas = new QDeclarativeView(&window);
+ QVERIFY(canvas);
+ QSignalSpy sceneResizedSpy2(canvas, SIGNAL(sceneResized(QSize)));
+ canvas->setResizeMode(QDeclarativeView::SizeViewToRootObject);
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/resizemodedeclarativeitem.qml"));
+ declarativeItem = qobject_cast<QDeclarativeItem*>(canvas->rootObject());
+ QVERIFY(declarativeItem);
+ window.show();
+
+ // initial size for root object
+ QCOMPARE(declarativeItem->width(), 200.0);
+ QCOMPARE(declarativeItem->height(), 200.0);
+ QCOMPARE(canvas->size(), canvas->sizeHint());
+ QCOMPARE(sceneResizedSpy2.count(), 1);
+
+ // size update from root object
+ declarativeItem->setWidth(80);
+ declarativeItem->setHeight(100);
+ qApp->processEvents();
+ QCOMPARE(declarativeItem->width(), 80.0);
+ QCOMPARE(declarativeItem->height(), 100.0);
+ QCOMPARE(canvas->size(), QSize(80, 100));
+ QCOMPARE(canvas->size(), canvas->sizeHint());
+ QCOMPARE(sceneResizedSpy2.count(), 2);
+
+ // size update from root object disabled
+ canvas->setResizeMode(QDeclarativeView::SizeRootObjectToView);
+ declarativeItem->setWidth(60);
+ declarativeItem->setHeight(80);
+ QCOMPARE(canvas->width(), 80);
+ QCOMPARE(canvas->height(), 100);
+ QCOMPARE(canvas->size(), canvas->sizeHint());
+ QCOMPARE(sceneResizedSpy2.count(), 2);
+
+ // size update from view
+ canvas->resize(QSize(200,300));
+ QCOMPARE(declarativeItem->width(), 200.0);
+ QCOMPARE(declarativeItem->height(), 300.0);
+ QCOMPARE(canvas->size(), QSize(200, 300));
+ QCOMPARE(canvas->size(), canvas->sizeHint());
+ QCOMPARE(sceneResizedSpy2.count(), 3);
+
+ delete canvas;
+}
+
+void tst_QDeclarativeView::resizemodegraphicswidget()
+{
+ QWidget window;
+ QDeclarativeView *canvas = new QDeclarativeView(&window);
+ QVERIFY(canvas);
+ QSignalSpy sceneResizedSpy(canvas, SIGNAL(sceneResized(QSize)));
+ canvas->setResizeMode(QDeclarativeView::SizeRootObjectToView);
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/resizemodegraphicswidget.qml"));
+ QGraphicsWidget* graphicsWidget = qobject_cast<QGraphicsWidget*>(canvas->rootObject());
+ QVERIFY(graphicsWidget);
+ window.show();
+
+ // initial size from root object
+ QCOMPARE(graphicsWidget->size(), QSizeF(200.0, 200.0));
+ QCOMPARE(canvas->size(), QSize(200, 200));
+ QCOMPARE(canvas->size(), QSize(200, 200));
+ QCOMPARE(canvas->size(), canvas->sizeHint());
+ QCOMPARE(sceneResizedSpy.count(), 1);
+
+ // size update from view
+ canvas->resize(QSize(80,100));
+ QCOMPARE(graphicsWidget->size(), QSizeF(80.0,100.0));
+ QCOMPARE(canvas->size(), QSize(80,100));
+ QCOMPARE(canvas->size(), canvas->sizeHint());
+ QCOMPARE(sceneResizedSpy.count(), 2);
+
+ // size update from view disabled
+ canvas->setResizeMode(QDeclarativeView::SizeViewToRootObject);
+ canvas->resize(QSize(60,80));
+ QCOMPARE(graphicsWidget->size(), QSizeF(80.0,100.0));
+ QCOMPARE(canvas->size(), QSize(60, 80));
+ QCOMPARE(sceneResizedSpy.count(), 3);
+
+ // size update from root object
+ graphicsWidget->resize(QSizeF(250.0, 350.0));
+ QCOMPARE(graphicsWidget->size(), QSizeF(250.0,350.0));
+ QCOMPARE(canvas->size(), QSize(250, 350));
+ QCOMPARE(canvas->size(), canvas->sizeHint());
+ QCOMPARE(sceneResizedSpy.count(), 4);
+
+ // reset canvas
+ window.hide();
+ delete canvas;
+ canvas = new QDeclarativeView(&window);
+ QVERIFY(canvas);
+ QSignalSpy sceneResizedSpy2(canvas, SIGNAL(sceneResized(QSize)));
+ canvas->setResizeMode(QDeclarativeView::SizeViewToRootObject);
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/resizemodegraphicswidget.qml"));
+ graphicsWidget = qobject_cast<QGraphicsWidget*>(canvas->rootObject());
+ QVERIFY(graphicsWidget);
+ window.show();
+
+ // initial size from root object
+ QCOMPARE(graphicsWidget->size(), QSizeF(200.0, 200.0));
+ QCOMPARE(canvas->size(), QSize(200, 200));
+ QCOMPARE(canvas->size(), canvas->sizeHint());
+ QCOMPARE(sceneResizedSpy2.count(), 1);
+
+ // size update from root object
+ graphicsWidget->resize(QSizeF(80, 100));
+ QCOMPARE(graphicsWidget->size(), QSizeF(80.0, 100.0));
+ QCOMPARE(canvas->size(), QSize(80, 100));
+ QCOMPARE(canvas->size(), canvas->sizeHint());
+ QCOMPARE(sceneResizedSpy2.count(), 2);
+
+ // size update from root object disabled
+ canvas->setResizeMode(QDeclarativeView::SizeRootObjectToView);
+ graphicsWidget->resize(QSizeF(60,80));
+ QCOMPARE(canvas->size(), QSize(80,100));
+ QCOMPARE(canvas->size(), canvas->sizeHint());
+ QCOMPARE(sceneResizedSpy2.count(), 2);
+
+ // size update from view
+ canvas->resize(QSize(200,300));
+ QCOMPARE(graphicsWidget->size(), QSizeF(200.0, 300.0));
+ QCOMPARE(canvas->size(), QSize(200, 300));
+ QCOMPARE(canvas->size(), canvas->sizeHint());
+ QCOMPARE(sceneResizedSpy2.count(), 3);
+
+ window.show();
+ delete canvas;
+}
+
+template<typename T>
+T *tst_QDeclarativeView::findItem(QGraphicsObject *parent, const QString &objectName)
+{
+ if (!parent)
+ return 0;
+
+ const QMetaObject &mo = T::staticMetaObject;
+ //qDebug() << parent->QGraphicsObject::children().count() << "children";
+ for (int i = 0; i < parent->childItems().count(); ++i) {
+ QDeclarativeItem *item = qobject_cast<QDeclarativeItem*>(parent->childItems().at(i));
+ if(!item)
+ continue;
+ //qDebug() << "try" << item;
+ if (mo.cast(item) && (objectName.isEmpty() || item->objectName() == objectName))
+ return static_cast<T*>(item);
+ item = findItem<T>(item, objectName);
+ if (item)
+ return static_cast<T*>(item);
+ }
+
+ return 0;
+}
+
+QTEST_MAIN(tst_QDeclarativeView)
+
+#include "tst_qdeclarativeview.moc"
diff --git a/tests/auto/declarative/qdeclarativevisualdatamodel/data/visualdatamodel.qml b/tests/auto/declarative/qdeclarativevisualdatamodel/data/visualdatamodel.qml
new file mode 100644
index 0000000..d70f82b
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativevisualdatamodel/data/visualdatamodel.qml
@@ -0,0 +1,11 @@
+import Qt 4.7
+
+VisualDataModel {
+ function setRoot() {
+ rootIndex = modelIndex(0);
+ }
+ function setRootToParent() {
+ rootIndex = parentModelIndex();
+ }
+ model: myModel
+}
diff --git a/tests/auto/declarative/qdeclarativevisualdatamodel/qdeclarativevisualdatamodel.pro b/tests/auto/declarative/qdeclarativevisualdatamodel/qdeclarativevisualdatamodel.pro
new file mode 100644
index 0000000..d76b582
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativevisualdatamodel/qdeclarativevisualdatamodel.pro
@@ -0,0 +1,11 @@
+load(qttest_p4)
+contains(QT_CONFIG,declarative): QT += declarative gui
+macx:CONFIG -= app_bundle
+
+SOURCES += tst_qdeclarativevisualdatamodel.cpp
+
+# Define SRCDIR equal to test's source directory
+DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativevisualdatamodel/tst_qdeclarativevisualdatamodel.cpp b/tests/auto/declarative/qdeclarativevisualdatamodel/tst_qdeclarativevisualdatamodel.cpp
new file mode 100644
index 0000000..7de15a3
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativevisualdatamodel/tst_qdeclarativevisualdatamodel.cpp
@@ -0,0 +1,111 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** 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.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <qtest.h>
+#include <QtTest/QSignalSpy>
+#include <QStandardItemModel>
+#include <QtDeclarative/qdeclarativeengine.h>
+#include <QtDeclarative/qdeclarativecomponent.h>
+#include <QtDeclarative/qdeclarativecontext.h>
+#include <private/qdeclarativevisualitemmodel_p.h>
+#include <private/qdeclarativevaluetype_p.h>
+#include <math.h>
+
+static void initStandardTreeModel(QStandardItemModel *model)
+{
+ QStandardItem *item;
+ item = new QStandardItem(QLatin1String("Row 1 Item"));
+ model->insertRow(0, item);
+
+ item = new QStandardItem(QLatin1String("Row 2 Item"));
+ item->setCheckable(true);
+ model->insertRow(1, item);
+
+ QStandardItem *childItem = new QStandardItem(QLatin1String("Row 2 Child Item"));
+ item->setChild(0, childItem);
+
+ item = new QStandardItem(QLatin1String("Row 3 Item"));
+ item->setIcon(QIcon());
+ model->insertRow(2, item);
+}
+
+class tst_qdeclarativevisualdatamodel : public QObject
+{
+ Q_OBJECT
+public:
+ tst_qdeclarativevisualdatamodel();
+
+private slots:
+ void rootIndex();
+
+private:
+ QDeclarativeEngine engine;
+};
+
+tst_qdeclarativevisualdatamodel::tst_qdeclarativevisualdatamodel()
+{
+}
+
+void tst_qdeclarativevisualdatamodel::rootIndex()
+{
+ QDeclarativeEngine engine;
+ QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/visualdatamodel.qml"));
+
+ QStandardItemModel model;
+ initStandardTreeModel(&model);
+
+ engine.rootContext()->setContextProperty("myModel", &model);
+
+ QDeclarativeVisualDataModel *obj = qobject_cast<QDeclarativeVisualDataModel*>(c.create());
+ QVERIFY(obj != 0);
+
+ QMetaObject::invokeMethod(obj, "setRoot");
+ QVERIFY(qvariant_cast<QModelIndex>(obj->rootIndex()) == model.index(0,0));
+
+ QMetaObject::invokeMethod(obj, "setRootToParent");
+ QVERIFY(qvariant_cast<QModelIndex>(obj->rootIndex()) == QModelIndex());
+
+ delete obj;
+}
+
+
+QTEST_MAIN(tst_qdeclarativevisualdatamodel)
+
+#include "tst_qdeclarativevisualdatamodel.moc"
diff --git a/tests/auto/declarative/qdeclarativexmllistmodel/tst_qdeclarativexmllistmodel.cpp b/tests/auto/declarative/qdeclarativexmllistmodel/tst_qdeclarativexmllistmodel.cpp
index cf7e357..831e318 100644
--- a/tests/auto/declarative/qdeclarativexmllistmodel/tst_qdeclarativexmllistmodel.cpp
+++ b/tests/auto/declarative/qdeclarativexmllistmodel/tst_qdeclarativexmllistmodel.cpp
@@ -222,7 +222,7 @@ void tst_qdeclarativexmllistmodel::roles()
void tst_qdeclarativexmllistmodel::roleErrors()
{
QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/roleErrors.qml"));
- QTest::ignoreMessage(QtWarningMsg, QString("QML XmlRole (" + QUrl::fromLocalFile(SRCDIR "/data/roleErrors.qml").toString() + ":6:5) An XmlRole query must not start with '/'").toUtf8().constData());
+ QTest::ignoreMessage(QtWarningMsg, (QUrl::fromLocalFile(SRCDIR "/data/roleErrors.qml").toString() + ":6:5: QML XmlRole: An XmlRole query must not start with '/'").toUtf8().constData());
//### make sure we receive all expected warning messages.
QDeclarativeXmlListModel *model = qobject_cast<QDeclarativeXmlListModel*>(component.create());
QVERIFY(model != 0);
@@ -247,7 +247,7 @@ void tst_qdeclarativexmllistmodel::roleErrors()
void tst_qdeclarativexmllistmodel::uniqueRoleNames()
{
QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/unique.qml"));
- QTest::ignoreMessage(QtWarningMsg, QString("QML XmlRole (" + QUrl::fromLocalFile(SRCDIR "/data/unique.qml").toString() + ":7:5) \"name\" duplicates a previous role name and will be disabled.").toUtf8().constData());
+ QTest::ignoreMessage(QtWarningMsg, (QUrl::fromLocalFile(SRCDIR "/data/unique.qml").toString() + ":7:5: QML XmlRole: \"name\" duplicates a previous role name and will be disabled.").toUtf8().constData());
QDeclarativeXmlListModel *model = qobject_cast<QDeclarativeXmlListModel*>(component.create());
QVERIFY(model != 0);
QTRY_COMPARE(model->count(), 9);
diff --git a/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.0.png b/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.0.png
index 9c9ceae..02fa5c9 100644
--- a/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.0.png
+++ b/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.qml b/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.qml
index 08ed609..1dc2d29 100644
--- a/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.qml
+++ b/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.qml
@@ -7,5 +7,5 @@ VisualTest {
Frame {
msec: 16
image: "fillmode.0.png"
- }
+ }
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/borders.qml b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/borders.qml
index 1403d35..dd38ea5 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/borders.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/borders.qml
@@ -6,6 +6,6 @@ VisualTest {
}
Frame {
msec: 16
- hash: "258a7e75b491e4f51a91739c776803b3"
+ image: "borders.0.png"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test_flipable_resize.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test_flipable_resize.qml
new file mode 100644
index 0000000..6e5f7a0
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test_flipable_resize.qml
@@ -0,0 +1,207 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "04382a80a203e1fe3d0d4944c9195e0b"
+ }
+ Frame {
+ msec: 32
+ hash: "8d8c6a3c37ba3cb77afcc7ed4234d40f"
+ }
+ Frame {
+ msec: 48
+ hash: "93ab01494e2229c0921c25d3acbcffe6"
+ }
+ Frame {
+ msec: 64
+ hash: "5036bf3c842e5ad09b7bac5512e433ad"
+ }
+ Frame {
+ msec: 80
+ hash: "ef02ef4598fbe6390391b7f2c17ec99d"
+ }
+ Frame {
+ msec: 96
+ hash: "7fa83afca86cfec48a4986ba3df08e3b"
+ }
+ Frame {
+ msec: 112
+ hash: "d9388827bd7755bb9bc1ef78507cc0ac"
+ }
+ Frame {
+ msec: 128
+ hash: "d18778f4f748f7ee54404db334831ff7"
+ }
+ Frame {
+ msec: 144
+ hash: "fee69ae3b4d79b795d4443b055a8a91a"
+ }
+ Frame {
+ msec: 160
+ hash: "f80fa0131c859286e900071b51e74784"
+ }
+ Frame {
+ msec: 176
+ hash: "b654e51ea71ec118e6b985743281b6a1"
+ }
+ Frame {
+ msec: 192
+ hash: "91c771226e9c97e0f00c6f7c6fc6c95c"
+ }
+ Frame {
+ msec: 208
+ hash: "0f612f81541b093442e68d99e00c288c"
+ }
+ Frame {
+ msec: 224
+ hash: "246b619598606fef9f0442439cee4ec6"
+ }
+ Frame {
+ msec: 240
+ hash: "1d2f34459b2128877218cef340f46f06"
+ }
+ Frame {
+ msec: 256
+ hash: "af3c2eef734da05d45484bbb19646425"
+ }
+ Frame {
+ msec: 272
+ hash: "85dfe5680e47919500728de6e93c8290"
+ }
+ Frame {
+ msec: 288
+ hash: "8fd7d439bafa07461a65a3c97cf8602a"
+ }
+ Frame {
+ msec: 304
+ hash: "1ebf543a84aae4abfd480f24ad362cb0"
+ }
+ Frame {
+ msec: 320
+ hash: "60a9c9300981282986659e7c73d381b0"
+ }
+ Frame {
+ msec: 336
+ hash: "686f3ff048f2b214033988d989ed087a"
+ }
+ Frame {
+ msec: 352
+ hash: "24694e17476b0ffe9848159aa282e931"
+ }
+ Frame {
+ msec: 368
+ hash: "c05e1bdf62e3e58972f868b930823a58"
+ }
+ Frame {
+ msec: 384
+ hash: "cbc1a3c78b8f79047d1221d5ae06f0f8"
+ }
+ Frame {
+ msec: 400
+ hash: "05ad366e74bf30b1619cf2ef1f530d82"
+ }
+ Frame {
+ msec: 416
+ hash: "4c5c536f2c03ecfb7d3d8f56638001ec"
+ }
+ Frame {
+ msec: 432
+ hash: "9754048ffcb7863a8a676e5bee4a7991"
+ }
+ Frame {
+ msec: 448
+ hash: "047aa8203ad18023f5af340a41f1084e"
+ }
+ Frame {
+ msec: 464
+ hash: "1351b7c92cd873db387e93dc74cca848"
+ }
+ Frame {
+ msec: 480
+ hash: "4066f52fae753013396195dc98311058"
+ }
+ Frame {
+ msec: 496
+ hash: "21d969b92993e428e79babb574e9203d"
+ }
+ Frame {
+ msec: 512
+ hash: "62c00f52e8b0592fbb59f88deb3b022e"
+ }
+ Frame {
+ msec: 528
+ hash: "322719dee40d3495e9b4d2faac351e89"
+ }
+ Frame {
+ msec: 544
+ hash: "322719dee40d3495e9b4d2faac351e89"
+ }
+ Frame {
+ msec: 560
+ hash: "322719dee40d3495e9b4d2faac351e89"
+ }
+ Frame {
+ msec: 576
+ hash: "322719dee40d3495e9b4d2faac351e89"
+ }
+ Frame {
+ msec: 592
+ hash: "322719dee40d3495e9b4d2faac351e89"
+ }
+ Frame {
+ msec: 608
+ hash: "322719dee40d3495e9b4d2faac351e89"
+ }
+ Frame {
+ msec: 624
+ hash: "322719dee40d3495e9b4d2faac351e89"
+ }
+ Frame {
+ msec: 640
+ hash: "322719dee40d3495e9b4d2faac351e89"
+ }
+ Frame {
+ msec: 656
+ hash: "322719dee40d3495e9b4d2faac351e89"
+ }
+ Frame {
+ msec: 672
+ hash: "322719dee40d3495e9b4d2faac351e89"
+ }
+ Frame {
+ msec: 688
+ hash: "322719dee40d3495e9b4d2faac351e89"
+ }
+ Frame {
+ msec: 704
+ hash: "322719dee40d3495e9b4d2faac351e89"
+ }
+ Frame {
+ msec: 720
+ hash: "322719dee40d3495e9b4d2faac351e89"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 736
+ hash: "322719dee40d3495e9b4d2faac351e89"
+ }
+ Frame {
+ msec: 752
+ hash: "322719dee40d3495e9b4d2faac351e89"
+ }
+ Frame {
+ msec: 768
+ hash: "322719dee40d3495e9b4d2faac351e89"
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeflipable/test_flipable_resize.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/test_flipable_resize.qml
new file mode 100644
index 0000000..5a73e67
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/test_flipable_resize.qml
@@ -0,0 +1,62 @@
+import Qt 4.6
+Item { //realWindow
+ width: 370
+ height: 480
+ Item {
+ id: window
+ NumberAnimation on width{ from:320; to:370; duration: 500 }
+ NumberAnimation on height{ from:480; to:320; duration: 500 }
+ Flipable {
+ id: flipable
+ x: 0
+ y: window.height / 3.0 - 40
+ width: parent.width
+ height: parent.height
+ transform: Rotation {
+ id: transform
+ origin.x: window.width / 2.0
+ origin.y: 0
+ origin.z: 0
+ axis.x: 0
+ axis.y: 1
+ axis.z: 0
+ angle: 0;
+ }
+ front: Rectangle{
+ width: parent.width
+ height: 80
+ color: "blue"
+ }back: Rectangle{
+ width: parent.width
+ height: 80
+ color: "red"
+ }
+ }
+ Flipable {
+ id: flipableBack
+ x: 0
+ y: 2.0 * window.height / 3.0 - 40
+ width: parent.width
+ height: parent.height
+ transform: Rotation {
+ id: transformBack
+ origin.x: window.width / 2.0
+ origin.y: 0
+ origin.z: 0
+ axis.x: 0
+ axis.y: 1
+ axis.z: 0
+ angle: 180;
+ }
+ front: Rectangle{
+ width: parent.width
+ height: 80
+ color: "blue"
+ }back: Rectangle{
+ width: parent.width
+ height: 80
+ color: "red"
+ }
+ }
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.0.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.0.png
new file mode 100644
index 0000000..993610f
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.1.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.1.png
new file mode 100644
index 0000000..993610f
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.10.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.10.png
new file mode 100644
index 0000000..12c6cf5
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.10.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.11.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.11.png
new file mode 100644
index 0000000..ccb9fdd
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.11.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.12.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.12.png
new file mode 100644
index 0000000..ace0752
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.12.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.13.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.13.png
new file mode 100644
index 0000000..993610f
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.13.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.2.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.2.png
new file mode 100644
index 0000000..e58c68b
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.3.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.3.png
new file mode 100644
index 0000000..e58c68b
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.3.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.4.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.4.png
new file mode 100644
index 0000000..cb6d2f8
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.4.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.5.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.5.png
new file mode 100644
index 0000000..db6bea2
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.5.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.6.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.6.png
new file mode 100644
index 0000000..c18bb34
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.6.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.7.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.7.png
new file mode 100644
index 0000000..c18bb34
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.7.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.8.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.8.png
new file mode 100644
index 0000000..3b56301
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.8.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.9.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.9.png
new file mode 100644
index 0000000..993610f
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.9.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.qml b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.qml
new file mode 100644
index 0000000..e6a09bf
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.qml
@@ -0,0 +1,5127 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 32
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 48
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 64
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 80
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 96
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 112
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 128
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 144
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 160
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 176
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 192
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 208
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 224
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 240
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 256
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 272
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 288
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 304
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 320
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 336
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 352
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 368
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 384
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 400
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 416
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 432
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 448
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 464
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 480
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 496
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 512
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 528
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 544
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 560
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 576
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 592
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 608
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 624
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 640
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 656
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 672
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 688
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 704
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 720
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 736
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 752
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 768
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 784
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 800
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 816
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 832
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 848
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 864
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 880
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 896
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 912
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 928
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 944
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 960
+ image: "mousearea-flickable.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 992
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1008
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1024
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1040
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1056
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1072
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1088
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1104
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1120
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1136
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1152
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1168
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1184
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1200
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1216
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1232
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1248
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1264
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1280
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1296
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1312
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1328
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1344
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1360
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1376
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1392
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1408
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1424
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1440
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1456
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1472
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1488
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1504
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1520
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1536
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1552
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1568
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1584
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1600
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1616
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1632
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1648
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1664
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1680
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1696
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1712
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1728
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1744
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1760
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1776
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1792
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1808
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1824
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1840
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1856
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1872
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1888
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1904
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1920
+ image: "mousearea-flickable.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1952
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1968
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 1984
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2000
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2016
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2032
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2048
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2064
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2080
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2096
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2112
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2128
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2144
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2160
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2176
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2192
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2208
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2224
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2240
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2256
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2272
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2288
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2304
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2320
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2336
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2352
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2368
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2384
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2400
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2416
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2432
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2448
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2464
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2480
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2496
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2512
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2528
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2544
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2560
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2576
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2592
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 2608
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 188; y: 41
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2624
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 2640
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 2656
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 2672
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 2688
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 2704
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 2720
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 2736
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 2752
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 2768
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 2784
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 2800
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 2816
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 2832
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 2848
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 2864
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 2880
+ image: "mousearea-flickable.2.png"
+ }
+ Frame {
+ msec: 2896
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 2912
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 2928
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 2944
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 2960
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 2976
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 2992
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3008
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3024
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3040
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3056
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3072
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3088
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3104
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3120
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3136
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3152
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3168
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3184
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3200
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3216
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3232
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3248
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3264
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3280
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3296
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3312
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3328
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3344
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3360
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3376
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3392
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3408
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3424
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3440
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3456
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3472
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3488
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3504
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3520
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3536
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3552
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3568
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3584
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3600
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3616
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3632
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3648
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3664
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3680
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3696
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3712
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3728
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3744
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3760
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3776
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3792
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3808
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3824
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3840
+ image: "mousearea-flickable.3.png"
+ }
+ Frame {
+ msec: 3856
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3872
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3888
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3904
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3920
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3936
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3952
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3968
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 3984
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4000
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4016
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4032
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4048
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4064
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4080
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4096
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4112
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4128
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4144
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4160
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4176
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4192
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4208
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4224
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4240
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4256
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4272
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4288
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4304
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4320
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4336
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4352
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4368
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4384
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4400
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4416
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4432
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4448
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4464
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4480
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4496
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Frame {
+ msec: 4512
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 189; y: 42
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4528
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 189; y: 44
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4544
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 190; y: 45
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 190; y: 47
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4560
+ hash: "4a60ab820ca66548384b2257b21de8ec"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 190; y: 48
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 190; y: 50
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4576
+ hash: "86b32befe0dada5bdce82a7dd14777ce"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 191; y: 51
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 191; y: 53
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4592
+ hash: "7a5f69a1eecb5de0fc2295cd287eb449"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 191; y: 54
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 192; y: 56
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4608
+ hash: "144eeb7c2a32cedb6ebba063501c9176"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 192; y: 57
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 192; y: 59
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4624
+ hash: "11120d6de575ffa639b6abb3af4afef7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 193; y: 61
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 193; y: 62
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4640
+ hash: "ab4c936a81299adf080f3b14f7e6be49"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 193; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 194; y: 66
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4656
+ hash: "6602009ffe3c0f3072640ebc8749b76f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 194; y: 68
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 194; y: 70
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4672
+ hash: "8517007d5102af238935e93a3b38087f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 195; y: 72
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 195; y: 75
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4688
+ hash: "4e129ebba85d1f3717d09f71eb5a1a7d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 196; y: 77
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 196; y: 79
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4704
+ hash: "82f54d7e254edcf499ea12a63118e8a7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 196; y: 82
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 197; y: 84
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4720
+ hash: "572cb62d69ccb973ea18d3b0eaff571b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 197; y: 86
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 197; y: 88
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4736
+ hash: "79650397b868019909b931a32a115823"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 198; y: 90
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 198; y: 92
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4752
+ hash: "43e50f4d4d37373e26af0a5d3cb64c4c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 198; y: 94
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 198; y: 97
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4768
+ hash: "a0f8eb8a796f67c368b0a479e8d14681"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 199; y: 99
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 199; y: 101
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4784
+ hash: "01bf03313a0229e810a24e2adbbe9775"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 199; y: 106
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4800
+ image: "mousearea-flickable.4.png"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 200; y: 111
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4816
+ hash: "aafb12a520eb443ee1348282f2c54e4a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 200; y: 113
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 200; y: 116
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4832
+ hash: "806d22bc3533c729cd10dc889c36902d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 201; y: 121
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4848
+ hash: "05b3013c9e42ed9ced7009d2e2999357"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 201; y: 124
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 203; y: 130
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4864
+ hash: "cb49adcd2c8afe27fd5926bd622added"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 203; y: 133
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 203; y: 135
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4880
+ hash: "d0b4215b43403c97d83250add6d2b6db"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 203; y: 138
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 205; y: 146
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4896
+ hash: "ee0523fe6a33b59871ad3b311ca0cbeb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 205; y: 149
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 205; y: 152
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4912
+ hash: "29ca97cc573d3a1fde65320b61678c60"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 207; y: 161
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4928
+ hash: "021bda841eaefa76ce5e1c97150af6f6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 207; y: 164
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 208; y: 166
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4944
+ hash: "80edf52cc9e64a29f677bc2203220ba9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 208; y: 172
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4960
+ hash: "c09f4002ed9d41f62bb1aaff95723cce"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 208; y: 175
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 209; y: 177
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4976
+ hash: "7bb17b13db811b02c86a24a0051336d9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 209; y: 180
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 209; y: 182
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4992
+ hash: "da5c33ee9e9e1d9aaa7d5efa83b8bf69"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 209; y: 187
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5008
+ hash: "3ca9742356b6ff833fd287a95520174a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 209; y: 189
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 209; y: 192
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5024
+ hash: "d1372239a681d1fccc25257b4a02fb39"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 210; y: 194
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 210; y: 196
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5040
+ hash: "1f37473ab2fb0643e11e4a41a2ee4561"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 210; y: 198
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 210; y: 200
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5056
+ hash: "1533c6ff17e79a47a5d3510aa85bcf8a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 210; y: 202
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 211; y: 204
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5072
+ hash: "4cad3c6caf8d3009f63923df897c4723"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 211; y: 205
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 211; y: 207
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5088
+ hash: "b81183233961b34c2a3f21a249b0fbfb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 211; y: 209
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 211; y: 210
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5104
+ hash: "9f876eb93a16c24843dd6a5acd303ab3"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 211; y: 211
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 211; y: 213
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5120
+ hash: "237dd62011f4253970b946b335e3fb71"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 211; y: 215
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5136
+ hash: "6206ad3e633b6b1b068304caa4efe48a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 211; y: 217
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5152
+ hash: "1eb5f0e1aa014a38e6ca66ddfc2a076b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 211; y: 218
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5168
+ hash: "d9e953d132330f8a58a190d61aec6ec3"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 210; y: 219
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 210; y: 220
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5184
+ hash: "c1570ad4cb688ea51818e0a09e349daa"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 210; y: 222
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5200
+ hash: "11853dcbad9d1d9a8b7d8a4e6fcca140"
+ }
+ Frame {
+ msec: 5216
+ hash: "11853dcbad9d1d9a8b7d8a4e6fcca140"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 210; y: 223
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5232
+ hash: "11853dcbad9d1d9a8b7d8a4e6fcca140"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 209; y: 224
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5248
+ hash: "c6a81be579382f25ac583734897c2570"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 209; y: 225
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5264
+ hash: "c6a81be579382f25ac583734897c2570"
+ }
+ Frame {
+ msec: 5280
+ hash: "c6a81be579382f25ac583734897c2570"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 209; y: 226
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5296
+ hash: "8cbeb925f039bde9846d37a5ec6cd3f9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 209; y: 227
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5312
+ hash: "8cbeb925f039bde9846d37a5ec6cd3f9"
+ }
+ Frame {
+ msec: 5328
+ hash: "8cbeb925f039bde9846d37a5ec6cd3f9"
+ }
+ Frame {
+ msec: 5344
+ hash: "8cbeb925f039bde9846d37a5ec6cd3f9"
+ }
+ Frame {
+ msec: 5360
+ hash: "8cbeb925f039bde9846d37a5ec6cd3f9"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 209; y: 227
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5376
+ hash: "8cbeb925f039bde9846d37a5ec6cd3f9"
+ }
+ Frame {
+ msec: 5392
+ hash: "c6a81be579382f25ac583734897c2570"
+ }
+ Frame {
+ msec: 5408
+ hash: "11853dcbad9d1d9a8b7d8a4e6fcca140"
+ }
+ Frame {
+ msec: 5424
+ hash: "1eb5f0e1aa014a38e6ca66ddfc2a076b"
+ }
+ Frame {
+ msec: 5440
+ hash: "9f876eb93a16c24843dd6a5acd303ab3"
+ }
+ Frame {
+ msec: 5456
+ hash: "1533c6ff17e79a47a5d3510aa85bcf8a"
+ }
+ Frame {
+ msec: 5472
+ hash: "9a9d1e0b1d7b9291480b3ec641f354ce"
+ }
+ Frame {
+ msec: 5488
+ hash: "ee40862a59f14667c89fa62f380c10fb"
+ }
+ Frame {
+ msec: 5504
+ hash: "95b57cd3dac3bce56674f2c4143f42d4"
+ }
+ Frame {
+ msec: 5520
+ hash: "52d45e8dde81fef5ee93bbd5a40d4851"
+ }
+ Frame {
+ msec: 5536
+ hash: "05b3013c9e42ed9ced7009d2e2999357"
+ }
+ Frame {
+ msec: 5552
+ hash: "7d03030f5a672d87aeabefdf4f3a39a4"
+ }
+ Frame {
+ msec: 5568
+ hash: "79650397b868019909b931a32a115823"
+ }
+ Frame {
+ msec: 5584
+ hash: "82f54d7e254edcf499ea12a63118e8a7"
+ }
+ Frame {
+ msec: 5600
+ hash: "8517007d5102af238935e93a3b38087f"
+ }
+ Frame {
+ msec: 5616
+ hash: "dc272fc8fc98d822a154da1d495d4f7e"
+ }
+ Frame {
+ msec: 5632
+ hash: "11120d6de575ffa639b6abb3af4afef7"
+ }
+ Frame {
+ msec: 5648
+ hash: "70e522f64236dfa4e1613ffc29b4b23e"
+ }
+ Frame {
+ msec: 5664
+ hash: "7a5f69a1eecb5de0fc2295cd287eb449"
+ }
+ Frame {
+ msec: 5680
+ hash: "a569789b082296415321ba11c859abe5"
+ }
+ Frame {
+ msec: 5696
+ hash: "9f9f85d5f879b0e52ebc751d6668cfb8"
+ }
+ Frame {
+ msec: 5712
+ hash: "9f9f85d5f879b0e52ebc751d6668cfb8"
+ }
+ Frame {
+ msec: 5728
+ hash: "43fc85bb3b1501f5e12f1fedaaa14c64"
+ }
+ Frame {
+ msec: 5744
+ hash: "43fc85bb3b1501f5e12f1fedaaa14c64"
+ }
+ Frame {
+ msec: 5760
+ image: "mousearea-flickable.5.png"
+ }
+ Frame {
+ msec: 5776
+ hash: "d75a43305e2884759ca41d7b1cbadf52"
+ }
+ Frame {
+ msec: 5792
+ hash: "d75a43305e2884759ca41d7b1cbadf52"
+ }
+ Frame {
+ msec: 5808
+ hash: "d75a43305e2884759ca41d7b1cbadf52"
+ }
+ Frame {
+ msec: 5824
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 5840
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 5856
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 5872
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 5888
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 5904
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 5920
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 5936
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 5952
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 5968
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 5984
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 6000
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 6016
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 6032
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 6048
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 6064
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 6080
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 6096
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 6112
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 6128
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 6144
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 6160
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 6176
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 6192
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 6208
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 6224
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 6240
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 6256
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 6272
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 6288
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 6304
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 6320
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 6336
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 6352
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 6368
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 188; y: 180
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6384
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6400
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6416
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6432
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6448
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6464
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6480
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6496
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6512
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6528
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6544
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6560
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6576
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6592
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6608
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6624
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6640
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6656
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6672
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6688
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6704
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6720
+ image: "mousearea-flickable.6.png"
+ }
+ Frame {
+ msec: 6736
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6752
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6768
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6784
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6800
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6816
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6832
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6848
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6864
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6880
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6896
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6912
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6928
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6944
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6960
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6976
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 6992
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7008
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7024
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7040
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7056
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7072
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7088
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7104
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7120
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7136
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7152
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7168
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7184
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7200
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7216
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7232
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7248
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7264
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7280
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7296
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7312
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7328
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7344
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7360
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7376
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7392
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7408
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7424
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7440
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7456
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7472
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7488
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7504
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7520
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7536
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7552
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7568
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7584
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7600
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7616
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7632
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7648
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7664
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7680
+ image: "mousearea-flickable.7.png"
+ }
+ Frame {
+ msec: 7696
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7712
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7728
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7744
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7760
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7776
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7792
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7808
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7824
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7840
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7856
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7872
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7888
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7904
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7920
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7936
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7952
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7968
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 7984
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 8000
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 8016
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 8032
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 8048
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 8064
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 8080
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 8096
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 8112
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 8128
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 8144
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 8160
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 8176
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Frame {
+ msec: 8192
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 188; y: 182
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8208
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 188; y: 183
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8224
+ hash: "037386eb30a5e8d53a20a11258ee0f60"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 189; y: 185
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 189; y: 186
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8240
+ hash: "9f9f85d5f879b0e52ebc751d6668cfb8"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 191; y: 194
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8256
+ hash: "70e522f64236dfa4e1613ffc29b4b23e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 191; y: 196
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 192; y: 198
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8272
+ hash: "11120d6de575ffa639b6abb3af4afef7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 192; y: 201
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 192; y: 203
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8288
+ hash: "dc272fc8fc98d822a154da1d495d4f7e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 194; y: 211
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 194; y: 214
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8304
+ hash: "4e129ebba85d1f3717d09f71eb5a1a7d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 194; y: 219
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8320
+ hash: "837deeb2a92648d830acf29e829ebb53"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 194; y: 225
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8336
+ hash: "7d2606d432858288dac019e0002ff85a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 192; y: 231
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 192; y: 234
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8352
+ hash: "c37507a29e3a6d80446ad68f2d92f266"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 192; y: 240
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8368
+ hash: "01bf03313a0229e810a24e2adbbe9775"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 192; y: 245
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8384
+ hash: "8ffbbed46737837e55383833b96d2624"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 192; y: 248
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 192; y: 251
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8400
+ hash: "6d49fc41fb6d74643c7613df7e417833"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 192; y: 257
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8416
+ hash: "1978cda418856b542d7c5a155b74f09c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 192; y: 259
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 192; y: 262
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8432
+ hash: "cc6619c7cd6e4e274df4729aad6cca46"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 192; y: 265
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 192; y: 267
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8448
+ hash: "0b16e524cd5253d07aa9b5855967fa71"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 192; y: 270
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 192; y: 272
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8464
+ hash: "0121c18897c37481fddbac57db636a60"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 192; y: 275
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 192; y: 278
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8480
+ hash: "091d1ad7aba4b662cba98214c98a4707"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 193; y: 283
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8496
+ hash: "f334bfcc3af89bf1405762a215c54ea6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 193; y: 285
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 193; y: 288
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8512
+ hash: "66f71641c7a607152f140428ab9621d6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 194; y: 290
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 194; y: 293
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8528
+ hash: "7b41d651ad46341859d0188db341ae10"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 194; y: 298
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8544
+ hash: "95b57cd3dac3bce56674f2c4143f42d4"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 194; y: 299
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 196; y: 305
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8560
+ hash: "80edf52cc9e64a29f677bc2203220ba9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 196; y: 306
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 196; y: 308
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8576
+ hash: "68c8c95edb8cce11320715266bd62628"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 196; y: 310
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 196; y: 312
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8592
+ hash: "c09f4002ed9d41f62bb1aaff95723cce"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 196; y: 316
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8608
+ hash: "7bb17b13db811b02c86a24a0051336d9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 196; y: 318
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 196; y: 320
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8624
+ hash: "6d6cec95a6a2445d88b015ff76af032e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 196; y: 322
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 196; y: 324
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8640
+ image: "mousearea-flickable.8.png"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 196; y: 328
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8656
+ hash: "9a9d1e0b1d7b9291480b3ec641f354ce"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 196; y: 330
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 196; y: 332
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8672
+ hash: "d1372239a681d1fccc25257b4a02fb39"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 196; y: 335
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 196; y: 338
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8688
+ hash: "2010f6f0c34e59f505bbe1aab262b646"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 196; y: 341
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 198; y: 347
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8704
+ hash: "2dc2def0c748ac94d33d90d4a3610136"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 198; y: 350
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 200; y: 356
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8720
+ hash: "1eb5f0e1aa014a38e6ca66ddfc2a076b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 200; y: 358
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 200; y: 360
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8736
+ hash: "c1570ad4cb688ea51818e0a09e349daa"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 201; y: 364
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8752
+ hash: "c6a81be579382f25ac583734897c2570"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 201; y: 366
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8768
+ hash: "8cbeb925f039bde9846d37a5ec6cd3f9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 202; y: 368
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8784
+ hash: "b34a796f25ad62f952101b296f9c2bac"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 202; y: 369
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8800
+ hash: "a0814b5ba881e5da8a1ecae8d714b4ce"
+ }
+ Frame {
+ msec: 8816
+ hash: "a0814b5ba881e5da8a1ecae8d714b4ce"
+ }
+ Frame {
+ msec: 8832
+ hash: "a0814b5ba881e5da8a1ecae8d714b4ce"
+ }
+ Frame {
+ msec: 8848
+ hash: "a0814b5ba881e5da8a1ecae8d714b4ce"
+ }
+ Frame {
+ msec: 8864
+ hash: "a0814b5ba881e5da8a1ecae8d714b4ce"
+ }
+ Frame {
+ msec: 8880
+ hash: "a0814b5ba881e5da8a1ecae8d714b4ce"
+ }
+ Frame {
+ msec: 8896
+ hash: "a0814b5ba881e5da8a1ecae8d714b4ce"
+ }
+ Frame {
+ msec: 8912
+ hash: "a0814b5ba881e5da8a1ecae8d714b4ce"
+ }
+ Frame {
+ msec: 8928
+ hash: "a0814b5ba881e5da8a1ecae8d714b4ce"
+ }
+ Frame {
+ msec: 8944
+ hash: "a0814b5ba881e5da8a1ecae8d714b4ce"
+ }
+ Frame {
+ msec: 8960
+ hash: "a0814b5ba881e5da8a1ecae8d714b4ce"
+ }
+ Frame {
+ msec: 8976
+ hash: "a0814b5ba881e5da8a1ecae8d714b4ce"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 202; y: 369
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8992
+ hash: "a0814b5ba881e5da8a1ecae8d714b4ce"
+ }
+ Frame {
+ msec: 9008
+ hash: "b34a796f25ad62f952101b296f9c2bac"
+ }
+ Frame {
+ msec: 9024
+ hash: "8cbeb925f039bde9846d37a5ec6cd3f9"
+ }
+ Frame {
+ msec: 9040
+ hash: "c1570ad4cb688ea51818e0a09e349daa"
+ }
+ Frame {
+ msec: 9056
+ hash: "237dd62011f4253970b946b335e3fb71"
+ }
+ Frame {
+ msec: 9072
+ hash: "c5980322acf00a04efbd5e1b92aa0e98"
+ }
+ Frame {
+ msec: 9088
+ hash: "d1372239a681d1fccc25257b4a02fb39"
+ }
+ Frame {
+ msec: 9104
+ hash: "524db6ce45674c777d72f9206415be2f"
+ }
+ Frame {
+ msec: 9120
+ hash: "021bda841eaefa76ce5e1c97150af6f6"
+ }
+ Frame {
+ msec: 9136
+ hash: "ce673b66f695f5b002515a5416bbf913"
+ }
+ Frame {
+ msec: 9152
+ hash: "cc6619c7cd6e4e274df4729aad6cca46"
+ }
+ Frame {
+ msec: 9168
+ hash: "7fb0ed99b7d751d1f335afd7c0de2f2c"
+ }
+ Frame {
+ msec: 9184
+ hash: "3d75735eefbf95f37e2a8605b9167ba1"
+ }
+ Frame {
+ msec: 9200
+ hash: "82f54d7e254edcf499ea12a63118e8a7"
+ }
+ Frame {
+ msec: 9216
+ hash: "8517007d5102af238935e93a3b38087f"
+ }
+ Frame {
+ msec: 9232
+ hash: "dc272fc8fc98d822a154da1d495d4f7e"
+ }
+ Frame {
+ msec: 9248
+ hash: "11120d6de575ffa639b6abb3af4afef7"
+ }
+ Frame {
+ msec: 9264
+ hash: "70e522f64236dfa4e1613ffc29b4b23e"
+ }
+ Frame {
+ msec: 9280
+ hash: "7a5f69a1eecb5de0fc2295cd287eb449"
+ }
+ Frame {
+ msec: 9296
+ hash: "a569789b082296415321ba11c859abe5"
+ }
+ Frame {
+ msec: 9312
+ hash: "9f9f85d5f879b0e52ebc751d6668cfb8"
+ }
+ Frame {
+ msec: 9328
+ hash: "9f9f85d5f879b0e52ebc751d6668cfb8"
+ }
+ Frame {
+ msec: 9344
+ hash: "43fc85bb3b1501f5e12f1fedaaa14c64"
+ }
+ Frame {
+ msec: 9360
+ hash: "43fc85bb3b1501f5e12f1fedaaa14c64"
+ }
+ Frame {
+ msec: 9376
+ hash: "d75a43305e2884759ca41d7b1cbadf52"
+ }
+ Frame {
+ msec: 9392
+ hash: "d75a43305e2884759ca41d7b1cbadf52"
+ }
+ Frame {
+ msec: 9408
+ hash: "d75a43305e2884759ca41d7b1cbadf52"
+ }
+ Frame {
+ msec: 9424
+ hash: "d75a43305e2884759ca41d7b1cbadf52"
+ }
+ Frame {
+ msec: 9440
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 9456
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 9472
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 9488
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 9504
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 9520
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 9536
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 9552
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 9568
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 9584
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 9600
+ image: "mousearea-flickable.9.png"
+ }
+ Frame {
+ msec: 9616
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 9632
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 9648
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 9664
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 9680
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 9696
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 9712
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 9728
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 9744
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 205; y: 307
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9760
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 9776
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 9792
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 9808
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 9824
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 9840
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 9856
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 9872
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 9888
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 9904
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 9920
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 9936
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 9952
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 9968
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 9984
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10000
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10016
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10032
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10048
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10064
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10080
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10096
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10112
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10128
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10144
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10160
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10176
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10192
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10208
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10224
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10240
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10256
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10272
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10288
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10304
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10320
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10336
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10352
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10368
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10384
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10400
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10416
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10432
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10448
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10464
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10480
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10496
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10512
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10528
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10544
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10560
+ image: "mousearea-flickable.10.png"
+ }
+ Frame {
+ msec: 10576
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10592
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10608
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10624
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10640
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10656
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10672
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10688
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10704
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10720
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10736
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10752
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10768
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10784
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10800
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10816
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10832
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10848
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10864
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10880
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10896
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10912
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10928
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10944
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10960
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10976
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 10992
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 11008
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 11024
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 11040
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 11056
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 11072
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 11088
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 205; y: 308
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11104
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 11120
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 11136
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 205; y: 309
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11152
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 11168
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Frame {
+ msec: 11184
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 205; y: 310
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11200
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 205; y: 311
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11216
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 205; y: 312
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11232
+ hash: "90cdfe8920f115fd55cde6fdbd95e867"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 206; y: 313
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 206; y: 314
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11248
+ hash: "a569789b082296415321ba11c859abe5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 206; y: 316
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 206; y: 317
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11264
+ hash: "86b32befe0dada5bdce82a7dd14777ce"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 206; y: 319
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 206; y: 321
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11280
+ hash: "70e522f64236dfa4e1613ffc29b4b23e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 206; y: 324
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11296
+ hash: "11120d6de575ffa639b6abb3af4afef7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 206; y: 326
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 206; y: 327
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11312
+ hash: "8e05207e0d0d9d15a61a0d21d985a83a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 206; y: 330
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 206; y: 332
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11328
+ hash: "6602009ffe3c0f3072640ebc8749b76f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 206; y: 335
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 206; y: 337
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11344
+ hash: "8517007d5102af238935e93a3b38087f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 204; y: 343
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 204; y: 345
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11360
+ hash: "82f54d7e254edcf499ea12a63118e8a7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 204; y: 348
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 204; y: 350
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11376
+ hash: "572cb62d69ccb973ea18d3b0eaff571b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 204; y: 352
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 204; y: 355
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11392
+ hash: "79650397b868019909b931a32a115823"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 204; y: 357
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 204; y: 359
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11408
+ hash: "43e50f4d4d37373e26af0a5d3cb64c4c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 204; y: 361
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 204; y: 363
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11424
+ hash: "a0f8eb8a796f67c368b0a479e8d14681"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 204; y: 365
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 204; y: 367
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11440
+ hash: "01bf03313a0229e810a24e2adbbe9775"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 203; y: 369
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 203; y: 371
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11456
+ hash: "7fb0ed99b7d751d1f335afd7c0de2f2c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 203; y: 373
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 203; y: 375
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11472
+ hash: "363eca81f97f20f14e8d480f83d2bc7d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 203; y: 379
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11488
+ hash: "6d49fc41fb6d74643c7613df7e417833"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 203; y: 381
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 203; y: 383
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11504
+ hash: "806d22bc3533c729cd10dc889c36902d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 203; y: 385
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 203; y: 387
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11520
+ image: "mousearea-flickable.11.png"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 203; y: 389
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 203; y: 392
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11536
+ hash: "929bf28dcb97e8c93dae5dbe23beecc8"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 203; y: 394
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 204; y: 396
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11552
+ hash: "cb49adcd2c8afe27fd5926bd622added"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 204; y: 398
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 204; y: 399
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11568
+ hash: "0121c18897c37481fddbac57db636a60"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 205; y: 402
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11584
+ hash: "c0a569ee064d844835dddab11eadcd33"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 205; y: 404
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 205; y: 406
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11600
+ hash: "52d45e8dde81fef5ee93bbd5a40d4851"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 205; y: 407
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 206; y: 409
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11616
+ hash: "ce673b66f695f5b002515a5416bbf913"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 206; y: 410
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11632
+ hash: "f334bfcc3af89bf1405762a215c54ea6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 206; y: 411
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 206; y: 412
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11648
+ hash: "ee0523fe6a33b59871ad3b311ca0cbeb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 207; y: 414
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11664
+ hash: "66f71641c7a607152f140428ab9621d6"
+ }
+ Frame {
+ msec: 11680
+ hash: "66f71641c7a607152f140428ab9621d6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 207; y: 415
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11696
+ hash: "66f71641c7a607152f140428ab9621d6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 207; y: 416
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11712
+ hash: "ddd3d8cb82e238358cdb16c1df7d27b7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 207; y: 417
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11728
+ hash: "ddd3d8cb82e238358cdb16c1df7d27b7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 208; y: 418
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11744
+ hash: "29ca97cc573d3a1fde65320b61678c60"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 208; y: 419
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11760
+ hash: "29ca97cc573d3a1fde65320b61678c60"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 208; y: 421
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11776
+ hash: "7b41d651ad46341859d0188db341ae10"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 208; y: 423
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11792
+ hash: "6b236864b7d95bf9f76b8afd6ba78613"
+ }
+ Frame {
+ msec: 11808
+ hash: "6b236864b7d95bf9f76b8afd6ba78613"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 208; y: 424
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11824
+ hash: "95b57cd3dac3bce56674f2c4143f42d4"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 208; y: 425
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11840
+ hash: "95b57cd3dac3bce56674f2c4143f42d4"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 209; y: 426
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11856
+ hash: "021bda841eaefa76ce5e1c97150af6f6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 209; y: 428
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11872
+ hash: "b1ea82b880a2fc35bf1ed117d8ab21b0"
+ }
+ Frame {
+ msec: 11888
+ hash: "b1ea82b880a2fc35bf1ed117d8ab21b0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 209; y: 429
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11904
+ hash: "b1ea82b880a2fc35bf1ed117d8ab21b0"
+ }
+ Frame {
+ msec: 11920
+ hash: "b1ea82b880a2fc35bf1ed117d8ab21b0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 209; y: 430
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11936
+ hash: "1709dda08ce7494ff6d082cc5d93f0d2"
+ }
+ Frame {
+ msec: 11952
+ hash: "1709dda08ce7494ff6d082cc5d93f0d2"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 209; y: 431
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 11968
+ hash: "1709dda08ce7494ff6d082cc5d93f0d2"
+ }
+ Frame {
+ msec: 11984
+ hash: "1709dda08ce7494ff6d082cc5d93f0d2"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 209; y: 432
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 12000
+ hash: "80edf52cc9e64a29f677bc2203220ba9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 209; y: 433
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 12016
+ hash: "80edf52cc9e64a29f677bc2203220ba9"
+ }
+ Frame {
+ msec: 12032
+ hash: "80edf52cc9e64a29f677bc2203220ba9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 210; y: 434
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 12048
+ hash: "68c8c95edb8cce11320715266bd62628"
+ }
+ Frame {
+ msec: 12064
+ hash: "68c8c95edb8cce11320715266bd62628"
+ }
+ Frame {
+ msec: 12080
+ hash: "68c8c95edb8cce11320715266bd62628"
+ }
+ Frame {
+ msec: 12096
+ hash: "68c8c95edb8cce11320715266bd62628"
+ }
+ Frame {
+ msec: 12112
+ hash: "68c8c95edb8cce11320715266bd62628"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 210; y: 435
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 12128
+ hash: "68c8c95edb8cce11320715266bd62628"
+ }
+ Frame {
+ msec: 12144
+ hash: "68c8c95edb8cce11320715266bd62628"
+ }
+ Frame {
+ msec: 12160
+ hash: "68c8c95edb8cce11320715266bd62628"
+ }
+ Frame {
+ msec: 12176
+ hash: "68c8c95edb8cce11320715266bd62628"
+ }
+ Frame {
+ msec: 12192
+ hash: "68c8c95edb8cce11320715266bd62628"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 210; y: 435
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 12208
+ hash: "68c8c95edb8cce11320715266bd62628"
+ }
+ Frame {
+ msec: 12224
+ hash: "68c8c95edb8cce11320715266bd62628"
+ }
+ Frame {
+ msec: 12240
+ hash: "80edf52cc9e64a29f677bc2203220ba9"
+ }
+ Frame {
+ msec: 12256
+ hash: "b1ea82b880a2fc35bf1ed117d8ab21b0"
+ }
+ Frame {
+ msec: 12272
+ hash: "6b236864b7d95bf9f76b8afd6ba78613"
+ }
+ Frame {
+ msec: 12288
+ hash: "ddd3d8cb82e238358cdb16c1df7d27b7"
+ }
+ Frame {
+ msec: 12304
+ hash: "ce673b66f695f5b002515a5416bbf913"
+ }
+ Frame {
+ msec: 12320
+ hash: "0121c18897c37481fddbac57db636a60"
+ }
+ Frame {
+ msec: 12336
+ hash: "cc6619c7cd6e4e274df4729aad6cca46"
+ }
+ Frame {
+ msec: 12352
+ hash: "aafb12a520eb443ee1348282f2c54e4a"
+ }
+ Frame {
+ msec: 12368
+ hash: "c37507a29e3a6d80446ad68f2d92f266"
+ }
+ Frame {
+ msec: 12384
+ hash: "6ef4abc294d928381346e8ff9b012475"
+ }
+ Frame {
+ msec: 12400
+ hash: "4e129ebba85d1f3717d09f71eb5a1a7d"
+ }
+ Frame {
+ msec: 12416
+ hash: "6602009ffe3c0f3072640ebc8749b76f"
+ }
+ Frame {
+ msec: 12432
+ hash: "8e05207e0d0d9d15a61a0d21d985a83a"
+ }
+ Frame {
+ msec: 12448
+ hash: "144eeb7c2a32cedb6ebba063501c9176"
+ }
+ Frame {
+ msec: 12464
+ hash: "7a5f69a1eecb5de0fc2295cd287eb449"
+ }
+ Frame {
+ msec: 12480
+ image: "mousearea-flickable.12.png"
+ }
+ Frame {
+ msec: 12496
+ hash: "a569789b082296415321ba11c859abe5"
+ }
+ Frame {
+ msec: 12512
+ hash: "9f9f85d5f879b0e52ebc751d6668cfb8"
+ }
+ Frame {
+ msec: 12528
+ hash: "43fc85bb3b1501f5e12f1fedaaa14c64"
+ }
+ Frame {
+ msec: 12544
+ hash: "43fc85bb3b1501f5e12f1fedaaa14c64"
+ }
+ Frame {
+ msec: 12560
+ hash: "d75a43305e2884759ca41d7b1cbadf52"
+ }
+ Frame {
+ msec: 12576
+ hash: "d75a43305e2884759ca41d7b1cbadf52"
+ }
+ Frame {
+ msec: 12592
+ hash: "d75a43305e2884759ca41d7b1cbadf52"
+ }
+ Frame {
+ msec: 12608
+ hash: "d75a43305e2884759ca41d7b1cbadf52"
+ }
+ Frame {
+ msec: 12624
+ hash: "d75a43305e2884759ca41d7b1cbadf52"
+ }
+ Frame {
+ msec: 12640
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 12656
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 12672
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 12688
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 12704
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 12720
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 12736
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 12752
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 12768
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 12784
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 12800
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 12816
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 12832
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 12848
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 12864
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 12880
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 12896
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 12912
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 12928
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 12944
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 12960
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 12976
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 12992
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13008
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13024
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13040
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13056
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13072
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13088
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13104
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13120
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13136
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13152
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13168
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13184
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13200
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13216
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13232
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13248
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13264
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13280
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13296
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13312
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13328
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13344
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13360
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Key {
+ type: 6
+ key: 16777251
+ modifiers: 134217728
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 13376
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13392
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13408
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13424
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13440
+ image: "mousearea-flickable.13.png"
+ }
+ Frame {
+ msec: 13456
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13472
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13488
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+ Frame {
+ msec: 13504
+ hash: "cc1fd2f4c3be318052254a9b6be7a57b"
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/mousearea-flickable.qml b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/mousearea-flickable.qml
new file mode 100644
index 0000000..a0b787f
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/mousearea-flickable.qml
@@ -0,0 +1,52 @@
+import Qt 4.7
+
+Rectangle {
+ width: 400; height: 480
+ color: "white"
+
+ Flickable {
+ anchors.fill: parent
+ contentHeight: 100
+
+ Rectangle {
+ id: yellow
+ width: 400; height: 120
+ color: "yellow"
+ MouseArea {
+ anchors.fill: parent
+ onPressedChanged: pressed ? yellow.color = "lightyellow": yellow.color = "yellow"
+ }
+ }
+ Rectangle {
+ id: blue
+ width: 400; height: 120
+ y: 120
+ color: "steelblue"
+ MouseArea {
+ anchors.fill: parent
+ onPressed: blue.color = "lightsteelblue"
+ onReleased: blue.color = "steelblue"
+ }
+ }
+ Rectangle {
+ id: red
+ y: 240
+ width: 400; height: 120
+ color: "red"
+ MouseArea {
+ anchors.fill: parent
+ onEntered: { red.color = "darkred"; tooltip.opacity = 1 }
+ onExited: { red.color = "red"; tooltip.opacity = 0 }
+ }
+ Rectangle {
+ id: tooltip
+ x: 10; y: 20
+ width: 100; height: 50
+ color: "green"
+ opacity: 0
+ }
+ }
+
+ }
+
+}
diff --git a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp
index 681b530..5f25882 100644
--- a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp
+++ b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp
@@ -117,6 +117,9 @@ void tst_qmlvisual::visual_data()
files << QT_TEST_SOURCE_DIR "/qdeclarativemousearea/drag.qml";
files << QT_TEST_SOURCE_DIR "/fillmode/fillmode.qml";
+ // new tests
+ files << QT_TEST_SOURCE_DIR "/qdeclarativemousearea/mousearea-flickable.qml";
+
//these reliably fail in CI, for unknown reasons
//files << QT_TEST_SOURCE_DIR "/animation/easing/easing.qml";
//files << QT_TEST_SOURCE_DIR "/animation/pauseAnimation/pauseAnimation-visual.qml";
diff --git a/tests/auto/declarative/qpacketprotocol/tst_qpacketprotocol.cpp b/tests/auto/declarative/qpacketprotocol/tst_qpacketprotocol.cpp
index 2621d65..b8e317e 100644
--- a/tests/auto/declarative/qpacketprotocol/tst_qpacketprotocol.cpp
+++ b/tests/auto/declarative/qpacketprotocol/tst_qpacketprotocol.cpp
@@ -111,14 +111,6 @@ void tst_QPacketProtocol::setMaximumPacketSize()
QPacketProtocol out(m_serverConn);
QCOMPARE(out.setMaximumPacketSize(size), expected);
-
- if (size == expected) {
- QPacketProtocol in(m_client);
- QByteArray b;
- b.fill('a', size + 1);
- out.send() << b.constData();
- QVERIFY(QDeclarativeDebugTest::waitForSignal(&in, SIGNAL(invalidPacket())));
- }
}
void tst_QPacketProtocol::setMaximumPacketSize_data()
diff --git a/tests/auto/declarative/shared/debugutil.cpp b/tests/auto/declarative/shared/debugutil.cpp
index 66f04e5..c0c3eca 100644
--- a/tests/auto/declarative/shared/debugutil.cpp
+++ b/tests/auto/declarative/shared/debugutil.cpp
@@ -47,11 +47,11 @@
#include "debugutil_p.h"
-#include <iostream>
bool QDeclarativeDebugTest::waitForSignal(QObject *receiver, const char *member, int timeout) {
QEventLoop loop;
QTimer timer;
+ timer.setSingleShot(true);
QObject::connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit()));
QObject::connect(receiver, member, &loop, SLOT(quit()));
timer.start(timeout);
@@ -59,25 +59,6 @@ bool QDeclarativeDebugTest::waitForSignal(QObject *receiver, const char *member,
return timer.isActive();
}
-
-QDeclarativeDebugTestData::QDeclarativeDebugTestData(QEventLoop *el)
- : exitCode(-1), loop(el)
-{
-}
-
-QDeclarativeDebugTestData::~QDeclarativeDebugTestData()
-{
- qDeleteAll(items);
-}
-
-void QDeclarativeDebugTestData::testsFinished(int code)
-{
- exitCode = code;
- loop->quit();
-}
-
-
-
QDeclarativeDebugTestService::QDeclarativeDebugTestService(const QString &s, QObject *parent)
: QDeclarativeDebugService(s, parent), enabled(false)
{
@@ -117,63 +98,3 @@ void QDeclarativeDebugTestClient::messageReceived(const QByteArray &ba)
emit serverMessage(ba);
}
-
-tst_QDeclarativeDebug_Thread::tst_QDeclarativeDebug_Thread(QDeclarativeDebugTestData *data, QDeclarativeTestFactory *factory)
- : m_data(data), m_factory(factory)
-{
-}
-
-void tst_QDeclarativeDebug_Thread::run()
-{
- bool ok = false;
-
- QDeclarativeDebugConnection conn;
- conn.connectToHost("127.0.0.1", 3768);
- ok = conn.waitForConnected();
- Q_ASSERT(ok);
-
- QEventLoop loop;
- connect(m_data, SIGNAL(engineCreated()), &loop, SLOT(quit()));
- loop.exec();
-
- m_data->conn = &conn;
-
- Q_ASSERT(m_factory);
- QObject *test = m_factory->createTest(m_data);
- Q_ASSERT(test);
- int code = QTest::qExec(test, QCoreApplication::arguments());
- delete test;
- emit testsFinished(code);
-}
-
-int QDeclarativeDebugTest::runTests(QDeclarativeTestFactory *factory, const QList<QByteArray> &qml)
-{
- qputenv("QML_DEBUG_SERVER_PORT", "3768");
-
- QEventLoop loop;
- QDeclarativeDebugTestData data(&loop);
-
- tst_QDeclarativeDebug_Thread thread(&data, factory);
- QObject::connect(&thread, SIGNAL(testsFinished(int)), &data, SLOT(testsFinished(int)));
-
- QDeclarativeDebugService::notifyOnServerStart(&thread, "start");
-
- QDeclarativeEngine engine; // blocks until client connects
-
- foreach (const QByteArray &code, qml) {
- QDeclarativeComponent c(&engine);
- c.setData(code, QUrl::fromLocalFile(""));
- Q_ASSERT(c.isReady()); // fails if bad syntax
- data.items << qobject_cast<QDeclarativeItem*>(c.create());
- }
-
- // start the test
- data.engine = &engine;
- emit data.engineCreated();
-
- loop.exec();
- thread.wait();
-
- return data.exitCode;
-}
-
diff --git a/tests/auto/declarative/shared/debugutil_p.h b/tests/auto/declarative/shared/debugutil_p.h
index c152b5a..e6bb7ad 100644
--- a/tests/auto/declarative/shared/debugutil_p.h
+++ b/tests/auto/declarative/shared/debugutil_p.h
@@ -51,50 +51,10 @@
#include <private/qdeclarativedebugservice_p.h>
#include <private/qdeclarativeitem_p.h>
-class QDeclarativeTestFactory;
-
class QDeclarativeDebugTest
{
public:
static bool waitForSignal(QObject *receiver, const char *member, int timeout = 5000);
-
- static int runTests(QDeclarativeTestFactory *factory, const QList<QByteArray> &qml = QList<QByteArray>());
-};
-
-class QDeclarativeDebugTestData : public QObject
-{
- Q_OBJECT
-public:
- QDeclarativeDebugTestData(QEventLoop *el);
-
- ~QDeclarativeDebugTestData();
-
- QDeclarativeDebugConnection *conn;
- QDeclarativeEngine *engine;
-
- int exitCode;
- QEventLoop *loop;
-
- QList<QDeclarativeItem *> items;
-
-signals:
- void engineCreated();
-
-public slots:
- void testsFinished(int code);
-
-private:
- friend class QDeclarativeDebugTest;
-};
-
-
-class QDeclarativeTestFactory
-{
-public:
- QDeclarativeTestFactory() {}
- virtual ~QDeclarativeTestFactory() {}
-
- virtual QObject *createTest(QDeclarativeDebugTestData *data) = 0;
};
class QDeclarativeDebugTestService : public QDeclarativeDebugService
@@ -131,20 +91,4 @@ private:
QByteArray lastMsg;
};
-class tst_QDeclarativeDebug_Thread : public QThread
-{
- Q_OBJECT
-public:
- tst_QDeclarativeDebug_Thread(QDeclarativeDebugTestData *data, QDeclarativeTestFactory *factory);
-
- void run();
-
-signals:
- void testsFinished(int);
-
-private:
- QDeclarativeDebugTestData *m_data;
- QDeclarativeTestFactory *m_factory;
-};
-