summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-05-17 09:32:45 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-05-17 09:32:45 (GMT)
commit94a3356d5eb7b255d439efe2699bf3a9b025e8eb (patch)
tree49bdb24dde6e2cc6bc4d5c63281498c6b757ddeb
parentbdbe09ad2c01ae11d10511b51f8d7a3dfb27b17c (diff)
parent1db36a5a37dcca0e24ada3c852f2647ab2330eee (diff)
downloadQt-94a3356d5eb7b255d439efe2699bf3a9b025e8eb.zip
Qt-94a3356d5eb7b255d439efe2699bf3a9b025e8eb.tar.gz
Qt-94a3356d5eb7b255d439efe2699bf3a9b025e8eb.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: Move xmldata example into rssnews demo. Move Q_ENUMS to start of class declaration Restructure QDeclarativeAbstractBinding destructor Don't call pure virtual method in ~QDeclarativeAbstractBinding() Fix examples autotest when compiled without webkit or xmlpatterns Check for acquireReg() failure Focus should be applied to focus scopes all the way up the chain, not Add focus docs snippets Fix doc for status, add Image::onLoaded. Don't crash due to recursive positioning. ListModel::get() shouldn't print warnings for invalid indices since it Add \brief to TextInput Add missing .pro Restructure the examples. They are now organized into various graphicsWidgets doc example was previously removed Doc fix Add a "priority" property to Keys and KeyNavigation
-rw-r--r--demos/declarative/rssnews/content/BusyIndicator.qml12
-rw-r--r--demos/declarative/rssnews/content/CategoryDelegate.qml41
-rw-r--r--demos/declarative/rssnews/content/NewsDelegate.qml29
-rw-r--r--demos/declarative/rssnews/content/RssFeeds.qml18
-rw-r--r--demos/declarative/rssnews/content/ScrollBar.qml66
-rw-r--r--demos/declarative/rssnews/content/images/busy.pngbin0 -> 2629 bytes
-rw-r--r--demos/declarative/rssnews/content/images/scrollbar.pngbin0 -> 161 bytes
-rw-r--r--demos/declarative/rssnews/rssnews.qml52
-rw-r--r--doc/src/declarative/example-slideswitch.qdoc20
-rw-r--r--doc/src/declarative/examples.qdoc123
-rw-r--r--doc/src/declarative/extending-examples.qdoc50
-rw-r--r--doc/src/declarative/extending.qdoc46
-rw-r--r--doc/src/declarative/focus.qdoc23
-rw-r--r--doc/src/declarative/globalobject.qdoc2
-rw-r--r--doc/src/declarative/integrating.qdoc2
-rw-r--r--doc/src/examples/qml-examples.qdoc184
-rw-r--r--doc/src/snippets/declarative/borderimage.qml (renamed from doc/src/snippets/declarative/border-image.qml)0
-rw-r--r--doc/src/snippets/declarative/focusscopes.qml27
-rw-r--r--examples/declarative/animation/animation.qmlproject (renamed from examples/declarative/xmlhttprequest/xmlhttprequest.qmlproject)0
-rw-r--r--examples/declarative/animation/basics/basics.qmlproject (renamed from examples/declarative/xmldata/xmldata.qmlproject)0
-rw-r--r--examples/declarative/animation/basics/color-animation.qml (renamed from examples/declarative/animations/color-animation.qml)0
-rw-r--r--examples/declarative/animation/basics/images/face-smile.png (renamed from examples/declarative/parallax/pics/face-smile.png)bin15408 -> 15408 bytes
-rw-r--r--examples/declarative/animation/basics/images/moon.png (renamed from examples/declarative/animations/images/moon.png)bin2433 -> 2433 bytes
-rw-r--r--examples/declarative/animation/basics/images/shadow.png (renamed from examples/declarative/parallax/pics/shadow.png)bin425 -> 425 bytes
-rw-r--r--examples/declarative/animation/basics/images/star.png (renamed from examples/declarative/dynamic/images/star.png)bin349 -> 349 bytes
-rw-r--r--examples/declarative/animation/basics/images/sun.png (renamed from examples/declarative/dynamic/images/sun.png)bin8153 -> 8153 bytes
-rw-r--r--examples/declarative/animation/basics/property-animation.qml (renamed from examples/declarative/animations/property-animation.qml)0
-rw-r--r--examples/declarative/animation/behaviors/SideRect.qml (renamed from examples/declarative/behaviors/SideRect.qml)0
-rw-r--r--examples/declarative/animation/behaviors/behavior-example.qml (renamed from examples/declarative/behaviors/behavior-example.qml)0
-rw-r--r--examples/declarative/animation/behaviors/behaviors.qmlproject (renamed from examples/declarative/behaviors/behaviors.qmlproject)0
-rw-r--r--examples/declarative/animation/easing/easing.qml (renamed from examples/declarative/animations/easing.qml)0
-rw-r--r--examples/declarative/animation/easing/easing.qmlproject (renamed from examples/declarative/workerscript/workerscript.qmlproject)0
-rw-r--r--examples/declarative/animation/states/states.qml (renamed from examples/declarative/states/states.qml)0
-rw-r--r--examples/declarative/animation/states/states.qmlproject (renamed from examples/declarative/states/states.qmlproject)0
-rw-r--r--examples/declarative/animation/states/transitions.qml (renamed from examples/declarative/states/transitions.qml)0
-rw-r--r--examples/declarative/animation/states/user.png (renamed from examples/declarative/states/user.png)bin4886 -> 4886 bytes
-rw-r--r--examples/declarative/connections/connections-example.qml37
-rw-r--r--examples/declarative/connections/content/Button.qml12
-rw-r--r--examples/declarative/connections/content/bg1.jpgbin23771 -> 0 bytes
-rw-r--r--examples/declarative/connections/content/rotate-left.pngbin3061 -> 0 bytes
-rw-r--r--examples/declarative/connections/content/rotate-right.pngbin3115 -> 0 bytes
-rw-r--r--examples/declarative/cppextensions/cppextensions.pro10
-rw-r--r--examples/declarative/cppextensions/cppextensions.qmlproject (renamed from examples/declarative/webview/webview.qmlproject)0
-rw-r--r--examples/declarative/cppextensions/imageprovider/ImageProviderCore/qmldir (renamed from examples/declarative/imageprovider/ImageProviderCore/qmldir)0
-rw-r--r--examples/declarative/cppextensions/imageprovider/imageprovider-example.qml (renamed from examples/declarative/imageprovider/imageprovider-example.qml)0
-rw-r--r--examples/declarative/cppextensions/imageprovider/imageprovider.cpp (renamed from examples/declarative/imageprovider/imageprovider.cpp)0
-rw-r--r--examples/declarative/cppextensions/imageprovider/imageprovider.pro (renamed from examples/declarative/imageprovider/imageprovider.pro)0
-rw-r--r--examples/declarative/cppextensions/imageprovider/imageprovider.qmlproject (renamed from examples/declarative/imageprovider/imageprovider.qmlproject)0
-rw-r--r--examples/declarative/cppextensions/plugins/README (renamed from examples/declarative/plugins/README)0
-rw-r--r--examples/declarative/cppextensions/plugins/com/nokia/TimeExample/Clock.qml (renamed from examples/declarative/plugins/com/nokia/TimeExample/Clock.qml)0
-rw-r--r--examples/declarative/cppextensions/plugins/com/nokia/TimeExample/center.png (renamed from examples/declarative/plugins/com/nokia/TimeExample/center.png)bin765 -> 765 bytes
-rw-r--r--examples/declarative/cppextensions/plugins/com/nokia/TimeExample/clock.png (renamed from examples/declarative/plugins/com/nokia/TimeExample/clock.png)bin20653 -> 20653 bytes
-rw-r--r--examples/declarative/cppextensions/plugins/com/nokia/TimeExample/hour.png (renamed from examples/declarative/plugins/com/nokia/TimeExample/hour.png)bin625 -> 625 bytes
-rw-r--r--examples/declarative/cppextensions/plugins/com/nokia/TimeExample/minute.png (renamed from examples/declarative/plugins/com/nokia/TimeExample/minute.png)bin625 -> 625 bytes
-rw-r--r--examples/declarative/cppextensions/plugins/com/nokia/TimeExample/qmldir (renamed from examples/declarative/plugins/com/nokia/TimeExample/qmldir)0
-rw-r--r--examples/declarative/cppextensions/plugins/plugin.cpp (renamed from examples/declarative/plugins/plugin.cpp)0
-rw-r--r--examples/declarative/cppextensions/plugins/plugins.pro (renamed from examples/declarative/plugins/plugins.pro)0
-rw-r--r--examples/declarative/cppextensions/plugins/plugins.qml (renamed from examples/declarative/plugins/plugins.qml)0
-rw-r--r--examples/declarative/cppextensions/plugins/plugins.qmlproject (renamed from examples/declarative/plugins/plugins.qmlproject)0
-rw-r--r--examples/declarative/cppextensions/proxyviewer/main.cpp (renamed from examples/declarative/proxyviewer/main.cpp)0
-rw-r--r--examples/declarative/cppextensions/proxyviewer/proxyviewer.pro (renamed from examples/declarative/proxyviewer/proxyviewer.pro)0
-rw-r--r--examples/declarative/cppextensions/proxyviewer/proxyviewer.qrc (renamed from examples/declarative/proxyviewer/proxyviewer.qrc)0
-rw-r--r--examples/declarative/cppextensions/proxyviewer/view.qml (renamed from examples/declarative/proxyviewer/view.qml)0
-rw-r--r--examples/declarative/cppextensions/proxywidgets/ProxyWidgets/qmldir (renamed from examples/declarative/proxywidgets/ProxyWidgets/qmldir)0
-rw-r--r--examples/declarative/cppextensions/proxywidgets/README (renamed from examples/declarative/proxywidgets/README)0
-rw-r--r--examples/declarative/cppextensions/proxywidgets/proxywidgets.cpp (renamed from examples/declarative/proxywidgets/proxywidgets.cpp)0
-rw-r--r--examples/declarative/cppextensions/proxywidgets/proxywidgets.pro (renamed from examples/declarative/proxywidgets/proxywidgets.pro)0
-rw-r--r--examples/declarative/cppextensions/proxywidgets/proxywidgets.qml (renamed from examples/declarative/proxywidgets/proxywidgets.qml)0
-rw-r--r--examples/declarative/cppextensions/proxywidgets/proxywidgets.qmlproject (renamed from examples/declarative/proxywidgets/proxywidgets.qmlproject)0
-rw-r--r--examples/declarative/cppextensions/qgraphicslayouts/graphicsLayouts/graphicslayouts.cpp (renamed from examples/declarative/layouts/graphicsLayouts/graphicslayouts.cpp)0
-rw-r--r--examples/declarative/cppextensions/qgraphicslayouts/graphicsLayouts/graphicslayouts.pro (renamed from examples/declarative/layouts/graphicsLayouts/graphicslayouts.pro)0
-rw-r--r--examples/declarative/cppextensions/qgraphicslayouts/graphicsLayouts/graphicslayouts.qml (renamed from examples/declarative/layouts/graphicsLayouts/graphicslayouts.qml)0
-rw-r--r--examples/declarative/cppextensions/qgraphicslayouts/graphicsLayouts/graphicslayouts.qrc (renamed from examples/declarative/layouts/graphicsLayouts/graphicslayouts.qrc)0
-rw-r--r--examples/declarative/cppextensions/qgraphicslayouts/graphicsLayouts/graphicslayouts_p.h (renamed from examples/declarative/layouts/graphicsLayouts/graphicslayouts_p.h)0
-rw-r--r--examples/declarative/cppextensions/qgraphicslayouts/graphicsLayouts/main.cpp (renamed from examples/declarative/layouts/graphicsLayouts/main.cpp)0
-rw-r--r--examples/declarative/cppextensions/qgraphicslayouts/layoutItem/layoutItem.pro (renamed from examples/declarative/layouts/layoutItem/layoutItem.pro)0
-rw-r--r--examples/declarative/cppextensions/qgraphicslayouts/layoutItem/layoutItem.qml (renamed from examples/declarative/layouts/layoutItem/layoutItem.qml)0
-rw-r--r--examples/declarative/cppextensions/qgraphicslayouts/layoutItem/layoutItem.qrc (renamed from examples/declarative/layouts/layoutItem/layoutItem.qrc)0
-rw-r--r--examples/declarative/cppextensions/qgraphicslayouts/layoutItem/main.cpp (renamed from examples/declarative/layouts/layoutItem/main.cpp)0
-rw-r--r--examples/declarative/cppextensions/qgraphicslayouts/qgraphicslayouts.pro5
-rw-r--r--examples/declarative/cppextensions/qgraphicslayouts/qgraphicslayouts.qmlproject (renamed from examples/declarative/velocity/velocity.qmlproject)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/adding/adding.pro (renamed from examples/declarative/extending/adding/adding.pro)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/adding/adding.qrc (renamed from examples/declarative/extending/adding/adding.qrc)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/adding/example.qml (renamed from examples/declarative/extending/adding/example.qml)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/adding/main.cpp (renamed from examples/declarative/extending/adding/main.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/adding/person.cpp (renamed from examples/declarative/extending/adding/person.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/adding/person.h (renamed from examples/declarative/extending/adding/person.h)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/attached/attached.pro (renamed from examples/declarative/extending/attached/attached.pro)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/attached/attached.qrc (renamed from examples/declarative/extending/attached/attached.qrc)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/attached/birthdayparty.cpp (renamed from examples/declarative/extending/attached/birthdayparty.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/attached/birthdayparty.h (renamed from examples/declarative/extending/attached/birthdayparty.h)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/attached/example.qml (renamed from examples/declarative/extending/attached/example.qml)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/attached/main.cpp (renamed from examples/declarative/extending/attached/main.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/attached/person.cpp (renamed from examples/declarative/extending/valuesource/person.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/attached/person.h (renamed from examples/declarative/extending/valuesource/person.h)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/binding/binding.pro (renamed from examples/declarative/extending/binding/binding.pro)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/binding/binding.qrc (renamed from examples/declarative/extending/binding/binding.qrc)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/binding/birthdayparty.cpp (renamed from examples/declarative/extending/binding/birthdayparty.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/binding/birthdayparty.h (renamed from examples/declarative/extending/binding/birthdayparty.h)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/binding/example.qml (renamed from examples/declarative/extending/binding/example.qml)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/binding/happybirthdaysong.cpp (renamed from examples/declarative/extending/binding/happybirthdaysong.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/binding/happybirthdaysong.h (renamed from examples/declarative/extending/binding/happybirthdaysong.h)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/binding/main.cpp (renamed from examples/declarative/extending/binding/main.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/binding/person.cpp (renamed from examples/declarative/extending/binding/person.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/binding/person.h (renamed from examples/declarative/extending/binding/person.h)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/coercion/birthdayparty.cpp (renamed from examples/declarative/extending/grouped/birthdayparty.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/coercion/birthdayparty.h (renamed from examples/declarative/extending/coercion/birthdayparty.h)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/coercion/coercion.pro (renamed from examples/declarative/extending/coercion/coercion.pro)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/coercion/coercion.qrc (renamed from examples/declarative/extending/coercion/coercion.qrc)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/coercion/example.qml (renamed from examples/declarative/extending/coercion/example.qml)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/coercion/main.cpp (renamed from examples/declarative/extending/coercion/main.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/coercion/person.cpp (renamed from examples/declarative/extending/coercion/person.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/coercion/person.h (renamed from examples/declarative/extending/coercion/person.h)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/default/birthdayparty.cpp (renamed from examples/declarative/extending/default/birthdayparty.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/default/birthdayparty.h (renamed from examples/declarative/extending/default/birthdayparty.h)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/default/default.pro (renamed from examples/declarative/extending/default/default.pro)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/default/default.qrc (renamed from examples/declarative/extending/default/default.qrc)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/default/example.qml (renamed from examples/declarative/extending/default/example.qml)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/default/main.cpp (renamed from examples/declarative/extending/default/main.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/default/person.cpp (renamed from examples/declarative/extending/default/person.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/default/person.h (renamed from examples/declarative/extending/default/person.h)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/extended/example.qml (renamed from examples/declarative/extending/extended/example.qml)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/extended/extended.pro (renamed from examples/declarative/extending/extended/extended.pro)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/extended/extended.qrc (renamed from examples/declarative/extending/extended/extended.qrc)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/extended/lineedit.cpp (renamed from examples/declarative/extending/extended/lineedit.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/extended/lineedit.h (renamed from examples/declarative/extending/extended/lineedit.h)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/extended/main.cpp (renamed from examples/declarative/extending/extended/main.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/grouped/birthdayparty.cpp (renamed from examples/declarative/extending/coercion/birthdayparty.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/grouped/birthdayparty.h (renamed from examples/declarative/extending/grouped/birthdayparty.h)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/grouped/example.qml (renamed from examples/declarative/extending/grouped/example.qml)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/grouped/grouped.pro (renamed from examples/declarative/extending/grouped/grouped.pro)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/grouped/grouped.qrc (renamed from examples/declarative/extending/grouped/grouped.qrc)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/grouped/main.cpp (renamed from examples/declarative/extending/grouped/main.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/grouped/person.cpp (renamed from examples/declarative/extending/signal/person.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/grouped/person.h (renamed from examples/declarative/extending/grouped/person.h)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/properties/birthdayparty.cpp (renamed from examples/declarative/extending/properties/birthdayparty.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/properties/birthdayparty.h (renamed from examples/declarative/extending/properties/birthdayparty.h)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/properties/example.qml (renamed from examples/declarative/extending/properties/example.qml)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/properties/main.cpp (renamed from examples/declarative/extending/properties/main.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/properties/person.cpp (renamed from examples/declarative/extending/properties/person.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/properties/person.h (renamed from examples/declarative/extending/properties/person.h)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/properties/properties.pro (renamed from examples/declarative/extending/properties/properties.pro)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/properties/properties.qrc (renamed from examples/declarative/extending/properties/properties.qrc)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/referenceexamples.pro (renamed from examples/declarative/extending/extending.pro)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/referenceexamples.qmlproject (renamed from examples/declarative/tvtennis/tvtennis.qmlproject)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/signal/birthdayparty.cpp (renamed from examples/declarative/extending/signal/birthdayparty.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/signal/birthdayparty.h (renamed from examples/declarative/extending/signal/birthdayparty.h)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/signal/example.qml (renamed from examples/declarative/extending/signal/example.qml)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/signal/main.cpp (renamed from examples/declarative/extending/signal/main.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/signal/person.cpp (renamed from examples/declarative/extending/grouped/person.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/signal/person.h (renamed from examples/declarative/extending/signal/person.h)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/signal/signal.pro (renamed from examples/declarative/extending/signal/signal.pro)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/signal/signal.qrc (renamed from examples/declarative/extending/signal/signal.qrc)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/valuesource/birthdayparty.cpp (renamed from examples/declarative/extending/valuesource/birthdayparty.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/valuesource/birthdayparty.h (renamed from examples/declarative/extending/valuesource/birthdayparty.h)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/valuesource/example.qml (renamed from examples/declarative/extending/valuesource/example.qml)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/valuesource/happybirthdaysong.cpp (renamed from examples/declarative/extending/valuesource/happybirthdaysong.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/valuesource/happybirthdaysong.h (renamed from examples/declarative/extending/valuesource/happybirthdaysong.h)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/valuesource/main.cpp (renamed from examples/declarative/extending/valuesource/main.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/valuesource/person.cpp (renamed from examples/declarative/extending/attached/person.cpp)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/valuesource/person.h (renamed from examples/declarative/extending/attached/person.h)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/valuesource/valuesource.pro (renamed from examples/declarative/extending/valuesource/valuesource.pro)0
-rw-r--r--examples/declarative/cppextensions/referenceexamples/valuesource/valuesource.qrc (renamed from examples/declarative/extending/valuesource/valuesource.qrc)0
-rw-r--r--examples/declarative/declarative.pro59
-rw-r--r--examples/declarative/fillmode/content/QtLogo.qml30
-rw-r--r--examples/declarative/fillmode/content/qt-logo.pngbin5149 -> 0 bytes
-rw-r--r--examples/declarative/fillmode/fillmode.qml22
-rw-r--r--examples/declarative/i18n/i18n.qmlproject (renamed from examples/declarative/tic-tac-toe/tic-tac-toe.qmlproject)0
-rw-r--r--examples/declarative/imageelements/borderimage/borderimage.qml (renamed from examples/declarative/border-image/border-image.qml)0
-rw-r--r--examples/declarative/imageelements/borderimage/borderimage.qmlproject (renamed from examples/declarative/tabwidget/tabwidget.qmlproject)0
-rw-r--r--examples/declarative/imageelements/borderimage/content/MyBorderImage.qml (renamed from examples/declarative/border-image/content/MyBorderImage.qml)0
-rw-r--r--examples/declarative/imageelements/borderimage/content/ShadowRectangle.qml (renamed from examples/declarative/border-image/content/ShadowRectangle.qml)0
-rw-r--r--examples/declarative/imageelements/borderimage/content/bw.png (renamed from examples/declarative/border-image/content/bw.png)bin1357 -> 1357 bytes
-rw-r--r--examples/declarative/imageelements/borderimage/content/colors-round.sci (renamed from examples/declarative/border-image/content/colors-round.sci)0
-rw-r--r--examples/declarative/imageelements/borderimage/content/colors-stretch.sci (renamed from examples/declarative/border-image/content/colors-stretch.sci)0
-rw-r--r--examples/declarative/imageelements/borderimage/content/colors.png (renamed from examples/declarative/border-image/content/colors.png)bin1655 -> 1655 bytes
-rw-r--r--examples/declarative/imageelements/borderimage/content/shadow.png (renamed from examples/declarative/border-image/content/shadow.png)bin588 -> 588 bytes
-rw-r--r--examples/declarative/imageelements/borderimage/shadows.qml (renamed from examples/declarative/border-image/shadows.qml)0
-rw-r--r--examples/declarative/imageelements/image/face_fit.qml (renamed from examples/declarative/aspectratio/face_fit.qml)0
-rw-r--r--examples/declarative/imageelements/image/face_fit_animated.qml (renamed from examples/declarative/aspectratio/face_fit_animated.qml)0
-rw-r--r--examples/declarative/imageelements/image/image.qmlproject (renamed from examples/declarative/sql/sql.qmlproject)0
-rw-r--r--examples/declarative/imageelements/image/pics/face.png (renamed from examples/declarative/aspectratio/pics/face.png)bin15408 -> 15408 bytes
-rw-r--r--examples/declarative/imageelements/image/scale_and_crop.qml (renamed from examples/declarative/aspectratio/scale_and_crop.qml)0
-rw-r--r--examples/declarative/imageelements/image/scale_and_crop_simple.qml (renamed from examples/declarative/aspectratio/scale_and_crop_simple.qml)0
-rw-r--r--examples/declarative/imageelements/image/scale_and_sidecrop.qml (renamed from examples/declarative/aspectratio/scale_and_sidecrop.qml)0
-rw-r--r--examples/declarative/imageelements/image/scale_to_fit.qml (renamed from examples/declarative/aspectratio/scale_to_fit.qml)0
-rw-r--r--examples/declarative/imageelements/image/scale_to_fit_simple.qml (renamed from examples/declarative/aspectratio/scale_to_fit_simple.qml)0
-rw-r--r--examples/declarative/imageelements/imageelements.qmlproject (renamed from examples/declarative/spinner/spinner.qmlproject)0
-rw-r--r--examples/declarative/images/content/lemonade.jpgbin6645 -> 0 bytes
-rw-r--r--examples/declarative/images/images.qml72
-rw-r--r--examples/declarative/keyinteraction/focus/Core/ContextMenu.qml (renamed from examples/declarative/focus/Core/ContextMenu.qml)0
-rw-r--r--examples/declarative/keyinteraction/focus/Core/GridMenu.qml (renamed from examples/declarative/focus/Core/GridMenu.qml)0
-rw-r--r--examples/declarative/keyinteraction/focus/Core/ListViewDelegate.qml (renamed from examples/declarative/focus/Core/ListViewDelegate.qml)0
-rw-r--r--examples/declarative/keyinteraction/focus/Core/ListViews.qml (renamed from examples/declarative/focus/Core/ListViews.qml)0
-rw-r--r--examples/declarative/keyinteraction/focus/Core/images/arrow.png (renamed from examples/declarative/focus/Core/images/arrow.png)bin583 -> 583 bytes
-rw-r--r--examples/declarative/keyinteraction/focus/Core/images/qt-logo.png (renamed from examples/declarative/focus/Core/images/qt-logo.png)bin5149 -> 5149 bytes
-rw-r--r--examples/declarative/keyinteraction/focus/Core/qmldir (renamed from examples/declarative/focus/Core/qmldir)0
-rw-r--r--examples/declarative/keyinteraction/focus/focus.qml (renamed from examples/declarative/focus/focus.qml)0
-rw-r--r--examples/declarative/keyinteraction/focus/focus.qmlproject (renamed from examples/declarative/focus/focus.qmlproject)0
-rw-r--r--examples/declarative/keyinteraction/keyinteraction.qmlproject (renamed from examples/declarative/slideswitch/slideswitch.qmlproject)0
-rw-r--r--examples/declarative/modelviews/gridview/gridview-example.qml (renamed from examples/declarative/gridview/gridview-example.qml)0
-rw-r--r--examples/declarative/modelviews/gridview/gridview.qmlproject (renamed from examples/declarative/gridview/gridview.qmlproject)0
-rw-r--r--examples/declarative/modelviews/gridview/pics/AddressBook_48.png (renamed from examples/declarative/gridview/pics/AddressBook_48.png)bin3350 -> 3350 bytes
-rw-r--r--examples/declarative/modelviews/gridview/pics/AudioPlayer_48.png (renamed from examples/declarative/gridview/pics/AudioPlayer_48.png)bin3806 -> 3806 bytes
-rw-r--r--examples/declarative/modelviews/gridview/pics/Camera_48.png (renamed from examples/declarative/gridview/pics/Camera_48.png)bin3540 -> 3540 bytes
-rw-r--r--examples/declarative/modelviews/gridview/pics/DateBook_48.png (renamed from examples/declarative/gridview/pics/DateBook_48.png)bin2610 -> 2610 bytes
-rw-r--r--examples/declarative/modelviews/gridview/pics/EMail_48.png (renamed from examples/declarative/gridview/pics/EMail_48.png)bin3655 -> 3655 bytes
-rw-r--r--examples/declarative/modelviews/gridview/pics/TodoList_48.png (renamed from examples/declarative/gridview/pics/TodoList_48.png)bin3429 -> 3429 bytes
-rw-r--r--examples/declarative/modelviews/gridview/pics/VideoPlayer_48.png (renamed from examples/declarative/gridview/pics/VideoPlayer_48.png)bin4151 -> 4151 bytes
-rw-r--r--examples/declarative/modelviews/listview/content/ClickAutoRepeating.qml (renamed from examples/declarative/listview/content/ClickAutoRepeating.qml)0
-rw-r--r--examples/declarative/modelviews/listview/content/MediaButton.qml (renamed from examples/declarative/listview/content/MediaButton.qml)0
-rw-r--r--examples/declarative/modelviews/listview/content/pics/add.png (renamed from examples/declarative/listview/content/pics/add.png)bin1577 -> 1577 bytes
-rw-r--r--examples/declarative/modelviews/listview/content/pics/archive-insert.png (renamed from examples/declarative/listview/content/pics/archive-insert.png)bin896 -> 896 bytes
-rw-r--r--examples/declarative/modelviews/listview/content/pics/archive-remove.png (renamed from examples/declarative/listview/content/pics/archive-remove.png)bin1074 -> 1074 bytes
-rw-r--r--examples/declarative/modelviews/listview/content/pics/button-pressed.png (renamed from examples/declarative/listview/content/pics/button-pressed.png)bin571 -> 571 bytes
-rw-r--r--examples/declarative/modelviews/listview/content/pics/button.png (renamed from examples/declarative/listview/content/pics/button.png)bin564 -> 564 bytes
-rw-r--r--examples/declarative/modelviews/listview/content/pics/del.png (renamed from examples/declarative/listview/content/pics/del.png)bin1661 -> 1661 bytes
-rw-r--r--examples/declarative/modelviews/listview/content/pics/fruit-salad.jpg (renamed from examples/declarative/listview/content/pics/fruit-salad.jpg)bin17952 -> 17952 bytes
-rw-r--r--examples/declarative/modelviews/listview/content/pics/go-down.png (renamed from examples/declarative/listview/content/pics/go-down.png)bin892 -> 892 bytes
-rw-r--r--examples/declarative/modelviews/listview/content/pics/go-up.png (renamed from examples/declarative/listview/content/pics/go-up.png)bin929 -> 929 bytes
-rw-r--r--examples/declarative/modelviews/listview/content/pics/hamburger.jpg (renamed from examples/declarative/listview/content/pics/hamburger.jpg)bin8572 -> 8572 bytes
-rw-r--r--examples/declarative/modelviews/listview/content/pics/lemonade.jpg (renamed from examples/declarative/listview/content/pics/lemonade.jpg)bin6645 -> 6645 bytes
-rw-r--r--examples/declarative/modelviews/listview/content/pics/list-add.png (renamed from examples/declarative/listview/content/pics/list-add.png)bin907 -> 907 bytes
-rw-r--r--examples/declarative/modelviews/listview/content/pics/list-remove.png (renamed from examples/declarative/listview/content/pics/list-remove.png)bin498 -> 498 bytes
-rw-r--r--examples/declarative/modelviews/listview/content/pics/moreDown.png (renamed from examples/declarative/listview/content/pics/moreDown.png)bin217 -> 217 bytes
-rw-r--r--examples/declarative/modelviews/listview/content/pics/moreUp.png (renamed from examples/declarative/listview/content/pics/moreUp.png)bin212 -> 212 bytes
-rw-r--r--examples/declarative/modelviews/listview/content/pics/pancakes.jpg (renamed from examples/declarative/listview/content/pics/pancakes.jpg)bin9163 -> 9163 bytes
-rw-r--r--examples/declarative/modelviews/listview/content/pics/trash.png (renamed from examples/declarative/listview/content/pics/trash.png)bin989 -> 989 bytes
-rw-r--r--examples/declarative/modelviews/listview/content/pics/vegetable-soup.jpg (renamed from examples/declarative/listview/content/pics/vegetable-soup.jpg)bin8639 -> 8639 bytes
-rw-r--r--examples/declarative/modelviews/listview/dummydata/MyPetsModel.qml (renamed from examples/declarative/listview/dummydata/MyPetsModel.qml)0
-rw-r--r--examples/declarative/modelviews/listview/dummydata/Recipes.qml (renamed from examples/declarative/listview/dummydata/Recipes.qml)0
-rw-r--r--examples/declarative/modelviews/listview/dynamic.qml (renamed from examples/declarative/listview/dynamic.qml)2
-rw-r--r--examples/declarative/modelviews/listview/highlight.qml (renamed from examples/declarative/listview/highlight.qml)0
-rw-r--r--examples/declarative/modelviews/listview/itemlist.qml (renamed from examples/declarative/listview/itemlist.qml)0
-rw-r--r--examples/declarative/modelviews/listview/listview-example.qml (renamed from examples/declarative/listview/listview-example.qml)0
-rw-r--r--examples/declarative/modelviews/listview/listview.qmlproject (renamed from examples/declarative/listview/listview.qmlproject)0
-rw-r--r--examples/declarative/modelviews/listview/recipes.qml (renamed from examples/declarative/listview/recipes.qml)0
-rw-r--r--examples/declarative/modelviews/listview/sections.qml (renamed from examples/declarative/listview/sections.qml)0
-rw-r--r--examples/declarative/modelviews/modelviews.pro7
-rw-r--r--examples/declarative/modelviews/modelviews.qmlproject (renamed from examples/declarative/searchbox/searchbox.qmlproject)0
-rw-r--r--examples/declarative/modelviews/objectlistmodel/dataobject.cpp (renamed from examples/declarative/objectlistmodel/dataobject.cpp)0
-rw-r--r--examples/declarative/modelviews/objectlistmodel/dataobject.h (renamed from examples/declarative/objectlistmodel/dataobject.h)0
-rw-r--r--examples/declarative/modelviews/objectlistmodel/main.cpp (renamed from examples/declarative/objectlistmodel/main.cpp)0
-rw-r--r--examples/declarative/modelviews/objectlistmodel/objectlistmodel.pro (renamed from examples/declarative/objectlistmodel/objectlistmodel.pro)0
-rw-r--r--examples/declarative/modelviews/objectlistmodel/objectlistmodel.qmlproject (renamed from examples/declarative/objectlistmodel/objectlistmodel.qmlproject)0
-rw-r--r--examples/declarative/modelviews/objectlistmodel/objectlistmodel.qrc (renamed from examples/declarative/objectlistmodel/objectlistmodel.qrc)0
-rw-r--r--examples/declarative/modelviews/objectlistmodel/view.qml (renamed from examples/declarative/objectlistmodel/view.qml)0
-rw-r--r--examples/declarative/modelviews/package/Delegate.qml (renamed from examples/declarative/package/Delegate.qml)0
-rw-r--r--examples/declarative/modelviews/package/package.qmlproject (renamed from examples/declarative/package/package.qmlproject)0
-rw-r--r--examples/declarative/modelviews/package/view.qml (renamed from examples/declarative/package/view.qml)0
-rw-r--r--examples/declarative/modelviews/parallax/parallax.qml (renamed from examples/declarative/parallax/parallax.qml)4
-rw-r--r--examples/declarative/modelviews/parallax/parallax.qmlproject (renamed from examples/declarative/parallax/parallax.qmlproject)0
-rw-r--r--examples/declarative/modelviews/parallax/pics/background.jpg (renamed from examples/declarative/parallax/pics/background.jpg)bin209814 -> 209814 bytes
-rw-r--r--examples/declarative/modelviews/parallax/pics/face-smile.png (renamed from examples/declarative/dynamic/images/face-smile.png)bin15408 -> 15408 bytes
-rw-r--r--examples/declarative/modelviews/parallax/pics/home-page.svg (renamed from examples/declarative/parallax/pics/home-page.svg)0
-rw-r--r--examples/declarative/modelviews/parallax/pics/shadow.png (renamed from examples/declarative/animations/images/shadow.png)bin425 -> 425 bytes
-rw-r--r--examples/declarative/modelviews/parallax/pics/yast-joystick.png (renamed from examples/declarative/parallax/pics/yast-joystick.png)bin2723 -> 2723 bytes
-rw-r--r--examples/declarative/modelviews/parallax/pics/yast-wol.png (renamed from examples/declarative/parallax/pics/yast-wol.png)bin3769 -> 3769 bytes
-rw-r--r--examples/declarative/modelviews/parallax/qml/ParallaxView.qml (renamed from examples/declarative/parallax/qml/ParallaxView.qml)0
-rw-r--r--examples/declarative/modelviews/parallax/qml/Smiley.qml (renamed from examples/declarative/parallax/qml/Smiley.qml)0
-rw-r--r--examples/declarative/modelviews/stringlistmodel/main.cpp (renamed from examples/declarative/stringlistmodel/main.cpp)0
-rw-r--r--examples/declarative/modelviews/stringlistmodel/stringlistmodel.pro (renamed from examples/declarative/stringlistmodel/stringlistmodel.pro)0
-rw-r--r--examples/declarative/modelviews/stringlistmodel/stringlistmodel.qrc (renamed from examples/declarative/stringlistmodel/stringlistmodel.qrc)0
-rw-r--r--examples/declarative/modelviews/stringlistmodel/view.qml (renamed from examples/declarative/stringlistmodel/view.qml)0
-rw-r--r--examples/declarative/modelviews/webview/alerts.html (renamed from examples/declarative/webview/alerts.html)0
-rw-r--r--examples/declarative/modelviews/webview/alerts.qml (renamed from examples/declarative/webview/alerts.qml)0
-rw-r--r--examples/declarative/modelviews/webview/autosize.qml (renamed from examples/declarative/webview/autosize.qml)0
-rw-r--r--examples/declarative/modelviews/webview/content/FieldText.qml (renamed from examples/declarative/webview/content/FieldText.qml)0
-rw-r--r--examples/declarative/modelviews/webview/content/Mapping/Map.qml (renamed from examples/declarative/webview/content/Mapping/Map.qml)0
-rwxr-xr-xexamples/declarative/modelviews/webview/content/Mapping/map.html (renamed from examples/declarative/webview/content/Mapping/map.html)0
-rw-r--r--examples/declarative/modelviews/webview/content/SpinSquare.qml (renamed from examples/declarative/webview/content/SpinSquare.qml)0
-rw-r--r--examples/declarative/modelviews/webview/content/pics/cancel.png (renamed from examples/declarative/webview/content/pics/cancel.png)bin1038 -> 1038 bytes
-rw-r--r--examples/declarative/modelviews/webview/content/pics/ok.png (renamed from examples/declarative/webview/content/pics/ok.png)bin655 -> 655 bytes
-rw-r--r--examples/declarative/modelviews/webview/googleMaps.qml (renamed from examples/declarative/webview/googleMaps.qml)0
-rw-r--r--examples/declarative/modelviews/webview/inline-html.qml (renamed from examples/declarative/webview/inline-html.qml)0
-rw-r--r--examples/declarative/modelviews/webview/newwindows.html (renamed from examples/declarative/webview/newwindows.html)0
-rw-r--r--examples/declarative/modelviews/webview/newwindows.qml (renamed from examples/declarative/webview/newwindows.qml)0
-rw-r--r--examples/declarative/modelviews/webview/transparent.qml (renamed from examples/declarative/webview/transparent.qml)0
-rw-r--r--examples/declarative/modelviews/webview/webview.qmlproject (renamed from examples/declarative/scrollbar/scrollbar.qmlproject)0
-rw-r--r--examples/declarative/positioners/Button.qml (renamed from examples/declarative/layouts/positioners/Button.qml)0
-rw-r--r--examples/declarative/positioners/add.png (renamed from examples/declarative/layouts/positioners/add.png)bin1577 -> 1577 bytes
-rw-r--r--examples/declarative/positioners/del.png (renamed from examples/declarative/layouts/positioners/del.png)bin1661 -> 1661 bytes
-rw-r--r--examples/declarative/positioners/positioners.qml (renamed from examples/declarative/layouts/positioners/positioners.qml)0
-rw-r--r--examples/declarative/positioners/positioners.qmlproject (renamed from examples/declarative/layouts/positioners/positioners.qmlproject)0
-rw-r--r--examples/declarative/positioners/positioners.qmlproject.user (renamed from examples/declarative/layouts/positioners/positioners.qmlproject.user)0
-rw-r--r--examples/declarative/sqllocalstorage/hello.qml (renamed from examples/declarative/sql/hello.qml)0
-rw-r--r--examples/declarative/sqllocalstorage/sqllocalstorage.qmlproject (renamed from examples/declarative/progressbar/progressbar.qmlproject)0
-rw-r--r--examples/declarative/text/fonts/availableFonts.qml (renamed from examples/declarative/fonts/availableFonts.qml)0
-rw-r--r--examples/declarative/text/fonts/banner.qml (renamed from examples/declarative/fonts/banner.qml)0
-rw-r--r--examples/declarative/text/fonts/fonts.qml (renamed from examples/declarative/fonts/fonts.qml)0
-rw-r--r--examples/declarative/text/fonts/fonts.qmlproject (renamed from examples/declarative/fonts/fonts.qmlproject)0
-rw-r--r--examples/declarative/text/fonts/fonts/tarzeau_ocr_a.ttf (renamed from examples/declarative/fonts/fonts/tarzeau_ocr_a.ttf)bin24544 -> 24544 bytes
-rw-r--r--examples/declarative/text/fonts/hello.qml (renamed from examples/declarative/fonts/hello.qml)0
-rw-r--r--examples/declarative/text/text.qmlproject (renamed from examples/declarative/mousearea/mousearea.qmlproject)0
-rw-r--r--examples/declarative/threading/threadedlistmodel/dataloader.js (renamed from examples/declarative/listmodel-threaded/dataloader.js)0
-rw-r--r--examples/declarative/threading/threadedlistmodel/threadedlistmodel.qmlproject (renamed from examples/declarative/listmodel-threaded/listmodel-threaded.qmlproject)0
-rw-r--r--examples/declarative/threading/threadedlistmodel/timedisplay.qml (renamed from examples/declarative/listmodel-threaded/timedisplay.qml)0
-rw-r--r--examples/declarative/threading/threading.qmlproject (renamed from examples/declarative/images/images.qmlproject)0
-rw-r--r--examples/declarative/threading/workerscript/workerscript.js (renamed from examples/declarative/workerscript/workerscript.js)0
-rw-r--r--examples/declarative/threading/workerscript/workerscript.qml (renamed from examples/declarative/workerscript/workerscript.qml)0
-rw-r--r--examples/declarative/threading/workerscript/workerscript.qmlproject (renamed from examples/declarative/gestures/gestures.qmlproject)0
-rw-r--r--examples/declarative/touchinteraction/gestures/experimental-gestures.qml (renamed from examples/declarative/gestures/experimental-gestures.qml)0
-rw-r--r--examples/declarative/touchinteraction/gestures/gestures.qmlproject (renamed from examples/declarative/flipable/flipable.qmlproject)0
-rw-r--r--examples/declarative/touchinteraction/mousearea/mouse.qml (renamed from examples/declarative/mousearea/mouse.qml)0
-rw-r--r--examples/declarative/touchinteraction/mousearea/mousearea.qmlproject (renamed from examples/declarative/fillmode/fillmode.qmlproject)0
-rw-r--r--examples/declarative/touchinteraction/touchinteraction.qmlproject (renamed from examples/declarative/extending/extending.qmlproject)0
-rw-r--r--examples/declarative/toys/clocks/clocks.qml (renamed from examples/declarative/clocks/clocks.qml)0
-rw-r--r--examples/declarative/toys/clocks/clocks.qmlproject (renamed from examples/declarative/clocks/clocks.qmlproject)0
-rw-r--r--examples/declarative/toys/clocks/content/Clock.qml (renamed from examples/declarative/clocks/content/Clock.qml)0
-rw-r--r--examples/declarative/toys/clocks/content/background.png (renamed from examples/declarative/clocks/content/background.png)bin46895 -> 46895 bytes
-rwxr-xr-xexamples/declarative/toys/clocks/content/center.png (renamed from examples/declarative/clocks/content/center.png)bin765 -> 765 bytes
-rwxr-xr-xexamples/declarative/toys/clocks/content/clock-night.png (renamed from examples/declarative/clocks/content/clock-night.png)bin23359 -> 23359 bytes
-rwxr-xr-xexamples/declarative/toys/clocks/content/clock.png (renamed from examples/declarative/clocks/content/clock.png)bin20653 -> 20653 bytes
-rwxr-xr-xexamples/declarative/toys/clocks/content/hour.png (renamed from examples/declarative/clocks/content/hour.png)bin625 -> 625 bytes
-rwxr-xr-xexamples/declarative/toys/clocks/content/minute.png (renamed from examples/declarative/clocks/content/minute.png)bin625 -> 625 bytes
-rwxr-xr-xexamples/declarative/toys/clocks/content/second.png (renamed from examples/declarative/clocks/content/second.png)bin303 -> 303 bytes
-rw-r--r--examples/declarative/toys/dial/content/Dial.qml (renamed from examples/declarative/dial/content/Dial.qml)0
-rw-r--r--examples/declarative/toys/dial/content/background.png (renamed from examples/declarative/dial/content/background.png)bin35876 -> 35876 bytes
-rw-r--r--examples/declarative/toys/dial/content/needle.png (renamed from examples/declarative/dial/content/needle.png)bin342 -> 342 bytes
-rw-r--r--examples/declarative/toys/dial/content/needle_shadow.png (renamed from examples/declarative/dial/content/needle_shadow.png)bin632 -> 632 bytes
-rw-r--r--examples/declarative/toys/dial/content/overlay.png (renamed from examples/declarative/dial/content/overlay.png)bin3564 -> 3564 bytes
-rw-r--r--examples/declarative/toys/dial/dial-example.qml (renamed from examples/declarative/dial/dial-example.qml)0
-rw-r--r--examples/declarative/toys/dial/dial.qmlproject (renamed from examples/declarative/dial/dial.qmlproject)0
-rw-r--r--examples/declarative/toys/dynamic/dynamic.qml (renamed from examples/declarative/dynamic/dynamic.qml)0
-rw-r--r--examples/declarative/toys/dynamic/dynamic.qmlproject (renamed from examples/declarative/dynamic/dynamic.qmlproject)0
-rw-r--r--examples/declarative/toys/dynamic/images/NOTE (renamed from examples/declarative/dynamic/images/NOTE)0
-rw-r--r--examples/declarative/toys/dynamic/images/face-smile.png (renamed from examples/declarative/animations/images/face-smile.png)bin15408 -> 15408 bytes
-rw-r--r--examples/declarative/toys/dynamic/images/moon.png (renamed from examples/declarative/dynamic/images/moon.png)bin1757 -> 1757 bytes
-rw-r--r--examples/declarative/toys/dynamic/images/rabbit_brown.png (renamed from examples/declarative/dynamic/images/rabbit_brown.png)bin1245 -> 1245 bytes
-rw-r--r--examples/declarative/toys/dynamic/images/rabbit_bw.png (renamed from examples/declarative/dynamic/images/rabbit_bw.png)bin1759 -> 1759 bytes
-rw-r--r--examples/declarative/toys/dynamic/images/star.png (renamed from examples/declarative/animations/images/star.png)bin349 -> 349 bytes
-rw-r--r--examples/declarative/toys/dynamic/images/sun.png (renamed from examples/declarative/animations/images/sun.png)bin8153 -> 8153 bytes
-rw-r--r--examples/declarative/toys/dynamic/images/tree_s.png (renamed from examples/declarative/dynamic/images/tree_s.png)bin3406 -> 3406 bytes
-rw-r--r--examples/declarative/toys/dynamic/qml/Button.qml (renamed from examples/declarative/dynamic/qml/Button.qml)0
-rw-r--r--examples/declarative/toys/dynamic/qml/PaletteItem.qml (renamed from examples/declarative/dynamic/qml/PaletteItem.qml)0
-rw-r--r--examples/declarative/toys/dynamic/qml/PerspectiveItem.qml (renamed from examples/declarative/dynamic/qml/PerspectiveItem.qml)0
-rw-r--r--examples/declarative/toys/dynamic/qml/Sun.qml (renamed from examples/declarative/dynamic/qml/Sun.qml)0
-rw-r--r--examples/declarative/toys/dynamic/qml/itemCreation.js (renamed from examples/declarative/dynamic/qml/itemCreation.js)0
-rw-r--r--examples/declarative/toys/tic-tac-toe/content/Button.qml (renamed from examples/declarative/tic-tac-toe/content/Button.qml)0
-rw-r--r--examples/declarative/toys/tic-tac-toe/content/TicTac.qml (renamed from examples/declarative/tic-tac-toe/content/TicTac.qml)0
-rw-r--r--examples/declarative/toys/tic-tac-toe/content/pics/board.png (renamed from examples/declarative/tic-tac-toe/content/pics/board.png)bin12258 -> 12258 bytes
-rw-r--r--examples/declarative/toys/tic-tac-toe/content/pics/o.png (renamed from examples/declarative/tic-tac-toe/content/pics/o.png)bin1470 -> 1470 bytes
-rw-r--r--examples/declarative/toys/tic-tac-toe/content/pics/x.png (renamed from examples/declarative/tic-tac-toe/content/pics/x.png)bin1331 -> 1331 bytes
-rw-r--r--examples/declarative/toys/tic-tac-toe/content/tic-tac-toe.js (renamed from examples/declarative/tic-tac-toe/content/tic-tac-toe.js)0
-rw-r--r--examples/declarative/toys/tic-tac-toe/tic-tac-toe.qml (renamed from examples/declarative/tic-tac-toe/tic-tac-toe.qml)0
-rw-r--r--examples/declarative/toys/tic-tac-toe/tic-tac-toe.qmlproject (renamed from examples/declarative/connections/connections.qmlproject)0
-rw-r--r--examples/declarative/toys/toys.qmlproject (renamed from examples/declarative/border-image/border-image.qmlproject)0
-rw-r--r--examples/declarative/toys/tvtennis/tvtennis.qml (renamed from examples/declarative/tvtennis/tvtennis.qml)0
-rw-r--r--examples/declarative/toys/tvtennis/tvtennis.qmlproject (renamed from examples/declarative/aspectratio/aspectratio.qmlproject)0
-rw-r--r--examples/declarative/toys/velocity/Day.qml (renamed from examples/declarative/velocity/Day.qml)0
-rw-r--r--examples/declarative/toys/velocity/cork.jpg (renamed from examples/declarative/velocity/cork.jpg)bin149337 -> 149337 bytes
-rw-r--r--examples/declarative/toys/velocity/note-yellow.png (renamed from examples/declarative/velocity/note-yellow.png)bin54559 -> 54559 bytes
-rw-r--r--examples/declarative/toys/velocity/tack.png (renamed from examples/declarative/velocity/tack.png)bin7282 -> 7282 bytes
-rw-r--r--examples/declarative/toys/velocity/velocity.qml (renamed from examples/declarative/velocity/velocity.qml)0
-rw-r--r--examples/declarative/toys/velocity/velocity.qmlproject (renamed from examples/declarative/animations/animations.qmlproject)0
-rw-r--r--examples/declarative/tutorials/extending/extending.pro9
-rw-r--r--examples/declarative/tutorials/tutorials.pro5
-rw-r--r--examples/declarative/ui-components/flipable/content/5_heart.png (renamed from examples/declarative/flipable/content/5_heart.png)bin3872 -> 3872 bytes
-rw-r--r--examples/declarative/ui-components/flipable/content/9_club.png (renamed from examples/declarative/flipable/content/9_club.png)bin6135 -> 6135 bytes
-rw-r--r--examples/declarative/ui-components/flipable/content/Card.qml (renamed from examples/declarative/flipable/content/Card.qml)0
-rw-r--r--examples/declarative/ui-components/flipable/content/back.png (renamed from examples/declarative/flipable/content/back.png)bin1418 -> 1418 bytes
-rw-r--r--examples/declarative/ui-components/flipable/flipable-example.qml (renamed from examples/declarative/flipable/flipable-example.qml)0
-rw-r--r--examples/declarative/ui-components/flipable/flipable.qmlproject16
-rw-r--r--examples/declarative/ui-components/progressbar/content/ProgressBar.qml (renamed from examples/declarative/progressbar/content/ProgressBar.qml)0
-rw-r--r--examples/declarative/ui-components/progressbar/content/background.png (renamed from examples/declarative/progressbar/content/background.png)bin426 -> 426 bytes
-rw-r--r--examples/declarative/ui-components/progressbar/progressbar.qmlproject16
-rw-r--r--examples/declarative/ui-components/progressbar/progressbars.qml (renamed from examples/declarative/progressbar/progressbars.qml)0
-rw-r--r--examples/declarative/ui-components/scrollbar/ScrollBar.qml (renamed from examples/declarative/scrollbar/ScrollBar.qml)0
-rw-r--r--examples/declarative/ui-components/scrollbar/display.qml (renamed from examples/declarative/scrollbar/display.qml)0
-rw-r--r--examples/declarative/ui-components/scrollbar/pics/niagara_falls.jpg (renamed from examples/declarative/scrollbar/pics/niagara_falls.jpg)bin604121 -> 604121 bytes
-rw-r--r--examples/declarative/ui-components/scrollbar/scrollbar.qmlproject16
-rw-r--r--examples/declarative/ui-components/searchbox/SearchBox.qml (renamed from examples/declarative/searchbox/SearchBox.qml)0
-rw-r--r--examples/declarative/ui-components/searchbox/images/edit-clear-locationbar-rtl.png (renamed from examples/declarative/searchbox/images/edit-clear-locationbar-rtl.png)bin429 -> 429 bytes
-rw-r--r--examples/declarative/ui-components/searchbox/images/lineedit-bg-focus.png (renamed from examples/declarative/searchbox/images/lineedit-bg-focus.png)bin526 -> 526 bytes
-rw-r--r--examples/declarative/ui-components/searchbox/images/lineedit-bg.png (renamed from examples/declarative/searchbox/images/lineedit-bg.png)bin426 -> 426 bytes
-rw-r--r--examples/declarative/ui-components/searchbox/main.qml (renamed from examples/declarative/searchbox/main.qml)0
-rw-r--r--examples/declarative/ui-components/searchbox/searchbox.qmlproject16
-rw-r--r--examples/declarative/ui-components/slideswitch/content/Switch.qml (renamed from examples/declarative/slideswitch/content/Switch.qml)0
-rw-r--r--examples/declarative/ui-components/slideswitch/content/background.svg (renamed from examples/declarative/slideswitch/content/background.svg)0
-rw-r--r--examples/declarative/ui-components/slideswitch/content/knob.svg (renamed from examples/declarative/slideswitch/content/knob.svg)0
-rw-r--r--examples/declarative/ui-components/slideswitch/slideswitch.qml (renamed from examples/declarative/slideswitch/slideswitch.qml)0
-rw-r--r--examples/declarative/ui-components/slideswitch/slideswitch.qmlproject16
-rw-r--r--examples/declarative/ui-components/spinner/content/Spinner.qml (renamed from examples/declarative/spinner/content/Spinner.qml)0
-rw-r--r--examples/declarative/ui-components/spinner/content/spinner-bg.png (renamed from examples/declarative/spinner/content/spinner-bg.png)bin345 -> 345 bytes
-rw-r--r--examples/declarative/ui-components/spinner/content/spinner-select.png (renamed from examples/declarative/spinner/content/spinner-select.png)bin320 -> 320 bytes
-rw-r--r--examples/declarative/ui-components/spinner/main.qml (renamed from examples/declarative/spinner/main.qml)0
-rw-r--r--examples/declarative/ui-components/spinner/spinner.qmlproject16
-rw-r--r--examples/declarative/ui-components/tabwidget/TabWidget.qml (renamed from examples/declarative/tabwidget/TabWidget.qml)0
-rw-r--r--examples/declarative/ui-components/tabwidget/tab.png (renamed from examples/declarative/tabwidget/tab.png)bin507 -> 507 bytes
-rw-r--r--examples/declarative/ui-components/tabwidget/tabs.qml (renamed from examples/declarative/tabwidget/tabs.qml)0
-rw-r--r--examples/declarative/ui-components/tabwidget/tabwidget.qmlproject16
-rw-r--r--examples/declarative/ui-components/ui-components.qmlproject16
-rw-r--r--examples/declarative/xml/xml.qmlproject16
-rw-r--r--examples/declarative/xml/xmlhttprequest/test.qml (renamed from examples/declarative/xmlhttprequest/test.qml)0
-rw-r--r--examples/declarative/xml/xmlhttprequest/test.xml (renamed from examples/declarative/xmlhttprequest/test.xml)0
-rw-r--r--examples/declarative/xml/xmlhttprequest/xmlhttprequest.qmlproject16
-rw-r--r--examples/declarative/xmldata/daringfireball.qml47
-rw-r--r--examples/declarative/xmldata/yahoonews.qml83
-rw-r--r--src/declarative/graphicsitems/qdeclarativeborderimage.cpp4
-rw-r--r--src/declarative/graphicsitems/qdeclarativeflickable.cpp2
-rw-r--r--src/declarative/graphicsitems/qdeclarativegridview.cpp7
-rw-r--r--src/declarative/graphicsitems/qdeclarativegridview_p.h4
-rw-r--r--src/declarative/graphicsitems/qdeclarativeimage.cpp1
-rw-r--r--src/declarative/graphicsitems/qdeclarativeitem.cpp200
-rw-r--r--src/declarative/graphicsitems/qdeclarativeitem.h4
-rw-r--r--src/declarative/graphicsitems/qdeclarativeitem_p.h37
-rw-r--r--src/declarative/graphicsitems/qdeclarativelistview.cpp9
-rw-r--r--src/declarative/graphicsitems/qdeclarativelistview_p.h2
-rw-r--r--src/declarative/graphicsitems/qdeclarativeloader.cpp22
-rw-r--r--src/declarative/graphicsitems/qdeclarativeloader_p.h3
-rw-r--r--src/declarative/graphicsitems/qdeclarativepositioners.cpp60
-rw-r--r--src/declarative/graphicsitems/qdeclarativepositioners_p_p.h5
-rw-r--r--src/declarative/graphicsitems/qdeclarativetextedit.cpp13
-rw-r--r--src/declarative/graphicsitems/qdeclarativetextinput.cpp9
-rw-r--r--src/declarative/qml/qdeclarativebinding.cpp8
-rw-r--r--src/declarative/qml/qdeclarativecompiledbindings.cpp27
-rw-r--r--src/declarative/qml/qdeclarativeengine.cpp4
-rw-r--r--src/declarative/qml/qdeclarativeextensionplugin.cpp2
-rw-r--r--src/declarative/util/qdeclarativelistmodel.cpp9
-rw-r--r--src/declarative/util/qdeclarativepackage.cpp4
-rw-r--r--src/declarative/util/qdeclarativexmllistmodel.cpp2
-rw-r--r--tests/auto/declarative/examples/tst_examples.cpp5
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/qtbug_10696.qml26
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp9
-rw-r--r--tests/auto/declarative/qdeclarativeitem/data/keyspriority.qml9
-rw-r--r--tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp131
-rw-r--r--tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp14
-rw-r--r--tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp9
-rw-r--r--tests/auto/declarative/qdeclarativepositioners/tst_qdeclarativepositioners.cpp27
429 files changed, 1254 insertions, 673 deletions
diff --git a/demos/declarative/rssnews/content/BusyIndicator.qml b/demos/declarative/rssnews/content/BusyIndicator.qml
new file mode 100644
index 0000000..4be59a8
--- /dev/null
+++ b/demos/declarative/rssnews/content/BusyIndicator.qml
@@ -0,0 +1,12 @@
+import Qt 4.7
+
+Image {
+ id: container
+ property bool on: false
+
+ source: "images/busy.png"; visible: container.on
+
+ NumberAnimation on rotation {
+ running: container.on; from: 0; to: 360; loops: Animation.Infinite; duration: 1200
+ }
+}
diff --git a/demos/declarative/rssnews/content/CategoryDelegate.qml b/demos/declarative/rssnews/content/CategoryDelegate.qml
new file mode 100644
index 0000000..1400c36
--- /dev/null
+++ b/demos/declarative/rssnews/content/CategoryDelegate.qml
@@ -0,0 +1,41 @@
+import Qt 4.7
+
+Item {
+ id: delegate
+
+ width: delegate.ListView.view.width; height: 60
+
+ Text {
+ text: name
+ color: delegate.ListView.isCurrentItem ? "white" : "black"
+ font { family: "Helvetica"; pixelSize: 16; bold: true }
+ anchors {
+ left: parent.left; leftMargin: 15
+ verticalCenter: parent.verticalCenter
+ }
+ }
+
+ BusyIndicator {
+ scale: 0.6
+ on: delegate.ListView.isCurrentItem && window.loading
+ anchors { right: parent.right; rightMargin: 10; verticalCenter: parent.verticalCenter }
+ }
+
+ Rectangle {
+ width: delegate.width; height: 1; color: "#cccccc"
+ anchors.bottom: delegate.bottom
+ visible: delegate.ListView.isCurrentItem ? false : true
+ }
+ Rectangle {
+ width: delegate.width; height: 1; color: "white"
+ visible: delegate.ListView.isCurrentItem ? false : true
+ }
+
+ MouseArea {
+ anchors.fill: delegate
+ onClicked: {
+ delegate.ListView.view.currentIndex = index
+ window.currentFeed = feed
+ }
+ }
+}
diff --git a/demos/declarative/rssnews/content/NewsDelegate.qml b/demos/declarative/rssnews/content/NewsDelegate.qml
new file mode 100644
index 0000000..0d03880
--- /dev/null
+++ b/demos/declarative/rssnews/content/NewsDelegate.qml
@@ -0,0 +1,29 @@
+import Qt 4.7
+
+Item {
+ id: delegate
+ height: childrenRect.height + 20
+ width: delegate.ListView.view.width
+
+ Column {
+ x: 20; y: 20
+ width: parent.width - 40
+
+ Text {
+ id: titleText
+ text: title; width: parent.width; wrapMode: Text.WordWrap
+ font { bold: true; family: "Helvetica"; pointSize: 16 }
+ }
+
+ Text {
+ id: descriptionText
+ width: parent.width; text: description
+ wrapMode: Text.WordWrap; font.family: "Helvetica"
+ }
+ }
+
+ Rectangle {
+ width: parent.width; height: 1; color: "#cccccc"
+ anchors.bottom: parent.bottom
+ }
+}
diff --git a/demos/declarative/rssnews/content/RssFeeds.qml b/demos/declarative/rssnews/content/RssFeeds.qml
new file mode 100644
index 0000000..21e59fe
--- /dev/null
+++ b/demos/declarative/rssnews/content/RssFeeds.qml
@@ -0,0 +1,18 @@
+import Qt 4.7
+
+ListModel {
+ id: rssFeeds
+
+ ListElement { name: "Top Stories"; feed: "rss.news.yahoo.com/rss/topstories" }
+ ListElement { name: "World"; feed: "rss.news.yahoo.com/rss/world" }
+ ListElement { name: "Europe"; feed: "rss.news.yahoo.com/rss/europe" }
+ ListElement { name: "Oceania"; feed: "rss.news.yahoo.com/rss/oceania" }
+ ListElement { name: "U.S. National"; feed: "rss.news.yahoo.com/rss/us" }
+ ListElement { name: "Politics"; feed: "rss.news.yahoo.com/rss/politics" }
+ ListElement { name: "Business"; feed: "rss.news.yahoo.com/rss/business" }
+ ListElement { name: "Technology"; feed: "rss.news.yahoo.com/rss/tech" }
+ ListElement { name: "Entertainment"; feed: "rss.news.yahoo.com/rss/entertainment" }
+ ListElement { name: "Health"; feed: "rss.news.yahoo.com/rss/health" }
+ ListElement { name: "Science"; feed: "rss.news.yahoo.com/rss/science" }
+ ListElement { name: "Sports"; feed: "rss.news.yahoo.com/rss/sports" }
+}
diff --git a/demos/declarative/rssnews/content/ScrollBar.qml b/demos/declarative/rssnews/content/ScrollBar.qml
new file mode 100644
index 0000000..d0b08dd
--- /dev/null
+++ b/demos/declarative/rssnews/content/ScrollBar.qml
@@ -0,0 +1,66 @@
+import Qt 4.7
+
+Item {
+ id: container
+
+ property variant scrollArea
+ property variant orientation: Qt.Vertical
+
+ opacity: 0
+
+ function position()
+ {
+ var ny = 0;
+ if (container.orientation == Qt.Vertical)
+ ny = scrollArea.visibleArea.yPosition * container.height;
+ else
+ ny = scrollArea.visibleArea.xPosition * container.width;
+ if (ny > 2) return ny; else return 2;
+ }
+
+ function size()
+ {
+ var nh, ny;
+
+ if (container.orientation == Qt.Vertical)
+ nh = scrollArea.visibleArea.heightRatio * container.height;
+ else
+ nh = scrollArea.visibleArea.widthRatio * container.width;
+
+ if (container.orientation == Qt.Vertical)
+ ny = scrollArea.visibleArea.yPosition * container.height;
+ else
+ ny = scrollArea.visibleArea.xPosition * container.width;
+
+ if (ny > 3) {
+ var t;
+ if (container.orientation == Qt.Vertical)
+ t = Math.ceil(container.height - 3 - ny);
+ else
+ t = Math.ceil(container.width - 3 - ny);
+ if (nh > t) return t; else return nh;
+ } else return nh + ny;
+ }
+
+ Rectangle { anchors.fill: parent; color: "Black"; opacity: 0.3 }
+
+ BorderImage {
+ source: "images/scrollbar.png"
+ border { left: 1; right: 1; top: 1; bottom: 1 }
+ x: container.orientation == Qt.Vertical ? 2 : position()
+ width: container.orientation == Qt.Vertical ? container.width - 4 : size()
+ y: container.orientation == Qt.Vertical ? position() : 2
+ height: container.orientation == Qt.Vertical ? size() : container.height - 4
+ }
+
+ states: State {
+ name: "visible"
+ when: container.orientation == Qt.Vertical ? scrollArea.movingVertically : scrollArea.movingHorizontally
+ PropertyChanges { target: container; opacity: 1.0 }
+ }
+
+ transitions: Transition {
+ from: "visible"; to: ""
+ NumberAnimation { properties: "opacity"; duration: 600 }
+ }
+}
diff --git a/demos/declarative/rssnews/content/images/busy.png b/demos/declarative/rssnews/content/images/busy.png
new file mode 100644
index 0000000..664c2b1
--- /dev/null
+++ b/demos/declarative/rssnews/content/images/busy.png
Binary files differ
diff --git a/demos/declarative/rssnews/content/images/scrollbar.png b/demos/declarative/rssnews/content/images/scrollbar.png
new file mode 100644
index 0000000..0228dcf
--- /dev/null
+++ b/demos/declarative/rssnews/content/images/scrollbar.png
Binary files differ
diff --git a/demos/declarative/rssnews/rssnews.qml b/demos/declarative/rssnews/rssnews.qml
new file mode 100644
index 0000000..29a530f
--- /dev/null
+++ b/demos/declarative/rssnews/rssnews.qml
@@ -0,0 +1,52 @@
+import Qt 4.7
+import "content"
+
+Rectangle {
+ id: window
+ width: 800; height: 480
+
+ property string currentFeed: "rss.news.yahoo.com/rss/topstories"
+ property bool loading: feedModel.status == XmlListModel.Loading
+
+ RssFeeds { id: rssFeeds }
+
+ XmlListModel {
+ id: feedModel
+ source: "http://" + window.currentFeed
+ query: "/rss/channel/item"
+
+ XmlRole { name: "title"; query: "title/string()" }
+ XmlRole { name: "link"; query: "link/string()" }
+ XmlRole { name: "description"; query: "description/string()" }
+ }
+
+ Row {
+ Rectangle {
+ width: 220; height: window.height
+ color: "#efefef"
+
+ ListView {
+ focus: true
+ id: categories
+ anchors.fill: parent
+ model: rssFeeds
+ delegate: CategoryDelegate {}
+ highlight: Rectangle { color: "steelblue" }
+ highlightMoveSpeed: 9999999
+ }
+ ScrollBar {
+ scrollArea: categories; height: categories.height; width: 8
+ anchors.right: categories.right
+ }
+ }
+ ListView {
+ id: list
+ width: window.width - 220; height: window.height
+ model: feedModel
+ delegate: NewsDelegate {}
+ }
+ }
+
+ ScrollBar { scrollArea: list; height: list.height; width: 8; anchors.right: window.right }
+ Rectangle { x: 220; height: window.height; width: 1; color: "#cccccc" }
+}
diff --git a/doc/src/declarative/example-slideswitch.qdoc b/doc/src/declarative/example-slideswitch.qdoc
index c14208e..27b7f38 100644
--- a/doc/src/declarative/example-slideswitch.qdoc
+++ b/doc/src/declarative/example-slideswitch.qdoc
@@ -45,7 +45,7 @@
This example shows how to create a reusable switch component in QML.
-The code for this example can be found in the \c $QTDIR/examples/declarative/slideswitch directory.
+The code for this example can be found in the \c $QTDIR/examples/declarative/ui-components/slideswitch directory.
\section1 Overview
@@ -61,12 +61,12 @@ The elements that composed the switch are:
\endlist
\section1 Switch.qml
-\snippet examples/declarative/slideswitch/content/Switch.qml 0
+\snippet examples/declarative/ui-components/slideswitch/content/Switch.qml 0
\section1 Walkthrough
\section2 Interface
-\snippet examples/declarative/slideswitch/content/Switch.qml 1
+\snippet examples/declarative/ui-components/slideswitch/content/Switch.qml 1
This property is the interface of the switch. By default, the switch is off and this property is \c false.
It can be used to activate/disactivate the switch or to query its current state.
@@ -81,14 +81,14 @@ Text { text: "The switch is on"; visible: mySwitch.on == true }
the text will only be visible when the switch is on.
\section2 Images and user interaction
-\snippet examples/declarative/slideswitch/content/Switch.qml 4
+\snippet examples/declarative/ui-components/slideswitch/content/Switch.qml 4
First, we create the background image of the switch.
In order for the switch to toggle when the user clicks on the background, we add a \l{MouseArea} as a child item of the image.
A \c MouseArea has a \c onClicked property that is triggered when the item is clicked. For the moment we will just call a
\c toggle() function. We will see what this function does in a moment.
-\snippet examples/declarative/slideswitch/content/Switch.qml 5
+\snippet examples/declarative/ui-components/slideswitch/content/Switch.qml 5
Then, we place the image of the knob on top of the background.
The interaction here is a little more complex. We want the knob to move with the finger when it is clicked. That is what the \c drag
@@ -96,7 +96,7 @@ property of the \c MouseArea is for. We also want to toggle the switch if the kn
in the \c dorelease() function that is called in the \c onReleased property.
\section2 States
-\snippet examples/declarative/slideswitch/content/Switch.qml 6
+\snippet examples/declarative/ui-components/slideswitch/content/Switch.qml 6
We define the two states of the switch:
\list
@@ -110,13 +110,13 @@ For more information on states see \l{qmlstates}{QML States}.
We add two JavaScript functions to our switch:
-\snippet examples/declarative/slideswitch/content/Switch.qml 2
+\snippet examples/declarative/ui-components/slideswitch/content/Switch.qml 2
This first function is called when the background image or the knob are clicked. We simply want the switch to toggle between the two
states (\e on and \e off).
-\snippet examples/declarative/slideswitch/content/Switch.qml 3
+\snippet examples/declarative/ui-components/slideswitch/content/Switch.qml 3
This second function is called when the knob is released and we want to make sure that the knob does not end up between states
(neither \e on nor \e off). If it is the case call the \c toggle() function otherwise we do nothing.
@@ -124,7 +124,7 @@ This second function is called when the knob is released and we want to make sur
For more information on scripts see \l{Integrating JavaScript}.
\section2 Transition
-\snippet examples/declarative/slideswitch/content/Switch.qml 7
+\snippet examples/declarative/ui-components/slideswitch/content/Switch.qml 7
At this point, when the switch toggles between the two states the knob will instantly change its \c x position between 1 and 78.
In order for the the knob to move smoothly we add a transition that will animate the \c x property with an easing curve for a duration of 200ms.
@@ -133,5 +133,5 @@ For more information on transitions see \l{state-transitions}{QML Transitions}.
\section1 Usage
The switch can be used in a QML file, like this:
-\snippet examples/declarative/slideswitch/slideswitch.qml 0
+\snippet examples/declarative/ui-components/slideswitch/slideswitch.qml 0
*/
diff --git a/doc/src/declarative/examples.qdoc b/doc/src/declarative/examples.qdoc
index 481617e..cdc308a 100644
--- a/doc/src/declarative/examples.qdoc
+++ b/doc/src/declarative/examples.qdoc
@@ -71,50 +71,92 @@ For example, from your build directory, run:
\section1 Examples
+\section2 Animation
\list
-\o \l{declarative/animations}{Animations}
-\o \l{declarative/aspectratio}{Aspect Ratio}
-\o \l{declarative/behaviors}{Behaviors}
-\o \l{declarative/border-image}{Border Image}
-\o \l{declarative/clocks}{Clocks}
-\o \l{declarative/connections}{Connections}
-\o \l{declarative/dial}{Dial}
-\o \l{declarative/dynamic}{Dynamic}
-\o \l{declarative/extending}{Extending}
-\o \l{declarative/fillmode}{Fillmode}
-\o \l{declarative/flipable}{Flipable}
-\o \l{declarative/focus}{Focus}
-\o \l{declarative/fonts}{Fonts}
-\o \l{declarative/gridview}{GridView}
-\o \l{declarative/imageprovider}{Image Provider}
-\o \l{declarative/images}{Images}
-\o \l{declarative/layouts}{Layouts}
-\o \l{declarative/listmodel-threaded}{ListModel Threaded}
-\o \l{declarative/listview}{ListView}
-\o \l{declarative/mousearea}{Mouse Area}
-\o \l{declarative/objectlistmodel}{Object ListModel}
-\o \l{declarative/package}{Package}
-\o \l{declarative/parallax}{Parallax}
-\o \l{declarative/plugins}{Plugins}
-\o \l{declarative/progressbar}{Progress Bars}
-\o \l{declarative/proxywidgets}{Proxy Widgets}
-\o \l{declarative/scrollbar}{Scrollbar}
-\o \l{declarative/searchbox}{Search Box}
-\o \l{declarative/slideswitch}{Slide Switch}
-\o \l{declarative/sql}{SQL}
-\o \l{declarative/states}{States}
-\o \l{declarative/stringlistmodel}{String ListModel}
-\o \l{declarative/tabwidget}{Tab Widget}
-\o \l{declarative/tic-tac-toe}{Tic-Tac-Toe}
-\o \l{declarative/tvtennis}{TV Tennis}
-\o \l{declarative/velocity}{Velocity}
-\o \l{declarative/webview}{WebView}
-\o \l{declarative/workerscript}{WorkerScript}
-\o \l{declarative/xmldata}{XML Data}
-\o \l{declarative/xmlhttprequest}{XMLHttpRequest}
+\o \l{declarative/animation/basics}{Basics}
+\o \l{declarative/animation/behaviors}{Behaviors}
+\o \l{declarative/animation/easing}{Easing}
+\o \l{declarative/animation/states}{States}
+\endlist
+
+\section2 Image Elements
+\list
+\o \l{declarative/imageelements/borderimage}{BorderImage}
+\o \l{declarative/imageelements/image}{Image}
+\endlist
+
+\section2 \l{declarative/positioners}{Positioners}
+
+\section2 Key Interaction
+\list
+\o \l{declarative/keyinteraction/focus}{Focus}
+\endlist
+\section2 Touch Interaction
+\list
+\o \l{declarative/touchinteraction/gestures}{Gestures}
+\o \l{declarative/touchinteraction/mousearea}{MouseArea}
+\endlist
+
+\section2 UI Components
+\list
+\o \l{declarative/ui-components/flipable}{Flipable}
+\o \l{declarative/ui-components/progressbar}{Progress bar}
+\o \l{declarative/ui-components/scrollbar}{Scroll bar}
+\o \l{declarative/ui-components/searchbox}{Search box}
+\o \l{declarative/ui-components/slideswitch}{Slide switch}
+\o \l{declarative/ui-components/spinner}{Spinner}
+\o \l{declarative/ui-components/tabwidget}{Tab widget}
\endlist
+\section2 Models and Views
+\list
+\o \l{declarative/modelviews/gridview}{GridView}
+\o \l{declarative/modelviews/listview}{ListView}
+\o \l{declarative/modelviews/objectlistmodel}{Object list model}
+\o \l{declarative/modelviews/package}{Package}
+\o \l{declarative/modelviews/parallax}{Parallax}
+\o \l{declarative/modelviews/stringlistmodel}{String list model}
+\o \l{declarative/modelviews/webview}{WebView}
+\endlist
+
+\section2 XML
+\list
+\o \l{declarative/xml/xmldata}{XML data}
+\o \l{declarative/xml/xmlhttprequest}{XmlHttpRequest}
+\endlist
+
+\section2 \l{declarative/i18n}{Internationalization (i18n)}
+
+\section2 Threading
+\list
+\o \l{declarative/threading/threadedlistmodel}{Threaded ListModel}
+\o \l{declarative/threading/workerscript}{WorkerScript}
+\endlist
+
+\section2 \l{declarative/sqllocalstorage}{SQL Local Storage}
+
+\section2 C++ Extensions
+\list
+\o \l{declarative/cppextensions/referenceexamples}{Reference examples} (discussed in \l {Extending QML in C++})
+\o \l{declarative/cppextensions/plugins}{Plugins}
+\o \l{declarative/cppextensions/proxywidgets}{QtWidgets}
+\o \l{declarative/cppextensions/qgraphicslayouts}{QGraphicsLayouts}
+\o \l{declarative/cppextensions/imageprovider}{Image provider}
+\o \l{declarative/cppextensions/proxyviewer}{Network access manager factory}
+\endlist
+
+\section2 Toys
+\list
+\o \l{declarative/toys/clocks}{Clocks}
+\o \l{declarative/toys/dial}{Dial}
+\o \l{declarative/toys/dynamic}{Dynamic}
+\o \l{declarative/toys/tic-tac-toe}{Tic Tac Toe}
+\o \l{declarative/toys/tvtennis}{TV Tennis}
+\o \l{declarative/toys/velocity}{Velocity}
+\endlist
+
+
\section1 Demos
\list
@@ -127,3 +169,4 @@ For example, from your build directory, run:
\endlist
*/
+
diff --git a/doc/src/declarative/extending-examples.qdoc b/doc/src/declarative/extending-examples.qdoc
index 611dac1..577ab78 100644
--- a/doc/src/declarative/extending-examples.qdoc
+++ b/doc/src/declarative/extending-examples.qdoc
@@ -40,13 +40,13 @@
****************************************************************************/
/*!
-\example declarative/extending/adding
+\example declarative/cppextensions/referenceexamples/adding
\title Extending QML - Adding Types Example
The Adding Types Example shows how to add a new element type, \c Person, to QML.
The \c Person type can be used from QML like this:
-\snippet examples/declarative/extending/adding/example.qml 0
+\snippet examples/declarative/cppextensions/referenceexamples/adding/example.qml 0
\section1 Declare the Person class
@@ -55,11 +55,11 @@ with the two properties we want accessible on the QML type - name and shoeSize.
Although in this example we use the same name for the C++ class as the QML
element, the C++ class can be named differently, or appear in a namespace.
-\snippet examples/declarative/extending/adding/person.h 0
+\snippet examples/declarative/cppextensions/referenceexamples/adding/person.h 0
\section1 Define the Person class
-\snippet examples/declarative/extending/adding/person.cpp 0
+\snippet examples/declarative/cppextensions/referenceexamples/adding/person.cpp 0
The Person class implementation is quite basic. The property accessors simply
return members of the object instance.
@@ -75,7 +75,7 @@ loads and runs the QML snippet shown at the beginning of this page.
*/
/*!
-\example declarative/extending/properties
+\example declarative/cppextensions/referenceexamples/properties
\title Extending QML - Object and List Property Types Example
This example builds on:
@@ -88,16 +88,16 @@ properties in QML. This example adds a BirthdayParty element that specifies
a birthday party, consisting of a celebrant and a list of guests. People are
specified using the People QML type built in the previous example.
-\snippet examples/declarative/extending/properties/example.qml 0
+\snippet examples/declarative/cppextensions/referenceexamples/properties/example.qml 0
\section1 Declare the BirthdayParty
The BirthdayParty class is declared like this:
-\snippet examples/declarative/extending/properties/birthdayparty.h 0
-\snippet examples/declarative/extending/properties/birthdayparty.h 1
-\snippet examples/declarative/extending/properties/birthdayparty.h 2
-\snippet examples/declarative/extending/properties/birthdayparty.h 3
+\snippet examples/declarative/cppextensions/referenceexamples/properties/birthdayparty.h 0
+\snippet examples/declarative/cppextensions/referenceexamples/properties/birthdayparty.h 1
+\snippet examples/declarative/cppextensions/referenceexamples/properties/birthdayparty.h 2
+\snippet examples/declarative/cppextensions/referenceexamples/properties/birthdayparty.h 3
The class contains a member to store the celebrant object, and also a
QList<Person *> member.
@@ -114,7 +114,7 @@ scenarios.
The implementation of BirthdayParty property accessors is straight forward.
-\snippet examples/declarative/extending/properties/birthdayparty.cpp 0
+\snippet examples/declarative/cppextensions/referenceexamples/properties/birthdayparty.cpp 0
\section1 Running the example
@@ -123,7 +123,7 @@ loads and runs the QML snippet shown at the beginning of this page.
*/
/*!
-\example declarative/extending/coercion
+\example declarative/cppextensions/referenceexamples/coercion
\title Extending QML - Inheritance and Coercion Example
This example builds on:
@@ -136,11 +136,11 @@ The Inheritance and Coercion Example shows how to use base classes to assign
elements of more than one type to a property. It specializes the Person element
developed in the previous examples into two elements - a \c Boy and a \c Girl.
-\snippet examples/declarative/extending/coercion/example.qml 0
+\snippet examples/declarative/cppextensions/referenceexamples/coercion/example.qml 0
\section1 Declare Boy and Girl
-\snippet examples/declarative/extending/coercion/person.h 0
+\snippet examples/declarative/cppextensions/referenceexamples/coercion/person.h 0
The Person class remains unaltered in this example and the Boy and Girl C++
classes are trivial extensions of it. As an example, the inheritance used here
@@ -155,7 +155,7 @@ previous example. However, as we have repurposed the People class as a common
base for Boy and Girl, we want to prevent it from being instantiated from QML
directly - an explicit Boy or Girl should be instantiated instead.
-\snippet examples/declarative/extending/coercion/main.cpp 0
+\snippet examples/declarative/cppextensions/referenceexamples/coercion/main.cpp 0
While we want to disallow instantiating Person from within QML, it still needs
to be registered with the QML engine, so that it can be used as a property type
@@ -165,7 +165,7 @@ and other types can be coerced to it.
The implementation of Boy and Girl are trivial.
-\snippet examples/declarative/extending/coercion/person.cpp 1
+\snippet examples/declarative/cppextensions/referenceexamples/coercion/person.cpp 1
All that is necessary is to implement the constructor, and to register the types
and their QML name with the QML engine.
@@ -175,7 +175,7 @@ and their QML name with the QML engine.
The BirthdayParty element has not changed since the previous example. The
celebrant and guests property still use the People type.
-\snippet examples/declarative/extending/coercion/birthdayparty.h 0
+\snippet examples/declarative/cppextensions/referenceexamples/coercion/birthdayparty.h 0
However, as all three types, Person, Boy and Girl, have been registered with the
QML system, on assignment QML automatically (and type-safely) converts the Boy
@@ -186,7 +186,7 @@ loads and runs the QML snippet shown at the beginning of this page.
*/
/*!
-\example declarative/extending/default
+\example declarative/cppextensions/referenceexamples/default
\title Extending QML - Default Property Example
This example builds on:
@@ -200,14 +200,14 @@ The Default Property Example is a minor modification of the
\l {Extending QML - Inheritance and Coercion Example} that simplifies the
specification of a BirthdayParty through the use of a default property.
-\snippet examples/declarative/extending/default/example.qml 0
+\snippet examples/declarative/cppextensions/referenceexamples/default/example.qml 0
\section1 Declaring the BirthdayParty class
The only difference between this example and the last, is the addition of the
\c DefaultProperty class info annotation.
-\snippet examples/declarative/extending/default/birthdayparty.h 0
+\snippet examples/declarative/cppextensions/referenceexamples/default/birthdayparty.h 0
The default property specifies the property to assign to whenever an explicit
property is not specified, in the case of the BirthdayParty element the guest
@@ -222,7 +222,7 @@ loads and runs the QML snippet shown at the beginning of this page.
*/
/*!
-\example declarative/extending/grouped
+\example declarative/cppextensions/referenceexamples/grouped
\title Extending QML - Grouped Properties Example
This example builds on:
@@ -236,7 +236,7 @@ This example builds on:
*/
/*!
-\example declarative/extending/grouped
+\example declarative/cppextensions/referenceexamples/grouped
\title Extending QML - Attached Properties Example
This example builds on:
@@ -251,7 +251,7 @@ This example builds on:
*/
/*!
-\example declarative/extending/signal
+\example declarative/cppextensions/referenceexamples/signal
\title Extending QML - Signal Support Example
This example builds on:
@@ -267,7 +267,7 @@ This example builds on:
*/
/*!
-\example declarative/extending/valuesource
+\example declarative/cppextensions/referenceexamples/valuesource
\title Extending QML - Property Value Source Example
This example builds on:
@@ -284,7 +284,7 @@ This example builds on:
*/
/*!
-\example declarative/extending/binding
+\example declarative/cppextensions/referenceexamples/binding
\title Extending QML - Binding Example
This example builds on:
diff --git a/doc/src/declarative/extending.qdoc b/doc/src/declarative/extending.qdoc
index 1c159e4..5b695f7 100644
--- a/doc/src/declarative/extending.qdoc
+++ b/doc/src/declarative/extending.qdoc
@@ -56,7 +56,7 @@ QML for their own independent use.
\section1 Adding Types
\target adding-types
-\snippet examples/declarative/extending/adding/example.qml 0
+\snippet examples/declarative/cppextensions/referenceexamples/adding/example.qml 0
The QML snippet shown above instantiates one \c Person instance and sets
the \c name and \c shoeSize properties on it. Everything in QML ultimately comes down
@@ -121,7 +121,7 @@ the \c Person type.
\section1 Object and List Property Types
-\snippet examples/declarative/extending/properties/example.qml 0
+\snippet examples/declarative/cppextensions/referenceexamples/properties/example.qml 0
The QML snippet shown above assigns a \c Person object to the \c BirthdayParty's
\c host property, and assigns three \c Person objects to the guests property.
@@ -136,7 +136,7 @@ Properties that are pointers to objects or Qt interfaces are declared with the
Q_PROPERTY() macro, just like other properties. The \c host property
declaration looks like this:
-\snippet examples/declarative/extending/properties/birthdayparty.h 1
+\snippet examples/declarative/cppextensions/referenceexamples/properties/birthdayparty.h 1
As long as the property type, in this case \c Person, is registered with QML the
property can be assigned.
@@ -165,14 +165,14 @@ As with object properties, the type \a T must be registered with QML.
The \c guest property declaration looks like this:
-\snippet examples/declarative/extending/properties/birthdayparty.h 2
+\snippet examples/declarative/cppextensions/referenceexamples/properties/birthdayparty.h 2
\l {Extending QML - Object and List Property Types Example} shows the complete
code used to create the \c BirthdayParty type.
\section1 Inheritance and Coercion
-\snippet examples/declarative/extending/coercion/example.qml 0
+\snippet examples/declarative/cppextensions/referenceexamples/coercion/example.qml 0
The QML snippet shown above assigns a \c Boy object to the \c BirthdayParty's
\c host property, and assigns three other objects to the \c guests property.
@@ -214,7 +214,7 @@ code used to create the \c Boy and \c Girl types.
\section1 Default Property
-\snippet examples/declarative/extending/default/example.qml 0
+\snippet examples/declarative/cppextensions/referenceexamples/default/example.qml 0
The QML snippet shown above assigns a collection of objects to the
\c BirthdayParty's default property.
@@ -246,7 +246,7 @@ specify a default property.
\section1 Grouped Properties
-\snippet examples/declarative/extending/grouped/example.qml 1
+\snippet examples/declarative/cppextensions/referenceexamples/grouped/example.qml 1
The QML snippet shown above assigns a number of properties to the \c Boy object,
including four properties using the grouped property syntax.
@@ -259,7 +259,7 @@ different types through implementation reuse.
A grouped property block is implemented as a read-only object property. The
\c shoe property shown is declared like this:
-\snippet examples/declarative/extending/grouped/person.h 1
+\snippet examples/declarative/cppextensions/referenceexamples/grouped/person.h 1
The \c ShoeDescription type declares the properties available to the grouped
property block - in this case the \c size, \c color, \c brand and \c price properties.
@@ -271,7 +271,7 @@ implement the \c shoe property grouping.
\section1 Attached Properties
-\snippet examples/declarative/extending/attached/example.qml 1
+\snippet examples/declarative/cppextensions/referenceexamples/attached/example.qml 1
The QML snippet shown above assigns a date to the \c rsvp property using the attached
property syntax.
@@ -393,8 +393,8 @@ this situation, but it must not crash.
\section1 Signal Support
-\snippet examples/declarative/extending/signal/example.qml 0
-\snippet examples/declarative/extending/signal/example.qml 1
+\snippet examples/declarative/cppextensions/referenceexamples/signal/example.qml 0
+\snippet examples/declarative/cppextensions/referenceexamples/signal/example.qml 1
The QML snippet shown above associates the evaluation of a JavaScript expression
with the emission of a Qt signal.
@@ -406,7 +406,7 @@ signal name: "on" is prepended, and the first letter of the signal name upper
cased. For example, the signal used in the example above has the following
C++ signature:
-\snippet examples/declarative/extending/signal/birthdayparty.h 0
+\snippet examples/declarative/cppextensions/referenceexamples/signal/birthdayparty.h 0
In classes with multiple signals with the same name, only the final signal
is accessible as a signal property. Note that signals with the same name
@@ -424,8 +424,8 @@ implement the onPartyStarted signal property.
\section1 Property Value Sources
-\snippet examples/declarative/extending/valuesource/example.qml 0
-\snippet examples/declarative/extending/valuesource/example.qml 1
+\snippet examples/declarative/cppextensions/referenceexamples/valuesource/example.qml 0
+\snippet examples/declarative/cppextensions/referenceexamples/valuesource/example.qml 1
The QML snippet shown above applies a property value source to the \c announcment property.
A property value source generates a value for a property that changes over time.
@@ -440,7 +440,7 @@ The example shown here is rather contrived: the \c announcment property of the
the \c HappyBirthdaySong value source generates the lyrics of the song
"Happy Birthday".
-\snippet examples/declarative/extending/valuesource/birthdayparty.h 0
+\snippet examples/declarative/cppextensions/referenceexamples/valuesource/birthdayparty.h 0
Normally, assigning an object to a string property would not be allowed. In
the case of a property value source, rather than assigning the object instance
@@ -453,9 +453,9 @@ QDeclarativePropertyValueSource::setTarget(), that the QML engine invokes when
associating the property value source with a property. The relevant part of
the \c HappyBirthdaySong type declaration looks like this:
-\snippet examples/declarative/extending/valuesource/happybirthdaysong.h 0
-\snippet examples/declarative/extending/valuesource/happybirthdaysong.h 1
-\snippet examples/declarative/extending/valuesource/happybirthdaysong.h 2
+\snippet examples/declarative/cppextensions/referenceexamples/valuesource/happybirthdaysong.h 0
+\snippet examples/declarative/cppextensions/referenceexamples/valuesource/happybirthdaysong.h 1
+\snippet examples/declarative/cppextensions/referenceexamples/valuesource/happybirthdaysong.h 2
In all other respects, property value sources are regular QML types. They must
be registered with the QML engine using the same macros as other types, and can
@@ -471,8 +471,8 @@ implement the \c HappyBirthdaySong property value source.
\section1 Property Binding
-\snippet examples/declarative/extending/binding/example.qml 0
-\snippet examples/declarative/extending/binding/example.qml 1
+\snippet examples/declarative/cppextensions/referenceexamples/binding/example.qml 0
+\snippet examples/declarative/cppextensions/referenceexamples/binding/example.qml 1
The QML snippet shown above uses a property binding to ensure the
\c HappyBirthdaySong's \c name property remains up to date with the \c host.
@@ -492,7 +492,7 @@ the property's value. QML relies on the presence of a
Here is the \c host property declaration:
-\snippet examples/declarative/extending/binding/birthdayparty.h 0
+\snippet examples/declarative/cppextensions/referenceexamples/binding/birthdayparty.h 0
The NOTIFY attribute is followed by a signal name. It is the responsibility of
the class implementer to ensure that whenever the property's value changes, the
@@ -531,7 +531,7 @@ subsequently change. The most common case of this is when a type uses
only freed when the object is deleted. In these cases, the CONSTANT attribute
may be added to the property declaration instead of a NOTIFY signal.
-\snippet examples/declarative/extending/binding/person.h 0
+\snippet examples/declarative/cppextensions/referenceexamples/binding/person.h 0
Extreme care must be taken here or applications using your type may misbehave.
The CONSTANT attribute should only be used for properties whose value is set,
@@ -543,7 +543,7 @@ include NOTIFY signals for use in binding.
\section1 Extension Objects
-\snippet examples/declarative/extending/extended/example.qml 0
+\snippet examples/declarative/cppextensions/referenceexamples/extended/example.qml 0
The QML snippet shown above adds a new property to an existing C++ type without
modifying its source code.
diff --git a/doc/src/declarative/focus.qdoc b/doc/src/declarative/focus.qdoc
index e5c1d32..e2b8bb6 100644
--- a/doc/src/declarative/focus.qdoc
+++ b/doc/src/declarative/focus.qdoc
@@ -291,28 +291,7 @@ print the name of the current list item.
\table
\row
-\o \code
-Rectangle {
- color: "lightsteelblue"; width: 240; height: 320
-
- ListView {
- id: myView; anchors.fill: parent; focus: true
- model: ListModel {
- ListElement { name: "Bob" }
- ListElement { name: "John" }
- ListElement { name: "Michael" }
- }
- delegate: FocusScope {
- width: contents.width; height: contents.height
- Text {
- focus: true
- text: name
- Keys.onReturnPressed: console.log(name)
- }
- }
- }
-}
-\endcode
+\o \snippet doc/src/snippets/declarative/focusscopes.qml 0
\o \image declarative-qmlfocus4.png
\endtable
diff --git a/doc/src/declarative/globalobject.qdoc b/doc/src/declarative/globalobject.qdoc
index bc9830a..2a83e30 100644
--- a/doc/src/declarative/globalobject.qdoc
+++ b/doc/src/declarative/globalobject.qdoc
@@ -382,7 +382,7 @@ of QDeclarativeEngine::offlineStoragePath(), currently as SQLite databases.
The API can be used from JavaScript functions in your QML:
-\quotefile declarative/sql/hello.qml
+\quotefile declarative/sqllocalstorage/hello.qml
The API conforms to the Synchronous API of the HTML5 Web Database API,
\link http://www.w3.org/TR/2009/WD-webdatabase-20091029/ W3C Working Draft 29 October 2009\endlink.
diff --git a/doc/src/declarative/integrating.qdoc b/doc/src/declarative/integrating.qdoc
index 972976f..83380a1 100644
--- a/doc/src/declarative/integrating.qdoc
+++ b/doc/src/declarative/integrating.qdoc
@@ -110,7 +110,7 @@ of QML UIs:
\section2 Loading QGraphicsWidget objects in QML
An alternative approach is to expose your existing QGraphicsWidget objects to
-QML and construct your scene in QML instead. See the \l {declarative/layouts/graphicsLayouts}{graphics layouts example}
+QML and construct your scene in QML instead. See the \l {declarative/cppextensions/qgraphicslayouts}{graphics layouts example}
which shows how to expose Qt's graphics layout classes to QML in order
to use QGraphicsWidget with classes like QGraphicsLinearLayout and QGraphicsGridLayout.
diff --git a/doc/src/examples/qml-examples.qdoc b/doc/src/examples/qml-examples.qdoc
index 93e4a46..22113ee 100644
--- a/doc/src/examples/qml-examples.qdoc
+++ b/doc/src/examples/qml-examples.qdoc
@@ -40,79 +40,89 @@
****************************************************************************/
/*!
- \title Animations
- \example declarative/animations
+ \title Animation basics
+ \example declarative/animation/basics
This example shows how to use animations in QML.
*/
/*!
- \title AspectRatio
- \example declarative/aspectratio
+ \title Behaviors
+ \example declarative/animation/behaviors
+*/
- This example shows how to implement different aspect ratios in QML.
+/*!
+ \title Easing types
+ \example declarative/animation/easing
+
+ This example shows the different easing modes available for animations.
*/
/*!
- \example declarative/behaviors
- \title Behaviors
+ \title States
+ \example declarative/animation/states
*/
/*!
\title Border Image
- \example declarative/border-image
+ \example declarative/imageelements/borderimage
This example shows how to use a BorderImage in QML.
*/
/*!
- \title Clocks
- \example declarative/clocks
+ \title Image
+ \example declarative/imageelements/image
- This example shows how to create a Clock component and reuse it in a grid.
+ This example shows uses of the \l Image element in QML.
*/
/*!
- \title Connections
- \example declarative/connections
-
- This example shows how to use a Connection element in QML.
+ \title Reference examples
+ \example declarative/cppextensions/referenceexamples
*/
/*!
- \title Dial
- \example declarative/dial
+ \title Plugins
+ \example declarative/cppextensions/plugins
+*/
- This example shows how to implement a dial in QML.
+/*!
+ \title QtWidgets
+ \example declarative/cppextensions/proxywidgets
*/
/*!
- \title Dynamic
- \example declarative/dynamic
+ \title QGraphicsLayouts
+ \example declarative/cppextensions/qgraphicslayouts
+*/
- This example shows how to create dynamic objects QML.
+/*!
+ \title Image Provider
+ \example declarative/cppextensions/imageprovider
*/
/*!
- \example declarative/extending
- \title Extending
+ \title Network access manager
+ \example declarative/cppextensions/proxyviewer
*/
/*!
- \example declarative/fillmode
- \title Fillmode
+ \title Internationlization
+ \example declarative/i18n
*/
/*!
- \title Flipable
- \example declarative/flipable
+ \title Positioners
+ \example declarative/positioners
- This example shows how to use a Flipable element in QML.
+ This example shows how to use positioner elements such as Row, Column,
+ Grid and Flow.
*/
/*!
\title Focus
- \example declarative/focus
+ \example declarative/keyinteraction/focus
This example shows how to handle keys and focus in QML.
@@ -120,141 +130,149 @@
*/
/*!
- \example declarative/fonts
- \title Fonts
+ \title GridView
+ \example declarative/modelviews/gridview
*/
/*!
- \example declarative/gridview
- \title GridView
+ \title ListView
+ \example declarative/modelviews/listview
*/
/*!
- \example declarative/imageprovider
- \title Image Provider
+ \title Object ListModel
+ \example declarative/modelviews/objectlistmodel
*/
/*!
- \example declarative/images
- \title Images
+ \title Package
+ \example declarative/modelviews/package
*/
/*!
- \example declarative/layouts
- \title Layouts
+ \title Parallax
+ \example declarative/modelviews/parallax
*/
/*!
- \example declarative/listmodel-threaded
- \title ListModel Threaded
+ \title String ListModel
+ \example declarative/modelviews/stringlistmodel
*/
/*!
- \example declarative/listview
- \title ListView
+ \title WebView
+ \example declarative/modelviews/webview
*/
/*!
- \example declarative/mousearea
- \title Mouse Area
+ \title SQL Local Storage
+ \example declarative/sqllocalstorage
*/
/*!
- \example declarative/objectlistmodel
- \title Object ListModel
+ \title Fonts
+ \example declarative/text/fonts
*/
/*!
- \example declarative/package
- \title Package
+ \title Threaded ListModel
+ \example declarative/threading/threadedlistmodel
*/
/*!
- \example declarative/parallax
- \title Parallax
+ \title WorkerScript
+ \example declarative/threading/workerscript
*/
/*!
- \example declarative/plugins
- \title Plugins
+ \title Clocks
+ \example declarative/toys/clocks
+
+ This example shows how to create a Clock component and reuse it in a grid.
*/
/*!
- \example declarative/progressbar
- \title Progress Bars
+ \title Dial
+ \example declarative/toys/dial
+
+ This example shows how to implement a dial in QML.
*/
/*!
- \example declarative/proxywidgets
- \title Proxy Widgets
+ \title Dynamic
+ \example declarative/toys/dynamic
+
+ This example shows how to create dynamic objects QML.
*/
/*!
- \example declarative/scrollbar
- \title Scrollbar
+ \title Tic-Tac-Toe
+ \example declarative/toys/tic-tac-toe
*/
/*!
- \example declarative/searchbox
- \title Search Box
+ \title TV Tennis
+ \example declarative/toys/tvtennis
*/
/*!
- \example declarative/slideswitch
- \title Slide Switch
+ \title Velocity
+ \example declarative/toys/velocity
*/
/*!
- \example declarative/sql
- \title SQL
+ \title Gestures
+ \example declarative/touchinteraction/gestures
*/
/*!
- \example declarative/states
- \title States
+ \title Mouse Area
+ \example declarative/touchinteraction/mousearea
*/
/*!
- \example declarative/stringlistmodel
- \title String ListModel
+ \title Flipable
+ \example declarative/ui-components/flipable
+
+ This example shows how to use a Flipable element in QML.
*/
/*!
- \example declarative/tabwidget
- \title Tab Widget
+ \title Progress Bars
+ \example declarative/ui-components/progressbar
*/
/*!
- \example declarative/tic-tac-toe
- \title Tic-Tac-Toe
+ \title Scrollbar
+ \example declarative/ui-components/scrollbar
*/
/*!
- \example declarative/tvtennis
- \title TV Tennis
+ \title Search Box
+ \example declarative/ui-components/searchbox
*/
/*!
- \example declarative/velocity
- \title Velocity
+ \title Slide Switch
+ \example declarative/ui-components/slideswitch
*/
/*!
- \example declarative/webview
- \title WebView
+ \title Spinner
+ \example declarative/ui-components/spinner
*/
/*!
- \example declarative/workerscript
- \title WorkerScript
+ \title Tab Widget
+ \example declarative/ui-components/tabwidget
*/
/*!
- \example declarative/xmldata
\title XML Data
+ \example declarative/xml/xmldata
*/
/*!
- \example declarative/xmlhttprequest
\title XMLHttpRequest
+ \example declarative/xml/xmlhttprequest
*/
diff --git a/doc/src/snippets/declarative/border-image.qml b/doc/src/snippets/declarative/borderimage.qml
index 9c4247e..9c4247e 100644
--- a/doc/src/snippets/declarative/border-image.qml
+++ b/doc/src/snippets/declarative/borderimage.qml
diff --git a/doc/src/snippets/declarative/focusscopes.qml b/doc/src/snippets/declarative/focusscopes.qml
new file mode 100644
index 0000000..686de29
--- /dev/null
+++ b/doc/src/snippets/declarative/focusscopes.qml
@@ -0,0 +1,27 @@
+import Qt 4.7
+
+//![0]
+Rectangle {
+ color: "lightsteelblue"; width: 240; height: 320
+
+ ListView {
+ anchors.fill: parent
+ focus: true
+
+ model: ListModel {
+ ListElement { name: "Bob" }
+ ListElement { name: "John" }
+ ListElement { name: "Michael" }
+ }
+
+ delegate: FocusScope {
+ width: childrenRect.width; height: childrenRect.height
+ TextInput {
+ focus: true
+ text: name
+ Keys.onReturnPressed: console.log(name)
+ }
+ }
+ }
+ }
+//![0]
diff --git a/examples/declarative/xmlhttprequest/xmlhttprequest.qmlproject b/examples/declarative/animation/animation.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/xmlhttprequest/xmlhttprequest.qmlproject
+++ b/examples/declarative/animation/animation.qmlproject
diff --git a/examples/declarative/xmldata/xmldata.qmlproject b/examples/declarative/animation/basics/basics.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/xmldata/xmldata.qmlproject
+++ b/examples/declarative/animation/basics/basics.qmlproject
diff --git a/examples/declarative/animations/color-animation.qml b/examples/declarative/animation/basics/color-animation.qml
index 61737e9..61737e9 100644
--- a/examples/declarative/animations/color-animation.qml
+++ b/examples/declarative/animation/basics/color-animation.qml
diff --git a/examples/declarative/parallax/pics/face-smile.png b/examples/declarative/animation/basics/images/face-smile.png
index 3d66d72..3d66d72 100644
--- a/examples/declarative/parallax/pics/face-smile.png
+++ b/examples/declarative/animation/basics/images/face-smile.png
Binary files differ
diff --git a/examples/declarative/animations/images/moon.png b/examples/declarative/animation/basics/images/moon.png
index 9407b2b..9407b2b 100644
--- a/examples/declarative/animations/images/moon.png
+++ b/examples/declarative/animation/basics/images/moon.png
Binary files differ
diff --git a/examples/declarative/parallax/pics/shadow.png b/examples/declarative/animation/basics/images/shadow.png
index 8270565..8270565 100644
--- a/examples/declarative/parallax/pics/shadow.png
+++ b/examples/declarative/animation/basics/images/shadow.png
Binary files differ
diff --git a/examples/declarative/dynamic/images/star.png b/examples/declarative/animation/basics/images/star.png
index 27ef924..27ef924 100644
--- a/examples/declarative/dynamic/images/star.png
+++ b/examples/declarative/animation/basics/images/star.png
Binary files differ
diff --git a/examples/declarative/dynamic/images/sun.png b/examples/declarative/animation/basics/images/sun.png
index 7713ca5..7713ca5 100644
--- a/examples/declarative/dynamic/images/sun.png
+++ b/examples/declarative/animation/basics/images/sun.png
Binary files differ
diff --git a/examples/declarative/animations/property-animation.qml b/examples/declarative/animation/basics/property-animation.qml
index 87ac8ec..87ac8ec 100644
--- a/examples/declarative/animations/property-animation.qml
+++ b/examples/declarative/animation/basics/property-animation.qml
diff --git a/examples/declarative/behaviors/SideRect.qml b/examples/declarative/animation/behaviors/SideRect.qml
index d32bd7b..d32bd7b 100644
--- a/examples/declarative/behaviors/SideRect.qml
+++ b/examples/declarative/animation/behaviors/SideRect.qml
diff --git a/examples/declarative/behaviors/behavior-example.qml b/examples/declarative/animation/behaviors/behavior-example.qml
index 1f17b81..1f17b81 100644
--- a/examples/declarative/behaviors/behavior-example.qml
+++ b/examples/declarative/animation/behaviors/behavior-example.qml
diff --git a/examples/declarative/behaviors/behaviors.qmlproject b/examples/declarative/animation/behaviors/behaviors.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/behaviors/behaviors.qmlproject
+++ b/examples/declarative/animation/behaviors/behaviors.qmlproject
diff --git a/examples/declarative/animations/easing.qml b/examples/declarative/animation/easing/easing.qml
index 939d43b..939d43b 100644
--- a/examples/declarative/animations/easing.qml
+++ b/examples/declarative/animation/easing/easing.qml
diff --git a/examples/declarative/workerscript/workerscript.qmlproject b/examples/declarative/animation/easing/easing.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/workerscript/workerscript.qmlproject
+++ b/examples/declarative/animation/easing/easing.qmlproject
diff --git a/examples/declarative/states/states.qml b/examples/declarative/animation/states/states.qml
index 4429e78..4429e78 100644
--- a/examples/declarative/states/states.qml
+++ b/examples/declarative/animation/states/states.qml
diff --git a/examples/declarative/states/states.qmlproject b/examples/declarative/animation/states/states.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/states/states.qmlproject
+++ b/examples/declarative/animation/states/states.qmlproject
diff --git a/examples/declarative/states/transitions.qml b/examples/declarative/animation/states/transitions.qml
index ccc7060..ccc7060 100644
--- a/examples/declarative/states/transitions.qml
+++ b/examples/declarative/animation/states/transitions.qml
diff --git a/examples/declarative/states/user.png b/examples/declarative/animation/states/user.png
index dd7d7a2..dd7d7a2 100644
--- a/examples/declarative/states/user.png
+++ b/examples/declarative/animation/states/user.png
Binary files differ
diff --git a/examples/declarative/connections/connections-example.qml b/examples/declarative/connections/connections-example.qml
deleted file mode 100644
index e65a280..0000000
--- a/examples/declarative/connections/connections-example.qml
+++ /dev/null
@@ -1,37 +0,0 @@
-import Qt 4.7
-import "content"
-
-Rectangle {
- id: window
-
- property int angle: 0
-
- width: 640; height: 480
- color: "#646464"
-
- Image {
- id: image
- source: "content/bg1.jpg"
- anchors.centerIn: parent
- rotation: window.angle
-
- Behavior on rotation {
- NumberAnimation { easing.type: Easing.OutCubic; duration: 300 }
- }
- }
-
- Button {
- id: leftButton
- image: "content/rotate-left.png"
- anchors { left: parent.left; bottom: parent.bottom; leftMargin: 10; bottomMargin: 10 }
- }
-
- Button {
- id: rightButton
- image: "content/rotate-right.png"
- anchors { right: parent.right; bottom: parent.bottom; rightMargin: 10; bottomMargin: 10 }
- }
-
- Connections { target: leftButton; onClicked: window.angle -= 90 }
- Connections { target: rightButton; onClicked: window.angle += 90 }
-}
diff --git a/examples/declarative/connections/content/Button.qml b/examples/declarative/connections/content/Button.qml
deleted file mode 100644
index f95afbb..0000000
--- a/examples/declarative/connections/content/Button.qml
+++ /dev/null
@@ -1,12 +0,0 @@
-import Qt 4.7
-
-Item {
- id: button
- width: 48; height: 48
-
- property alias image: icon.source
- signal clicked
-
- Image { id: icon }
- MouseArea { anchors.fill: icon; onClicked: button.clicked() }
-}
diff --git a/examples/declarative/connections/content/bg1.jpg b/examples/declarative/connections/content/bg1.jpg
deleted file mode 100644
index dfc7cee..0000000
--- a/examples/declarative/connections/content/bg1.jpg
+++ /dev/null
Binary files differ
diff --git a/examples/declarative/connections/content/rotate-left.png b/examples/declarative/connections/content/rotate-left.png
deleted file mode 100644
index c30387e..0000000
--- a/examples/declarative/connections/content/rotate-left.png
+++ /dev/null
Binary files differ
diff --git a/examples/declarative/connections/content/rotate-right.png b/examples/declarative/connections/content/rotate-right.png
deleted file mode 100644
index 1b05674..0000000
--- a/examples/declarative/connections/content/rotate-right.png
+++ /dev/null
Binary files differ
diff --git a/examples/declarative/cppextensions/cppextensions.pro b/examples/declarative/cppextensions/cppextensions.pro
new file mode 100644
index 0000000..caa6092
--- /dev/null
+++ b/examples/declarative/cppextensions/cppextensions.pro
@@ -0,0 +1,10 @@
+TEMPLATE = subdirs
+
+SUBDIRS += \
+ imageprovider \
+ plugins \
+ proxyviewer \
+ proxywidgets \
+ qgraphicslayouts \
+ referenceexamples
+
diff --git a/examples/declarative/webview/webview.qmlproject b/examples/declarative/cppextensions/cppextensions.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/webview/webview.qmlproject
+++ b/examples/declarative/cppextensions/cppextensions.qmlproject
diff --git a/examples/declarative/imageprovider/ImageProviderCore/qmldir b/examples/declarative/cppextensions/imageprovider/ImageProviderCore/qmldir
index 1028590..1028590 100644
--- a/examples/declarative/imageprovider/ImageProviderCore/qmldir
+++ b/examples/declarative/cppextensions/imageprovider/ImageProviderCore/qmldir
diff --git a/examples/declarative/imageprovider/imageprovider-example.qml b/examples/declarative/cppextensions/imageprovider/imageprovider-example.qml
index d774112..d774112 100644
--- a/examples/declarative/imageprovider/imageprovider-example.qml
+++ b/examples/declarative/cppextensions/imageprovider/imageprovider-example.qml
diff --git a/examples/declarative/imageprovider/imageprovider.cpp b/examples/declarative/cppextensions/imageprovider/imageprovider.cpp
index 4c4aa94..4c4aa94 100644
--- a/examples/declarative/imageprovider/imageprovider.cpp
+++ b/examples/declarative/cppextensions/imageprovider/imageprovider.cpp
diff --git a/examples/declarative/imageprovider/imageprovider.pro b/examples/declarative/cppextensions/imageprovider/imageprovider.pro
index 945a301..945a301 100644
--- a/examples/declarative/imageprovider/imageprovider.pro
+++ b/examples/declarative/cppextensions/imageprovider/imageprovider.pro
diff --git a/examples/declarative/imageprovider/imageprovider.qmlproject b/examples/declarative/cppextensions/imageprovider/imageprovider.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/imageprovider/imageprovider.qmlproject
+++ b/examples/declarative/cppextensions/imageprovider/imageprovider.qmlproject
diff --git a/examples/declarative/plugins/README b/examples/declarative/cppextensions/plugins/README
index fe519f8..fe519f8 100644
--- a/examples/declarative/plugins/README
+++ b/examples/declarative/cppextensions/plugins/README
diff --git a/examples/declarative/plugins/com/nokia/TimeExample/Clock.qml b/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/Clock.qml
index 0048372..0048372 100644
--- a/examples/declarative/plugins/com/nokia/TimeExample/Clock.qml
+++ b/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/Clock.qml
diff --git a/examples/declarative/plugins/com/nokia/TimeExample/center.png b/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/center.png
index 7fbd802..7fbd802 100644
--- a/examples/declarative/plugins/com/nokia/TimeExample/center.png
+++ b/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/center.png
Binary files differ
diff --git a/examples/declarative/plugins/com/nokia/TimeExample/clock.png b/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/clock.png
index 462edac..462edac 100644
--- a/examples/declarative/plugins/com/nokia/TimeExample/clock.png
+++ b/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/clock.png
Binary files differ
diff --git a/examples/declarative/plugins/com/nokia/TimeExample/hour.png b/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/hour.png
index f8061a1..f8061a1 100644
--- a/examples/declarative/plugins/com/nokia/TimeExample/hour.png
+++ b/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/hour.png
Binary files differ
diff --git a/examples/declarative/plugins/com/nokia/TimeExample/minute.png b/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/minute.png
index 1297ec7..1297ec7 100644
--- a/examples/declarative/plugins/com/nokia/TimeExample/minute.png
+++ b/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/minute.png
Binary files differ
diff --git a/examples/declarative/plugins/com/nokia/TimeExample/qmldir b/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/qmldir
index e9ef115..e9ef115 100644
--- a/examples/declarative/plugins/com/nokia/TimeExample/qmldir
+++ b/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/qmldir
diff --git a/examples/declarative/plugins/plugin.cpp b/examples/declarative/cppextensions/plugins/plugin.cpp
index fb51b0c..fb51b0c 100644
--- a/examples/declarative/plugins/plugin.cpp
+++ b/examples/declarative/cppextensions/plugins/plugin.cpp
diff --git a/examples/declarative/plugins/plugins.pro b/examples/declarative/cppextensions/plugins/plugins.pro
index b501ae3..b501ae3 100644
--- a/examples/declarative/plugins/plugins.pro
+++ b/examples/declarative/cppextensions/plugins/plugins.pro
diff --git a/examples/declarative/plugins/plugins.qml b/examples/declarative/cppextensions/plugins/plugins.qml
index 449cd9a..449cd9a 100644
--- a/examples/declarative/plugins/plugins.qml
+++ b/examples/declarative/cppextensions/plugins/plugins.qml
diff --git a/examples/declarative/plugins/plugins.qmlproject b/examples/declarative/cppextensions/plugins/plugins.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/plugins/plugins.qmlproject
+++ b/examples/declarative/cppextensions/plugins/plugins.qmlproject
diff --git a/examples/declarative/proxyviewer/main.cpp b/examples/declarative/cppextensions/proxyviewer/main.cpp
index b82d2c9..b82d2c9 100644
--- a/examples/declarative/proxyviewer/main.cpp
+++ b/examples/declarative/cppextensions/proxyviewer/main.cpp
diff --git a/examples/declarative/proxyviewer/proxyviewer.pro b/examples/declarative/cppextensions/proxyviewer/proxyviewer.pro
index b6bfa7f..b6bfa7f 100644
--- a/examples/declarative/proxyviewer/proxyviewer.pro
+++ b/examples/declarative/cppextensions/proxyviewer/proxyviewer.pro
diff --git a/examples/declarative/proxyviewer/proxyviewer.qrc b/examples/declarative/cppextensions/proxyviewer/proxyviewer.qrc
index 17e9301..17e9301 100644
--- a/examples/declarative/proxyviewer/proxyviewer.qrc
+++ b/examples/declarative/cppextensions/proxyviewer/proxyviewer.qrc
diff --git a/examples/declarative/proxyviewer/view.qml b/examples/declarative/cppextensions/proxyviewer/view.qml
index 7f1bdef..7f1bdef 100644
--- a/examples/declarative/proxyviewer/view.qml
+++ b/examples/declarative/cppextensions/proxyviewer/view.qml
diff --git a/examples/declarative/proxywidgets/ProxyWidgets/qmldir b/examples/declarative/cppextensions/proxywidgets/ProxyWidgets/qmldir
index e55267c..e55267c 100644
--- a/examples/declarative/proxywidgets/ProxyWidgets/qmldir
+++ b/examples/declarative/cppextensions/proxywidgets/ProxyWidgets/qmldir
diff --git a/examples/declarative/proxywidgets/README b/examples/declarative/cppextensions/proxywidgets/README
index f50fa22..f50fa22 100644
--- a/examples/declarative/proxywidgets/README
+++ b/examples/declarative/cppextensions/proxywidgets/README
diff --git a/examples/declarative/proxywidgets/proxywidgets.cpp b/examples/declarative/cppextensions/proxywidgets/proxywidgets.cpp
index 067eb2c..067eb2c 100644
--- a/examples/declarative/proxywidgets/proxywidgets.cpp
+++ b/examples/declarative/cppextensions/proxywidgets/proxywidgets.cpp
diff --git a/examples/declarative/proxywidgets/proxywidgets.pro b/examples/declarative/cppextensions/proxywidgets/proxywidgets.pro
index cb07d80..cb07d80 100644
--- a/examples/declarative/proxywidgets/proxywidgets.pro
+++ b/examples/declarative/cppextensions/proxywidgets/proxywidgets.pro
diff --git a/examples/declarative/proxywidgets/proxywidgets.qml b/examples/declarative/cppextensions/proxywidgets/proxywidgets.qml
index 88de37f..88de37f 100644
--- a/examples/declarative/proxywidgets/proxywidgets.qml
+++ b/examples/declarative/cppextensions/proxywidgets/proxywidgets.qml
diff --git a/examples/declarative/proxywidgets/proxywidgets.qmlproject b/examples/declarative/cppextensions/proxywidgets/proxywidgets.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/proxywidgets/proxywidgets.qmlproject
+++ b/examples/declarative/cppextensions/proxywidgets/proxywidgets.qmlproject
diff --git a/examples/declarative/layouts/graphicsLayouts/graphicslayouts.cpp b/examples/declarative/cppextensions/qgraphicslayouts/graphicsLayouts/graphicslayouts.cpp
index 25cf994..25cf994 100644
--- a/examples/declarative/layouts/graphicsLayouts/graphicslayouts.cpp
+++ b/examples/declarative/cppextensions/qgraphicslayouts/graphicsLayouts/graphicslayouts.cpp
diff --git a/examples/declarative/layouts/graphicsLayouts/graphicslayouts.pro b/examples/declarative/cppextensions/qgraphicslayouts/graphicsLayouts/graphicslayouts.pro
index e5d91b2..e5d91b2 100644
--- a/examples/declarative/layouts/graphicsLayouts/graphicslayouts.pro
+++ b/examples/declarative/cppextensions/qgraphicslayouts/graphicsLayouts/graphicslayouts.pro
diff --git a/examples/declarative/layouts/graphicsLayouts/graphicslayouts.qml b/examples/declarative/cppextensions/qgraphicslayouts/graphicsLayouts/graphicslayouts.qml
index fcd78d5..fcd78d5 100644
--- a/examples/declarative/layouts/graphicsLayouts/graphicslayouts.qml
+++ b/examples/declarative/cppextensions/qgraphicslayouts/graphicsLayouts/graphicslayouts.qml
diff --git a/examples/declarative/layouts/graphicsLayouts/graphicslayouts.qrc b/examples/declarative/cppextensions/qgraphicslayouts/graphicsLayouts/graphicslayouts.qrc
index a199f8d..a199f8d 100644
--- a/examples/declarative/layouts/graphicsLayouts/graphicslayouts.qrc
+++ b/examples/declarative/cppextensions/qgraphicslayouts/graphicsLayouts/graphicslayouts.qrc
diff --git a/examples/declarative/layouts/graphicsLayouts/graphicslayouts_p.h b/examples/declarative/cppextensions/qgraphicslayouts/graphicsLayouts/graphicslayouts_p.h
index ea9c614..ea9c614 100644
--- a/examples/declarative/layouts/graphicsLayouts/graphicslayouts_p.h
+++ b/examples/declarative/cppextensions/qgraphicslayouts/graphicsLayouts/graphicslayouts_p.h
diff --git a/examples/declarative/layouts/graphicsLayouts/main.cpp b/examples/declarative/cppextensions/qgraphicslayouts/graphicsLayouts/main.cpp
index 89b69bf..89b69bf 100644
--- a/examples/declarative/layouts/graphicsLayouts/main.cpp
+++ b/examples/declarative/cppextensions/qgraphicslayouts/graphicsLayouts/main.cpp
diff --git a/examples/declarative/layouts/layoutItem/layoutItem.pro b/examples/declarative/cppextensions/qgraphicslayouts/layoutItem/layoutItem.pro
index 4a3fc73..4a3fc73 100644
--- a/examples/declarative/layouts/layoutItem/layoutItem.pro
+++ b/examples/declarative/cppextensions/qgraphicslayouts/layoutItem/layoutItem.pro
diff --git a/examples/declarative/layouts/layoutItem/layoutItem.qml b/examples/declarative/cppextensions/qgraphicslayouts/layoutItem/layoutItem.qml
index 460c564..460c564 100644
--- a/examples/declarative/layouts/layoutItem/layoutItem.qml
+++ b/examples/declarative/cppextensions/qgraphicslayouts/layoutItem/layoutItem.qml
diff --git a/examples/declarative/layouts/layoutItem/layoutItem.qrc b/examples/declarative/cppextensions/qgraphicslayouts/layoutItem/layoutItem.qrc
index deb0fba..deb0fba 100644
--- a/examples/declarative/layouts/layoutItem/layoutItem.qrc
+++ b/examples/declarative/cppextensions/qgraphicslayouts/layoutItem/layoutItem.qrc
diff --git a/examples/declarative/layouts/layoutItem/main.cpp b/examples/declarative/cppextensions/qgraphicslayouts/layoutItem/main.cpp
index a104251..a104251 100644
--- a/examples/declarative/layouts/layoutItem/main.cpp
+++ b/examples/declarative/cppextensions/qgraphicslayouts/layoutItem/main.cpp
diff --git a/examples/declarative/cppextensions/qgraphicslayouts/qgraphicslayouts.pro b/examples/declarative/cppextensions/qgraphicslayouts/qgraphicslayouts.pro
new file mode 100644
index 0000000..d92a6f4
--- /dev/null
+++ b/examples/declarative/cppextensions/qgraphicslayouts/qgraphicslayouts.pro
@@ -0,0 +1,5 @@
+TEMPLATE = subdirs
+
+SUBDIRS += \
+ graphicsLayouts \
+ layoutItem
diff --git a/examples/declarative/velocity/velocity.qmlproject b/examples/declarative/cppextensions/qgraphicslayouts/qgraphicslayouts.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/velocity/velocity.qmlproject
+++ b/examples/declarative/cppextensions/qgraphicslayouts/qgraphicslayouts.qmlproject
diff --git a/examples/declarative/extending/adding/adding.pro b/examples/declarative/cppextensions/referenceexamples/adding/adding.pro
index 6072de4..6072de4 100644
--- a/examples/declarative/extending/adding/adding.pro
+++ b/examples/declarative/cppextensions/referenceexamples/adding/adding.pro
diff --git a/examples/declarative/extending/adding/adding.qrc b/examples/declarative/cppextensions/referenceexamples/adding/adding.qrc
index e2fa01d..e2fa01d 100644
--- a/examples/declarative/extending/adding/adding.qrc
+++ b/examples/declarative/cppextensions/referenceexamples/adding/adding.qrc
diff --git a/examples/declarative/extending/adding/example.qml b/examples/declarative/cppextensions/referenceexamples/adding/example.qml
index dc891e7..dc891e7 100644
--- a/examples/declarative/extending/adding/example.qml
+++ b/examples/declarative/cppextensions/referenceexamples/adding/example.qml
diff --git a/examples/declarative/extending/adding/main.cpp b/examples/declarative/cppextensions/referenceexamples/adding/main.cpp
index 7b33895..7b33895 100644
--- a/examples/declarative/extending/adding/main.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/adding/main.cpp
diff --git a/examples/declarative/extending/adding/person.cpp b/examples/declarative/cppextensions/referenceexamples/adding/person.cpp
index cdf08e0..cdf08e0 100644
--- a/examples/declarative/extending/adding/person.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/adding/person.cpp
diff --git a/examples/declarative/extending/adding/person.h b/examples/declarative/cppextensions/referenceexamples/adding/person.h
index d6de9a9..d6de9a9 100644
--- a/examples/declarative/extending/adding/person.h
+++ b/examples/declarative/cppextensions/referenceexamples/adding/person.h
diff --git a/examples/declarative/extending/attached/attached.pro b/examples/declarative/cppextensions/referenceexamples/attached/attached.pro
index f6d76ed..f6d76ed 100644
--- a/examples/declarative/extending/attached/attached.pro
+++ b/examples/declarative/cppextensions/referenceexamples/attached/attached.pro
diff --git a/examples/declarative/extending/attached/attached.qrc b/examples/declarative/cppextensions/referenceexamples/attached/attached.qrc
index e2fa01d..e2fa01d 100644
--- a/examples/declarative/extending/attached/attached.qrc
+++ b/examples/declarative/cppextensions/referenceexamples/attached/attached.qrc
diff --git a/examples/declarative/extending/attached/birthdayparty.cpp b/examples/declarative/cppextensions/referenceexamples/attached/birthdayparty.cpp
index 7fa1748..7fa1748 100644
--- a/examples/declarative/extending/attached/birthdayparty.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/attached/birthdayparty.cpp
diff --git a/examples/declarative/extending/attached/birthdayparty.h b/examples/declarative/cppextensions/referenceexamples/attached/birthdayparty.h
index 1c66f8c..1c66f8c 100644
--- a/examples/declarative/extending/attached/birthdayparty.h
+++ b/examples/declarative/cppextensions/referenceexamples/attached/birthdayparty.h
diff --git a/examples/declarative/extending/attached/example.qml b/examples/declarative/cppextensions/referenceexamples/attached/example.qml
index 50f0a32..50f0a32 100644
--- a/examples/declarative/extending/attached/example.qml
+++ b/examples/declarative/cppextensions/referenceexamples/attached/example.qml
diff --git a/examples/declarative/extending/attached/main.cpp b/examples/declarative/cppextensions/referenceexamples/attached/main.cpp
index f1055ae..f1055ae 100644
--- a/examples/declarative/extending/attached/main.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/attached/main.cpp
diff --git a/examples/declarative/extending/valuesource/person.cpp b/examples/declarative/cppextensions/referenceexamples/attached/person.cpp
index 0a9e508..0a9e508 100644
--- a/examples/declarative/extending/valuesource/person.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/attached/person.cpp
diff --git a/examples/declarative/extending/valuesource/person.h b/examples/declarative/cppextensions/referenceexamples/attached/person.h
index 2f444c5..2f444c5 100644
--- a/examples/declarative/extending/valuesource/person.h
+++ b/examples/declarative/cppextensions/referenceexamples/attached/person.h
diff --git a/examples/declarative/extending/binding/binding.pro b/examples/declarative/cppextensions/referenceexamples/binding/binding.pro
index 896ce25..896ce25 100644
--- a/examples/declarative/extending/binding/binding.pro
+++ b/examples/declarative/cppextensions/referenceexamples/binding/binding.pro
diff --git a/examples/declarative/extending/binding/binding.qrc b/examples/declarative/cppextensions/referenceexamples/binding/binding.qrc
index e2fa01d..e2fa01d 100644
--- a/examples/declarative/extending/binding/binding.qrc
+++ b/examples/declarative/cppextensions/referenceexamples/binding/binding.qrc
diff --git a/examples/declarative/extending/binding/birthdayparty.cpp b/examples/declarative/cppextensions/referenceexamples/binding/birthdayparty.cpp
index 000bb1f..000bb1f 100644
--- a/examples/declarative/extending/binding/birthdayparty.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/binding/birthdayparty.cpp
diff --git a/examples/declarative/extending/binding/birthdayparty.h b/examples/declarative/cppextensions/referenceexamples/binding/birthdayparty.h
index c3f033e..c3f033e 100644
--- a/examples/declarative/extending/binding/birthdayparty.h
+++ b/examples/declarative/cppextensions/referenceexamples/binding/birthdayparty.h
diff --git a/examples/declarative/extending/binding/example.qml b/examples/declarative/cppextensions/referenceexamples/binding/example.qml
index 82eb3be..82eb3be 100644
--- a/examples/declarative/extending/binding/example.qml
+++ b/examples/declarative/cppextensions/referenceexamples/binding/example.qml
diff --git a/examples/declarative/extending/binding/happybirthdaysong.cpp b/examples/declarative/cppextensions/referenceexamples/binding/happybirthdaysong.cpp
index a40e7fb..a40e7fb 100644
--- a/examples/declarative/extending/binding/happybirthdaysong.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/binding/happybirthdaysong.cpp
diff --git a/examples/declarative/extending/binding/happybirthdaysong.h b/examples/declarative/cppextensions/referenceexamples/binding/happybirthdaysong.h
index e825b86..e825b86 100644
--- a/examples/declarative/extending/binding/happybirthdaysong.h
+++ b/examples/declarative/cppextensions/referenceexamples/binding/happybirthdaysong.h
diff --git a/examples/declarative/extending/binding/main.cpp b/examples/declarative/cppextensions/referenceexamples/binding/main.cpp
index 2495676..2495676 100644
--- a/examples/declarative/extending/binding/main.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/binding/main.cpp
diff --git a/examples/declarative/extending/binding/person.cpp b/examples/declarative/cppextensions/referenceexamples/binding/person.cpp
index 9a2248f..9a2248f 100644
--- a/examples/declarative/extending/binding/person.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/binding/person.cpp
diff --git a/examples/declarative/extending/binding/person.h b/examples/declarative/cppextensions/referenceexamples/binding/person.h
index 2a68da0..2a68da0 100644
--- a/examples/declarative/extending/binding/person.h
+++ b/examples/declarative/cppextensions/referenceexamples/binding/person.h
diff --git a/examples/declarative/extending/grouped/birthdayparty.cpp b/examples/declarative/cppextensions/referenceexamples/coercion/birthdayparty.cpp
index 4f415a3..4f415a3 100644
--- a/examples/declarative/extending/grouped/birthdayparty.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/coercion/birthdayparty.cpp
diff --git a/examples/declarative/extending/coercion/birthdayparty.h b/examples/declarative/cppextensions/referenceexamples/coercion/birthdayparty.h
index ee77e9a..ee77e9a 100644
--- a/examples/declarative/extending/coercion/birthdayparty.h
+++ b/examples/declarative/cppextensions/referenceexamples/coercion/birthdayparty.h
diff --git a/examples/declarative/extending/coercion/coercion.pro b/examples/declarative/cppextensions/referenceexamples/coercion/coercion.pro
index c8daed8..c8daed8 100644
--- a/examples/declarative/extending/coercion/coercion.pro
+++ b/examples/declarative/cppextensions/referenceexamples/coercion/coercion.pro
diff --git a/examples/declarative/extending/coercion/coercion.qrc b/examples/declarative/cppextensions/referenceexamples/coercion/coercion.qrc
index e2fa01d..e2fa01d 100644
--- a/examples/declarative/extending/coercion/coercion.qrc
+++ b/examples/declarative/cppextensions/referenceexamples/coercion/coercion.qrc
diff --git a/examples/declarative/extending/coercion/example.qml b/examples/declarative/cppextensions/referenceexamples/coercion/example.qml
index 7b45950..7b45950 100644
--- a/examples/declarative/extending/coercion/example.qml
+++ b/examples/declarative/cppextensions/referenceexamples/coercion/example.qml
diff --git a/examples/declarative/extending/coercion/main.cpp b/examples/declarative/cppextensions/referenceexamples/coercion/main.cpp
index 2c7b545..2c7b545 100644
--- a/examples/declarative/extending/coercion/main.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/coercion/main.cpp
diff --git a/examples/declarative/extending/coercion/person.cpp b/examples/declarative/cppextensions/referenceexamples/coercion/person.cpp
index 5b5203a..5b5203a 100644
--- a/examples/declarative/extending/coercion/person.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/coercion/person.cpp
diff --git a/examples/declarative/extending/coercion/person.h b/examples/declarative/cppextensions/referenceexamples/coercion/person.h
index 1c95da7..1c95da7 100644
--- a/examples/declarative/extending/coercion/person.h
+++ b/examples/declarative/cppextensions/referenceexamples/coercion/person.h
diff --git a/examples/declarative/extending/default/birthdayparty.cpp b/examples/declarative/cppextensions/referenceexamples/default/birthdayparty.cpp
index 4f415a3..4f415a3 100644
--- a/examples/declarative/extending/default/birthdayparty.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/default/birthdayparty.cpp
diff --git a/examples/declarative/extending/default/birthdayparty.h b/examples/declarative/cppextensions/referenceexamples/default/birthdayparty.h
index 9741040..9741040 100644
--- a/examples/declarative/extending/default/birthdayparty.h
+++ b/examples/declarative/cppextensions/referenceexamples/default/birthdayparty.h
diff --git a/examples/declarative/extending/default/default.pro b/examples/declarative/cppextensions/referenceexamples/default/default.pro
index 32aff0b..32aff0b 100644
--- a/examples/declarative/extending/default/default.pro
+++ b/examples/declarative/cppextensions/referenceexamples/default/default.pro
diff --git a/examples/declarative/extending/default/default.qrc b/examples/declarative/cppextensions/referenceexamples/default/default.qrc
index e2fa01d..e2fa01d 100644
--- a/examples/declarative/extending/default/default.qrc
+++ b/examples/declarative/cppextensions/referenceexamples/default/default.qrc
diff --git a/examples/declarative/extending/default/example.qml b/examples/declarative/cppextensions/referenceexamples/default/example.qml
index c0f3cbb..c0f3cbb 100644
--- a/examples/declarative/extending/default/example.qml
+++ b/examples/declarative/cppextensions/referenceexamples/default/example.qml
diff --git a/examples/declarative/extending/default/main.cpp b/examples/declarative/cppextensions/referenceexamples/default/main.cpp
index 2ffd180..2ffd180 100644
--- a/examples/declarative/extending/default/main.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/default/main.cpp
diff --git a/examples/declarative/extending/default/person.cpp b/examples/declarative/cppextensions/referenceexamples/default/person.cpp
index 69216d3..69216d3 100644
--- a/examples/declarative/extending/default/person.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/default/person.cpp
diff --git a/examples/declarative/extending/default/person.h b/examples/declarative/cppextensions/referenceexamples/default/person.h
index 3e56860..3e56860 100644
--- a/examples/declarative/extending/default/person.h
+++ b/examples/declarative/cppextensions/referenceexamples/default/person.h
diff --git a/examples/declarative/extending/extended/example.qml b/examples/declarative/cppextensions/referenceexamples/extended/example.qml
index 985ce20..985ce20 100644
--- a/examples/declarative/extending/extended/example.qml
+++ b/examples/declarative/cppextensions/referenceexamples/extended/example.qml
diff --git a/examples/declarative/extending/extended/extended.pro b/examples/declarative/cppextensions/referenceexamples/extended/extended.pro
index 97af286..97af286 100644
--- a/examples/declarative/extending/extended/extended.pro
+++ b/examples/declarative/cppextensions/referenceexamples/extended/extended.pro
diff --git a/examples/declarative/extending/extended/extended.qrc b/examples/declarative/cppextensions/referenceexamples/extended/extended.qrc
index e2fa01d..e2fa01d 100644
--- a/examples/declarative/extending/extended/extended.qrc
+++ b/examples/declarative/cppextensions/referenceexamples/extended/extended.qrc
diff --git a/examples/declarative/extending/extended/lineedit.cpp b/examples/declarative/cppextensions/referenceexamples/extended/lineedit.cpp
index 0e521ec..0e521ec 100644
--- a/examples/declarative/extending/extended/lineedit.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/extended/lineedit.cpp
diff --git a/examples/declarative/extending/extended/lineedit.h b/examples/declarative/cppextensions/referenceexamples/extended/lineedit.h
index 3a464b0..3a464b0 100644
--- a/examples/declarative/extending/extended/lineedit.h
+++ b/examples/declarative/cppextensions/referenceexamples/extended/lineedit.h
diff --git a/examples/declarative/extending/extended/main.cpp b/examples/declarative/cppextensions/referenceexamples/extended/main.cpp
index ca7242d..ca7242d 100644
--- a/examples/declarative/extending/extended/main.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/extended/main.cpp
diff --git a/examples/declarative/extending/coercion/birthdayparty.cpp b/examples/declarative/cppextensions/referenceexamples/grouped/birthdayparty.cpp
index 4f415a3..4f415a3 100644
--- a/examples/declarative/extending/coercion/birthdayparty.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/grouped/birthdayparty.cpp
diff --git a/examples/declarative/extending/grouped/birthdayparty.h b/examples/declarative/cppextensions/referenceexamples/grouped/birthdayparty.h
index 31d21b2..31d21b2 100644
--- a/examples/declarative/extending/grouped/birthdayparty.h
+++ b/examples/declarative/cppextensions/referenceexamples/grouped/birthdayparty.h
diff --git a/examples/declarative/extending/grouped/example.qml b/examples/declarative/cppextensions/referenceexamples/grouped/example.qml
index 91b7a06..91b7a06 100644
--- a/examples/declarative/extending/grouped/example.qml
+++ b/examples/declarative/cppextensions/referenceexamples/grouped/example.qml
diff --git a/examples/declarative/extending/grouped/grouped.pro b/examples/declarative/cppextensions/referenceexamples/grouped/grouped.pro
index 576e1d2..576e1d2 100644
--- a/examples/declarative/extending/grouped/grouped.pro
+++ b/examples/declarative/cppextensions/referenceexamples/grouped/grouped.pro
diff --git a/examples/declarative/extending/grouped/grouped.qrc b/examples/declarative/cppextensions/referenceexamples/grouped/grouped.qrc
index e2fa01d..e2fa01d 100644
--- a/examples/declarative/extending/grouped/grouped.qrc
+++ b/examples/declarative/cppextensions/referenceexamples/grouped/grouped.qrc
diff --git a/examples/declarative/extending/grouped/main.cpp b/examples/declarative/cppextensions/referenceexamples/grouped/main.cpp
index baf32cf..baf32cf 100644
--- a/examples/declarative/extending/grouped/main.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/grouped/main.cpp
diff --git a/examples/declarative/extending/signal/person.cpp b/examples/declarative/cppextensions/referenceexamples/grouped/person.cpp
index 0a9e508..0a9e508 100644
--- a/examples/declarative/extending/signal/person.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/grouped/person.cpp
diff --git a/examples/declarative/extending/grouped/person.h b/examples/declarative/cppextensions/referenceexamples/grouped/person.h
index a031e69..a031e69 100644
--- a/examples/declarative/extending/grouped/person.h
+++ b/examples/declarative/cppextensions/referenceexamples/grouped/person.h
diff --git a/examples/declarative/extending/properties/birthdayparty.cpp b/examples/declarative/cppextensions/referenceexamples/properties/birthdayparty.cpp
index 27d17a1..27d17a1 100644
--- a/examples/declarative/extending/properties/birthdayparty.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/properties/birthdayparty.cpp
diff --git a/examples/declarative/extending/properties/birthdayparty.h b/examples/declarative/cppextensions/referenceexamples/properties/birthdayparty.h
index 39ce9ba..39ce9ba 100644
--- a/examples/declarative/extending/properties/birthdayparty.h
+++ b/examples/declarative/cppextensions/referenceexamples/properties/birthdayparty.h
diff --git a/examples/declarative/extending/properties/example.qml b/examples/declarative/cppextensions/referenceexamples/properties/example.qml
index 35abdd6..35abdd6 100644
--- a/examples/declarative/extending/properties/example.qml
+++ b/examples/declarative/cppextensions/referenceexamples/properties/example.qml
diff --git a/examples/declarative/extending/properties/main.cpp b/examples/declarative/cppextensions/referenceexamples/properties/main.cpp
index 85e9584..85e9584 100644
--- a/examples/declarative/extending/properties/main.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/properties/main.cpp
diff --git a/examples/declarative/extending/properties/person.cpp b/examples/declarative/cppextensions/referenceexamples/properties/person.cpp
index 92c54f5..92c54f5 100644
--- a/examples/declarative/extending/properties/person.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/properties/person.cpp
diff --git a/examples/declarative/extending/properties/person.h b/examples/declarative/cppextensions/referenceexamples/properties/person.h
index 0029b09..0029b09 100644
--- a/examples/declarative/extending/properties/person.h
+++ b/examples/declarative/cppextensions/referenceexamples/properties/person.h
diff --git a/examples/declarative/extending/properties/properties.pro b/examples/declarative/cppextensions/referenceexamples/properties/properties.pro
index a8f4301..a8f4301 100644
--- a/examples/declarative/extending/properties/properties.pro
+++ b/examples/declarative/cppextensions/referenceexamples/properties/properties.pro
diff --git a/examples/declarative/extending/properties/properties.qrc b/examples/declarative/cppextensions/referenceexamples/properties/properties.qrc
index e2fa01d..e2fa01d 100644
--- a/examples/declarative/extending/properties/properties.qrc
+++ b/examples/declarative/cppextensions/referenceexamples/properties/properties.qrc
diff --git a/examples/declarative/extending/extending.pro b/examples/declarative/cppextensions/referenceexamples/referenceexamples.pro
index 169c7ab..169c7ab 100644
--- a/examples/declarative/extending/extending.pro
+++ b/examples/declarative/cppextensions/referenceexamples/referenceexamples.pro
diff --git a/examples/declarative/tvtennis/tvtennis.qmlproject b/examples/declarative/cppextensions/referenceexamples/referenceexamples.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/tvtennis/tvtennis.qmlproject
+++ b/examples/declarative/cppextensions/referenceexamples/referenceexamples.qmlproject
diff --git a/examples/declarative/extending/signal/birthdayparty.cpp b/examples/declarative/cppextensions/referenceexamples/signal/birthdayparty.cpp
index 740c8c9..740c8c9 100644
--- a/examples/declarative/extending/signal/birthdayparty.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/signal/birthdayparty.cpp
diff --git a/examples/declarative/extending/signal/birthdayparty.h b/examples/declarative/cppextensions/referenceexamples/signal/birthdayparty.h
index ae4dd39..ae4dd39 100644
--- a/examples/declarative/extending/signal/birthdayparty.h
+++ b/examples/declarative/cppextensions/referenceexamples/signal/birthdayparty.h
diff --git a/examples/declarative/extending/signal/example.qml b/examples/declarative/cppextensions/referenceexamples/signal/example.qml
index 83d6a23..83d6a23 100644
--- a/examples/declarative/extending/signal/example.qml
+++ b/examples/declarative/cppextensions/referenceexamples/signal/example.qml
diff --git a/examples/declarative/extending/signal/main.cpp b/examples/declarative/cppextensions/referenceexamples/signal/main.cpp
index 453f688..453f688 100644
--- a/examples/declarative/extending/signal/main.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/signal/main.cpp
diff --git a/examples/declarative/extending/grouped/person.cpp b/examples/declarative/cppextensions/referenceexamples/signal/person.cpp
index 0a9e508..0a9e508 100644
--- a/examples/declarative/extending/grouped/person.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/signal/person.cpp
diff --git a/examples/declarative/extending/signal/person.h b/examples/declarative/cppextensions/referenceexamples/signal/person.h
index 2f444c5..2f444c5 100644
--- a/examples/declarative/extending/signal/person.h
+++ b/examples/declarative/cppextensions/referenceexamples/signal/person.h
diff --git a/examples/declarative/extending/signal/signal.pro b/examples/declarative/cppextensions/referenceexamples/signal/signal.pro
index 6367a38..6367a38 100644
--- a/examples/declarative/extending/signal/signal.pro
+++ b/examples/declarative/cppextensions/referenceexamples/signal/signal.pro
diff --git a/examples/declarative/extending/signal/signal.qrc b/examples/declarative/cppextensions/referenceexamples/signal/signal.qrc
index e2fa01d..e2fa01d 100644
--- a/examples/declarative/extending/signal/signal.qrc
+++ b/examples/declarative/cppextensions/referenceexamples/signal/signal.qrc
diff --git a/examples/declarative/extending/valuesource/birthdayparty.cpp b/examples/declarative/cppextensions/referenceexamples/valuesource/birthdayparty.cpp
index b915f4f..b915f4f 100644
--- a/examples/declarative/extending/valuesource/birthdayparty.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/valuesource/birthdayparty.cpp
diff --git a/examples/declarative/extending/valuesource/birthdayparty.h b/examples/declarative/cppextensions/referenceexamples/valuesource/birthdayparty.h
index 5f25781..5f25781 100644
--- a/examples/declarative/extending/valuesource/birthdayparty.h
+++ b/examples/declarative/cppextensions/referenceexamples/valuesource/birthdayparty.h
diff --git a/examples/declarative/extending/valuesource/example.qml b/examples/declarative/cppextensions/referenceexamples/valuesource/example.qml
index 5b8c8af..5b8c8af 100644
--- a/examples/declarative/extending/valuesource/example.qml
+++ b/examples/declarative/cppextensions/referenceexamples/valuesource/example.qml
diff --git a/examples/declarative/extending/valuesource/happybirthdaysong.cpp b/examples/declarative/cppextensions/referenceexamples/valuesource/happybirthdaysong.cpp
index 8ea5c2b..8ea5c2b 100644
--- a/examples/declarative/extending/valuesource/happybirthdaysong.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/valuesource/happybirthdaysong.cpp
diff --git a/examples/declarative/extending/valuesource/happybirthdaysong.h b/examples/declarative/cppextensions/referenceexamples/valuesource/happybirthdaysong.h
index 3d07909..3d07909 100644
--- a/examples/declarative/extending/valuesource/happybirthdaysong.h
+++ b/examples/declarative/cppextensions/referenceexamples/valuesource/happybirthdaysong.h
diff --git a/examples/declarative/extending/valuesource/main.cpp b/examples/declarative/cppextensions/referenceexamples/valuesource/main.cpp
index 00840ee..00840ee 100644
--- a/examples/declarative/extending/valuesource/main.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/valuesource/main.cpp
diff --git a/examples/declarative/extending/attached/person.cpp b/examples/declarative/cppextensions/referenceexamples/valuesource/person.cpp
index 0a9e508..0a9e508 100644
--- a/examples/declarative/extending/attached/person.cpp
+++ b/examples/declarative/cppextensions/referenceexamples/valuesource/person.cpp
diff --git a/examples/declarative/extending/attached/person.h b/examples/declarative/cppextensions/referenceexamples/valuesource/person.h
index 2f444c5..2f444c5 100644
--- a/examples/declarative/extending/attached/person.h
+++ b/examples/declarative/cppextensions/referenceexamples/valuesource/person.h
diff --git a/examples/declarative/extending/valuesource/valuesource.pro b/examples/declarative/cppextensions/referenceexamples/valuesource/valuesource.pro
index 0626c98..0626c98 100644
--- a/examples/declarative/extending/valuesource/valuesource.pro
+++ b/examples/declarative/cppextensions/referenceexamples/valuesource/valuesource.pro
diff --git a/examples/declarative/extending/valuesource/valuesource.qrc b/examples/declarative/cppextensions/referenceexamples/valuesource/valuesource.qrc
index e2fa01d..e2fa01d 100644
--- a/examples/declarative/extending/valuesource/valuesource.qrc
+++ b/examples/declarative/cppextensions/referenceexamples/valuesource/valuesource.qrc
diff --git a/examples/declarative/declarative.pro b/examples/declarative/declarative.pro
index 913b2b0..e3d922c 100644
--- a/examples/declarative/declarative.pro
+++ b/examples/declarative/declarative.pro
@@ -2,53 +2,28 @@ TEMPLATE = subdirs
# These examples contain some C++ and need to be built
SUBDIRS = \
- extending \
- imageprovider \
- objectlistmodel \
- stringlistmodel \
- proxyviewer \
- plugins \
- proxywidgets
+ cppextensions \
+ modelviews \
+ tutorials
# plugins uses a 'Time' class that conflicts with symbian e32std.h also defining a class of the same name
symbian:SUBDIRS -= plugins
# These examples contain no C++ and can simply be copied
sources.files = \
- animations \
- aspectratio \
- behaviors \
- border-image \
- clocks \
- connections \
- dial \
- dynamic \
- effects \
- fillmode \
- focus \
- fonts \
- gridview \
- layouts \
- listview \
- mousearea \
- package \
- parallax \
- progressbar \
- scrollbar \
- searchbox \
- slideswitch \
- spinner \
- sql \
- states \
- tabwidget \
- tic-tac-toe \
- tutorials \
- tvtennis \
- velocity \
- webview \
- workerlistmodel \
- workerscript \
- xmldata \
- xmlhttprequest
+ animation \
+ cppextensions \
+ i18n \
+ imageelements \
+ keyinteraction \
+ positioners \
+ sqllocalstorage \
+ text \
+ threading \
+ touchinteraction \
+ toys \
+ ui-components \
+ xml
+
sources.path = $$[QT_INSTALL_EXAMPLES]/declarative
INSTALLS += sources
diff --git a/examples/declarative/fillmode/content/QtLogo.qml b/examples/declarative/fillmode/content/QtLogo.qml
deleted file mode 100644
index 6dd714d..0000000
--- a/examples/declarative/fillmode/content/QtLogo.qml
+++ /dev/null
@@ -1,30 +0,0 @@
-import Qt 4.7
-
-Item {
- id: qtLogo
-
- property alias fillMode: image.fillMode
- property alias label: labelText.text
-
- width: ((window.width - 20) - ((grid.columns - 1) * grid.spacing)) / grid.columns
- height: ((window.height - 20) - ((grid.rows - 1) * grid.spacing)) / grid.rows
-
- Column {
- anchors.fill: parent
-
- Rectangle {
- height: qtLogo.height - 30; width: qtLogo.width
- border.color: "black"; clip: true
-
- Image {
- id: image
- anchors.fill: parent; smooth: true; source: "qt-logo.png"
- }
- }
-
- Text {
- id: labelText; anchors.horizontalCenter: parent.horizontalCenter
- height: 30; verticalAlignment: Text.AlignVCenter
- }
- }
-}
diff --git a/examples/declarative/fillmode/content/qt-logo.png b/examples/declarative/fillmode/content/qt-logo.png
deleted file mode 100644
index 14ddf2a..0000000
--- a/examples/declarative/fillmode/content/qt-logo.png
+++ /dev/null
Binary files differ
diff --git a/examples/declarative/fillmode/fillmode.qml b/examples/declarative/fillmode/fillmode.qml
deleted file mode 100644
index e5b0336..0000000
--- a/examples/declarative/fillmode/fillmode.qml
+++ /dev/null
@@ -1,22 +0,0 @@
-import Qt 4.7
-import "content"
-
-Rectangle {
- id: window
-
- width: 800; height: 480
- color: "#cdcdcd"
-
- Grid {
- id: grid
- anchors { fill: parent; topMargin: 10; leftMargin: 10; rightMargin: 10; bottomMargin: 10 }
- columns: 3; rows: 2; spacing: 20
-
- QtLogo { fillMode: Image.Stretch; label: "Stretch" }
- QtLogo { fillMode: Image.PreserveAspectFit; label: "PreserveAspectFit" }
- QtLogo { fillMode: Image.PreserveAspectCrop; label: "PreserveAspectCrop" }
- QtLogo { fillMode: Image.Tile; label: "Tile" }
- QtLogo { fillMode: Image.TileHorizontally; label: "TileHorizontally" }
- QtLogo { fillMode: Image.TileVertically; label: "TileVertically" }
- }
-}
diff --git a/examples/declarative/tic-tac-toe/tic-tac-toe.qmlproject b/examples/declarative/i18n/i18n.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/tic-tac-toe/tic-tac-toe.qmlproject
+++ b/examples/declarative/i18n/i18n.qmlproject
diff --git a/examples/declarative/border-image/border-image.qml b/examples/declarative/imageelements/borderimage/borderimage.qml
index c334cea..c334cea 100644
--- a/examples/declarative/border-image/border-image.qml
+++ b/examples/declarative/imageelements/borderimage/borderimage.qml
diff --git a/examples/declarative/tabwidget/tabwidget.qmlproject b/examples/declarative/imageelements/borderimage/borderimage.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/tabwidget/tabwidget.qmlproject
+++ b/examples/declarative/imageelements/borderimage/borderimage.qmlproject
diff --git a/examples/declarative/border-image/content/MyBorderImage.qml b/examples/declarative/imageelements/borderimage/content/MyBorderImage.qml
index b47df7b..b47df7b 100644
--- a/examples/declarative/border-image/content/MyBorderImage.qml
+++ b/examples/declarative/imageelements/borderimage/content/MyBorderImage.qml
diff --git a/examples/declarative/border-image/content/ShadowRectangle.qml b/examples/declarative/imageelements/borderimage/content/ShadowRectangle.qml
index 629478b..629478b 100644
--- a/examples/declarative/border-image/content/ShadowRectangle.qml
+++ b/examples/declarative/imageelements/borderimage/content/ShadowRectangle.qml
diff --git a/examples/declarative/border-image/content/bw.png b/examples/declarative/imageelements/borderimage/content/bw.png
index 486eaae..486eaae 100644
--- a/examples/declarative/border-image/content/bw.png
+++ b/examples/declarative/imageelements/borderimage/content/bw.png
Binary files differ
diff --git a/examples/declarative/border-image/content/colors-round.sci b/examples/declarative/imageelements/borderimage/content/colors-round.sci
index 506f6f5..506f6f5 100644
--- a/examples/declarative/border-image/content/colors-round.sci
+++ b/examples/declarative/imageelements/borderimage/content/colors-round.sci
diff --git a/examples/declarative/border-image/content/colors-stretch.sci b/examples/declarative/imageelements/borderimage/content/colors-stretch.sci
index e4989a7..e4989a7 100644
--- a/examples/declarative/border-image/content/colors-stretch.sci
+++ b/examples/declarative/imageelements/borderimage/content/colors-stretch.sci
diff --git a/examples/declarative/border-image/content/colors.png b/examples/declarative/imageelements/borderimage/content/colors.png
index dfb62f3..dfb62f3 100644
--- a/examples/declarative/border-image/content/colors.png
+++ b/examples/declarative/imageelements/borderimage/content/colors.png
Binary files differ
diff --git a/examples/declarative/border-image/content/shadow.png b/examples/declarative/imageelements/borderimage/content/shadow.png
index 431af85..431af85 100644
--- a/examples/declarative/border-image/content/shadow.png
+++ b/examples/declarative/imageelements/borderimage/content/shadow.png
Binary files differ
diff --git a/examples/declarative/border-image/shadows.qml b/examples/declarative/imageelements/borderimage/shadows.qml
index a08d133..a08d133 100644
--- a/examples/declarative/border-image/shadows.qml
+++ b/examples/declarative/imageelements/borderimage/shadows.qml
diff --git a/examples/declarative/aspectratio/face_fit.qml b/examples/declarative/imageelements/image/face_fit.qml
index 52cd4c2..52cd4c2 100644
--- a/examples/declarative/aspectratio/face_fit.qml
+++ b/examples/declarative/imageelements/image/face_fit.qml
diff --git a/examples/declarative/aspectratio/face_fit_animated.qml b/examples/declarative/imageelements/image/face_fit_animated.qml
index 63fc9c6..63fc9c6 100644
--- a/examples/declarative/aspectratio/face_fit_animated.qml
+++ b/examples/declarative/imageelements/image/face_fit_animated.qml
diff --git a/examples/declarative/sql/sql.qmlproject b/examples/declarative/imageelements/image/image.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/sql/sql.qmlproject
+++ b/examples/declarative/imageelements/image/image.qmlproject
diff --git a/examples/declarative/aspectratio/pics/face.png b/examples/declarative/imageelements/image/pics/face.png
index 3d66d72..3d66d72 100644
--- a/examples/declarative/aspectratio/pics/face.png
+++ b/examples/declarative/imageelements/image/pics/face.png
Binary files differ
diff --git a/examples/declarative/aspectratio/scale_and_crop.qml b/examples/declarative/imageelements/image/scale_and_crop.qml
index a438104..a438104 100644
--- a/examples/declarative/aspectratio/scale_and_crop.qml
+++ b/examples/declarative/imageelements/image/scale_and_crop.qml
diff --git a/examples/declarative/aspectratio/scale_and_crop_simple.qml b/examples/declarative/imageelements/image/scale_and_crop_simple.qml
index 1160ec5..1160ec5 100644
--- a/examples/declarative/aspectratio/scale_and_crop_simple.qml
+++ b/examples/declarative/imageelements/image/scale_and_crop_simple.qml
diff --git a/examples/declarative/aspectratio/scale_and_sidecrop.qml b/examples/declarative/imageelements/image/scale_and_sidecrop.qml
index 5593ab8..5593ab8 100644
--- a/examples/declarative/aspectratio/scale_and_sidecrop.qml
+++ b/examples/declarative/imageelements/image/scale_and_sidecrop.qml
diff --git a/examples/declarative/aspectratio/scale_to_fit.qml b/examples/declarative/imageelements/image/scale_to_fit.qml
index 724a36e..724a36e 100644
--- a/examples/declarative/aspectratio/scale_to_fit.qml
+++ b/examples/declarative/imageelements/image/scale_to_fit.qml
diff --git a/examples/declarative/aspectratio/scale_to_fit_simple.qml b/examples/declarative/imageelements/image/scale_to_fit_simple.qml
index 0e960b4..0e960b4 100644
--- a/examples/declarative/aspectratio/scale_to_fit_simple.qml
+++ b/examples/declarative/imageelements/image/scale_to_fit_simple.qml
diff --git a/examples/declarative/spinner/spinner.qmlproject b/examples/declarative/imageelements/imageelements.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/spinner/spinner.qmlproject
+++ b/examples/declarative/imageelements/imageelements.qmlproject
diff --git a/examples/declarative/images/content/lemonade.jpg b/examples/declarative/images/content/lemonade.jpg
deleted file mode 100644
index db445c9..0000000
--- a/examples/declarative/images/content/lemonade.jpg
+++ /dev/null
Binary files differ
diff --git a/examples/declarative/images/images.qml b/examples/declarative/images/images.qml
deleted file mode 100644
index e48ad50..0000000
--- a/examples/declarative/images/images.qml
+++ /dev/null
@@ -1,72 +0,0 @@
-import Qt 4.7
-
-Rectangle {
- color: "white"
- width: grid.width + 50
- height: grid.height + 50
-
- Grid {
- id: grid
- x: 25; y: 25
- columns: 3
-
- Image {
- source: "content/lemonade.jpg"
- }
-
- Image {
- sourceSize.width: 50
- sourceSize.height: 50
- source: "content/lemonade.jpg"
- }
-
- Image {
- sourceSize.width: 50
- sourceSize.height: 50
- smooth: true
- source: "content/lemonade.jpg"
- }
-
- Image {
- scale: 1/3
- source: "content/lemonade.jpg"
- }
-
- Image {
- scale: 1/3
- sourceSize.width: 50
- sourceSize.height: 50
- source: "content/lemonade.jpg"
- }
-
- Image {
- scale: 1/3
- sourceSize.width: 50
- sourceSize.height: 50
- smooth: true
- source: "content/lemonade.jpg"
- }
-
- Image {
- width: 50; height: 50
- transform: Translate { x: 50 }
- source: "content/lemonade.jpg"
- }
-
- Image {
- width: 50; height: 50
- transform: Translate { x: 50 }
- sourceSize.width: 50
- sourceSize.height: 50
- source: "content/lemonade.jpg"
- }
-
- Image {
- width: 50; height: 50
- transform: Translate { x: 50 }
- sourceSize: "50x50" // syntactic sugar
- smooth: true
- source: "content/lemonade.jpg"
- }
- }
-}
diff --git a/examples/declarative/focus/Core/ContextMenu.qml b/examples/declarative/keyinteraction/focus/Core/ContextMenu.qml
index 49a54bc..49a54bc 100644
--- a/examples/declarative/focus/Core/ContextMenu.qml
+++ b/examples/declarative/keyinteraction/focus/Core/ContextMenu.qml
diff --git a/examples/declarative/focus/Core/GridMenu.qml b/examples/declarative/keyinteraction/focus/Core/GridMenu.qml
index 3f727fd..3f727fd 100644
--- a/examples/declarative/focus/Core/GridMenu.qml
+++ b/examples/declarative/keyinteraction/focus/Core/GridMenu.qml
diff --git a/examples/declarative/focus/Core/ListViewDelegate.qml b/examples/declarative/keyinteraction/focus/Core/ListViewDelegate.qml
index 14e2548..14e2548 100644
--- a/examples/declarative/focus/Core/ListViewDelegate.qml
+++ b/examples/declarative/keyinteraction/focus/Core/ListViewDelegate.qml
diff --git a/examples/declarative/focus/Core/ListViews.qml b/examples/declarative/keyinteraction/focus/Core/ListViews.qml
index 32a5d4c..32a5d4c 100644
--- a/examples/declarative/focus/Core/ListViews.qml
+++ b/examples/declarative/keyinteraction/focus/Core/ListViews.qml
diff --git a/examples/declarative/focus/Core/images/arrow.png b/examples/declarative/keyinteraction/focus/Core/images/arrow.png
index 14978c2..14978c2 100644
--- a/examples/declarative/focus/Core/images/arrow.png
+++ b/examples/declarative/keyinteraction/focus/Core/images/arrow.png
Binary files differ
diff --git a/examples/declarative/focus/Core/images/qt-logo.png b/examples/declarative/keyinteraction/focus/Core/images/qt-logo.png
index 14ddf2a..14ddf2a 100644
--- a/examples/declarative/focus/Core/images/qt-logo.png
+++ b/examples/declarative/keyinteraction/focus/Core/images/qt-logo.png
Binary files differ
diff --git a/examples/declarative/focus/Core/qmldir b/examples/declarative/keyinteraction/focus/Core/qmldir
index e25d63c..e25d63c 100644
--- a/examples/declarative/focus/Core/qmldir
+++ b/examples/declarative/keyinteraction/focus/Core/qmldir
diff --git a/examples/declarative/focus/focus.qml b/examples/declarative/keyinteraction/focus/focus.qml
index 8c992ae..8c992ae 100644
--- a/examples/declarative/focus/focus.qml
+++ b/examples/declarative/keyinteraction/focus/focus.qml
diff --git a/examples/declarative/focus/focus.qmlproject b/examples/declarative/keyinteraction/focus/focus.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/focus/focus.qmlproject
+++ b/examples/declarative/keyinteraction/focus/focus.qmlproject
diff --git a/examples/declarative/slideswitch/slideswitch.qmlproject b/examples/declarative/keyinteraction/keyinteraction.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/slideswitch/slideswitch.qmlproject
+++ b/examples/declarative/keyinteraction/keyinteraction.qmlproject
diff --git a/examples/declarative/gridview/gridview-example.qml b/examples/declarative/modelviews/gridview/gridview-example.qml
index a5f41fb..a5f41fb 100644
--- a/examples/declarative/gridview/gridview-example.qml
+++ b/examples/declarative/modelviews/gridview/gridview-example.qml
diff --git a/examples/declarative/gridview/gridview.qmlproject b/examples/declarative/modelviews/gridview/gridview.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/gridview/gridview.qmlproject
+++ b/examples/declarative/modelviews/gridview/gridview.qmlproject
diff --git a/examples/declarative/gridview/pics/AddressBook_48.png b/examples/declarative/modelviews/gridview/pics/AddressBook_48.png
index 1ab7c8e..1ab7c8e 100644
--- a/examples/declarative/gridview/pics/AddressBook_48.png
+++ b/examples/declarative/modelviews/gridview/pics/AddressBook_48.png
Binary files differ
diff --git a/examples/declarative/gridview/pics/AudioPlayer_48.png b/examples/declarative/modelviews/gridview/pics/AudioPlayer_48.png
index f4b8689..f4b8689 100644
--- a/examples/declarative/gridview/pics/AudioPlayer_48.png
+++ b/examples/declarative/modelviews/gridview/pics/AudioPlayer_48.png
Binary files differ
diff --git a/examples/declarative/gridview/pics/Camera_48.png b/examples/declarative/modelviews/gridview/pics/Camera_48.png
index c76b524..c76b524 100644
--- a/examples/declarative/gridview/pics/Camera_48.png
+++ b/examples/declarative/modelviews/gridview/pics/Camera_48.png
Binary files differ
diff --git a/examples/declarative/gridview/pics/DateBook_48.png b/examples/declarative/modelviews/gridview/pics/DateBook_48.png
index 58f5787..58f5787 100644
--- a/examples/declarative/gridview/pics/DateBook_48.png
+++ b/examples/declarative/modelviews/gridview/pics/DateBook_48.png
Binary files differ
diff --git a/examples/declarative/gridview/pics/EMail_48.png b/examples/declarative/modelviews/gridview/pics/EMail_48.png
index d6d84a6..d6d84a6 100644
--- a/examples/declarative/gridview/pics/EMail_48.png
+++ b/examples/declarative/modelviews/gridview/pics/EMail_48.png
Binary files differ
diff --git a/examples/declarative/gridview/pics/TodoList_48.png b/examples/declarative/modelviews/gridview/pics/TodoList_48.png
index 0988448..0988448 100644
--- a/examples/declarative/gridview/pics/TodoList_48.png
+++ b/examples/declarative/modelviews/gridview/pics/TodoList_48.png
Binary files differ
diff --git a/examples/declarative/gridview/pics/VideoPlayer_48.png b/examples/declarative/modelviews/gridview/pics/VideoPlayer_48.png
index 52638c5..52638c5 100644
--- a/examples/declarative/gridview/pics/VideoPlayer_48.png
+++ b/examples/declarative/modelviews/gridview/pics/VideoPlayer_48.png
Binary files differ
diff --git a/examples/declarative/listview/content/ClickAutoRepeating.qml b/examples/declarative/modelviews/listview/content/ClickAutoRepeating.qml
index f65c2b3..f65c2b3 100644
--- a/examples/declarative/listview/content/ClickAutoRepeating.qml
+++ b/examples/declarative/modelviews/listview/content/ClickAutoRepeating.qml
diff --git a/examples/declarative/listview/content/MediaButton.qml b/examples/declarative/modelviews/listview/content/MediaButton.qml
index a625b4c..a625b4c 100644
--- a/examples/declarative/listview/content/MediaButton.qml
+++ b/examples/declarative/modelviews/listview/content/MediaButton.qml
diff --git a/examples/declarative/listview/content/pics/add.png b/examples/declarative/modelviews/listview/content/pics/add.png
index f29d84b..f29d84b 100644
--- a/examples/declarative/listview/content/pics/add.png
+++ b/examples/declarative/modelviews/listview/content/pics/add.png
Binary files differ
diff --git a/examples/declarative/listview/content/pics/archive-insert.png b/examples/declarative/modelviews/listview/content/pics/archive-insert.png
index b706248..b706248 100644
--- a/examples/declarative/listview/content/pics/archive-insert.png
+++ b/examples/declarative/modelviews/listview/content/pics/archive-insert.png
Binary files differ
diff --git a/examples/declarative/listview/content/pics/archive-remove.png b/examples/declarative/modelviews/listview/content/pics/archive-remove.png
index 9640f6b..9640f6b 100644
--- a/examples/declarative/listview/content/pics/archive-remove.png
+++ b/examples/declarative/modelviews/listview/content/pics/archive-remove.png
Binary files differ
diff --git a/examples/declarative/listview/content/pics/button-pressed.png b/examples/declarative/modelviews/listview/content/pics/button-pressed.png
index e434d32..e434d32 100644
--- a/examples/declarative/listview/content/pics/button-pressed.png
+++ b/examples/declarative/modelviews/listview/content/pics/button-pressed.png
Binary files differ
diff --git a/examples/declarative/listview/content/pics/button.png b/examples/declarative/modelviews/listview/content/pics/button.png
index 56a63ce..56a63ce 100644
--- a/examples/declarative/listview/content/pics/button.png
+++ b/examples/declarative/modelviews/listview/content/pics/button.png
Binary files differ
diff --git a/examples/declarative/listview/content/pics/del.png b/examples/declarative/modelviews/listview/content/pics/del.png
index 1d753a3..1d753a3 100644
--- a/examples/declarative/listview/content/pics/del.png
+++ b/examples/declarative/modelviews/listview/content/pics/del.png
Binary files differ
diff --git a/examples/declarative/listview/content/pics/fruit-salad.jpg b/examples/declarative/modelviews/listview/content/pics/fruit-salad.jpg
index da5a6b1..da5a6b1 100644
--- a/examples/declarative/listview/content/pics/fruit-salad.jpg
+++ b/examples/declarative/modelviews/listview/content/pics/fruit-salad.jpg
Binary files differ
diff --git a/examples/declarative/listview/content/pics/go-down.png b/examples/declarative/modelviews/listview/content/pics/go-down.png
index 63331a5..63331a5 100644
--- a/examples/declarative/listview/content/pics/go-down.png
+++ b/examples/declarative/modelviews/listview/content/pics/go-down.png
Binary files differ
diff --git a/examples/declarative/listview/content/pics/go-up.png b/examples/declarative/modelviews/listview/content/pics/go-up.png
index 4459024..4459024 100644
--- a/examples/declarative/listview/content/pics/go-up.png
+++ b/examples/declarative/modelviews/listview/content/pics/go-up.png
Binary files differ
diff --git a/examples/declarative/listview/content/pics/hamburger.jpg b/examples/declarative/modelviews/listview/content/pics/hamburger.jpg
index d0a15be..d0a15be 100644
--- a/examples/declarative/listview/content/pics/hamburger.jpg
+++ b/examples/declarative/modelviews/listview/content/pics/hamburger.jpg
Binary files differ
diff --git a/examples/declarative/listview/content/pics/lemonade.jpg b/examples/declarative/modelviews/listview/content/pics/lemonade.jpg
index db445c9..db445c9 100644
--- a/examples/declarative/listview/content/pics/lemonade.jpg
+++ b/examples/declarative/modelviews/listview/content/pics/lemonade.jpg
Binary files differ
diff --git a/examples/declarative/listview/content/pics/list-add.png b/examples/declarative/modelviews/listview/content/pics/list-add.png
index e029787..e029787 100644
--- a/examples/declarative/listview/content/pics/list-add.png
+++ b/examples/declarative/modelviews/listview/content/pics/list-add.png
Binary files differ
diff --git a/examples/declarative/listview/content/pics/list-remove.png b/examples/declarative/modelviews/listview/content/pics/list-remove.png
index 2bb1a59..2bb1a59 100644
--- a/examples/declarative/listview/content/pics/list-remove.png
+++ b/examples/declarative/modelviews/listview/content/pics/list-remove.png
Binary files differ
diff --git a/examples/declarative/listview/content/pics/moreDown.png b/examples/declarative/modelviews/listview/content/pics/moreDown.png
index 31a35d5..31a35d5 100644
--- a/examples/declarative/listview/content/pics/moreDown.png
+++ b/examples/declarative/modelviews/listview/content/pics/moreDown.png
Binary files differ
diff --git a/examples/declarative/listview/content/pics/moreUp.png b/examples/declarative/modelviews/listview/content/pics/moreUp.png
index fefb9c9..fefb9c9 100644
--- a/examples/declarative/listview/content/pics/moreUp.png
+++ b/examples/declarative/modelviews/listview/content/pics/moreUp.png
Binary files differ
diff --git a/examples/declarative/listview/content/pics/pancakes.jpg b/examples/declarative/modelviews/listview/content/pics/pancakes.jpg
index 60c4396..60c4396 100644
--- a/examples/declarative/listview/content/pics/pancakes.jpg
+++ b/examples/declarative/modelviews/listview/content/pics/pancakes.jpg
Binary files differ
diff --git a/examples/declarative/listview/content/pics/trash.png b/examples/declarative/modelviews/listview/content/pics/trash.png
index 2042595..2042595 100644
--- a/examples/declarative/listview/content/pics/trash.png
+++ b/examples/declarative/modelviews/listview/content/pics/trash.png
Binary files differ
diff --git a/examples/declarative/listview/content/pics/vegetable-soup.jpg b/examples/declarative/modelviews/listview/content/pics/vegetable-soup.jpg
index 9dce332..9dce332 100644
--- a/examples/declarative/listview/content/pics/vegetable-soup.jpg
+++ b/examples/declarative/modelviews/listview/content/pics/vegetable-soup.jpg
Binary files differ
diff --git a/examples/declarative/listview/dummydata/MyPetsModel.qml b/examples/declarative/modelviews/listview/dummydata/MyPetsModel.qml
index f15dda3..f15dda3 100644
--- a/examples/declarative/listview/dummydata/MyPetsModel.qml
+++ b/examples/declarative/modelviews/listview/dummydata/MyPetsModel.qml
diff --git a/examples/declarative/listview/dummydata/Recipes.qml b/examples/declarative/modelviews/listview/dummydata/Recipes.qml
index f707c82..f707c82 100644
--- a/examples/declarative/listview/dummydata/Recipes.qml
+++ b/examples/declarative/modelviews/listview/dummydata/Recipes.qml
diff --git a/examples/declarative/listview/dynamic.qml b/examples/declarative/modelviews/listview/dynamic.qml
index 64f324e..693e88a 100644
--- a/examples/declarative/listview/dynamic.qml
+++ b/examples/declarative/modelviews/listview/dynamic.qml
@@ -1,6 +1,6 @@
import Qt 4.7
import "content"
-import "../scrollbar"
+import "../../ui-components/scrollbar"
Rectangle {
id: container
diff --git a/examples/declarative/listview/highlight.qml b/examples/declarative/modelviews/listview/highlight.qml
index ade355d..ade355d 100644
--- a/examples/declarative/listview/highlight.qml
+++ b/examples/declarative/modelviews/listview/highlight.qml
diff --git a/examples/declarative/listview/itemlist.qml b/examples/declarative/modelviews/listview/itemlist.qml
index b73b3a3..b73b3a3 100644
--- a/examples/declarative/listview/itemlist.qml
+++ b/examples/declarative/modelviews/listview/itemlist.qml
diff --git a/examples/declarative/listview/listview-example.qml b/examples/declarative/modelviews/listview/listview-example.qml
index 2e8cdda..2e8cdda 100644
--- a/examples/declarative/listview/listview-example.qml
+++ b/examples/declarative/modelviews/listview/listview-example.qml
diff --git a/examples/declarative/listview/listview.qmlproject b/examples/declarative/modelviews/listview/listview.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/listview/listview.qmlproject
+++ b/examples/declarative/modelviews/listview/listview.qmlproject
diff --git a/examples/declarative/listview/recipes.qml b/examples/declarative/modelviews/listview/recipes.qml
index 990e272..990e272 100644
--- a/examples/declarative/listview/recipes.qml
+++ b/examples/declarative/modelviews/listview/recipes.qml
diff --git a/examples/declarative/listview/sections.qml b/examples/declarative/modelviews/listview/sections.qml
index 21f9f03..21f9f03 100644
--- a/examples/declarative/listview/sections.qml
+++ b/examples/declarative/modelviews/listview/sections.qml
diff --git a/examples/declarative/modelviews/modelviews.pro b/examples/declarative/modelviews/modelviews.pro
new file mode 100644
index 0000000..b811e44
--- /dev/null
+++ b/examples/declarative/modelviews/modelviews.pro
@@ -0,0 +1,7 @@
+TEMPLATE = subdirs
+
+SUBDIRS += \
+ objectlistmodel \
+ stringlistmodel
+
+
diff --git a/examples/declarative/searchbox/searchbox.qmlproject b/examples/declarative/modelviews/modelviews.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/searchbox/searchbox.qmlproject
+++ b/examples/declarative/modelviews/modelviews.qmlproject
diff --git a/examples/declarative/objectlistmodel/dataobject.cpp b/examples/declarative/modelviews/objectlistmodel/dataobject.cpp
index 14be1b9..14be1b9 100644
--- a/examples/declarative/objectlistmodel/dataobject.cpp
+++ b/examples/declarative/modelviews/objectlistmodel/dataobject.cpp
diff --git a/examples/declarative/objectlistmodel/dataobject.h b/examples/declarative/modelviews/objectlistmodel/dataobject.h
index 852110d..852110d 100644
--- a/examples/declarative/objectlistmodel/dataobject.h
+++ b/examples/declarative/modelviews/objectlistmodel/dataobject.h
diff --git a/examples/declarative/objectlistmodel/main.cpp b/examples/declarative/modelviews/objectlistmodel/main.cpp
index b210570..b210570 100644
--- a/examples/declarative/objectlistmodel/main.cpp
+++ b/examples/declarative/modelviews/objectlistmodel/main.cpp
diff --git a/examples/declarative/objectlistmodel/objectlistmodel.pro b/examples/declarative/modelviews/objectlistmodel/objectlistmodel.pro
index 869cde3..869cde3 100644
--- a/examples/declarative/objectlistmodel/objectlistmodel.pro
+++ b/examples/declarative/modelviews/objectlistmodel/objectlistmodel.pro
diff --git a/examples/declarative/objectlistmodel/objectlistmodel.qmlproject b/examples/declarative/modelviews/objectlistmodel/objectlistmodel.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/objectlistmodel/objectlistmodel.qmlproject
+++ b/examples/declarative/modelviews/objectlistmodel/objectlistmodel.qmlproject
diff --git a/examples/declarative/objectlistmodel/objectlistmodel.qrc b/examples/declarative/modelviews/objectlistmodel/objectlistmodel.qrc
index 17e9301..17e9301 100644
--- a/examples/declarative/objectlistmodel/objectlistmodel.qrc
+++ b/examples/declarative/modelviews/objectlistmodel/objectlistmodel.qrc
diff --git a/examples/declarative/objectlistmodel/view.qml b/examples/declarative/modelviews/objectlistmodel/view.qml
index 2b8383f..2b8383f 100644
--- a/examples/declarative/objectlistmodel/view.qml
+++ b/examples/declarative/modelviews/objectlistmodel/view.qml
diff --git a/examples/declarative/package/Delegate.qml b/examples/declarative/modelviews/package/Delegate.qml
index 785fde6..785fde6 100644
--- a/examples/declarative/package/Delegate.qml
+++ b/examples/declarative/modelviews/package/Delegate.qml
diff --git a/examples/declarative/package/package.qmlproject b/examples/declarative/modelviews/package/package.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/package/package.qmlproject
+++ b/examples/declarative/modelviews/package/package.qmlproject
diff --git a/examples/declarative/package/view.qml b/examples/declarative/modelviews/package/view.qml
index 67f896b..67f896b 100644
--- a/examples/declarative/package/view.qml
+++ b/examples/declarative/modelviews/package/view.qml
diff --git a/examples/declarative/parallax/parallax.qml b/examples/declarative/modelviews/parallax/parallax.qml
index ca00176..110f17e 100644
--- a/examples/declarative/parallax/parallax.qml
+++ b/examples/declarative/modelviews/parallax/parallax.qml
@@ -1,5 +1,5 @@
import Qt 4.7
-import "../clocks/content"
+import "../../toys/clocks/content"
import "qml"
Rectangle {
@@ -32,7 +32,7 @@ Rectangle {
anchors { top: parent.top; topMargin: 10; horizontalCenter: parent.horizontalCenter }
width: 300; height: 400
clip: true;
- source: "../../../demos/declarative/samegame/samegame.qml"
+ source: "../../../../demos/declarative/samegame/samegame.qml"
}
}
diff --git a/examples/declarative/parallax/parallax.qmlproject b/examples/declarative/modelviews/parallax/parallax.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/parallax/parallax.qmlproject
+++ b/examples/declarative/modelviews/parallax/parallax.qmlproject
diff --git a/examples/declarative/parallax/pics/background.jpg b/examples/declarative/modelviews/parallax/pics/background.jpg
index 61cca2f..61cca2f 100644
--- a/examples/declarative/parallax/pics/background.jpg
+++ b/examples/declarative/modelviews/parallax/pics/background.jpg
Binary files differ
diff --git a/examples/declarative/dynamic/images/face-smile.png b/examples/declarative/modelviews/parallax/pics/face-smile.png
index 3d66d72..3d66d72 100644
--- a/examples/declarative/dynamic/images/face-smile.png
+++ b/examples/declarative/modelviews/parallax/pics/face-smile.png
Binary files differ
diff --git a/examples/declarative/parallax/pics/home-page.svg b/examples/declarative/modelviews/parallax/pics/home-page.svg
index 4f16958..4f16958 100644
--- a/examples/declarative/parallax/pics/home-page.svg
+++ b/examples/declarative/modelviews/parallax/pics/home-page.svg
diff --git a/examples/declarative/animations/images/shadow.png b/examples/declarative/modelviews/parallax/pics/shadow.png
index 8270565..8270565 100644
--- a/examples/declarative/animations/images/shadow.png
+++ b/examples/declarative/modelviews/parallax/pics/shadow.png
Binary files differ
diff --git a/examples/declarative/parallax/pics/yast-joystick.png b/examples/declarative/modelviews/parallax/pics/yast-joystick.png
index 858cea0..858cea0 100644
--- a/examples/declarative/parallax/pics/yast-joystick.png
+++ b/examples/declarative/modelviews/parallax/pics/yast-joystick.png
Binary files differ
diff --git a/examples/declarative/parallax/pics/yast-wol.png b/examples/declarative/modelviews/parallax/pics/yast-wol.png
index 7712180..7712180 100644
--- a/examples/declarative/parallax/pics/yast-wol.png
+++ b/examples/declarative/modelviews/parallax/pics/yast-wol.png
Binary files differ
diff --git a/examples/declarative/parallax/qml/ParallaxView.qml b/examples/declarative/modelviews/parallax/qml/ParallaxView.qml
index e869a21..e869a21 100644
--- a/examples/declarative/parallax/qml/ParallaxView.qml
+++ b/examples/declarative/modelviews/parallax/qml/ParallaxView.qml
diff --git a/examples/declarative/parallax/qml/Smiley.qml b/examples/declarative/modelviews/parallax/qml/Smiley.qml
index 662addc..662addc 100644
--- a/examples/declarative/parallax/qml/Smiley.qml
+++ b/examples/declarative/modelviews/parallax/qml/Smiley.qml
diff --git a/examples/declarative/stringlistmodel/main.cpp b/examples/declarative/modelviews/stringlistmodel/main.cpp
index abbffa7..abbffa7 100644
--- a/examples/declarative/stringlistmodel/main.cpp
+++ b/examples/declarative/modelviews/stringlistmodel/main.cpp
diff --git a/examples/declarative/stringlistmodel/stringlistmodel.pro b/examples/declarative/modelviews/stringlistmodel/stringlistmodel.pro
index 23dc481..23dc481 100644
--- a/examples/declarative/stringlistmodel/stringlistmodel.pro
+++ b/examples/declarative/modelviews/stringlistmodel/stringlistmodel.pro
diff --git a/examples/declarative/stringlistmodel/stringlistmodel.qrc b/examples/declarative/modelviews/stringlistmodel/stringlistmodel.qrc
index 17e9301..17e9301 100644
--- a/examples/declarative/stringlistmodel/stringlistmodel.qrc
+++ b/examples/declarative/modelviews/stringlistmodel/stringlistmodel.qrc
diff --git a/examples/declarative/stringlistmodel/view.qml b/examples/declarative/modelviews/stringlistmodel/view.qml
index 41c03d9..41c03d9 100644
--- a/examples/declarative/stringlistmodel/view.qml
+++ b/examples/declarative/modelviews/stringlistmodel/view.qml
diff --git a/examples/declarative/webview/alerts.html b/examples/declarative/modelviews/webview/alerts.html
index 82caddf..82caddf 100644
--- a/examples/declarative/webview/alerts.html
+++ b/examples/declarative/modelviews/webview/alerts.html
diff --git a/examples/declarative/webview/alerts.qml b/examples/declarative/modelviews/webview/alerts.qml
index 7684c3e..7684c3e 100644
--- a/examples/declarative/webview/alerts.qml
+++ b/examples/declarative/modelviews/webview/alerts.qml
diff --git a/examples/declarative/webview/autosize.qml b/examples/declarative/modelviews/webview/autosize.qml
index 9632883..9632883 100644
--- a/examples/declarative/webview/autosize.qml
+++ b/examples/declarative/modelviews/webview/autosize.qml
diff --git a/examples/declarative/webview/content/FieldText.qml b/examples/declarative/modelviews/webview/content/FieldText.qml
index d1d003f..d1d003f 100644
--- a/examples/declarative/webview/content/FieldText.qml
+++ b/examples/declarative/modelviews/webview/content/FieldText.qml
diff --git a/examples/declarative/webview/content/Mapping/Map.qml b/examples/declarative/modelviews/webview/content/Mapping/Map.qml
index 5d3ba81..5d3ba81 100644
--- a/examples/declarative/webview/content/Mapping/Map.qml
+++ b/examples/declarative/modelviews/webview/content/Mapping/Map.qml
diff --git a/examples/declarative/webview/content/Mapping/map.html b/examples/declarative/modelviews/webview/content/Mapping/map.html
index a8726fd..a8726fd 100755
--- a/examples/declarative/webview/content/Mapping/map.html
+++ b/examples/declarative/modelviews/webview/content/Mapping/map.html
diff --git a/examples/declarative/webview/content/SpinSquare.qml b/examples/declarative/modelviews/webview/content/SpinSquare.qml
index dba48d4..dba48d4 100644
--- a/examples/declarative/webview/content/SpinSquare.qml
+++ b/examples/declarative/modelviews/webview/content/SpinSquare.qml
diff --git a/examples/declarative/webview/content/pics/cancel.png b/examples/declarative/modelviews/webview/content/pics/cancel.png
index ecc9533..ecc9533 100644
--- a/examples/declarative/webview/content/pics/cancel.png
+++ b/examples/declarative/modelviews/webview/content/pics/cancel.png
Binary files differ
diff --git a/examples/declarative/webview/content/pics/ok.png b/examples/declarative/modelviews/webview/content/pics/ok.png
index 5795f04..5795f04 100644
--- a/examples/declarative/webview/content/pics/ok.png
+++ b/examples/declarative/modelviews/webview/content/pics/ok.png
Binary files differ
diff --git a/examples/declarative/webview/googleMaps.qml b/examples/declarative/modelviews/webview/googleMaps.qml
index 5506012..5506012 100644
--- a/examples/declarative/webview/googleMaps.qml
+++ b/examples/declarative/modelviews/webview/googleMaps.qml
diff --git a/examples/declarative/webview/inline-html.qml b/examples/declarative/modelviews/webview/inline-html.qml
index eec7fc6..eec7fc6 100644
--- a/examples/declarative/webview/inline-html.qml
+++ b/examples/declarative/modelviews/webview/inline-html.qml
diff --git a/examples/declarative/webview/newwindows.html b/examples/declarative/modelviews/webview/newwindows.html
index f169599..f169599 100644
--- a/examples/declarative/webview/newwindows.html
+++ b/examples/declarative/modelviews/webview/newwindows.html
diff --git a/examples/declarative/webview/newwindows.qml b/examples/declarative/modelviews/webview/newwindows.qml
index 2e4a72e..2e4a72e 100644
--- a/examples/declarative/webview/newwindows.qml
+++ b/examples/declarative/modelviews/webview/newwindows.qml
diff --git a/examples/declarative/webview/transparent.qml b/examples/declarative/modelviews/webview/transparent.qml
index e4efc31..e4efc31 100644
--- a/examples/declarative/webview/transparent.qml
+++ b/examples/declarative/modelviews/webview/transparent.qml
diff --git a/examples/declarative/scrollbar/scrollbar.qmlproject b/examples/declarative/modelviews/webview/webview.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/scrollbar/scrollbar.qmlproject
+++ b/examples/declarative/modelviews/webview/webview.qmlproject
diff --git a/examples/declarative/layouts/positioners/Button.qml b/examples/declarative/positioners/Button.qml
index d03eeb5..d03eeb5 100644
--- a/examples/declarative/layouts/positioners/Button.qml
+++ b/examples/declarative/positioners/Button.qml
diff --git a/examples/declarative/layouts/positioners/add.png b/examples/declarative/positioners/add.png
index f29d84b..f29d84b 100644
--- a/examples/declarative/layouts/positioners/add.png
+++ b/examples/declarative/positioners/add.png
Binary files differ
diff --git a/examples/declarative/layouts/positioners/del.png b/examples/declarative/positioners/del.png
index 1d753a3..1d753a3 100644
--- a/examples/declarative/layouts/positioners/del.png
+++ b/examples/declarative/positioners/del.png
Binary files differ
diff --git a/examples/declarative/layouts/positioners/positioners.qml b/examples/declarative/positioners/positioners.qml
index 2cb0b8b..2cb0b8b 100644
--- a/examples/declarative/layouts/positioners/positioners.qml
+++ b/examples/declarative/positioners/positioners.qml
diff --git a/examples/declarative/layouts/positioners/positioners.qmlproject b/examples/declarative/positioners/positioners.qmlproject
index e526217..e526217 100644
--- a/examples/declarative/layouts/positioners/positioners.qmlproject
+++ b/examples/declarative/positioners/positioners.qmlproject
diff --git a/examples/declarative/layouts/positioners/positioners.qmlproject.user b/examples/declarative/positioners/positioners.qmlproject.user
index 593479d..593479d 100644
--- a/examples/declarative/layouts/positioners/positioners.qmlproject.user
+++ b/examples/declarative/positioners/positioners.qmlproject.user
diff --git a/examples/declarative/sql/hello.qml b/examples/declarative/sqllocalstorage/hello.qml
index 8b021b7..8b021b7 100644
--- a/examples/declarative/sql/hello.qml
+++ b/examples/declarative/sqllocalstorage/hello.qml
diff --git a/examples/declarative/progressbar/progressbar.qmlproject b/examples/declarative/sqllocalstorage/sqllocalstorage.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/progressbar/progressbar.qmlproject
+++ b/examples/declarative/sqllocalstorage/sqllocalstorage.qmlproject
diff --git a/examples/declarative/fonts/availableFonts.qml b/examples/declarative/text/fonts/availableFonts.qml
index defa4ce..defa4ce 100644
--- a/examples/declarative/fonts/availableFonts.qml
+++ b/examples/declarative/text/fonts/availableFonts.qml
diff --git a/examples/declarative/fonts/banner.qml b/examples/declarative/text/fonts/banner.qml
index 353354a..353354a 100644
--- a/examples/declarative/fonts/banner.qml
+++ b/examples/declarative/text/fonts/banner.qml
diff --git a/examples/declarative/fonts/fonts.qml b/examples/declarative/text/fonts/fonts.qml
index f3eac48..f3eac48 100644
--- a/examples/declarative/fonts/fonts.qml
+++ b/examples/declarative/text/fonts/fonts.qml
diff --git a/examples/declarative/fonts/fonts.qmlproject b/examples/declarative/text/fonts/fonts.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/fonts/fonts.qmlproject
+++ b/examples/declarative/text/fonts/fonts.qmlproject
diff --git a/examples/declarative/fonts/fonts/tarzeau_ocr_a.ttf b/examples/declarative/text/fonts/fonts/tarzeau_ocr_a.ttf
index cf93f96..cf93f96 100644
--- a/examples/declarative/fonts/fonts/tarzeau_ocr_a.ttf
+++ b/examples/declarative/text/fonts/fonts/tarzeau_ocr_a.ttf
Binary files differ
diff --git a/examples/declarative/fonts/hello.qml b/examples/declarative/text/fonts/hello.qml
index 0d6f4cd..0d6f4cd 100644
--- a/examples/declarative/fonts/hello.qml
+++ b/examples/declarative/text/fonts/hello.qml
diff --git a/examples/declarative/mousearea/mousearea.qmlproject b/examples/declarative/text/text.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/mousearea/mousearea.qmlproject
+++ b/examples/declarative/text/text.qmlproject
diff --git a/examples/declarative/listmodel-threaded/dataloader.js b/examples/declarative/threading/threadedlistmodel/dataloader.js
index d720f09..d720f09 100644
--- a/examples/declarative/listmodel-threaded/dataloader.js
+++ b/examples/declarative/threading/threadedlistmodel/dataloader.js
diff --git a/examples/declarative/listmodel-threaded/listmodel-threaded.qmlproject b/examples/declarative/threading/threadedlistmodel/threadedlistmodel.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/listmodel-threaded/listmodel-threaded.qmlproject
+++ b/examples/declarative/threading/threadedlistmodel/threadedlistmodel.qmlproject
diff --git a/examples/declarative/listmodel-threaded/timedisplay.qml b/examples/declarative/threading/threadedlistmodel/timedisplay.qml
index bad7010..bad7010 100644
--- a/examples/declarative/listmodel-threaded/timedisplay.qml
+++ b/examples/declarative/threading/threadedlistmodel/timedisplay.qml
diff --git a/examples/declarative/images/images.qmlproject b/examples/declarative/threading/threading.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/images/images.qmlproject
+++ b/examples/declarative/threading/threading.qmlproject
diff --git a/examples/declarative/workerscript/workerscript.js b/examples/declarative/threading/workerscript/workerscript.js
index f76471f..f76471f 100644
--- a/examples/declarative/workerscript/workerscript.js
+++ b/examples/declarative/threading/workerscript/workerscript.js
diff --git a/examples/declarative/workerscript/workerscript.qml b/examples/declarative/threading/workerscript/workerscript.qml
index 2294a81..2294a81 100644
--- a/examples/declarative/workerscript/workerscript.qml
+++ b/examples/declarative/threading/workerscript/workerscript.qml
diff --git a/examples/declarative/gestures/gestures.qmlproject b/examples/declarative/threading/workerscript/workerscript.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/gestures/gestures.qmlproject
+++ b/examples/declarative/threading/workerscript/workerscript.qmlproject
diff --git a/examples/declarative/gestures/experimental-gestures.qml b/examples/declarative/touchinteraction/gestures/experimental-gestures.qml
index cb190ea..cb190ea 100644
--- a/examples/declarative/gestures/experimental-gestures.qml
+++ b/examples/declarative/touchinteraction/gestures/experimental-gestures.qml
diff --git a/examples/declarative/flipable/flipable.qmlproject b/examples/declarative/touchinteraction/gestures/gestures.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/flipable/flipable.qmlproject
+++ b/examples/declarative/touchinteraction/gestures/gestures.qmlproject
diff --git a/examples/declarative/mousearea/mouse.qml b/examples/declarative/touchinteraction/mousearea/mouse.qml
index 06134b7..06134b7 100644
--- a/examples/declarative/mousearea/mouse.qml
+++ b/examples/declarative/touchinteraction/mousearea/mouse.qml
diff --git a/examples/declarative/fillmode/fillmode.qmlproject b/examples/declarative/touchinteraction/mousearea/mousearea.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/fillmode/fillmode.qmlproject
+++ b/examples/declarative/touchinteraction/mousearea/mousearea.qmlproject
diff --git a/examples/declarative/extending/extending.qmlproject b/examples/declarative/touchinteraction/touchinteraction.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/extending/extending.qmlproject
+++ b/examples/declarative/touchinteraction/touchinteraction.qmlproject
diff --git a/examples/declarative/clocks/clocks.qml b/examples/declarative/toys/clocks/clocks.qml
index 22cf820..22cf820 100644
--- a/examples/declarative/clocks/clocks.qml
+++ b/examples/declarative/toys/clocks/clocks.qml
diff --git a/examples/declarative/clocks/clocks.qmlproject b/examples/declarative/toys/clocks/clocks.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/clocks/clocks.qmlproject
+++ b/examples/declarative/toys/clocks/clocks.qmlproject
diff --git a/examples/declarative/clocks/content/Clock.qml b/examples/declarative/toys/clocks/content/Clock.qml
index 3426e6a..3426e6a 100644
--- a/examples/declarative/clocks/content/Clock.qml
+++ b/examples/declarative/toys/clocks/content/Clock.qml
diff --git a/examples/declarative/clocks/content/background.png b/examples/declarative/toys/clocks/content/background.png
index a885950..a885950 100644
--- a/examples/declarative/clocks/content/background.png
+++ b/examples/declarative/toys/clocks/content/background.png
Binary files differ
diff --git a/examples/declarative/clocks/content/center.png b/examples/declarative/toys/clocks/content/center.png
index 7fbd802..7fbd802 100755
--- a/examples/declarative/clocks/content/center.png
+++ b/examples/declarative/toys/clocks/content/center.png
Binary files differ
diff --git a/examples/declarative/clocks/content/clock-night.png b/examples/declarative/toys/clocks/content/clock-night.png
index cc7151a..cc7151a 100755
--- a/examples/declarative/clocks/content/clock-night.png
+++ b/examples/declarative/toys/clocks/content/clock-night.png
Binary files differ
diff --git a/examples/declarative/clocks/content/clock.png b/examples/declarative/toys/clocks/content/clock.png
index 462edac..462edac 100755
--- a/examples/declarative/clocks/content/clock.png
+++ b/examples/declarative/toys/clocks/content/clock.png
Binary files differ
diff --git a/examples/declarative/clocks/content/hour.png b/examples/declarative/toys/clocks/content/hour.png
index f8061a1..f8061a1 100755
--- a/examples/declarative/clocks/content/hour.png
+++ b/examples/declarative/toys/clocks/content/hour.png
Binary files differ
diff --git a/examples/declarative/clocks/content/minute.png b/examples/declarative/toys/clocks/content/minute.png
index 1297ec7..1297ec7 100755
--- a/examples/declarative/clocks/content/minute.png
+++ b/examples/declarative/toys/clocks/content/minute.png
Binary files differ
diff --git a/examples/declarative/clocks/content/second.png b/examples/declarative/toys/clocks/content/second.png
index 4aa9fb5..4aa9fb5 100755
--- a/examples/declarative/clocks/content/second.png
+++ b/examples/declarative/toys/clocks/content/second.png
Binary files differ
diff --git a/examples/declarative/dial/content/Dial.qml b/examples/declarative/toys/dial/content/Dial.qml
index 6f24801..6f24801 100644
--- a/examples/declarative/dial/content/Dial.qml
+++ b/examples/declarative/toys/dial/content/Dial.qml
diff --git a/examples/declarative/dial/content/background.png b/examples/declarative/toys/dial/content/background.png
index 75d555d..75d555d 100644
--- a/examples/declarative/dial/content/background.png
+++ b/examples/declarative/toys/dial/content/background.png
Binary files differ
diff --git a/examples/declarative/dial/content/needle.png b/examples/declarative/toys/dial/content/needle.png
index 2d19f75..2d19f75 100644
--- a/examples/declarative/dial/content/needle.png
+++ b/examples/declarative/toys/dial/content/needle.png
Binary files differ
diff --git a/examples/declarative/dial/content/needle_shadow.png b/examples/declarative/toys/dial/content/needle_shadow.png
index 8d8a928..8d8a928 100644
--- a/examples/declarative/dial/content/needle_shadow.png
+++ b/examples/declarative/toys/dial/content/needle_shadow.png
Binary files differ
diff --git a/examples/declarative/dial/content/overlay.png b/examples/declarative/toys/dial/content/overlay.png
index 3860a7b..3860a7b 100644
--- a/examples/declarative/dial/content/overlay.png
+++ b/examples/declarative/toys/dial/content/overlay.png
Binary files differ
diff --git a/examples/declarative/dial/dial-example.qml b/examples/declarative/toys/dial/dial-example.qml
index 900954f..900954f 100644
--- a/examples/declarative/dial/dial-example.qml
+++ b/examples/declarative/toys/dial/dial-example.qml
diff --git a/examples/declarative/dial/dial.qmlproject b/examples/declarative/toys/dial/dial.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/dial/dial.qmlproject
+++ b/examples/declarative/toys/dial/dial.qmlproject
diff --git a/examples/declarative/dynamic/dynamic.qml b/examples/declarative/toys/dynamic/dynamic.qml
index 52c7c1e..52c7c1e 100644
--- a/examples/declarative/dynamic/dynamic.qml
+++ b/examples/declarative/toys/dynamic/dynamic.qml
diff --git a/examples/declarative/dynamic/dynamic.qmlproject b/examples/declarative/toys/dynamic/dynamic.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/dynamic/dynamic.qmlproject
+++ b/examples/declarative/toys/dynamic/dynamic.qmlproject
diff --git a/examples/declarative/dynamic/images/NOTE b/examples/declarative/toys/dynamic/images/NOTE
index fcd87f9..fcd87f9 100644
--- a/examples/declarative/dynamic/images/NOTE
+++ b/examples/declarative/toys/dynamic/images/NOTE
diff --git a/examples/declarative/animations/images/face-smile.png b/examples/declarative/toys/dynamic/images/face-smile.png
index 3d66d72..3d66d72 100644
--- a/examples/declarative/animations/images/face-smile.png
+++ b/examples/declarative/toys/dynamic/images/face-smile.png
Binary files differ
diff --git a/examples/declarative/dynamic/images/moon.png b/examples/declarative/toys/dynamic/images/moon.png
index 1c0d606..1c0d606 100644
--- a/examples/declarative/dynamic/images/moon.png
+++ b/examples/declarative/toys/dynamic/images/moon.png
Binary files differ
diff --git a/examples/declarative/dynamic/images/rabbit_brown.png b/examples/declarative/toys/dynamic/images/rabbit_brown.png
index ebfdeed..ebfdeed 100644
--- a/examples/declarative/dynamic/images/rabbit_brown.png
+++ b/examples/declarative/toys/dynamic/images/rabbit_brown.png
Binary files differ
diff --git a/examples/declarative/dynamic/images/rabbit_bw.png b/examples/declarative/toys/dynamic/images/rabbit_bw.png
index 7bff9b9..7bff9b9 100644
--- a/examples/declarative/dynamic/images/rabbit_bw.png
+++ b/examples/declarative/toys/dynamic/images/rabbit_bw.png
Binary files differ
diff --git a/examples/declarative/animations/images/star.png b/examples/declarative/toys/dynamic/images/star.png
index 27ef924..27ef924 100644
--- a/examples/declarative/animations/images/star.png
+++ b/examples/declarative/toys/dynamic/images/star.png
Binary files differ
diff --git a/examples/declarative/animations/images/sun.png b/examples/declarative/toys/dynamic/images/sun.png
index 7713ca5..7713ca5 100644
--- a/examples/declarative/animations/images/sun.png
+++ b/examples/declarative/toys/dynamic/images/sun.png
Binary files differ
diff --git a/examples/declarative/dynamic/images/tree_s.png b/examples/declarative/toys/dynamic/images/tree_s.png
index 6eac35a..6eac35a 100644
--- a/examples/declarative/dynamic/images/tree_s.png
+++ b/examples/declarative/toys/dynamic/images/tree_s.png
Binary files differ
diff --git a/examples/declarative/dynamic/qml/Button.qml b/examples/declarative/toys/dynamic/qml/Button.qml
index 963a850..963a850 100644
--- a/examples/declarative/dynamic/qml/Button.qml
+++ b/examples/declarative/toys/dynamic/qml/Button.qml
diff --git a/examples/declarative/dynamic/qml/PaletteItem.qml b/examples/declarative/toys/dynamic/qml/PaletteItem.qml
index dcb5cc3..dcb5cc3 100644
--- a/examples/declarative/dynamic/qml/PaletteItem.qml
+++ b/examples/declarative/toys/dynamic/qml/PaletteItem.qml
diff --git a/examples/declarative/dynamic/qml/PerspectiveItem.qml b/examples/declarative/toys/dynamic/qml/PerspectiveItem.qml
index c04d3dc..c04d3dc 100644
--- a/examples/declarative/dynamic/qml/PerspectiveItem.qml
+++ b/examples/declarative/toys/dynamic/qml/PerspectiveItem.qml
diff --git a/examples/declarative/dynamic/qml/Sun.qml b/examples/declarative/toys/dynamic/qml/Sun.qml
index 43dcb9a..43dcb9a 100644
--- a/examples/declarative/dynamic/qml/Sun.qml
+++ b/examples/declarative/toys/dynamic/qml/Sun.qml
diff --git a/examples/declarative/dynamic/qml/itemCreation.js b/examples/declarative/toys/dynamic/qml/itemCreation.js
index 59750f3..59750f3 100644
--- a/examples/declarative/dynamic/qml/itemCreation.js
+++ b/examples/declarative/toys/dynamic/qml/itemCreation.js
diff --git a/examples/declarative/tic-tac-toe/content/Button.qml b/examples/declarative/toys/tic-tac-toe/content/Button.qml
index ecf18cd..ecf18cd 100644
--- a/examples/declarative/tic-tac-toe/content/Button.qml
+++ b/examples/declarative/toys/tic-tac-toe/content/Button.qml
diff --git a/examples/declarative/tic-tac-toe/content/TicTac.qml b/examples/declarative/toys/tic-tac-toe/content/TicTac.qml
index d247943..d247943 100644
--- a/examples/declarative/tic-tac-toe/content/TicTac.qml
+++ b/examples/declarative/toys/tic-tac-toe/content/TicTac.qml
diff --git a/examples/declarative/tic-tac-toe/content/pics/board.png b/examples/declarative/toys/tic-tac-toe/content/pics/board.png
index 7e5b7ba..7e5b7ba 100644
--- a/examples/declarative/tic-tac-toe/content/pics/board.png
+++ b/examples/declarative/toys/tic-tac-toe/content/pics/board.png
Binary files differ
diff --git a/examples/declarative/tic-tac-toe/content/pics/o.png b/examples/declarative/toys/tic-tac-toe/content/pics/o.png
index abc7ee0..abc7ee0 100644
--- a/examples/declarative/tic-tac-toe/content/pics/o.png
+++ b/examples/declarative/toys/tic-tac-toe/content/pics/o.png
Binary files differ
diff --git a/examples/declarative/tic-tac-toe/content/pics/x.png b/examples/declarative/toys/tic-tac-toe/content/pics/x.png
index ddc65c8..ddc65c8 100644
--- a/examples/declarative/tic-tac-toe/content/pics/x.png
+++ b/examples/declarative/toys/tic-tac-toe/content/pics/x.png
Binary files differ
diff --git a/examples/declarative/tic-tac-toe/content/tic-tac-toe.js b/examples/declarative/toys/tic-tac-toe/content/tic-tac-toe.js
index f8d6d9f..f8d6d9f 100644
--- a/examples/declarative/tic-tac-toe/content/tic-tac-toe.js
+++ b/examples/declarative/toys/tic-tac-toe/content/tic-tac-toe.js
diff --git a/examples/declarative/tic-tac-toe/tic-tac-toe.qml b/examples/declarative/toys/tic-tac-toe/tic-tac-toe.qml
index dd13052..dd13052 100644
--- a/examples/declarative/tic-tac-toe/tic-tac-toe.qml
+++ b/examples/declarative/toys/tic-tac-toe/tic-tac-toe.qml
diff --git a/examples/declarative/connections/connections.qmlproject b/examples/declarative/toys/tic-tac-toe/tic-tac-toe.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/connections/connections.qmlproject
+++ b/examples/declarative/toys/tic-tac-toe/tic-tac-toe.qmlproject
diff --git a/examples/declarative/border-image/border-image.qmlproject b/examples/declarative/toys/toys.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/border-image/border-image.qmlproject
+++ b/examples/declarative/toys/toys.qmlproject
diff --git a/examples/declarative/tvtennis/tvtennis.qml b/examples/declarative/toys/tvtennis/tvtennis.qml
index c90d9c5..c90d9c5 100644
--- a/examples/declarative/tvtennis/tvtennis.qml
+++ b/examples/declarative/toys/tvtennis/tvtennis.qml
diff --git a/examples/declarative/aspectratio/aspectratio.qmlproject b/examples/declarative/toys/tvtennis/tvtennis.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/aspectratio/aspectratio.qmlproject
+++ b/examples/declarative/toys/tvtennis/tvtennis.qmlproject
diff --git a/examples/declarative/velocity/Day.qml b/examples/declarative/toys/velocity/Day.qml
index 350c1c4..350c1c4 100644
--- a/examples/declarative/velocity/Day.qml
+++ b/examples/declarative/toys/velocity/Day.qml
diff --git a/examples/declarative/velocity/cork.jpg b/examples/declarative/toys/velocity/cork.jpg
index 160bc00..160bc00 100644
--- a/examples/declarative/velocity/cork.jpg
+++ b/examples/declarative/toys/velocity/cork.jpg
Binary files differ
diff --git a/examples/declarative/velocity/note-yellow.png b/examples/declarative/toys/velocity/note-yellow.png
index 8ddecc8..8ddecc8 100644
--- a/examples/declarative/velocity/note-yellow.png
+++ b/examples/declarative/toys/velocity/note-yellow.png
Binary files differ
diff --git a/examples/declarative/velocity/tack.png b/examples/declarative/toys/velocity/tack.png
index cef2d1c..cef2d1c 100644
--- a/examples/declarative/velocity/tack.png
+++ b/examples/declarative/toys/velocity/tack.png
Binary files differ
diff --git a/examples/declarative/velocity/velocity.qml b/examples/declarative/toys/velocity/velocity.qml
index 871bafc..871bafc 100644
--- a/examples/declarative/velocity/velocity.qml
+++ b/examples/declarative/toys/velocity/velocity.qml
diff --git a/examples/declarative/animations/animations.qmlproject b/examples/declarative/toys/velocity/velocity.qmlproject
index d4909f8..d4909f8 100644
--- a/examples/declarative/animations/animations.qmlproject
+++ b/examples/declarative/toys/velocity/velocity.qmlproject
diff --git a/examples/declarative/tutorials/extending/extending.pro b/examples/declarative/tutorials/extending/extending.pro
new file mode 100644
index 0000000..0c86fed
--- /dev/null
+++ b/examples/declarative/tutorials/extending/extending.pro
@@ -0,0 +1,9 @@
+TEMPLATE = subdirs
+
+SUBDIRS += \
+ chapter1-basics \
+ chapter2-methods \
+ chapter3-bindings \
+ chapter4-customPropertyTypes \
+ chapter5-plugins
+
diff --git a/examples/declarative/tutorials/tutorials.pro b/examples/declarative/tutorials/tutorials.pro
new file mode 100644
index 0000000..0a82c1e
--- /dev/null
+++ b/examples/declarative/tutorials/tutorials.pro
@@ -0,0 +1,5 @@
+TEMPLATE = subdirs
+
+SUBDIRS += \
+ extending
+
diff --git a/examples/declarative/flipable/content/5_heart.png b/examples/declarative/ui-components/flipable/content/5_heart.png
index fb59d81..fb59d81 100644
--- a/examples/declarative/flipable/content/5_heart.png
+++ b/examples/declarative/ui-components/flipable/content/5_heart.png
Binary files differ
diff --git a/examples/declarative/flipable/content/9_club.png b/examples/declarative/ui-components/flipable/content/9_club.png
index 2545001..2545001 100644
--- a/examples/declarative/flipable/content/9_club.png
+++ b/examples/declarative/ui-components/flipable/content/9_club.png
Binary files differ
diff --git a/examples/declarative/flipable/content/Card.qml b/examples/declarative/ui-components/flipable/content/Card.qml
index 2577d89..2577d89 100644
--- a/examples/declarative/flipable/content/Card.qml
+++ b/examples/declarative/ui-components/flipable/content/Card.qml
diff --git a/examples/declarative/flipable/content/back.png b/examples/declarative/ui-components/flipable/content/back.png
index f715d74..f715d74 100644
--- a/examples/declarative/flipable/content/back.png
+++ b/examples/declarative/ui-components/flipable/content/back.png
Binary files differ
diff --git a/examples/declarative/flipable/flipable-example.qml b/examples/declarative/ui-components/flipable/flipable-example.qml
index 4e09569..4e09569 100644
--- a/examples/declarative/flipable/flipable-example.qml
+++ b/examples/declarative/ui-components/flipable/flipable-example.qml
diff --git a/examples/declarative/ui-components/flipable/flipable.qmlproject b/examples/declarative/ui-components/flipable/flipable.qmlproject
new file mode 100644
index 0000000..d4909f8
--- /dev/null
+++ b/examples/declarative/ui-components/flipable/flipable.qmlproject
@@ -0,0 +1,16 @@
+import QmlProject 1.0
+
+Project {
+ /* Include .qml, .js, and image files from current directory and subdirectories */
+ QmlFiles {
+ directory: "."
+ }
+ JavaScriptFiles {
+ directory: "."
+ }
+ ImageFiles {
+ directory: "."
+ }
+ /* List of plugin directories passed to QML runtime */
+ // importPaths: [ " ../exampleplugin " ]
+}
diff --git a/examples/declarative/progressbar/content/ProgressBar.qml b/examples/declarative/ui-components/progressbar/content/ProgressBar.qml
index bc36df5..bc36df5 100644
--- a/examples/declarative/progressbar/content/ProgressBar.qml
+++ b/examples/declarative/ui-components/progressbar/content/ProgressBar.qml
diff --git a/examples/declarative/progressbar/content/background.png b/examples/declarative/ui-components/progressbar/content/background.png
index 9044226..9044226 100644
--- a/examples/declarative/progressbar/content/background.png
+++ b/examples/declarative/ui-components/progressbar/content/background.png
Binary files differ
diff --git a/examples/declarative/ui-components/progressbar/progressbar.qmlproject b/examples/declarative/ui-components/progressbar/progressbar.qmlproject
new file mode 100644
index 0000000..d4909f8
--- /dev/null
+++ b/examples/declarative/ui-components/progressbar/progressbar.qmlproject
@@ -0,0 +1,16 @@
+import QmlProject 1.0
+
+Project {
+ /* Include .qml, .js, and image files from current directory and subdirectories */
+ QmlFiles {
+ directory: "."
+ }
+ JavaScriptFiles {
+ directory: "."
+ }
+ ImageFiles {
+ directory: "."
+ }
+ /* List of plugin directories passed to QML runtime */
+ // importPaths: [ " ../exampleplugin " ]
+}
diff --git a/examples/declarative/progressbar/progressbars.qml b/examples/declarative/ui-components/progressbar/progressbars.qml
index 55fd682..55fd682 100644
--- a/examples/declarative/progressbar/progressbars.qml
+++ b/examples/declarative/ui-components/progressbar/progressbars.qml
diff --git a/examples/declarative/scrollbar/ScrollBar.qml b/examples/declarative/ui-components/scrollbar/ScrollBar.qml
index c628a20..c628a20 100644
--- a/examples/declarative/scrollbar/ScrollBar.qml
+++ b/examples/declarative/ui-components/scrollbar/ScrollBar.qml
diff --git a/examples/declarative/scrollbar/display.qml b/examples/declarative/ui-components/scrollbar/display.qml
index 6b12d85..6b12d85 100644
--- a/examples/declarative/scrollbar/display.qml
+++ b/examples/declarative/ui-components/scrollbar/display.qml
diff --git a/examples/declarative/scrollbar/pics/niagara_falls.jpg b/examples/declarative/ui-components/scrollbar/pics/niagara_falls.jpg
index 618d808..618d808 100644
--- a/examples/declarative/scrollbar/pics/niagara_falls.jpg
+++ b/examples/declarative/ui-components/scrollbar/pics/niagara_falls.jpg
Binary files differ
diff --git a/examples/declarative/ui-components/scrollbar/scrollbar.qmlproject b/examples/declarative/ui-components/scrollbar/scrollbar.qmlproject
new file mode 100644
index 0000000..d4909f8
--- /dev/null
+++ b/examples/declarative/ui-components/scrollbar/scrollbar.qmlproject
@@ -0,0 +1,16 @@
+import QmlProject 1.0
+
+Project {
+ /* Include .qml, .js, and image files from current directory and subdirectories */
+ QmlFiles {
+ directory: "."
+ }
+ JavaScriptFiles {
+ directory: "."
+ }
+ ImageFiles {
+ directory: "."
+ }
+ /* List of plugin directories passed to QML runtime */
+ // importPaths: [ " ../exampleplugin " ]
+}
diff --git a/examples/declarative/searchbox/SearchBox.qml b/examples/declarative/ui-components/searchbox/SearchBox.qml
index aae7ee9..aae7ee9 100644
--- a/examples/declarative/searchbox/SearchBox.qml
+++ b/examples/declarative/ui-components/searchbox/SearchBox.qml
diff --git a/examples/declarative/searchbox/images/edit-clear-locationbar-rtl.png b/examples/declarative/ui-components/searchbox/images/edit-clear-locationbar-rtl.png
index 91eb270..91eb270 100644
--- a/examples/declarative/searchbox/images/edit-clear-locationbar-rtl.png
+++ b/examples/declarative/ui-components/searchbox/images/edit-clear-locationbar-rtl.png
Binary files differ
diff --git a/examples/declarative/searchbox/images/lineedit-bg-focus.png b/examples/declarative/ui-components/searchbox/images/lineedit-bg-focus.png
index bbfac38..bbfac38 100644
--- a/examples/declarative/searchbox/images/lineedit-bg-focus.png
+++ b/examples/declarative/ui-components/searchbox/images/lineedit-bg-focus.png
Binary files differ
diff --git a/examples/declarative/searchbox/images/lineedit-bg.png b/examples/declarative/ui-components/searchbox/images/lineedit-bg.png
index 9044226..9044226 100644
--- a/examples/declarative/searchbox/images/lineedit-bg.png
+++ b/examples/declarative/ui-components/searchbox/images/lineedit-bg.png
Binary files differ
diff --git a/examples/declarative/searchbox/main.qml b/examples/declarative/ui-components/searchbox/main.qml
index 9f73473..9f73473 100644
--- a/examples/declarative/searchbox/main.qml
+++ b/examples/declarative/ui-components/searchbox/main.qml
diff --git a/examples/declarative/ui-components/searchbox/searchbox.qmlproject b/examples/declarative/ui-components/searchbox/searchbox.qmlproject
new file mode 100644
index 0000000..d4909f8
--- /dev/null
+++ b/examples/declarative/ui-components/searchbox/searchbox.qmlproject
@@ -0,0 +1,16 @@
+import QmlProject 1.0
+
+Project {
+ /* Include .qml, .js, and image files from current directory and subdirectories */
+ QmlFiles {
+ directory: "."
+ }
+ JavaScriptFiles {
+ directory: "."
+ }
+ ImageFiles {
+ directory: "."
+ }
+ /* List of plugin directories passed to QML runtime */
+ // importPaths: [ " ../exampleplugin " ]
+}
diff --git a/examples/declarative/slideswitch/content/Switch.qml b/examples/declarative/ui-components/slideswitch/content/Switch.qml
index 526a171..526a171 100644
--- a/examples/declarative/slideswitch/content/Switch.qml
+++ b/examples/declarative/ui-components/slideswitch/content/Switch.qml
diff --git a/examples/declarative/slideswitch/content/background.svg b/examples/declarative/ui-components/slideswitch/content/background.svg
index f920d3e..f920d3e 100644
--- a/examples/declarative/slideswitch/content/background.svg
+++ b/examples/declarative/ui-components/slideswitch/content/background.svg
diff --git a/examples/declarative/slideswitch/content/knob.svg b/examples/declarative/ui-components/slideswitch/content/knob.svg
index fb69337..fb69337 100644
--- a/examples/declarative/slideswitch/content/knob.svg
+++ b/examples/declarative/ui-components/slideswitch/content/knob.svg
diff --git a/examples/declarative/slideswitch/slideswitch.qml b/examples/declarative/ui-components/slideswitch/slideswitch.qml
index 51c3c77..51c3c77 100644
--- a/examples/declarative/slideswitch/slideswitch.qml
+++ b/examples/declarative/ui-components/slideswitch/slideswitch.qml
diff --git a/examples/declarative/ui-components/slideswitch/slideswitch.qmlproject b/examples/declarative/ui-components/slideswitch/slideswitch.qmlproject
new file mode 100644
index 0000000..d4909f8
--- /dev/null
+++ b/examples/declarative/ui-components/slideswitch/slideswitch.qmlproject
@@ -0,0 +1,16 @@
+import QmlProject 1.0
+
+Project {
+ /* Include .qml, .js, and image files from current directory and subdirectories */
+ QmlFiles {
+ directory: "."
+ }
+ JavaScriptFiles {
+ directory: "."
+ }
+ ImageFiles {
+ directory: "."
+ }
+ /* List of plugin directories passed to QML runtime */
+ // importPaths: [ " ../exampleplugin " ]
+}
diff --git a/examples/declarative/spinner/content/Spinner.qml b/examples/declarative/ui-components/spinner/content/Spinner.qml
index 8145a28..8145a28 100644
--- a/examples/declarative/spinner/content/Spinner.qml
+++ b/examples/declarative/ui-components/spinner/content/Spinner.qml
diff --git a/examples/declarative/spinner/content/spinner-bg.png b/examples/declarative/ui-components/spinner/content/spinner-bg.png
index b3556f1..b3556f1 100644
--- a/examples/declarative/spinner/content/spinner-bg.png
+++ b/examples/declarative/ui-components/spinner/content/spinner-bg.png
Binary files differ
diff --git a/examples/declarative/spinner/content/spinner-select.png b/examples/declarative/ui-components/spinner/content/spinner-select.png
index 95a17a1..95a17a1 100644
--- a/examples/declarative/spinner/content/spinner-select.png
+++ b/examples/declarative/ui-components/spinner/content/spinner-select.png
Binary files differ
diff --git a/examples/declarative/spinner/main.qml b/examples/declarative/ui-components/spinner/main.qml
index 6be567a..6be567a 100644
--- a/examples/declarative/spinner/main.qml
+++ b/examples/declarative/ui-components/spinner/main.qml
diff --git a/examples/declarative/ui-components/spinner/spinner.qmlproject b/examples/declarative/ui-components/spinner/spinner.qmlproject
new file mode 100644
index 0000000..d4909f8
--- /dev/null
+++ b/examples/declarative/ui-components/spinner/spinner.qmlproject
@@ -0,0 +1,16 @@
+import QmlProject 1.0
+
+Project {
+ /* Include .qml, .js, and image files from current directory and subdirectories */
+ QmlFiles {
+ directory: "."
+ }
+ JavaScriptFiles {
+ directory: "."
+ }
+ ImageFiles {
+ directory: "."
+ }
+ /* List of plugin directories passed to QML runtime */
+ // importPaths: [ " ../exampleplugin " ]
+}
diff --git a/examples/declarative/tabwidget/TabWidget.qml b/examples/declarative/ui-components/tabwidget/TabWidget.qml
index 26d25b4..26d25b4 100644
--- a/examples/declarative/tabwidget/TabWidget.qml
+++ b/examples/declarative/ui-components/tabwidget/TabWidget.qml
diff --git a/examples/declarative/tabwidget/tab.png b/examples/declarative/ui-components/tabwidget/tab.png
index ad80216..ad80216 100644
--- a/examples/declarative/tabwidget/tab.png
+++ b/examples/declarative/ui-components/tabwidget/tab.png
Binary files differ
diff --git a/examples/declarative/tabwidget/tabs.qml b/examples/declarative/ui-components/tabwidget/tabs.qml
index fba203c..fba203c 100644
--- a/examples/declarative/tabwidget/tabs.qml
+++ b/examples/declarative/ui-components/tabwidget/tabs.qml
diff --git a/examples/declarative/ui-components/tabwidget/tabwidget.qmlproject b/examples/declarative/ui-components/tabwidget/tabwidget.qmlproject
new file mode 100644
index 0000000..d4909f8
--- /dev/null
+++ b/examples/declarative/ui-components/tabwidget/tabwidget.qmlproject
@@ -0,0 +1,16 @@
+import QmlProject 1.0
+
+Project {
+ /* Include .qml, .js, and image files from current directory and subdirectories */
+ QmlFiles {
+ directory: "."
+ }
+ JavaScriptFiles {
+ directory: "."
+ }
+ ImageFiles {
+ directory: "."
+ }
+ /* List of plugin directories passed to QML runtime */
+ // importPaths: [ " ../exampleplugin " ]
+}
diff --git a/examples/declarative/ui-components/ui-components.qmlproject b/examples/declarative/ui-components/ui-components.qmlproject
new file mode 100644
index 0000000..d4909f8
--- /dev/null
+++ b/examples/declarative/ui-components/ui-components.qmlproject
@@ -0,0 +1,16 @@
+import QmlProject 1.0
+
+Project {
+ /* Include .qml, .js, and image files from current directory and subdirectories */
+ QmlFiles {
+ directory: "."
+ }
+ JavaScriptFiles {
+ directory: "."
+ }
+ ImageFiles {
+ directory: "."
+ }
+ /* List of plugin directories passed to QML runtime */
+ // importPaths: [ " ../exampleplugin " ]
+}
diff --git a/examples/declarative/xml/xml.qmlproject b/examples/declarative/xml/xml.qmlproject
new file mode 100644
index 0000000..d4909f8
--- /dev/null
+++ b/examples/declarative/xml/xml.qmlproject
@@ -0,0 +1,16 @@
+import QmlProject 1.0
+
+Project {
+ /* Include .qml, .js, and image files from current directory and subdirectories */
+ QmlFiles {
+ directory: "."
+ }
+ JavaScriptFiles {
+ directory: "."
+ }
+ ImageFiles {
+ directory: "."
+ }
+ /* List of plugin directories passed to QML runtime */
+ // importPaths: [ " ../exampleplugin " ]
+}
diff --git a/examples/declarative/xmlhttprequest/test.qml b/examples/declarative/xml/xmlhttprequest/test.qml
index c7e7e6d..c7e7e6d 100644
--- a/examples/declarative/xmlhttprequest/test.qml
+++ b/examples/declarative/xml/xmlhttprequest/test.qml
diff --git a/examples/declarative/xmlhttprequest/test.xml b/examples/declarative/xml/xmlhttprequest/test.xml
index 8b7f1e1..8b7f1e1 100644
--- a/examples/declarative/xmlhttprequest/test.xml
+++ b/examples/declarative/xml/xmlhttprequest/test.xml
diff --git a/examples/declarative/xml/xmlhttprequest/xmlhttprequest.qmlproject b/examples/declarative/xml/xmlhttprequest/xmlhttprequest.qmlproject
new file mode 100644
index 0000000..d4909f8
--- /dev/null
+++ b/examples/declarative/xml/xmlhttprequest/xmlhttprequest.qmlproject
@@ -0,0 +1,16 @@
+import QmlProject 1.0
+
+Project {
+ /* Include .qml, .js, and image files from current directory and subdirectories */
+ QmlFiles {
+ directory: "."
+ }
+ JavaScriptFiles {
+ directory: "."
+ }
+ ImageFiles {
+ directory: "."
+ }
+ /* List of plugin directories passed to QML runtime */
+ // importPaths: [ " ../exampleplugin " ]
+}
diff --git a/examples/declarative/xmldata/daringfireball.qml b/examples/declarative/xmldata/daringfireball.qml
deleted file mode 100644
index 480b13c..0000000
--- a/examples/declarative/xmldata/daringfireball.qml
+++ /dev/null
@@ -1,47 +0,0 @@
-import Qt 4.7
-
-Rectangle {
- width: 600; height: 600
-
- XmlListModel {
- id: feedModel
- source: "http://daringfireball.net/index.xml"
- query: "/feed/entry"
- namespaceDeclarations: "declare default element namespace 'http://www.w3.org/2005/Atom';"
- XmlRole { name: "title"; query: "title/string()" }
- XmlRole { name: "tagline"; query: "author/name/string()" }
- XmlRole { name: "content"; query: "content/string()" }
- }
-
- Component {
- id: feedDelegate
- Item {
- height: childrenRect.height + 20
- Text {
- id: titleText
- x: 10
- text: title; font.bold: true
- }
- Text {
- anchors { left: titleText.right; leftMargin: 10 }
- text: 'by ' + tagline
- font.italic: true
- }
- Text {
- x: 10
- width: 580
- anchors.top: titleText.bottom
- text: content
- wrapMode: Text.WordWrap
-
- onLinkActivated: { console.log('link clicked: ' + link) }
- }
- }
- }
-
- ListView {
- anchors.fill: parent
- model: feedModel
- delegate: feedDelegate
- }
-}
diff --git a/examples/declarative/xmldata/yahoonews.qml b/examples/declarative/xmldata/yahoonews.qml
deleted file mode 100644
index 5bab463..0000000
--- a/examples/declarative/xmldata/yahoonews.qml
+++ /dev/null
@@ -1,83 +0,0 @@
-import Qt 4.7
-
-Rectangle {
- width: 600; height: 600
-
- gradient: Gradient {
- GradientStop { position: 0; color: "black" }
- GradientStop { position: 1.0; color: "#AAAAAA" }
- }
-
- XmlListModel {
- id: feedModel
- source: "http://rss.news.yahoo.com/rss/oceania"
- query: "/rss/channel/item"
- XmlRole { name: "title"; query: "title/string()" }
- XmlRole { name: "link"; query: "link/string()" }
- XmlRole { name: "description"; query: "description/string()" }
- }
-
- Component {
- id: feedDelegate
-
- Item {
- id: delegate
- height: wrapper.height + 10
-
- MouseArea {
- anchors.fill: wrapper
- onPressed: delegate.ListView.view.currentIndex = index;
- onClicked: if (wrapper.state == 'Details') wrapper.state = ''; else wrapper.state = 'Details';
- }
-
- Rectangle {
- id: wrapper
-
- width: 580; y: 5; height: titleText.height + 10
- color: "#F0F0F0"
- radius: 5
-
- Text {
- id: titleText
- x: 10; y: 5
- text: '<a href=\'' + link + '\'>' + title + '</a>'
- font { bold: true; family: "Helvetica"; pointSize: 14 }
-
- onLinkActivated: { console.log('link clicked: ' + link) }
- }
-
- Text {
- id: descriptionText
- x: 10; width: 560
- anchors.top: titleText.bottom; anchors.topMargin: 5
- text: description
- wrapMode: Text.WordWrap
- font.family: "Helvetica"
- opacity: 0
- }
-
- states: State {
- name: "Details"
- PropertyChanges { target: wrapper; height: childrenRect.height + 10 }
- PropertyChanges { target: descriptionText; opacity: 1 }
- }
-
- transitions: Transition {
- from: "*"; to: "Details"; reversible: true
- SequentialAnimation {
- NumberAnimation { duration: 200; properties: "height"; easing.type: Easing.OutQuad }
- NumberAnimation { duration: 200; properties: "opacity" }
- }
- }
- }
- }
- }
-
- ListView {
- id: list
- x: 10; y: 10
- width: parent.width - 20; height: parent.height - 20
- model: feedModel
- delegate: feedDelegate
- }
-}
diff --git a/src/declarative/graphicsitems/qdeclarativeborderimage.cpp b/src/declarative/graphicsitems/qdeclarativeborderimage.cpp
index 018bd55..229e15b 100644
--- a/src/declarative/graphicsitems/qdeclarativeborderimage.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeborderimage.cpp
@@ -70,11 +70,11 @@ QT_BEGIN_NAMESPACE
\endlist
Examples:
- \snippet snippets/declarative/border-image.qml 0
+ \snippet snippets/declarative/borderimage.qml 0
\image BorderImage.png
- The \l{declarative/border-image}{BorderImage example} shows how a BorderImage can be used to simulate a shadow effect on a
+ The \l{declarative/imageelements/borderimage}{BorderImage example} shows how a BorderImage can be used to simulate a shadow effect on a
rectangular item.
*/
diff --git a/src/declarative/graphicsitems/qdeclarativeflickable.cpp b/src/declarative/graphicsitems/qdeclarativeflickable.cpp
index a03a51d..3c0f5a2 100644
--- a/src/declarative/graphicsitems/qdeclarativeflickable.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeflickable.cpp
@@ -418,7 +418,7 @@ void QDeclarativeFlickablePrivate::updateBeginningEnd()
\dots 4
\snippet doc/src/snippets/declarative/flickableScrollbar.qml 1
- \sa {declarative/scrollbar}{scrollbar example}
+ \sa {declarative/ui-components/scrollbar}{scrollbar example}
*/
QDeclarativeFlickable::QDeclarativeFlickable(QDeclarativeItem *parent)
diff --git a/src/declarative/graphicsitems/qdeclarativegridview.cpp b/src/declarative/graphicsitems/qdeclarativegridview.cpp
index fe78c84..e1874b8 100644
--- a/src/declarative/graphicsitems/qdeclarativegridview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativegridview.cpp
@@ -1651,6 +1651,9 @@ qreal QDeclarativeGridView::maxXExtent() const
void QDeclarativeGridView::keyPressEvent(QKeyEvent *event)
{
Q_D(QDeclarativeGridView);
+ keyPressPreHandler(event);
+ if (event->isAccepted())
+ return;
if (d->model && d->model->count() && d->interactive) {
d->moveReason = QDeclarativeGridViewPrivate::SetIndex;
int oldCurrent = currentIndex();
@@ -1676,10 +1679,8 @@ void QDeclarativeGridView::keyPressEvent(QKeyEvent *event)
}
}
d->moveReason = QDeclarativeGridViewPrivate::Other;
- QDeclarativeFlickable::keyPressEvent(event);
- if (event->isAccepted())
- return;
event->ignore();
+ QDeclarativeFlickable::keyPressEvent(event);
}
/*!
diff --git a/src/declarative/graphicsitems/qdeclarativegridview_p.h b/src/declarative/graphicsitems/qdeclarativegridview_p.h
index f5d061d..2bf154c 100644
--- a/src/declarative/graphicsitems/qdeclarativegridview_p.h
+++ b/src/declarative/graphicsitems/qdeclarativegridview_p.h
@@ -82,6 +82,8 @@ class Q_DECLARATIVE_EXPORT QDeclarativeGridView : public QDeclarativeFlickable
Q_ENUMS(HighlightRangeMode)
Q_ENUMS(SnapMode)
+ Q_ENUMS(Flow)
+ Q_ENUMS(PositionMode)
Q_CLASSINFO("DefaultProperty", "data")
public:
@@ -120,7 +122,6 @@ public:
qreal preferredHighlightEnd() const;
void setPreferredHighlightEnd(qreal);
- Q_ENUMS(Flow)
enum Flow { LeftToRight, TopToBottom };
Flow flow() const;
void setFlow(Flow);
@@ -142,7 +143,6 @@ public:
void setSnapMode(SnapMode mode);
enum PositionMode { Beginning, Center, End, Visible, Contain };
- Q_ENUMS(PositionMode)
Q_INVOKABLE void positionViewAtIndex(int index, int mode);
Q_INVOKABLE int indexAt(int x, int y) const;
diff --git a/src/declarative/graphicsitems/qdeclarativeimage.cpp b/src/declarative/graphicsitems/qdeclarativeimage.cpp
index 88e8520..fe642e0 100644
--- a/src/declarative/graphicsitems/qdeclarativeimage.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeimage.cpp
@@ -57,6 +57,7 @@ QT_BEGIN_NAMESPACE
An Image element displays a specified \l source image:
\table
+ \row
\o
\image declarative-qtlogo.png
\o
diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp
index f251ba1..9547884 100644
--- a/src/declarative/graphicsitems/qdeclarativeitem.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp
@@ -375,7 +375,7 @@ void QDeclarativeContents::childAdded(QDeclarativeItem *item)
}
QDeclarativeItemKeyFilter::QDeclarativeItemKeyFilter(QDeclarativeItem *item)
-: m_next(0)
+: m_processPost(false), m_next(0)
{
QDeclarativeItemPrivate *p =
item?static_cast<QDeclarativeItemPrivate *>(QGraphicsItemPrivate::get(item)):0;
@@ -389,19 +389,19 @@ QDeclarativeItemKeyFilter::~QDeclarativeItemKeyFilter()
{
}
-void QDeclarativeItemKeyFilter::keyPressed(QKeyEvent *event)
+void QDeclarativeItemKeyFilter::keyPressed(QKeyEvent *event, bool post)
{
- if (m_next) m_next->keyPressed(event);
+ if (m_next) m_next->keyPressed(event, post);
}
-void QDeclarativeItemKeyFilter::keyReleased(QKeyEvent *event)
+void QDeclarativeItemKeyFilter::keyReleased(QKeyEvent *event, bool post)
{
- if (m_next) m_next->keyReleased(event);
+ if (m_next) m_next->keyReleased(event, post);
}
-void QDeclarativeItemKeyFilter::inputMethodEvent(QInputMethodEvent *event)
+void QDeclarativeItemKeyFilter::inputMethodEvent(QInputMethodEvent *event, bool post)
{
- if (m_next) m_next->inputMethodEvent(event);
+ if (m_next) m_next->inputMethodEvent(event, post);
}
QVariant QDeclarativeItemKeyFilter::inputMethodQuery(Qt::InputMethodQuery query) const
@@ -463,9 +463,11 @@ void QDeclarativeItemKeyFilter::componentComplete()
}
\endcode
- KeyNavigation receives key events after the item it is attached to.
+ By default KeyNavigation receives key events after the item it is attached to.
If the item accepts an arrow key event, the KeyNavigation
- attached property will not receive an event for that key.
+ attached property will not receive an event for that key. Setting the
+ \l priority property to KeyNavigation.BeforeItem allows handling
+ of the key events before normal item processing.
If an item has been set for a direction and the KeyNavigation
attached property receives the corresponding
@@ -490,6 +492,7 @@ QDeclarativeKeyNavigationAttached::QDeclarativeKeyNavigationAttached(QObject *pa
: QObject(*(new QDeclarativeKeyNavigationAttachedPrivate), parent),
QDeclarativeItemKeyFilter(qobject_cast<QDeclarativeItem*>(parent))
{
+ m_processPost = true;
}
QDeclarativeKeyNavigationAttached *
@@ -576,12 +579,45 @@ void QDeclarativeKeyNavigationAttached::setBacktab(QDeclarativeItem *i)
emit changed();
}
-void QDeclarativeKeyNavigationAttached::keyPressed(QKeyEvent *event)
+/*!
+ \qmlproperty enumeration KeyNavigation::priority
+
+ This property determines whether the keys are processed before
+ or after the attached item's own key handling.
+
+ \list
+ \o KeyNavigation.BeforeItem - process the key events before normal
+ item key processing. If the event is accepted it will not
+ be passed on to the item.
+ \o KeyNavigation.AfterItem (default) - process the key events after normal item key
+ handling. If the item accepts the key event it will not be
+ handled by the KeyNavigation attached property handler.
+ \endlist
+*/
+QDeclarativeKeyNavigationAttached::Priority QDeclarativeKeyNavigationAttached::priority() const
{
- Q_D(QDeclarativeKeyNavigationAttached);
+ return m_processPost ? AfterItem : BeforeItem;
+}
+
+void QDeclarativeKeyNavigationAttached::setPriority(Priority order)
+{
+ bool processPost = order == AfterItem;
+ if (processPost != m_processPost) {
+ m_processPost = processPost;
+ emit priorityChanged();
+ }
+}
+void QDeclarativeKeyNavigationAttached::keyPressed(QKeyEvent *event, bool post)
+{
+ Q_D(QDeclarativeKeyNavigationAttached);
event->ignore();
+ if (post != m_processPost) {
+ QDeclarativeItemKeyFilter::keyPressed(event, post);
+ return;
+ }
+
switch(event->key()) {
case Qt::Key_Left:
if (d->left) {
@@ -623,15 +659,19 @@ void QDeclarativeKeyNavigationAttached::keyPressed(QKeyEvent *event)
break;
}
- if (!event->isAccepted()) QDeclarativeItemKeyFilter::keyPressed(event);
+ if (!event->isAccepted()) QDeclarativeItemKeyFilter::keyPressed(event, post);
}
-void QDeclarativeKeyNavigationAttached::keyReleased(QKeyEvent *event)
+void QDeclarativeKeyNavigationAttached::keyReleased(QKeyEvent *event, bool post)
{
Q_D(QDeclarativeKeyNavigationAttached);
-
event->ignore();
+ if (post != m_processPost) {
+ QDeclarativeItemKeyFilter::keyReleased(event, post);
+ return;
+ }
+
switch(event->key()) {
case Qt::Key_Left:
if (d->left) {
@@ -667,7 +707,7 @@ void QDeclarativeKeyNavigationAttached::keyReleased(QKeyEvent *event)
break;
}
- if (!event->isAccepted()) QDeclarativeItemKeyFilter::keyReleased(event);
+ if (!event->isAccepted()) QDeclarativeItemKeyFilter::keyReleased(event, post);
}
/*!
@@ -709,6 +749,28 @@ void QDeclarativeKeyNavigationAttached::keyReleased(QKeyEvent *event)
See \l {Qt::Key}{Qt.Key} for the list of keyboard codes.
+ If priority is Keys.BeforeItem (default) the order of key event processing is:
+
+ \list 1
+ \o Items specified in \c forwardTo
+ \o specific key handlers, e.g. onReturnPressed
+ \o onKeyPress, onKeyRelease handlers
+ \o Item specific key handling, e.g. TextInput key handling
+ \o parent item
+ \endlist
+
+ If priority is Keys.AfterItem the order of key event processing is:
+ \list 1
+ \o Item specific key handling, e.g. TextInput key handling
+ \o Items specified in \c forwardTo
+ \o specific key handlers, e.g. onReturnPressed
+ \o onKeyPress, onKeyRelease handlers
+ \o parent item
+ \endlist
+
+ If the event is accepted during any of the above steps, key
+ propagation stops.
+
\sa KeyEvent, {KeyNavigation}{KeyNavigation attached property}
*/
@@ -720,6 +782,22 @@ void QDeclarativeKeyNavigationAttached::keyReleased(QKeyEvent *event)
*/
/*!
+ \qmlproperty enumeration Keys::priority
+
+ This property determines whether the keys are processed before
+ or after the attached item's own key handling.
+
+ \list
+ \o Keys.BeforeItem (default) - process the key events before normal
+ item key processing. If the event is accepted it will not
+ be passed on to the item.
+ \o Keys.AfterItem - process the key events after normal item key
+ handling. If the item accepts the key event it will not be
+ handled by the Keys attached property handler.
+ \endlist
+*/
+
+/*!
\qmlproperty list<Object> Keys::forwardTo
This property provides a way to forward key presses, key releases, and keyboard input
@@ -1039,6 +1117,7 @@ QDeclarativeKeysAttached::QDeclarativeKeysAttached(QObject *parent)
QDeclarativeItemKeyFilter(qobject_cast<QDeclarativeItem*>(parent))
{
Q_D(QDeclarativeKeysAttached);
+ m_processPost = false;
d->item = qobject_cast<QDeclarativeItem*>(parent);
}
@@ -1046,6 +1125,20 @@ QDeclarativeKeysAttached::~QDeclarativeKeysAttached()
{
}
+QDeclarativeKeysAttached::Priority QDeclarativeKeysAttached::priority() const
+{
+ return m_processPost ? AfterItem : BeforeItem;
+}
+
+void QDeclarativeKeysAttached::setPriority(Priority order)
+{
+ bool processPost = order == AfterItem;
+ if (processPost != m_processPost) {
+ m_processPost = processPost;
+ emit priorityChanged();
+ }
+}
+
void QDeclarativeKeysAttached::componentComplete()
{
Q_D(QDeclarativeKeysAttached);
@@ -1060,11 +1153,12 @@ void QDeclarativeKeysAttached::componentComplete()
}
}
-void QDeclarativeKeysAttached::keyPressed(QKeyEvent *event)
+void QDeclarativeKeysAttached::keyPressed(QKeyEvent *event, bool post)
{
Q_D(QDeclarativeKeysAttached);
- if (!d->enabled || d->inPress) {
+ if (post != m_processPost || !d->enabled || d->inPress) {
event->ignore();
+ QDeclarativeItemKeyFilter::keyPressed(event, post);
return;
}
@@ -1099,14 +1193,15 @@ void QDeclarativeKeysAttached::keyPressed(QKeyEvent *event)
emit pressed(&ke);
event->setAccepted(ke.isAccepted());
- if (!event->isAccepted()) QDeclarativeItemKeyFilter::keyPressed(event);
+ if (!event->isAccepted()) QDeclarativeItemKeyFilter::keyPressed(event, post);
}
-void QDeclarativeKeysAttached::keyReleased(QKeyEvent *event)
+void QDeclarativeKeysAttached::keyReleased(QKeyEvent *event, bool post)
{
Q_D(QDeclarativeKeysAttached);
- if (!d->enabled || d->inRelease) {
+ if (post != m_processPost || !d->enabled || d->inRelease) {
event->ignore();
+ QDeclarativeItemKeyFilter::keyReleased(event, post);
return;
}
@@ -1129,13 +1224,13 @@ void QDeclarativeKeysAttached::keyReleased(QKeyEvent *event)
emit released(&ke);
event->setAccepted(ke.isAccepted());
- if (!event->isAccepted()) QDeclarativeItemKeyFilter::keyReleased(event);
+ if (!event->isAccepted()) QDeclarativeItemKeyFilter::keyReleased(event, post);
}
-void QDeclarativeKeysAttached::inputMethodEvent(QInputMethodEvent *event)
+void QDeclarativeKeysAttached::inputMethodEvent(QInputMethodEvent *event, bool post)
{
Q_D(QDeclarativeKeysAttached);
- if (d->item && !d->inIM && d->item->scene()) {
+ if (post == m_processPost && d->item && !d->inIM && d->item->scene()) {
d->inIM = true;
for (int ii = 0; ii < d->targets.count(); ++ii) {
QGraphicsItem *i = d->finalFocusProxy(d->targets.at(ii));
@@ -1150,7 +1245,7 @@ void QDeclarativeKeysAttached::inputMethodEvent(QInputMethodEvent *event)
}
d->inIM = false;
}
- if (!event->isAccepted()) QDeclarativeItemKeyFilter::inputMethodEvent(event);
+ if (!event->isAccepted()) QDeclarativeItemKeyFilter::inputMethodEvent(event, post);
}
class QDeclarativeItemAccessor : public QGraphicsItem
@@ -1822,8 +1917,11 @@ void QDeclarativeItemPrivate::removeItemChangeListener(QDeclarativeItemChangeLis
void QDeclarativeItem::keyPressEvent(QKeyEvent *event)
{
Q_D(QDeclarativeItem);
+ keyPressPreHandler(event);
+ if (event->isAccepted())
+ return;
if (d->keyHandler)
- d->keyHandler->keyPressed(event);
+ d->keyHandler->keyPressed(event, true);
else
event->ignore();
}
@@ -1832,8 +1930,11 @@ void QDeclarativeItem::keyPressEvent(QKeyEvent *event)
void QDeclarativeItem::keyReleaseEvent(QKeyEvent *event)
{
Q_D(QDeclarativeItem);
+ keyReleasePreHandler(event);
+ if (event->isAccepted())
+ return;
if (d->keyHandler)
- d->keyHandler->keyReleased(event);
+ d->keyHandler->keyReleased(event, true);
else
event->ignore();
}
@@ -1842,8 +1943,11 @@ void QDeclarativeItem::keyReleaseEvent(QKeyEvent *event)
void QDeclarativeItem::inputMethodEvent(QInputMethodEvent *event)
{
Q_D(QDeclarativeItem);
+ inputMethodPreHandler(event);
+ if (event->isAccepted())
+ return;
if (d->keyHandler)
- d->keyHandler->inputMethodEvent(event);
+ d->keyHandler->inputMethodEvent(event, true);
else
event->ignore();
}
@@ -1862,6 +1966,37 @@ QVariant QDeclarativeItem::inputMethodQuery(Qt::InputMethodQuery query) const
return v;
}
+void QDeclarativeItem::keyPressPreHandler(QKeyEvent *event)
+{
+ Q_D(QDeclarativeItem);
+ if (d->keyHandler && !d->doneEventPreHandler)
+ d->keyHandler->keyPressed(event, false);
+ else
+ event->ignore();
+ d->doneEventPreHandler = true;
+}
+
+void QDeclarativeItem::keyReleasePreHandler(QKeyEvent *event)
+{
+ Q_D(QDeclarativeItem);
+ if (d->keyHandler && !d->doneEventPreHandler)
+ d->keyHandler->keyReleased(event, false);
+ else
+ event->ignore();
+ d->doneEventPreHandler = true;
+}
+
+void QDeclarativeItem::inputMethodPreHandler(QInputMethodEvent *event)
+{
+ Q_D(QDeclarativeItem);
+ if (d->keyHandler && !d->doneEventPreHandler)
+ d->keyHandler->inputMethodEvent(event, false);
+ else
+ event->ignore();
+ d->doneEventPreHandler = true;
+}
+
+
/*!
\internal
*/
@@ -2976,6 +3111,17 @@ void QDeclarativeItem::paint(QPainter *, const QStyleOptionGraphicsItem *, QWidg
*/
bool QDeclarativeItem::event(QEvent *ev)
{
+ Q_D(QDeclarativeItem);
+ switch (ev->type()) {
+ case QEvent::KeyPress:
+ case QEvent::KeyRelease:
+ case QEvent::InputMethod:
+ d->doneEventPreHandler = false;
+ break;
+ default:
+ break;
+ }
+
return QGraphicsObject::event(ev);
}
diff --git a/src/declarative/graphicsitems/qdeclarativeitem.h b/src/declarative/graphicsitems/qdeclarativeitem.h
index 3b05b09..29fd241 100644
--- a/src/declarative/graphicsitems/qdeclarativeitem.h
+++ b/src/declarative/graphicsitems/qdeclarativeitem.h
@@ -178,6 +178,10 @@ protected:
virtual void keyReleaseEvent(QKeyEvent *event);
virtual void inputMethodEvent(QInputMethodEvent *);
virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const;
+ void keyPressPreHandler(QKeyEvent *);
+ void keyReleasePreHandler(QKeyEvent *);
+ void inputMethodPreHandler(QInputMethodEvent *);
+
virtual void geometryChanged(const QRectF &newGeometry,
const QRectF &oldGeometry);
diff --git a/src/declarative/graphicsitems/qdeclarativeitem_p.h b/src/declarative/graphicsitems/qdeclarativeitem_p.h
index 516d6d0..15b34f0 100644
--- a/src/declarative/graphicsitems/qdeclarativeitem_p.h
+++ b/src/declarative/graphicsitems/qdeclarativeitem_p.h
@@ -124,7 +124,7 @@ public:
_stateGroup(0), origin(QDeclarativeItem::Center),
widthValid(false), heightValid(false),
_componentComplete(true), _keepMouse(false),
- smooth(false), transformOriginDirty(true), keyHandler(0),
+ smooth(false), transformOriginDirty(true), doneEventPreHandler(false), keyHandler(0),
mWidth(0), mHeight(0), implicitWidth(0), implicitHeight(0)
{
QGraphicsItemPrivate::acceptedMouseButtons = 0;
@@ -263,6 +263,7 @@ public:
bool _keepMouse:1;
bool smooth:1;
bool transformOriginDirty : 1;
+ bool doneEventPreHandler : 1;
QDeclarativeItemKeyFilter *keyHandler;
@@ -324,12 +325,14 @@ public:
QDeclarativeItemKeyFilter(QDeclarativeItem * = 0);
virtual ~QDeclarativeItemKeyFilter();
- virtual void keyPressed(QKeyEvent *event);
- virtual void keyReleased(QKeyEvent *event);
- virtual void inputMethodEvent(QInputMethodEvent *event);
+ virtual void keyPressed(QKeyEvent *event, bool post);
+ virtual void keyReleased(QKeyEvent *event, bool post);
+ virtual void inputMethodEvent(QInputMethodEvent *event, bool post);
virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const;
virtual void componentComplete();
+ bool m_processPost;
+
private:
QDeclarativeItemKeyFilter *m_next;
};
@@ -359,6 +362,9 @@ class QDeclarativeKeyNavigationAttached : public QObject, public QDeclarativeIte
Q_PROPERTY(QDeclarativeItem *down READ down WRITE setDown NOTIFY changed)
Q_PROPERTY(QDeclarativeItem *tab READ tab WRITE setTab NOTIFY changed)
Q_PROPERTY(QDeclarativeItem *backtab READ backtab WRITE setBacktab NOTIFY changed)
+ Q_PROPERTY(Priority priority READ priority WRITE setPriority NOTIFY priorityChanged)
+
+ Q_ENUMS(Priority)
public:
QDeclarativeKeyNavigationAttached(QObject * = 0);
@@ -376,14 +382,19 @@ public:
QDeclarativeItem *backtab() const;
void setBacktab(QDeclarativeItem *);
+ enum Priority { BeforeItem, AfterItem };
+ Priority priority() const;
+ void setPriority(Priority);
+
static QDeclarativeKeyNavigationAttached *qmlAttachedProperties(QObject *);
Q_SIGNALS:
void changed();
+ void priorityChanged();
private:
- virtual void keyPressed(QKeyEvent *event);
- virtual void keyReleased(QKeyEvent *event);
+ virtual void keyPressed(QKeyEvent *event, bool post);
+ virtual void keyReleased(QKeyEvent *event, bool post);
};
class QDeclarativeKeysAttachedPrivate : public QObjectPrivate
@@ -423,6 +434,9 @@ class QDeclarativeKeysAttached : public QObject, public QDeclarativeItemKeyFilte
Q_PROPERTY(bool enabled READ enabled WRITE setEnabled NOTIFY enabledChanged)
Q_PROPERTY(QDeclarativeListProperty<QDeclarativeItem> forwardTo READ forwardTo)
+ Q_PROPERTY(Priority priority READ priority WRITE setPriority NOTIFY priorityChanged)
+
+ Q_ENUMS(Priority)
public:
QDeclarativeKeysAttached(QObject *parent=0);
@@ -437,6 +451,10 @@ public:
}
}
+ enum Priority { BeforeItem, AfterItem};
+ Priority priority() const;
+ void setPriority(Priority);
+
QDeclarativeListProperty<QDeclarativeItem> forwardTo() {
Q_D(QDeclarativeKeysAttached);
return QDeclarativeListProperty<QDeclarativeItem>(this, d->targets);
@@ -448,6 +466,7 @@ public:
Q_SIGNALS:
void enabledChanged();
+ void priorityChanged();
void pressed(QDeclarativeKeyEvent *event);
void released(QDeclarativeKeyEvent *event);
void digit0Pressed(QDeclarativeKeyEvent *event);
@@ -492,9 +511,9 @@ Q_SIGNALS:
void volumeDownPressed(QDeclarativeKeyEvent *event);
private:
- virtual void keyPressed(QKeyEvent *event);
- virtual void keyReleased(QKeyEvent *event);
- virtual void inputMethodEvent(QInputMethodEvent *);
+ virtual void keyPressed(QKeyEvent *event, bool post);
+ virtual void keyReleased(QKeyEvent *event, bool post);
+ virtual void inputMethodEvent(QInputMethodEvent *, bool post);
virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const;
const QByteArray keyToSignal(int key) {
diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp
index 46e9ce3..936f9b0 100644
--- a/src/declarative/graphicsitems/qdeclarativelistview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp
@@ -1908,7 +1908,7 @@ void QDeclarativeListView::setCacheBuffer(int b)
pet. The section expression is the size property. If \c ListView.section and
\c ListView.prevSection differ, the item will display a section header.
- \snippet examples/declarative/listview/sections.qml 0
+ \snippet examples/declarative/modelviews/listview/sections.qml 0
\image ListViewSections.png
*/
@@ -2263,6 +2263,9 @@ qreal QDeclarativeListView::maxXExtent() const
void QDeclarativeListView::keyPressEvent(QKeyEvent *event)
{
Q_D(QDeclarativeListView);
+ keyPressPreHandler(event);
+ if (event->isAccepted())
+ return;
if (d->model && d->model->count() && d->interactive) {
if ((d->orient == QDeclarativeListView::Horizontal && event->key() == Qt::Key_Left)
@@ -2287,10 +2290,8 @@ void QDeclarativeListView::keyPressEvent(QKeyEvent *event)
}
}
}
- QDeclarativeFlickable::keyPressEvent(event);
- if (event->isAccepted())
- return;
event->ignore();
+ QDeclarativeFlickable::keyPressEvent(event);
}
/*!
diff --git a/src/declarative/graphicsitems/qdeclarativelistview_p.h b/src/declarative/graphicsitems/qdeclarativelistview_p.h
index 051455c..d6e8023 100644
--- a/src/declarative/graphicsitems/qdeclarativelistview_p.h
+++ b/src/declarative/graphicsitems/qdeclarativelistview_p.h
@@ -124,6 +124,7 @@ class Q_DECLARATIVE_EXPORT QDeclarativeListView : public QDeclarativeFlickable
Q_ENUMS(HighlightRangeMode)
Q_ENUMS(Orientation)
Q_ENUMS(SnapMode)
+ Q_ENUMS(PositionMode)
Q_CLASSINFO("DefaultProperty", "data")
public:
@@ -200,7 +201,6 @@ public:
static QDeclarativeListViewAttached *qmlAttachedProperties(QObject *);
enum PositionMode { Beginning, Center, End, Visible, Contain };
- Q_ENUMS(PositionMode)
Q_INVOKABLE void positionViewAtIndex(int index, int mode);
Q_INVOKABLE int indexAt(int x, int y) const;
diff --git a/src/declarative/graphicsitems/qdeclarativeloader.cpp b/src/declarative/graphicsitems/qdeclarativeloader.cpp
index 7edd53c..cbdfd87 100644
--- a/src/declarative/graphicsitems/qdeclarativeloader.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeloader.cpp
@@ -321,6 +321,7 @@ void QDeclarativeLoaderPrivate::_q_sourceLoaded()
emit q->statusChanged();
emit q->progressChanged();
emit q->itemChanged();
+ emit q->loaded();
}
}
@@ -341,10 +342,13 @@ void QDeclarativeLoaderPrivate::_q_sourceLoaded()
of the following ways:
\list
\o Create a state, so that a state change occurs, e.g. State{name: 'loaded'; when: loader.status = Loader.Ready;}
- \o Do something inside the onStatusChanged signal handler, e.g. Loader{id: loader; onStatusChanged: if(loader.status == Loader.Ready) console.log('Loaded');}
+ \o Do something inside the onLoaded signal handler, e.g. Loader{id: loader; onLoaded: console.log('Loaded');}
\o Bind to the status variable somewhere, e.g. Text{text: if(loader.status!=Loader.Ready){'Not Loaded';}else{'Loaded';}}
\endlist
\sa progress
+
+ Note that if the source is a local file, the status will initially be Ready (or Error). While
+ there will be no onStatusChanged signal in that case, the onLoaded will still be invoked.
*/
QDeclarativeLoader::Status QDeclarativeLoader::status() const
@@ -360,6 +364,21 @@ QDeclarativeLoader::Status QDeclarativeLoader::status() const
return d->source.isEmpty() ? Null : Error;
}
+void QDeclarativeLoader::componentComplete()
+{
+ if (status() == Ready)
+ emit loaded();
+}
+
+
+/*!
+ \qmlsignal Loader::onLoaded()
+
+ This handler is called when the \l status becomes Loader.Ready, or on successful
+ initial load.
+*/
+
+
/*!
\qmlproperty real Loader::progress
@@ -382,7 +401,6 @@ qreal QDeclarativeLoader::progress() const
return 0.0;
}
-
void QDeclarativeLoaderPrivate::_q_updateSize(bool loaderGeometryChanged)
{
Q_Q(QDeclarativeLoader);
diff --git a/src/declarative/graphicsitems/qdeclarativeloader_p.h b/src/declarative/graphicsitems/qdeclarativeloader_p.h
index 49dfa11..ec7ffe9 100644
--- a/src/declarative/graphicsitems/qdeclarativeloader_p.h
+++ b/src/declarative/graphicsitems/qdeclarativeloader_p.h
@@ -84,11 +84,14 @@ Q_SIGNALS:
void sourceChanged();
void statusChanged();
void progressChanged();
+ void loaded();
protected:
void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry);
QVariant itemChange(GraphicsItemChange change, const QVariant &value);
bool eventFilter(QObject *watched, QEvent *e);
+ void componentComplete();
+
private:
Q_DISABLE_COPY(QDeclarativeLoader)
Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QDeclarativeLoader)
diff --git a/src/declarative/graphicsitems/qdeclarativepositioners.cpp b/src/declarative/graphicsitems/qdeclarativepositioners.cpp
index 93bff3e..8796e63 100644
--- a/src/declarative/graphicsitems/qdeclarativepositioners.cpp
+++ b/src/declarative/graphicsitems/qdeclarativepositioners.cpp
@@ -204,7 +204,11 @@ void QDeclarativeBasePositioner::prePositioning()
if (!isComponentComplete())
return;
+ if (d->doingPositioning)
+ return;
+
d->queuedPositioning = false;
+ d->doingPositioning = true;
//Need to order children by creation order modified by stacking order
QList<QGraphicsItem *> children = d->QGraphicsItemPrivate::children;
qSort(children.begin(), children.end(), d->insertionOrder);
@@ -242,6 +246,7 @@ void QDeclarativeBasePositioner::prePositioning()
doPositioning(&contentSize);
if(d->addTransition || d->moveTransition)
finishApplyTransitions();
+ d->doingPositioning = false;
//Set implicit size to the size of its children
setImplicitHeight(contentSize.height());
setImplicitWidth(contentSize.width());
@@ -339,7 +344,8 @@ Column {
Note that the positioner assumes that the x and y positions of its children
will not change. If you manually change the x or y properties in script, bind
- the x or y properties, or use anchors on a child of a positioner, then the
+ the x or y properties, use anchors on a child of a positioner, or have the
+ height of a child depend on the position of a child, then the
positioner may exhibit strange behaviour.
*/
@@ -437,7 +443,7 @@ void QDeclarativeColumn::doPositioning(QSizeF *contentSize)
void QDeclarativeColumn::reportConflictingAnchors()
{
- bool childsWithConflictingAnchors(false);
+ QDeclarativeBasePositionerPrivate *d = static_cast<QDeclarativeBasePositionerPrivate*>(QDeclarativeBasePositionerPrivate::get(this));
for (int ii = 0; ii < positionedItems.count(); ++ii) {
const PositionedItem &child = positionedItems.at(ii);
if (child.item) {
@@ -446,15 +452,16 @@ void QDeclarativeColumn::reportConflictingAnchors()
QDeclarativeAnchors::Anchors usedAnchors = anchors->usedAnchors();
if (usedAnchors & QDeclarativeAnchors::TopAnchor ||
usedAnchors & QDeclarativeAnchors::BottomAnchor ||
- usedAnchors & QDeclarativeAnchors::VCenterAnchor) {
- childsWithConflictingAnchors = true;
+ usedAnchors & QDeclarativeAnchors::VCenterAnchor ||
+ anchors->fill() || anchors->centerIn()) {
+ d->anchorConflict = true;
break;
}
}
}
}
- if (childsWithConflictingAnchors) {
- qmlInfo(this) << "Cannot specify top, bottom or verticalCenter anchors for items inside Column";
+ if (d->anchorConflict) {
+ qmlInfo(this) << "Cannot specify top, bottom, verticalCenter, fill or centerIn anchors for items inside Column";
}
}
@@ -486,7 +493,8 @@ Row {
Note that the positioner assumes that the x and y positions of its children
will not change. If you manually change the x or y properties in script, bind
- the x or y properties, or use anchors on a child of a positioner, then the
+ the x or y properties, use anchors on a child of a positioner, or have the
+ width of a child depend on the position of a child, then the
positioner may exhibit strange behaviour.
*/
@@ -574,7 +582,7 @@ void QDeclarativeRow::doPositioning(QSizeF *contentSize)
void QDeclarativeRow::reportConflictingAnchors()
{
- bool childsWithConflictingAnchors(false);
+ QDeclarativeBasePositionerPrivate *d = static_cast<QDeclarativeBasePositionerPrivate*>(QDeclarativeBasePositionerPrivate::get(this));
for (int ii = 0; ii < positionedItems.count(); ++ii) {
const PositionedItem &child = positionedItems.at(ii);
if (child.item) {
@@ -583,16 +591,16 @@ void QDeclarativeRow::reportConflictingAnchors()
QDeclarativeAnchors::Anchors usedAnchors = anchors->usedAnchors();
if (usedAnchors & QDeclarativeAnchors::LeftAnchor ||
usedAnchors & QDeclarativeAnchors::RightAnchor ||
- usedAnchors & QDeclarativeAnchors::HCenterAnchor) {
- childsWithConflictingAnchors = true;
+ usedAnchors & QDeclarativeAnchors::HCenterAnchor ||
+ anchors->fill() || anchors->centerIn()) {
+ d->anchorConflict = true;
break;
}
}
}
}
- if (childsWithConflictingAnchors) {
- qmlInfo(this) << "Cannot specify left, right or horizontalCenter anchors for items inside Row";
- }
+ if (d->anchorConflict)
+ qmlInfo(this) << "Cannot specify left, right, horizontalCenter, fill or centerIn anchors for items inside Row";
}
/*!
@@ -638,7 +646,8 @@ Grid {
Note that the positioner assumes that the x and y positions of its children
will not change. If you manually change the x or y properties in script, bind
- the x or y properties, or use anchors on a child of a positioner, then the
+ the x or y properties, use anchors on a child of a positioner, or have the
+ width or height of a child depend on the position of a child, then the
positioner may exhibit strange behaviour.
*/
/*!
@@ -866,20 +875,19 @@ void QDeclarativeGrid::doPositioning(QSizeF *contentSize)
void QDeclarativeGrid::reportConflictingAnchors()
{
- bool childsWithConflictingAnchors(false);
+ QDeclarativeBasePositionerPrivate *d = static_cast<QDeclarativeBasePositionerPrivate*>(QDeclarativeBasePositionerPrivate::get(this));
for (int ii = 0; ii < positionedItems.count(); ++ii) {
const PositionedItem &child = positionedItems.at(ii);
if (child.item) {
QDeclarativeAnchors *anchors = QDeclarativeItemPrivate::get(child.item)->_anchors;
- if (anchors && anchors->usedAnchors()) {
- childsWithConflictingAnchors = true;
+ if (anchors && (anchors->usedAnchors() || anchors->fill() || anchors->centerIn())) {
+ d->anchorConflict = true;
break;
}
}
}
- if (childsWithConflictingAnchors) {
+ if (d->anchorConflict)
qmlInfo(this) << "Cannot specify anchors for items inside Grid";
- }
}
/*!
@@ -888,6 +896,11 @@ void QDeclarativeGrid::reportConflictingAnchors()
\brief The Flow item lines up its children side by side, wrapping as necessary.
\inherits Item
+ Note that the positioner assumes that the x and y positions of its children
+ will not change. If you manually change the x or y properties in script, bind
+ the x or y properties, use anchors on a child of a positioner, or have the
+ width or height of a child depend on the position of a child, then the
+ positioner may exhibit strange behaviour.
*/
/*!
@@ -1026,20 +1039,19 @@ void QDeclarativeFlow::doPositioning(QSizeF *contentSize)
void QDeclarativeFlow::reportConflictingAnchors()
{
- bool childsWithConflictingAnchors(false);
+ Q_D(QDeclarativeFlow);
for (int ii = 0; ii < positionedItems.count(); ++ii) {
const PositionedItem &child = positionedItems.at(ii);
if (child.item) {
QDeclarativeAnchors *anchors = QDeclarativeItemPrivate::get(child.item)->_anchors;
- if (anchors && anchors->usedAnchors()) {
- childsWithConflictingAnchors = true;
+ if (anchors && (anchors->usedAnchors() || anchors->fill() || anchors->centerIn())) {
+ d->anchorConflict = true;
break;
}
}
}
- if (childsWithConflictingAnchors) {
+ if (d->anchorConflict)
qmlInfo(this) << "Cannot specify anchors for items inside Flow";
- }
}
QT_END_NAMESPACE
diff --git a/src/declarative/graphicsitems/qdeclarativepositioners_p_p.h b/src/declarative/graphicsitems/qdeclarativepositioners_p_p.h
index 576f35b..04f0181 100644
--- a/src/declarative/graphicsitems/qdeclarativepositioners_p_p.h
+++ b/src/declarative/graphicsitems/qdeclarativepositioners_p_p.h
@@ -75,6 +75,7 @@ public:
QDeclarativeBasePositionerPrivate()
: spacing(0), type(QDeclarativeBasePositioner::None)
, moveTransition(0), addTransition(0), queuedPositioning(false)
+ , doingPositioning(false), anchorConflict(false)
{
}
@@ -95,7 +96,9 @@ public:
void watchChanges(QDeclarativeItem *other);
void unwatchChanges(QDeclarativeItem* other);
- bool queuedPositioning;
+ bool queuedPositioning : 1;
+ bool doingPositioning : 1;
+ bool anchorConflict : 1;
virtual void itemSiblingOrderChanged(QDeclarativeItem* other)
{
diff --git a/src/declarative/graphicsitems/qdeclarativetextedit.cpp b/src/declarative/graphicsitems/qdeclarativetextedit.cpp
index db20da8..45b79a7 100644
--- a/src/declarative/graphicsitems/qdeclarativetextedit.cpp
+++ b/src/declarative/graphicsitems/qdeclarativetextedit.cpp
@@ -858,8 +858,9 @@ Handles the given key \a event.
void QDeclarativeTextEdit::keyPressEvent(QKeyEvent *event)
{
Q_D(QDeclarativeTextEdit);
- d->control->processEvent(event, QPointF(0, 0));
-
+ keyPressPreHandler(event);
+ if (!event->isAccepted())
+ d->control->processEvent(event, QPointF(0, 0));
if (!event->isAccepted())
QDeclarativePaintedItem::keyPressEvent(event);
}
@@ -871,7 +872,9 @@ Handles the given key \a event.
void QDeclarativeTextEdit::keyReleaseEvent(QKeyEvent *event)
{
Q_D(QDeclarativeTextEdit);
- d->control->processEvent(event, QPointF(0, 0));
+ keyReleasePreHandler(event);
+ if (!event->isAccepted())
+ d->control->processEvent(event, QPointF(0, 0));
if (!event->isAccepted())
QDeclarativePaintedItem::keyReleaseEvent(event);
}
@@ -903,10 +906,8 @@ void QDeclarativeTextEdit::mousePressEvent(QGraphicsSceneMouseEvent *event)
if (d->focusOnPress){
QGraphicsItem *p = parentItem();//###Is there a better way to find my focus scope?
while(p) {
- if(p->flags() & QGraphicsItem::ItemIsFocusScope){
+ if (p->flags() & QGraphicsItem::ItemIsFocusScope)
p->setFocus();
- break;
- }
p = p->parentItem();
}
setFocus(true);
diff --git a/src/declarative/graphicsitems/qdeclarativetextinput.cpp b/src/declarative/graphicsitems/qdeclarativetextinput.cpp
index afbaaac..8aa7e99 100644
--- a/src/declarative/graphicsitems/qdeclarativetextinput.cpp
+++ b/src/declarative/graphicsitems/qdeclarativetextinput.cpp
@@ -55,7 +55,7 @@ QT_BEGIN_NAMESPACE
/*!
\qmlclass TextInput QDeclarativeTextInput
\since 4.7
- The TextInput item allows you to add an editable line of text to a scene.
+ \brief The TextInput item allows you to add an editable line of text to a scene.
TextInput can only display a single line of text, and can only display
plain text. However it can provide addition input constraints on the text.
@@ -863,6 +863,9 @@ void QDeclarativeTextInputPrivate::focusChanged(bool hasFocus)
void QDeclarativeTextInput::keyPressEvent(QKeyEvent* ev)
{
Q_D(QDeclarativeTextInput);
+ keyPressPreHandler(ev);
+ if (ev->isAccepted())
+ return;
if (((ev->key() == Qt::Key_Up || ev->key() == Qt::Key_Down) && ev->modifiers() == Qt::NoModifier) // Don't allow MacOSX up/down support, and we don't allow a completer.
|| (((d->control->cursor() == 0 && ev->key() == Qt::Key_Left)
|| (d->control->cursor() == d->control->text().length()
@@ -886,10 +889,8 @@ void QDeclarativeTextInput::mousePressEvent(QGraphicsSceneMouseEvent *event)
if(d->focusOnPress){
QGraphicsItem *p = parentItem();//###Is there a better way to find my focus scope?
while(p) {
- if(p->flags() & QGraphicsItem::ItemIsFocusScope){
+ if (p->flags() & QGraphicsItem::ItemIsFocusScope)
p->setFocus();
- break;
- }
p = p->parentItem();
}
setFocus(true);
diff --git a/src/declarative/qml/qdeclarativebinding.cpp b/src/declarative/qml/qdeclarativebinding.cpp
index 8043ea9..2e905b9 100644
--- a/src/declarative/qml/qdeclarativebinding.cpp
+++ b/src/declarative/qml/qdeclarativebinding.cpp
@@ -286,13 +286,15 @@ QDeclarativeAbstractBinding::QDeclarativeAbstractBinding()
QDeclarativeAbstractBinding::~QDeclarativeAbstractBinding()
{
- removeFromObject();
- if (m_mePtr)
- *m_mePtr = 0;
+ Q_ASSERT(m_prevBinding == 0);
+ Q_ASSERT(m_mePtr == 0);
}
void QDeclarativeAbstractBinding::destroy()
{
+ removeFromObject();
+ clear();
+
delete this;
}
diff --git a/src/declarative/qml/qdeclarativecompiledbindings.cpp b/src/declarative/qml/qdeclarativecompiledbindings.cpp
index 05b7dc6..f55d330 100644
--- a/src/declarative/qml/qdeclarativecompiledbindings.cpp
+++ b/src/declarative/qml/qdeclarativecompiledbindings.cpp
@@ -1624,6 +1624,8 @@ bool QDeclarativeBindingCompilerPrivate::compile(QDeclarativeJS::AST::Node *node
return false;
int convertReg = acquireReg();
+ if (convertReg == -1)
+ return false;
if (destination->type == QMetaType::QReal) {
Instr convert;
@@ -2011,6 +2013,8 @@ bool QDeclarativeBindingCompilerPrivate::parseArith(QDeclarativeJS::AST::Node *n
AST::BinaryExpression *expression = static_cast<AST::BinaryExpression *>(node);
type.reg = acquireReg();
+ if (type.reg == -1)
+ return false;
Result lhs;
Result rhs;
@@ -2062,6 +2066,8 @@ bool QDeclarativeBindingCompilerPrivate::numberArith(Result &type, const Result
return false;
lhsTmp = acquireReg();
+ if (lhsTmp == -1)
+ return false;
Instr conv;
conv.common.type = Instr::ConvertGenericToReal;
@@ -2075,6 +2081,8 @@ bool QDeclarativeBindingCompilerPrivate::numberArith(Result &type, const Result
return false;
rhsTmp = acquireReg();
+ if (rhsTmp == -1)
+ return false;
Instr conv;
conv.common.type = Instr::ConvertGenericToReal;
@@ -2123,6 +2131,8 @@ bool QDeclarativeBindingCompilerPrivate::stringArith(Result &type, const Result
return false;
lhsTmp = acquireReg(Instr::CleanupString);
+ if (lhsTmp == -1)
+ return false;
Instr convert;
convert.common.type = Instr::ConvertGenericToString;
@@ -2136,6 +2146,8 @@ bool QDeclarativeBindingCompilerPrivate::stringArith(Result &type, const Result
return false;
rhsTmp = acquireReg(Instr::CleanupString);
+ if (rhsTmp == -1)
+ return false;
Instr convert;
convert.common.type = Instr::ConvertGenericToString;
@@ -2145,6 +2157,9 @@ bool QDeclarativeBindingCompilerPrivate::stringArith(Result &type, const Result
}
type.reg = acquireReg(Instr::CleanupString);
+ if (type.reg == -1)
+ return false;
+
type.type = QMetaType::QString;
Instr add;
@@ -2185,6 +2200,9 @@ bool QDeclarativeBindingCompilerPrivate::parseLogic(QDeclarativeJS::AST::Node *n
if (!parseExpression(expression->right, rhs)) return false;
type.reg = acquireReg();
+ if (type.reg == -1)
+ return false;
+
type.metaObject = 0;
type.type = QVariant::Bool;
@@ -2310,6 +2328,8 @@ bool QDeclarativeBindingCompilerPrivate::parseConstant(QDeclarativeJS::AST::Node
type.metaObject = 0;
type.type = -1;
type.reg = acquireReg();
+ if (type.reg == -1)
+ return false;
if (node->kind == AST::Node::Kind_TrueLiteral) {
type.type = QVariant::Bool;
@@ -2398,6 +2418,9 @@ bool QDeclarativeBindingCompilerPrivate::parseMethod(QDeclarativeJS::AST::Node *
releaseReg(r1.reg);
op.binaryop.output = acquireReg();
+ if (op.binaryop.output == -1)
+ return false;
+
op.binaryop.src1 = r0.reg;
op.binaryop.src2 = r1.reg;
bytecode << op;
@@ -2473,6 +2496,8 @@ bool QDeclarativeBindingCompilerPrivate::fetch(Result &rv, const QMetaObject *mo
if (rv.type == QMetaType::QString) {
int tmp = acquireReg();
+ if (tmp == -1)
+ return false;
Instr copy;
copy.common.type = Instr::Copy;
copy.copy.reg = tmp;
@@ -2549,6 +2574,8 @@ int QDeclarativeBindingCompilerPrivate::registerLiteralString(const QString &str
data += strdata;
int reg = acquireReg(Instr::CleanupString);
+ if (reg == -1)
+ return false;
Instr string;
string.common.type = Instr::String;
diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp
index 2c89abd..79f8a17 100644
--- a/src/declarative/qml/qdeclarativeengine.cpp
+++ b/src/declarative/qml/qdeclarativeengine.cpp
@@ -562,9 +562,9 @@ QNetworkAccessManager *QDeclarativeEngine::networkAccessManager() const
This example creates a provider with id \e colors:
- \snippet examples/declarative/imageprovider/imageprovider.cpp 0
+ \snippet examples/declarative/cppextensions/imageprovider/imageprovider.cpp 0
- \snippet examples/declarative/imageprovider/imageprovider-example.qml 0
+ \snippet examples/declarative/cppextensions/imageprovider/imageprovider-example.qml 0
\sa removeImageProvider()
*/
diff --git a/src/declarative/qml/qdeclarativeextensionplugin.cpp b/src/declarative/qml/qdeclarativeextensionplugin.cpp
index 2c15385..c2e8300 100644
--- a/src/declarative/qml/qdeclarativeextensionplugin.cpp
+++ b/src/declarative/qml/qdeclarativeextensionplugin.cpp
@@ -66,7 +66,7 @@ QT_BEGIN_NAMESPACE
See \l {Tutorial: Writing QML extensions with C++} for details on creating
QML extensions, including how to build a plugin with with QDeclarativeExtensionPlugin.
- For a simple overview, see the \l{declarative/plugins}{plugins} example.
+ For a simple overview, see the \l{declarative/cppextensions/plugins}{plugins} example.
Also see \l {How to Create Qt Plugins} for general Qt plugin documentation.
diff --git a/src/declarative/util/qdeclarativelistmodel.cpp b/src/declarative/util/qdeclarativelistmodel.cpp
index a8e1be8..9a5c9de 100644
--- a/src/declarative/util/qdeclarativelistmodel.cpp
+++ b/src/declarative/util/qdeclarativelistmodel.cpp
@@ -207,11 +207,11 @@ QDeclarativeListModelParser::ListInstruction *QDeclarativeListModelParser::ListM
Here is an example that uses WorkerScript to periodically append the
current time to a list model:
- \snippet examples/declarative/listmodel-threaded/timedisplay.qml 0
+ \snippet examples/declarative/threading/threadedlistmodel/timedisplay.qml 0
The included file, \tt dataloader.js, looks like this:
- \snippet examples/declarative/listmodel-threaded/dataloader.js 0
+ \snippet examples/declarative/threading/threadedlistmodel/dataloader.js 0
The application's \tt Timer object periodically sends a message to the
worker script by calling \tt WorkerScript::sendMessage(). When this message
@@ -537,10 +537,7 @@ void QDeclarativeListModel::append(const QScriptValue& valuemap)
*/
QScriptValue QDeclarativeListModel::get(int index) const
{
- // the internal flat/nested class takes care of return value for bad index
- if (index >= count() || index < 0)
- qmlInfo(this) << tr("get: index %1 out of range").arg(index);
-
+ // the internal flat/nested class checks for bad index
return m_flat ? m_flat->get(index) : m_nested->get(index);
}
diff --git a/src/declarative/util/qdeclarativepackage.cpp b/src/declarative/util/qdeclarativepackage.cpp
index 20e9907..9617b86 100644
--- a/src/declarative/util/qdeclarativepackage.cpp
+++ b/src/declarative/util/qdeclarativepackage.cpp
@@ -62,13 +62,13 @@ QT_BEGIN_NAMESPACE
delegate it should appear in. This allows an item to move
between views.
- \snippet examples/declarative/package/Delegate.qml 0
+ \snippet examples/declarative/modelviews/package/Delegate.qml 0
These named items are used as the delegates by the two views who
reference the special VisualDataModel.parts property to select
a model which provides the chosen delegate.
- \snippet examples/declarative/package/view.qml 0
+ \snippet examples/declarative/modelviews/package/view.qml 0
\sa QtDeclarative
*/
diff --git a/src/declarative/util/qdeclarativexmllistmodel.cpp b/src/declarative/util/qdeclarativexmllistmodel.cpp
index f1a00989..4a374a5 100644
--- a/src/declarative/util/qdeclarativexmllistmodel.cpp
+++ b/src/declarative/util/qdeclarativexmllistmodel.cpp
@@ -536,7 +536,7 @@ void QDeclarativeXmlListModelPrivate::clear_role(QDeclarativeListProperty<QDecla
with a combined value of all key roles that is not already present in
the model.
- \sa {declarative/xmldata}{XML data example}
+ \sa {declarative/xml/xmldata}{XML data example}
*/
QDeclarativeXmlListModel::QDeclarativeXmlListModel(QObject *parent)
diff --git a/tests/auto/declarative/examples/tst_examples.cpp b/tests/auto/declarative/examples/tst_examples.cpp
index 3759cb5..605345e 100644
--- a/tests/auto/declarative/examples/tst_examples.cpp
+++ b/tests/auto/declarative/examples/tst_examples.cpp
@@ -80,15 +80,14 @@ tst_examples::tst_examples()
// Add directories you want excluded here
- excludedDirs << "doc/src/snippets/declarative/graphicswidgets";
#ifdef QT_NO_WEBKIT
- excludedDirs << "examples/declarative/webview";
+ excludedDirs << "examples/declarative/modelviews/webview";
excludedDirs << "demos/declarative/webbrowser";
#endif
#ifdef QT_NO_XMLPATTERNS
- excludedDirs << "examples/declarative/xmldata";
+ excludedDirs << "examples/declarative/xml/xmldata";
excludedDirs << "demos/declarative/twitter";
excludedDirs << "demos/declarative/flickr";
excludedDirs << "demos/declarative/photoviewer";
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/qtbug_10696.qml b/tests/auto/declarative/qdeclarativeecmascript/data/qtbug_10696.qml
new file mode 100644
index 0000000..cb5c4c9
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/qtbug_10696.qml
@@ -0,0 +1,26 @@
+import Qt 4.7
+
+QtObject {
+ property string test: "aaaa"
+ + "bbbb"
+ + "cccc"
+ + "cccc"
+ + "cccc"
+ + "cccc"
+ + "cccc"
+ + "cccc"
+ + "cccc"
+ + "cccc"
+ + "cccc"
+ + "cccc"
+ + "cccc"
+ + "cccc"
+ + "cccc"
+ + "cccc"
+ + "cccc"
+ + "cccc"
+ + "cccc"
+ + "cccc"
+ + "cccc"
+ + "cccc";
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
index b8faa7c..64e5b3f 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
+++ b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
@@ -149,6 +149,7 @@ private slots:
void functionAssignment();
void eval();
void function();
+ void qtbug_10696();
void include();
@@ -2472,6 +2473,14 @@ void tst_qdeclarativeecmascript::include()
}
}
+void tst_qdeclarativeecmascript::qtbug_10696()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("qtbug_10696.qml"));
+ QObject *o = component.create();
+ QVERIFY(o != 0);
+ delete o;
+}
+
QTEST_MAIN(tst_qdeclarativeecmascript)
#include "tst_qdeclarativeecmascript.moc"
diff --git a/tests/auto/declarative/qdeclarativeitem/data/keyspriority.qml b/tests/auto/declarative/qdeclarativeitem/data/keyspriority.qml
new file mode 100644
index 0000000..171536b
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeitem/data/keyspriority.qml
@@ -0,0 +1,9 @@
+import Qt 4.7
+import Test 1.0
+
+KeyTestItem {
+ focus: true
+ Keys.onPressed: keysTestObject.keyPress(event.key, event.text, event.modifiers)
+ Keys.onReleased: { keysTestObject.keyRelease(event.key, event.text, event.modifiers); event.accepted = true; }
+ Keys.priority: keysTestObject.processLast ? Keys.AfterItem : Keys.BeforeItem
+}
diff --git a/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp b/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp
index f4edeb2..ecc813e 100644
--- a/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp
+++ b/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp
@@ -55,7 +55,9 @@ public:
tst_QDeclarativeItem();
private slots:
+ void initTestCase();
void keys();
+ void keysProcessingOrder();
void keyNavigation();
void smooth();
void clip();
@@ -79,8 +81,11 @@ private:
class KeysTestObject : public QObject
{
Q_OBJECT
+
+ Q_PROPERTY(bool processLast READ processLast NOTIFY processLastChanged)
+
public:
- KeysTestObject() : mKey(0), mModifiers(0), mForwardedKey(0) {}
+ KeysTestObject() : mKey(0), mModifiers(0), mForwardedKey(0), mLast(false) {}
void reset() {
mKey = 0;
@@ -89,6 +94,14 @@ public:
mForwardedKey = 0;
}
+ bool processLast() const { return mLast; }
+ void setProcessLast(bool b) {
+ if (b != mLast) {
+ mLast = b;
+ emit processLastChanged();
+ }
+ }
+
public slots:
void keyPress(int key, QString text, int modifiers) {
mKey = key;
@@ -104,20 +117,73 @@ public slots:
mForwardedKey = key;
}
+signals:
+ void processLastChanged();
+
public:
int mKey;
QString mText;
int mModifiers;
int mForwardedKey;
+ bool mLast;
private:
};
+class KeyTestItem : public QDeclarativeItem
+{
+ Q_OBJECT
+public:
+ KeyTestItem(QDeclarativeItem *parent=0) : QDeclarativeItem(parent), mKey(0) {}
+
+protected:
+ void keyPressEvent(QKeyEvent *e) {
+ keyPressPreHandler(e);
+ if (e->isAccepted())
+ return;
+
+ mKey = e->key();
+
+ if (e->key() == Qt::Key_A)
+ e->accept();
+ else
+ e->ignore();
+
+ if (!e->isAccepted())
+ QDeclarativeItem::keyPressEvent(e);
+ }
+
+ void keyReleaseEvent(QKeyEvent *e) {
+ keyReleasePreHandler(e);
+
+ if (e->isAccepted())
+ return;
+
+ if (e->key() == Qt::Key_B)
+ e->accept();
+ else
+ e->ignore();
+
+ if (!e->isAccepted())
+ QDeclarativeItem::keyReleaseEvent(e);
+ }
+
+public:
+ int mKey;
+};
+
+QML_DECLARE_TYPE(KeyTestItem);
+
tst_QDeclarativeItem::tst_QDeclarativeItem()
{
}
+void tst_QDeclarativeItem::initTestCase()
+{
+ qmlRegisterType<KeyTestItem>("Test",1,0,"KeyTestItem");
+}
+
void tst_QDeclarativeItem::keys()
{
QDeclarativeView *canvas = new QDeclarativeView(0);
@@ -214,6 +280,69 @@ void tst_QDeclarativeItem::keys()
QCOMPARE(testObject->mKey, 0);
QVERIFY(!key.isAccepted());
+ canvas->rootContext()->setContextProperty("enableKeyHanding", QVariant(true));
+
+ key = QKeyEvent(QEvent::KeyPress, Qt::Key_Return, Qt::NoModifier, "", false, 1);
+ QApplication::sendEvent(canvas, &key);
+ QCOMPARE(testObject->mKey, int(Qt::Key_Return));
+ QVERIFY(key.isAccepted());
+
+ delete canvas;
+ delete testObject;
+}
+
+void tst_QDeclarativeItem::keysProcessingOrder()
+{
+ QDeclarativeView *canvas = new QDeclarativeView(0);
+ canvas->setFixedSize(240,320);
+
+ KeysTestObject *testObject = new KeysTestObject;
+ canvas->rootContext()->setContextProperty("keysTestObject", testObject);
+
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/keyspriority.qml"));
+ canvas->show();
+ qApp->processEvents();
+
+ KeyTestItem *testItem = qobject_cast<KeyTestItem*>(canvas->rootObject());
+ QVERIFY(testItem);
+
+ QEvent wa(QEvent::WindowActivate);
+ QApplication::sendEvent(canvas, &wa);
+ QFocusEvent fe(QEvent::FocusIn);
+ QApplication::sendEvent(canvas, &fe);
+
+ QKeyEvent key(QEvent::KeyPress, Qt::Key_A, Qt::NoModifier, "A", false, 1);
+ QApplication::sendEvent(canvas, &key);
+ QCOMPARE(testObject->mKey, int(Qt::Key_A));
+ QCOMPARE(testObject->mText, QLatin1String("A"));
+ QVERIFY(testObject->mModifiers == Qt::NoModifier);
+ QVERIFY(key.isAccepted());
+
+ testObject->reset();
+
+ testObject->setProcessLast(true);
+
+ key = QKeyEvent(QEvent::KeyPress, Qt::Key_A, Qt::NoModifier, "A", false, 1);
+ QApplication::sendEvent(canvas, &key);
+ QCOMPARE(testObject->mKey, 0);
+ QVERIFY(key.isAccepted());
+
+ testObject->reset();
+
+ key = QKeyEvent(QEvent::KeyPress, Qt::Key_B, Qt::NoModifier, "B", false, 1);
+ QApplication::sendEvent(canvas, &key);
+ QCOMPARE(testObject->mKey, int(Qt::Key_B));
+ QCOMPARE(testObject->mText, QLatin1String("B"));
+ QVERIFY(testObject->mModifiers == Qt::NoModifier);
+ QVERIFY(!key.isAccepted());
+
+ testObject->reset();
+
+ key = QKeyEvent(QEvent::KeyRelease, Qt::Key_B, Qt::NoModifier, "B", false, 1);
+ QApplication::sendEvent(canvas, &key);
+ QCOMPARE(testObject->mKey, 0);
+ QVERIFY(key.isAccepted());
+
delete canvas;
delete testObject;
}
diff --git a/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp b/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp
index aed4781..26a12f0 100644
--- a/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp
+++ b/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp
@@ -184,8 +184,8 @@ void tst_qdeclarativelistmodel::dynamic_data()
QTest::newRow("count") << "count" << 0 << "";
- 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("get1") << "{get(0)}" << 0 << "";
+ QTest::newRow("get2") << "{get(-1)}" << 0 << "";
QTest::newRow("append1") << "{append({'foo':123});count}" << 1 << "";
QTest::newRow("append2") << "{append({'foo':123,'bar':456});count}" << 1 << "";
@@ -196,13 +196,13 @@ void tst_qdeclarativelistmodel::dynamic_data()
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 << "<Unknown File>: QML ListModel: get: index 0 out of range";
+ QTest::newRow("clear3") << "{append({'foo':123});clear()}" << 0 << "";
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 << "<Unknown File>: QML ListModel: get: index 0 out of range";
+ QTest::newRow("remove3") << "{append({'foo':123});remove(0)}" << 0 << "";
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";
@@ -328,12 +328,6 @@ void tst_qdeclarativelistmodel::dynamic_worker()
if (QByteArray(QTest::currentDataTag()).startsWith("nested"))
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))));
waitForWorker(item);
diff --git a/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp b/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp
index b56ff13..59580ea 100644
--- a/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp
+++ b/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp
@@ -104,13 +104,14 @@ tst_QDeclarativeLoader::tst_QDeclarativeLoader()
void tst_QDeclarativeLoader::url()
{
QDeclarativeComponent component(&engine);
- component.setData(QByteArray("import Qt 4.7\nLoader { source: \"Rect120x60.qml\" }"), TEST_FILE(""));
+ component.setData(QByteArray("import Qt 4.7\nLoader { property int did_load: 0; onLoaded: did_load=123; source: \"Rect120x60.qml\" }"), TEST_FILE(""));
QDeclarativeLoader *loader = qobject_cast<QDeclarativeLoader*>(component.create());
QVERIFY(loader != 0);
QVERIFY(loader->item());
QVERIFY(loader->source() == QUrl::fromLocalFile(SRCDIR "/data/Rect120x60.qml"));
QCOMPARE(loader->progress(), 1.0);
QCOMPARE(loader->status(), QDeclarativeLoader::Ready);
+ QCOMPARE(loader->property("did_load").toInt(), 123);
QCOMPARE(static_cast<QGraphicsItem*>(loader)->children().count(), 1);
delete loader;
@@ -427,7 +428,7 @@ void tst_QDeclarativeLoader::networkRequestUrl()
server.serveDirectory(SRCDIR "/data");
QDeclarativeComponent component(&engine);
- component.setData(QByteArray("import Qt 4.7\nLoader { source: \"http://127.0.0.1:14450/Rect120x60.qml\" }"), QUrl::fromLocalFile(SRCDIR "/dummy.qml"));
+ component.setData(QByteArray("import Qt 4.7\nLoader { property int did_load : 0; source: \"http://127.0.0.1:14450/Rect120x60.qml\"; onLoaded: did_load=123 }"), QUrl::fromLocalFile(SRCDIR "/dummy.qml"));
if (component.isError())
qDebug() << component.errors();
QDeclarativeLoader *loader = qobject_cast<QDeclarativeLoader*>(component.create());
@@ -437,6 +438,7 @@ void tst_QDeclarativeLoader::networkRequestUrl()
QVERIFY(loader->item());
QCOMPARE(loader->progress(), 1.0);
+ QCOMPARE(loader->property("did_load").toInt(), 123);
QCOMPARE(static_cast<QGraphicsItem*>(loader)->children().count(), 1);
delete loader;
@@ -483,7 +485,7 @@ void tst_QDeclarativeLoader::failNetworkRequest()
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"));
+ component.setData(QByteArray("import Qt 4.7\nLoader { property int did_load: 123; source: \"http://127.0.0.1:14450/IDontExist.qml\"; onLoaded: did_load=456 }"), QUrl::fromLocalFile("http://127.0.0.1:14450/dummy.qml"));
QDeclarativeLoader *loader = qobject_cast<QDeclarativeLoader*>(component.create());
QVERIFY(loader != 0);
@@ -491,6 +493,7 @@ void tst_QDeclarativeLoader::failNetworkRequest()
QVERIFY(loader->item() == 0);
QCOMPARE(loader->progress(), 0.0);
+ QCOMPARE(loader->property("did_load").toInt(), 123);
QCOMPARE(static_cast<QGraphicsItem*>(loader)->children().count(), 0);
delete loader;
diff --git a/tests/auto/declarative/qdeclarativepositioners/tst_qdeclarativepositioners.cpp b/tests/auto/declarative/qdeclarativepositioners/tst_qdeclarativepositioners.cpp
index 7a23773..e639014 100644
--- a/tests/auto/declarative/qdeclarativepositioners/tst_qdeclarativepositioners.cpp
+++ b/tests/auto/declarative/qdeclarativepositioners/tst_qdeclarativepositioners.cpp
@@ -687,7 +687,13 @@ void tst_QDeclarativePositioners::test_conflictinganchors()
component.setData("import Qt 4.7\nColumn { Item { anchors.top: parent.top } }", QUrl::fromLocalFile(""));
item = qobject_cast<QDeclarativeItem*>(component.create());
QVERIFY(item);
- QCOMPARE(warningMessage, QString("file::2:1: QML Column: Cannot specify top, bottom or verticalCenter anchors for items inside Column"));
+ QCOMPARE(warningMessage, QString("file::2:1: QML Column: Cannot specify top, bottom, verticalCenter, fill or centerIn anchors for items inside Column"));
+ warningMessage.clear();
+
+ component.setData("import Qt 4.7\nColumn { Item { anchors.centerIn: parent } }", QUrl::fromLocalFile(""));
+ item = qobject_cast<QDeclarativeItem*>(component.create());
+ QVERIFY(item);
+ QCOMPARE(warningMessage, QString("file::2:1: QML Column: Cannot specify top, bottom, verticalCenter, fill or centerIn anchors for items inside Column"));
warningMessage.clear();
component.setData("import Qt 4.7\nColumn { Item { anchors.left: parent.left } }", QUrl::fromLocalFile(""));
@@ -699,7 +705,13 @@ void tst_QDeclarativePositioners::test_conflictinganchors()
component.setData("import Qt 4.7\nRow { Item { anchors.left: parent.left } }", QUrl::fromLocalFile(""));
item = qobject_cast<QDeclarativeItem*>(component.create());
QVERIFY(item);
- QCOMPARE(warningMessage, QString("file::2:1: QML Row: Cannot specify left, right or horizontalCenter anchors for items inside Row"));
+ QCOMPARE(warningMessage, QString("file::2:1: QML Row: Cannot specify left, right, horizontalCenter, fill or centerIn anchors for items inside Row"));
+ warningMessage.clear();
+
+ component.setData("import Qt 4.7\nRow { Item { anchors.fill: parent } }", QUrl::fromLocalFile(""));
+ item = qobject_cast<QDeclarativeItem*>(component.create());
+ QVERIFY(item);
+ QCOMPARE(warningMessage, QString("file::2:1: QML Row: Cannot specify left, right, horizontalCenter, fill or centerIn anchors for items inside Row"));
warningMessage.clear();
component.setData("import Qt 4.7\nRow { Item { anchors.top: parent.top } }", QUrl::fromLocalFile(""));
@@ -714,10 +726,21 @@ void tst_QDeclarativePositioners::test_conflictinganchors()
QCOMPARE(warningMessage, QString("file::2:1: QML Grid: Cannot specify anchors for items inside Grid"));
warningMessage.clear();
+ component.setData("import Qt 4.7\nGrid { Item { anchors.centerIn: parent } }", QUrl::fromLocalFile(""));
+ item = qobject_cast<QDeclarativeItem*>(component.create());
+ QVERIFY(item);
+ QCOMPARE(warningMessage, QString("file::2:1: QML Grid: Cannot specify anchors for items inside Grid"));
+ warningMessage.clear();
+
component.setData("import Qt 4.7\nFlow { Item { anchors.verticalCenter: parent.verticalCenter } }", QUrl::fromLocalFile(""));
item = qobject_cast<QDeclarativeItem*>(component.create());
QVERIFY(item);
QCOMPARE(warningMessage, QString("file::2:1: QML Flow: Cannot specify anchors for items inside Flow"));
+
+ component.setData("import Qt 4.7\nFlow { Item { anchors.fill: parent } }", QUrl::fromLocalFile(""));
+ item = qobject_cast<QDeclarativeItem*>(component.create());
+ QVERIFY(item);
+ QCOMPARE(warningMessage, QString("file::2:1: QML Flow: Cannot specify anchors for items inside Flow"));
}
QDeclarativeView *tst_QDeclarativePositioners::createView(const QString &filename)