summaryrefslogtreecommitdiffstats
path: root/src/scripttools/debugging/qscriptdebuggerconsolecommandgroupdata.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/scripttools/debugging/qscriptdebuggerconsolecommandgroupdata.cpp')
0 files changed, 0 insertions, 0 deletions
rc/declarative/pics/edge3.png | Bin 0 -> 3854 bytes doc/src/declarative/pics/edge4.png | Bin 0 -> 5152 bytes doc/src/declarative/pics/edges.png | Bin 0 -> 15226 bytes doc/src/declarative/pics/edges.svg | 185 ++ doc/src/declarative/pics/edges_examples.svg | 109 + doc/src/declarative/pics/edges_qml.png | Bin 0 -> 21731 bytes doc/src/declarative/pics/edges_qml.svg | 188 ++ doc/src/declarative/pics/flickable.gif | Bin 0 -> 185221 bytes doc/src/declarative/pics/flipable.gif | Bin 0 -> 80659 bytes doc/src/declarative/pics/gridLayout_example.png | Bin 0 -> 437 bytes doc/src/declarative/pics/gridview.png | Bin 0 -> 1369 bytes doc/src/declarative/pics/highlight.gif | Bin 0 -> 18259 bytes .../declarative/pics/horizontalLayout_example.png | Bin 0 -> 292 bytes doc/src/declarative/pics/layout-add.gif | Bin 0 -> 7821 bytes doc/src/declarative/pics/layout-move.gif | Bin 0 -> 6154 bytes doc/src/declarative/pics/layout-remove.gif | Bin 0 -> 5610 bytes doc/src/declarative/pics/margins_qml.png | Bin 0 -> 18476 bytes doc/src/declarative/pics/margins_qml.svg | 196 ++ doc/src/declarative/pics/particles.gif | Bin 0 -> 163068 bytes doc/src/declarative/pics/pathview.gif | Bin 0 -> 90512 bytes doc/src/declarative/pics/propanim.gif | Bin 0 -> 74909 bytes doc/src/declarative/pics/qtlogo.png | Bin 0 -> 2738 bytes doc/src/declarative/pics/reflection_example.png | Bin 0 -> 30919 bytes doc/src/declarative/pics/scalegrid.svg | 183 ++ doc/src/declarative/pics/shadow_example.png | Bin 0 -> 4775 bytes doc/src/declarative/pics/spacing_a.png | Bin 0 -> 495 bytes doc/src/declarative/pics/spacing_b.png | Bin 0 -> 462 bytes doc/src/declarative/pics/trivialListView.png | Bin 0 -> 2387 bytes .../declarative/pics/verticalLayout_example.png | Bin 0 -> 385 bytes .../declarative/pics/verticalLayout_transition.gif | Bin 0 -> 12641 bytes doc/src/declarative/pics/webview.png | Bin 0 -> 126662 bytes doc/src/declarative/qmlforcpp.qdoc | 999 +++++++ doc/src/declarative/qtprogrammers.qdoc | 121 + doc/src/declarative/scenegraph.qdoc | 13 + doc/src/declarative/tutorial.qdoc | 19 + doc/src/declarative/tutorial1.qdoc | 55 + doc/src/declarative/tutorial2.qdoc | 94 + doc/src/declarative/tutorial3.qdoc | 83 + .../diagrams/programs/easingcurve/easingcurve.pro | 13 + doc/src/diagrams/programs/easingcurve/main.cpp | 90 + doc/src/duiviewer.qdoc | 80 + doc/src/examples.qdoc | 6 + doc/src/examples/trafficlight.qdoc | 58 + doc/src/external-resources.qdoc | 10 + doc/src/groups.qdoc | 23 + doc/src/images/declarative-anchors_example.png | Bin 0 -> 3654 bytes doc/src/images/declarative-anchors_example2.png | Bin 0 -> 3819 bytes doc/src/images/declarative-image_tile.png | Bin 0 -> 396 bytes doc/src/images/declarative-item_opacity1.png | Bin 0 -> 464 bytes doc/src/images/declarative-item_opacity2.png | Bin 0 -> 464 bytes doc/src/images/declarative-item_stacking1.png | Bin 0 -> 460 bytes doc/src/images/declarative-item_stacking2.png | Bin 0 -> 461 bytes doc/src/images/declarative-item_stacking3.png | Bin 0 -> 464 bytes doc/src/images/declarative-item_stacking4.png | Bin 0 -> 463 bytes doc/src/images/declarative-qtlogo1.png | Bin 0 -> 3436 bytes doc/src/images/declarative-qtlogo2.png | Bin 0 -> 11023 bytes doc/src/images/declarative-qtlogo3.png | Bin 0 -> 5848 bytes doc/src/images/declarative-qtlogo4.png | Bin 0 -> 11241 bytes doc/src/images/declarative-rect.png | Bin 0 -> 674 bytes doc/src/images/declarative-rect_gradient.png | Bin 0 -> 873 bytes doc/src/images/declarative-rect_tint.png | Bin 0 -> 363 bytes doc/src/images/declarative-rotation.png | Bin 0 -> 645 bytes doc/src/images/declarative-scale.png | Bin 0 -> 336 bytes doc/src/images/declarative-scalegrid.png | Bin 0 -> 4228 bytes doc/src/images/declarative-text.png | Bin 0 -> 3289 bytes doc/src/images/declarative-textedit.gif | Bin 0 -> 15286 bytes doc/src/images/declarative-textformat.png | Bin 0 -> 11498 bytes doc/src/images/declarative-textstyle.png | Bin 0 -> 6825 bytes doc/src/images/declarative-transformorigin.png | Bin 0 -> 17468 bytes doc/src/images/declarative-tutorial1.png | Bin 0 -> 3416 bytes doc/src/images/declarative-tutorial2.png | Bin 0 -> 3145 bytes doc/src/images/declarative-tutorial3_animation.gif | Bin 0 -> 42486 bytes doc/src/images/qeasingcurve-cosinecurve.png | Bin 0 -> 2544 bytes doc/src/images/qeasingcurve-inback.png | Bin 0 -> 2225 bytes doc/src/images/qeasingcurve-inbounce.png | Bin 0 -> 2378 bytes doc/src/images/qeasingcurve-incirc.png | Bin 0 -> 2138 bytes doc/src/images/qeasingcurve-incubic.png | Bin 0 -> 2230 bytes doc/src/images/qeasingcurve-incurve.png | Bin 0 -> 2325 bytes doc/src/images/qeasingcurve-inelastic.png | Bin 0 -> 2314 bytes doc/src/images/qeasingcurve-inexpo.png | Bin 0 -> 2183 bytes doc/src/images/qeasingcurve-inoutback.png | Bin 0 -> 2460 bytes doc/src/images/qeasingcurve-inoutbounce.png | Bin 0 -> 2522 bytes doc/src/images/qeasingcurve-inoutcirc.png | Bin 0 -> 2352 bytes doc/src/images/qeasingcurve-inoutcubic.png | Bin 0 -> 2410 bytes doc/src/images/qeasingcurve-inoutelastic.png | Bin 0 -> 2485 bytes doc/src/images/qeasingcurve-inoutexpo.png | Bin 0 -> 2383 bytes doc/src/images/qeasingcurve-inoutquad.png | Bin 0 -> 2392 bytes doc/src/images/qeasingcurve-inoutquart.png | Bin 0 -> 2331 bytes doc/src/images/qeasingcurve-inoutquint.png | Bin 0 -> 2244 bytes doc/src/images/qeasingcurve-inoutsine.png | Bin 0 -> 2405 bytes doc/src/images/qeasingcurve-inquad.png | Bin 0 -> 2283 bytes doc/src/images/qeasingcurve-inquart.png | Bin 0 -> 2261 bytes doc/src/images/qeasingcurve-inquint.png | Bin 0 -> 2178 bytes doc/src/images/qeasingcurve-insine.png | Bin 0 -> 2167 bytes doc/src/images/qeasingcurve-linear.png | Bin 0 -> 2165 bytes doc/src/images/qeasingcurve-outback.png | Bin 0 -> 2371 bytes doc/src/images/qeasingcurve-outbounce.png | Bin 0 -> 2481 bytes doc/src/images/qeasingcurve-outcirc.png | Bin 0 -> 2269 bytes doc/src/images/qeasingcurve-outcubic.png | Bin 0 -> 2336 bytes doc/src/images/qeasingcurve-outcurve.png | Bin 0 -> 2389 bytes doc/src/images/qeasingcurve-outelastic.png | Bin 0 -> 2402 bytes doc/src/images/qeasingcurve-outexpo.png | Bin 0 -> 2299 bytes doc/src/images/qeasingcurve-outinback.png | Bin 0 -> 2400 bytes doc/src/images/qeasingcurve-outinbounce.png | Bin 0 -> 2568 bytes doc/src/images/qeasingcurve-outincirc.png | Bin 0 -> 2339 bytes doc/src/images/qeasingcurve-outincubic.png | Bin 0 -> 2393 bytes doc/src/images/qeasingcurve-outinelastic.png | Bin 0 -> 2517 bytes doc/src/images/qeasingcurve-outinexpo.png | Bin 0 -> 2377 bytes doc/src/images/qeasingcurve-outinquad.png | Bin 0 -> 2380 bytes doc/src/images/qeasingcurve-outinquart.png | Bin 0 -> 2319 bytes doc/src/images/qeasingcurve-outinquint.png | Bin 0 -> 2248 bytes doc/src/images/qeasingcurve-outinsine.png | Bin 0 -> 2388 bytes doc/src/images/qeasingcurve-outquad.png | Bin 0 -> 2324 bytes doc/src/images/qeasingcurve-outquart.png | Bin 0 -> 2304 bytes doc/src/images/qeasingcurve-outquint.png | Bin 0 -> 2242 bytes doc/src/images/qeasingcurve-outsine.png | Bin 0 -> 2364 bytes doc/src/images/qeasingcurve-sinecurve.png | Bin 0 -> 2470 bytes doc/src/images/statemachine-button-history.png | Bin 0 -> 91677 bytes doc/src/images/statemachine-button-nested.png | Bin 0 -> 73774 bytes doc/src/images/statemachine-button.png | Bin 0 -> 32767 bytes doc/src/images/statemachine-finished.png | Bin 0 -> 37907 bytes doc/src/images/statemachine-nonparallel.png | Bin 0 -> 68482 bytes doc/src/images/statemachine-parallel.png | Bin 0 -> 99587 bytes doc/src/images/trafficlight-example.png | Bin 0 -> 5325 bytes doc/src/index.qdoc | 1 + .../code/src_corelib_tools_qeasingcurve.cpp | 4 + doc/src/statemachine.qdoc | 272 ++ examples/animation/animatedtiles/animatedtiles.pro | 2 + examples/animation/animatedtiles/animatedtiles.qrc | 11 + .../animatedtiles/images/Time-For-Lunch-2.jpg | Bin 0 -> 32471 bytes .../animation/animatedtiles/images/centered.png | Bin 0 -> 892 bytes .../animation/animatedtiles/images/ellipse.png | Bin 0 -> 10767 bytes .../animation/animatedtiles/images/figure8.png | Bin 0 -> 14050 bytes .../animation/animatedtiles/images/kinetic.png | Bin 0 -> 6776 bytes examples/animation/animatedtiles/images/random.png | Bin 0 -> 14969 bytes examples/animation/animatedtiles/images/tile.png | Bin 0 -> 16337 bytes examples/animation/animatedtiles/main.cpp | 242 ++ examples/animation/animation.pro | 21 + .../appchooser/accessories-dictionary.png | Bin 0 -> 5396 bytes examples/animation/appchooser/akregator.png | Bin 0 -> 4873 bytes examples/animation/appchooser/appchooser.pro | 9 + examples/animation/appchooser/appchooser.qrc | 8 + examples/animation/appchooser/digikam.png | Bin 0 -> 3334 bytes examples/animation/appchooser/k3b.png | Bin 0 -> 8220 bytes examples/animation/appchooser/main.cpp | 124 + examples/animation/easing/animation.h | 75 + examples/animation/easing/easing.pro | 16 + examples/animation/easing/form.ui | 201 ++ examples/animation/easing/images/qt-logo.png | Bin 0 -> 5149 bytes examples/animation/easing/main.cpp | 22 + examples/animation/easing/resources.qrc | 5 + examples/animation/easing/window.cpp | 133 + examples/animation/easing/window.h | 49 + examples/animation/example/example.pro | 12 + examples/animation/example/main.cpp | 23 + examples/animation/example/mainwindow.cpp | 220 ++ examples/animation/example/mainwindow.h | 45 + examples/animation/moveblocks/main.cpp | 274 ++ examples/animation/moveblocks/moveblocks.pro | 8 + examples/animation/padnavigator-ng/backside.ui | 208 ++ .../padnavigator-ng/images/artsfftscope.png | Bin 0 -> 1294 bytes .../padnavigator-ng/images/blue_angle_swirl.jpg | Bin 0 -> 11826 bytes .../padnavigator-ng/images/kontact_contacts.png | Bin 0 -> 4382 bytes .../padnavigator-ng/images/kontact_journal.png | Bin 0 -> 3261 bytes .../padnavigator-ng/images/kontact_mail.png | Bin 0 -> 3202 bytes .../padnavigator-ng/images/kontact_notes.png | Bin 0 -> 3893 bytes .../padnavigator-ng/images/kopeteavailable.png | Bin 0 -> 2380 bytes .../padnavigator-ng/images/metacontact_online.png | Bin 0 -> 2545 bytes .../animation/padnavigator-ng/images/minitools.png | Bin 0 -> 2087 bytes examples/animation/padnavigator-ng/main.cpp | 24 + .../animation/padnavigator-ng/padnavigator.pro | 24 + .../animation/padnavigator-ng/padnavigator.qrc | 14 + examples/animation/padnavigator-ng/panel.cpp | 216 ++ examples/animation/padnavigator-ng/panel.h | 59 + .../animation/padnavigator-ng/roundrectitem.cpp | 106 + examples/animation/padnavigator-ng/roundrectitem.h | 47 + examples/animation/padnavigator-ng/splashitem.cpp | 55 + examples/animation/padnavigator-ng/splashitem.h | 31 + examples/animation/photobrowser/main.cpp | 52 + examples/animation/photobrowser/menu.cpp | 125 + examples/animation/photobrowser/menu.h | 50 + examples/animation/photobrowser/photobrowser.pro | 17 + examples/animation/photobrowser/river.cpp | 561 ++++ examples/animation/photobrowser/river.h | 81 + examples/animation/photobrowser/riveritem.cpp | 95 + examples/animation/photobrowser/riveritem.h | 36 + examples/animation/piemenu/main.cpp | 26 + examples/animation/piemenu/piemenu.pro | 8 + examples/animation/piemenu/qgraphicspiemenu.cpp | 220 ++ examples/animation/piemenu/qgraphicspiemenu.h | 74 + examples/animation/piemenu/qgraphicspiemenu_p.h | 48 + .../animation/piemenu/qgraphicspiemenusection_p.h | 58 + examples/animation/piemenu/scene.cpp | 43 + examples/animation/piemenu/scene.h | 30 + .../animation/research/memberfunctions/main.cpp | 48 + .../research/memberfunctions/memberfunctions.pro | 16 + .../research/memberfunctions/qvalueanimation.cpp | 73 + .../research/memberfunctions/qvalueanimation.h | 89 + .../research/memberfunctions/qvalueanimation_p.h | 47 + .../animation/research/propertytransform/main.cpp | 47 + .../propertytransform/propertytransform.pro | 14 + .../propertytransform/qpropertytransform.h | 78 + examples/animation/research/sound/main.cpp | 74 + examples/animation/research/sound/media/sax.mp3 | Bin 0 -> 417844 bytes examples/animation/research/sound/sound.pro | 14 + examples/animation/research/sound/sound.qrc | 5 + .../animation/states/accessories-dictionary.png | Bin 0 -> 5396 bytes examples/animation/states/akregator.png | Bin 0 -> 4873 bytes examples/animation/states/digikam.png | Bin 0 -> 3334 bytes examples/animation/states/help-browser.png | Bin 0 -> 6984 bytes examples/animation/states/k3b.png | Bin 0 -> 8220 bytes examples/animation/states/kchart.png | Bin 0 -> 4887 bytes examples/animation/states/main.cpp | 259 ++ examples/animation/states/states.pro | 8 + examples/animation/states/states.qrc | 10 + examples/animation/stickman/animation.cpp | 152 ++ examples/animation/stickman/animation.h | 40 + examples/animation/stickman/animations/chilling | Bin 0 -> 6508 bytes examples/animation/stickman/animations/dancing | Bin 0 -> 2348 bytes examples/animation/stickman/animations/dead | Bin 0 -> 268 bytes examples/animation/stickman/animations/jumping | Bin 0 -> 1308 bytes examples/animation/stickman/graphicsview.cpp | 15 + examples/animation/stickman/graphicsview.h | 19 + examples/animation/stickman/lifecycle.cpp | 176 ++ examples/animation/stickman/lifecycle.h | 40 + examples/animation/stickman/main.cpp | 58 + examples/animation/stickman/node.cpp | 42 + examples/animation/stickman/node.h | 26 + examples/animation/stickman/stickman.cpp | 299 +++ examples/animation/stickman/stickman.h | 59 + examples/animation/stickman/stickman.pro | 12 + examples/animation/sub-attaq/animationmanager.cpp | 97 + examples/animation/sub-attaq/animationmanager.h | 68 + examples/animation/sub-attaq/boat.cpp | 293 ++ examples/animation/sub-attaq/boat.h | 100 + examples/animation/sub-attaq/boat_p.h | 258 ++ examples/animation/sub-attaq/bomb.cpp | 132 + examples/animation/sub-attaq/bomb.h | 81 + .../sub-attaq/custompropertyanimation.cpp | 114 + .../animation/sub-attaq/custompropertyanimation.h | 117 + .../sub-attaq/custompropertyanimation_p.h | 64 + examples/animation/sub-attaq/data.xml | 15 + examples/animation/sub-attaq/graphicsscene.cpp | 368 +++ examples/animation/sub-attaq/graphicsscene.h | 129 + examples/animation/sub-attaq/main.cpp | 57 + examples/animation/sub-attaq/mainwindow.cpp | 92 + examples/animation/sub-attaq/mainwindow.h | 63 + .../animation/sub-attaq/pics/big/background.png | Bin 0 -> 48858 bytes examples/animation/sub-attaq/pics/big/boat.png | Bin 0 -> 5198 bytes examples/animation/sub-attaq/pics/big/bomb.png | Bin 0 -> 760 bytes .../sub-attaq/pics/big/explosion/boat/step1.png | Bin 0 -> 5760 bytes .../sub-attaq/pics/big/explosion/boat/step2.png | Bin 0 -> 9976 bytes .../sub-attaq/pics/big/explosion/boat/step3.png | Bin 0 -> 12411 bytes .../sub-attaq/pics/big/explosion/boat/step4.png | Bin 0 -> 15438 bytes .../pics/big/explosion/submarine/step1.png | Bin 0 -> 3354 bytes .../pics/big/explosion/submarine/step2.png | Bin 0 -> 6205 bytes .../pics/big/explosion/submarine/step3.png | Bin 0 -> 6678 bytes .../pics/big/explosion/submarine/step4.png | Bin 0 -> 6666 bytes .../animation/sub-attaq/pics/big/submarine.png | Bin 0 -> 3202 bytes examples/animation/sub-attaq/pics/big/surface.png | Bin 0 -> 575 bytes examples/animation/sub-attaq/pics/big/torpedo.png | Bin 0 -> 951 bytes .../sub-attaq/pics/scalable/background-n810.svg | 171 ++ .../sub-attaq/pics/scalable/background.svg | 171 ++ .../animation/sub-attaq/pics/scalable/boat.svg | 279 ++ .../animation/sub-attaq/pics/scalable/bomb.svg | 138 + .../animation/sub-attaq/pics/scalable/sand.svg | 103 + examples/animation/sub-attaq/pics/scalable/see.svg | 44 + examples/animation/sub-attaq/pics/scalable/sky.svg | 45 + .../sub-attaq/pics/scalable/sub-attaq.svg | 1473 +++++++++++ .../sub-attaq/pics/scalable/submarine.svg | 214 ++ .../animation/sub-attaq/pics/scalable/surface.svg | 49 + .../animation/sub-attaq/pics/scalable/torpedo.svg | 127 + .../animation/sub-attaq/pics/small/background.png | Bin 0 -> 34634 bytes examples/animation/sub-attaq/pics/small/boat.png | Bin 0 -> 2394 bytes examples/animation/sub-attaq/pics/small/bomb.png | Bin 0 -> 760 bytes .../animation/sub-attaq/pics/small/submarine.png | Bin 0 -> 1338 bytes .../animation/sub-attaq/pics/small/surface.png | Bin 0 -> 502 bytes .../animation/sub-attaq/pics/small/torpedo.png | Bin 0 -> 951 bytes .../animation/sub-attaq/pics/welcome/logo-a.png | Bin 0 -> 5972 bytes .../animation/sub-attaq/pics/welcome/logo-a2.png | Bin 0 -> 5969 bytes .../animation/sub-attaq/pics/welcome/logo-b.png | Bin 0 -> 6869 bytes .../animation/sub-attaq/pics/welcome/logo-dash.png | Bin 0 -> 2255 bytes .../animation/sub-attaq/pics/welcome/logo-excl.png | Bin 0 -> 2740 bytes .../animation/sub-attaq/pics/welcome/logo-q.png | Bin 0 -> 7016 bytes .../animation/sub-attaq/pics/welcome/logo-s.png | Bin 0 -> 5817 bytes .../animation/sub-attaq/pics/welcome/logo-t.png | Bin 0 -> 3717 bytes .../animation/sub-attaq/pics/welcome/logo-t2.png | Bin 0 -> 3688 bytes .../animation/sub-attaq/pics/welcome/logo-u.png | Bin 0 -> 5374 bytes examples/animation/sub-attaq/pixmapitem.cpp | 59 + examples/animation/sub-attaq/pixmapitem.h | 63 + examples/animation/sub-attaq/states.cpp | 289 ++ examples/animation/sub-attaq/states.h | 158 ++ examples/animation/sub-attaq/sub-attaq.pro | 36 + examples/animation/sub-attaq/subattaq.qrc | 38 + examples/animation/sub-attaq/submarine.cpp | 219 ++ examples/animation/sub-attaq/submarine.h | 97 + examples/animation/sub-attaq/submarine_p.h | 136 + examples/animation/sub-attaq/torpedo.cpp | 126 + examples/animation/sub-attaq/torpedo.h | 81 + examples/declarative/animation/animation.qml | 28 + examples/declarative/behaviours/MyRect.qml | 4 + examples/declarative/behaviours/test.qml | 37 + examples/declarative/connections/connections.qml | 9 + examples/declarative/contacts/contacts.pro | 22 + examples/declarative/contacts/contacts.qml | 44 + .../contacts/dummydata/contactModel.qml | 103 + examples/declarative/contacts/main.cpp | 80 + examples/declarative/declarative.pro | 4 + examples/declarative/dial/DialLibrary/Dial.qml | 13 + .../declarative/dial/DialLibrary/background.svg | 385 +++ examples/declarative/dial/DialLibrary/needle.svg | 26 + .../declarative/dial/DialLibrary/needle_shadow.svg | 30 + examples/declarative/dial/DialLibrary/overlay.svg | 47 + examples/declarative/dial/dial.qml | 14 + examples/declarative/easing/easing.qml | 67 + examples/declarative/follow/follow.qml | 35 + examples/declarative/follow/pong.qml | 55 + .../declarative/listview/content/MediaButton.qml | 21 + .../listview/content/pics/button-pressed.png | Bin 0 -> 571 bytes .../declarative/listview/content/pics/button.png | Bin 0 -> 564 bytes .../listview/content/pics/fruit-salad.jpg | Bin 0 -> 17952 bytes .../listview/content/pics/hamburger.jpg | Bin 0 -> 8572 bytes .../declarative/listview/content/pics/lemonade.jpg | Bin 0 -> 6645 bytes .../declarative/listview/content/pics/pancakes.jpg | Bin 0 -> 9163 bytes .../listview/content/pics/vegetable-soup.jpg | Bin 0 -> 8639 bytes .../declarative/listview/dummydata/MyPetsModel.qml | 51 + .../declarative/listview/dummydata/Recipies.qml | 112 + examples/declarative/listview/highlight.qml | 56 + examples/declarative/listview/listview.qml | 81 + examples/declarative/listview/recipes.qml | 83 + examples/declarative/minehunt/Description.qml | 10 + examples/declarative/minehunt/Explosion.qml | 6 + examples/declarative/minehunt/main.cpp | 312 +++ examples/declarative/minehunt/minehunt.pro | 8 + examples/declarative/minehunt/minehunt.qml | 73 + .../minehunt/pics/No-Ones-Laughing-3.jpg | Bin 0 -> 30730 bytes examples/declarative/minehunt/pics/bomb-color.png | Bin 0 -> 284 bytes examples/declarative/minehunt/pics/bomb.png | Bin 0 -> 535 bytes .../declarative/minehunt/pics/cachepix-black.png | Bin 0 -> 1658 bytes .../declarative/minehunt/pics/cachepix-black.sci | 5 + .../declarative/minehunt/pics/cachepix-boxless.png | Bin 0 -> 1819 bytes .../declarative/minehunt/pics/cachepix-boxless.sci | 5 + examples/declarative/minehunt/pics/flag-color.png | Bin 0 -> 219 bytes examples/declarative/minehunt/pics/flag.png | Bin 0 -> 196 bytes examples/declarative/minehunt/pics/frown.png | Bin 0 -> 1036 bytes examples/declarative/minehunt/pics/glee.png | Bin 0 -> 1082 bytes examples/declarative/minehunt/pics/smile.png | Bin 0 -> 1028 bytes examples/declarative/minehunt/pics/star.png | Bin 0 -> 2677 bytes examples/declarative/mouseregion/mouse.qml | 24 + examples/declarative/namespaces/BlueStuff/Rect.qml | 1 + examples/declarative/namespaces/Local.qml | 1 + examples/declarative/namespaces/components.qml | 17 + .../declarative/namespaces/lib/Chronos/Clock.qml | 15 + .../declarative/namespaces/lib/Chronos/Hand.qml | 9 + .../namespaces/lib/Chronos/pics/clockface.png | Bin 0 -> 46895 bytes .../declarative/namespaces/lib/Path/PathLabel.qml | 1 + .../declarative/namespaces/lib/RedStuff/Rect.qml | 1 + .../declarative/namespaces/lib/Wrong/Wrong.qml | 3 + examples/declarative/namespaces/library.qml | 12 + examples/declarative/namespaces/path.qml | 18 + examples/declarative/namespaces/simple.qml | 5 + examples/declarative/namespaces/wrong1.qml | 4 + examples/declarative/scrollbar/ScrollBar.qml | 26 + examples/declarative/scrollbar/display.qml | 28 + .../declarative/scrollbar/pics/niagara_falls.jpg | Bin 0 -> 604121 bytes examples/declarative/slideswitch/Switch.qml | 52 + examples/declarative/slideswitch/background.svg | 23 + examples/declarative/slideswitch/display.qml | 3 + examples/declarative/slideswitch/knob.svg | 867 ++++++ examples/declarative/states/states.qml | 40 + examples/declarative/states/transitions.qml | 68 + examples/declarative/support/contact.cpp | 83 + examples/declarative/support/contact.h | 141 + examples/declarative/support/contactmodel.cpp | 159 ++ examples/declarative/support/contactmodel.h | 55 + examples/declarative/support/support.pro | 12 + .../1_Drawing_an_animation.qml | 22 + .../1_Drawing_and_Animation/RemoveButton1.qml | 4 + .../1_Drawing_and_Animation/RemoveButton2.qml | 10 + .../1_Drawing_and_Animation/RemoveButton3.qml | 23 + .../1_Drawing_and_Animation/RemoveButton4.qml | 65 + .../1_Drawing_and_Animation/RemoveButton5.qml | 70 + .../tutorials/contacts/2_Reuse/2_Reuse.qml | 34 + .../tutorials/contacts/2_Reuse/Contact3.qml | 27 + .../tutorials/contacts/2_Reuse/Contact4.qml | 27 + .../tutorials/contacts/2_Reuse/ContactField1.qml | 17 + .../tutorials/contacts/2_Reuse/ContactField2.qml | 19 + .../tutorials/contacts/2_Reuse/ContactField3.qml | 35 + .../tutorials/contacts/2_Reuse/ContactField4.qml | 35 + .../tutorials/contacts/2_Reuse/FieldText3.qml | 93 + .../tutorials/contacts/2_Reuse/FieldText4.qml | 98 + .../tutorials/contacts/2_Reuse/RemoveButton1.qml | 70 + .../tutorials/contacts/2_Reuse/RemoveButton2.qml | 76 + .../tutorials/contacts/2_Reuse/RemoveButton3.qml | 76 + .../tutorials/contacts/2_Reuse/RemoveButton4.qml | 80 + .../contacts/3_Collections/3_Collections.qml | 8 + .../tutorials/contacts/3_Collections/Button.qml | 38 + .../tutorials/contacts/3_Collections/Contact.qml | 28 + .../contacts/3_Collections/ContactField.qml | 35 + .../contacts/3_Collections/ContactView1.qml | 22 + .../contacts/3_Collections/ContactView2.qml | 62 + .../contacts/3_Collections/ContactView3.qml | 67 + .../tutorials/contacts/3_Collections/FieldText.qml | 98 + .../contacts/3_Collections/RemoveButton.qml | 80 + .../tutorials/contacts/shared/contacts.sqlite | Bin 0 -> 12288 bytes .../tutorials/contacts/shared/pics/cancel.png | Bin 0 -> 1038 bytes .../tutorials/contacts/shared/pics/email.png | Bin 0 -> 977 bytes .../tutorials/contacts/shared/pics/new.png | Bin 0 -> 688 bytes .../tutorials/contacts/shared/pics/ok.png | Bin 0 -> 655 bytes .../tutorials/contacts/shared/pics/phone.png | Bin 0 -> 624 bytes .../tutorials/contacts/shared/pics/search.png | Bin 0 -> 635 bytes .../tutorials/contacts/shared/pics/trash.png | Bin 0 -> 989 bytes .../declarative/tutorials/contacts/t8/Button.qml | 33 + .../declarative/tutorials/contacts/t8/Contact.qml | 80 + .../declarative/tutorials/contacts/t8/Field.qml | 54 + .../tutorials/contacts/t8/FieldRemover.qml | 57 + .../tutorials/contacts/t8/FieldText.qml | 89 + .../tutorials/contacts/t8/SearchBar.qml | 16 + .../declarative/tutorials/contacts/t8/contacts.qml | 133 + examples/declarative/tutorials/t1/tutorial1.qml | 3 + examples/declarative/tutorials/t2/Cell.qml | 7 + examples/declarative/tutorials/t2/tutorial2.qml | 11 + examples/declarative/tutorials/t3/Cell.qml | 7 + examples/declarative/tutorials/t3/tutorial3.qml | 27 + examples/declarative/velocity/Day.qml | 41 + examples/declarative/velocity/cork.jpg | Bin 0 -> 88766 bytes examples/declarative/velocity/sticky.png | Bin 0 -> 15319 bytes examples/declarative/velocity/tack.png | Bin 0 -> 7282 bytes examples/declarative/velocity/velocity.qml | 81 + examples/declarative/webview/autosize.qml | 42 + .../declarative/webview/content/SpinSquare.qml | 12 + examples/declarative/webview/inline-html.qml | 13 + examples/declarative/webview/inline-xhtml.qml | 14 + examples/declarative/webview/qml-in-html.qml | 20 + examples/declarative/webview/transparent.qml | 6 + examples/declarative/xmldata/daringfireball.qml | 25 + examples/declarative/xmldata/yahoonews.qml | 38 + examples/examples.pro | 3 + examples/opengl/hellogl_es2/glwidget.cpp | 391 +-- examples/opengl/hellogl_es2/glwidget.h | 31 +- examples/statemachine/README | 36 + .../statemachine/citizenquartz/citizenquartz.pro | 20 + .../statemachine/citizenquartz/citizenquartz.qrc | 5 + examples/statemachine/citizenquartz/clock.cpp | 382 +++ examples/statemachine/citizenquartz/clock.h | 60 + .../statemachine/citizenquartz/clockbutton.cpp | 39 + examples/statemachine/citizenquartz/clockbutton.h | 25 + .../statemachine/citizenquartz/clockdisplay.cpp | 140 + examples/statemachine/citizenquartz/clockdisplay.h | 75 + .../statemachine/citizenquartz/images/alarm.png | Bin 0 -> 434 bytes examples/statemachine/citizenquartz/main.cpp | 23 + .../citizenquartz/propertyaddstate.cpp | 46 + .../statemachine/citizenquartz/propertyaddstate.h | 33 + .../statemachine/citizenquartz/sound/alarm.wav | Bin 0 -> 3238264 bytes examples/statemachine/citizenquartz/timeperiod.h | 84 + .../statemachine/clockticking/clockticking.pro | 10 + examples/statemachine/clockticking/main.cpp | 101 + examples/statemachine/composition/composition.pro | 7 + examples/statemachine/composition/main.cpp | 74 + .../eventtransitions/eventtransitions.pro | 7 + examples/statemachine/eventtransitions/main.cpp | 72 + examples/statemachine/factorial/factorial.pro | 10 + examples/statemachine/factorial/main.cpp | 140 + examples/statemachine/helloworld/helloworld.pro | 10 + examples/statemachine/helloworld/main.cpp | 48 + examples/statemachine/pauseandresume/main.cpp | 72 + .../statemachine/pauseandresume/pauseandresume.pro | 7 + examples/statemachine/pingpong/main.cpp | 112 + examples/statemachine/pingpong/pingpong.pro | 10 + examples/statemachine/statemachine.pro | 17 + examples/statemachine/trafficlight/main.cpp | 158 ++ .../statemachine/trafficlight/trafficlight.pro | 12 + examples/statemachine/twowaybutton/main.cpp | 48 + .../statemachine/twowaybutton/twowaybutton.pro | 7 + mkspecs/features/qt.prf | 4 +- mkspecs/linux-g++-x11egl/qmake.conf | 23 + mkspecs/linux-g++-x11egl/qplatformdefs.h | 134 + mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf | 20 + mkspecs/qws/linux-arm-gnueabi-g++/qplatformdefs.h | 42 + mkspecs/win32-icc/qmake.conf | 2 +- src/3rdparty/easing/easing.cpp | 669 +++++ src/3rdparty/easing/legal.qdoc | 35 + src/corelib/animation/animation.pri | 25 + src/corelib/animation/qabstractanimation.cpp | 757 ++++++ src/corelib/animation/qabstractanimation.h | 141 + src/corelib/animation/qabstractanimation_p.h | 141 + src/corelib/animation/qanimationgroup.cpp | 274 ++ src/corelib/animation/qanimationgroup.h | 92 + src/corelib/animation/qanimationgroup_p.h | 79 + src/corelib/animation/qparallelanimationgroup.cpp | 298 +++ src/corelib/animation/qparallelanimationgroup.h | 90 + src/corelib/animation/qparallelanimationgroup_p.h | 85 + src/corelib/animation/qpauseanimation.cpp | 139 + src/corelib/animation/qpauseanimation.h | 88 + src/corelib/animation/qpropertyanimation.cpp | 256 ++ src/corelib/animation/qpropertyanimation.h | 94 + src/corelib/animation/qpropertyanimation_p.h | 89 + .../animation/qsequentialanimationgroup.cpp | 572 ++++ src/corelib/animation/qsequentialanimationgroup.h | 100 + .../animation/qsequentialanimationgroup_p.h | 111 + src/corelib/animation/qvariantanimation.cpp | 599 +++++ src/corelib/animation/qvariantanimation.h | 136 + src/corelib/animation/qvariantanimation_p.h | 143 + src/corelib/arch/qatomic_bootstrap.h | 14 + src/corelib/corelib.pro | 2 + src/corelib/global/qglobal.h | 29 + src/corelib/kernel/kernel.pri | 18 +- src/corelib/kernel/qabstractitemmodel.cpp | 31 + src/corelib/kernel/qabstractitemmodel.h | 3 + src/corelib/kernel/qabstractitemmodel_p.h | 5 +- src/corelib/kernel/qcoreevent.h | 9 +- src/corelib/kernel/qmetaobject.cpp | 89 +- src/corelib/kernel/qmetaobject.h | 3 + src/corelib/kernel/qmetaobjectbuilder.cpp | 2438 +++++++++++++++++ src/corelib/kernel/qmetaobjectbuilder_p.h | 269 ++ src/corelib/kernel/qobject.cpp | 9 +- src/corelib/kernel/qobject.h | 11 + src/corelib/kernel/qobject_p.h | 8 + src/corelib/kernel/qobjectdefs.h | 4 + src/corelib/kernel/qvariant_p.h | 34 +- src/corelib/statemachine/qabstractstate.cpp | 155 ++ src/corelib/statemachine/qabstractstate.h | 57 + src/corelib/statemachine/qabstractstate_p.h | 64 + src/corelib/statemachine/qabstracttransition.cpp | 281 ++ src/corelib/statemachine/qabstracttransition.h | 69 + src/corelib/statemachine/qabstracttransition_p.h | 65 + src/corelib/statemachine/qactionstate.cpp | 385 +++ src/corelib/statemachine/qactionstate.h | 85 + src/corelib/statemachine/qactionstate_p.h | 55 + src/corelib/statemachine/qanimationstate.cpp | 574 ++++ src/corelib/statemachine/qanimationstate.h | 63 + src/corelib/statemachine/qboundevent_p.h | 52 + src/corelib/statemachine/qeventtransition.cpp | 263 ++ src/corelib/statemachine/qeventtransition.h | 68 + src/corelib/statemachine/qeventtransition_p.h | 48 + src/corelib/statemachine/qfinalstate.cpp | 103 + src/corelib/statemachine/qfinalstate.h | 50 + src/corelib/statemachine/qhistorystate.cpp | 145 + src/corelib/statemachine/qhistorystate.h | 56 + src/corelib/statemachine/qhistorystate_p.h | 53 + src/corelib/statemachine/qsignalevent.h | 45 + src/corelib/statemachine/qsignaleventgenerator_p.h | 55 + src/corelib/statemachine/qsignaltransition.cpp | 228 ++ src/corelib/statemachine/qsignaltransition.h | 63 + src/corelib/statemachine/qsignaltransition_p.h | 48 + src/corelib/statemachine/qstate.cpp | 469 ++++ src/corelib/statemachine/qstate.h | 94 + src/corelib/statemachine/qstate_p.h | 54 + src/corelib/statemachine/qstateaction.cpp | 469 ++++ src/corelib/statemachine/qstateaction.h | 121 + src/corelib/statemachine/qstateaction_p.h | 92 + src/corelib/statemachine/qstatefinishedevent.h | 40 + .../statemachine/qstatefinishedtransition.cpp | 152 ++ .../statemachine/qstatefinishedtransition.h | 58 + src/corelib/statemachine/qstatemachine.cpp | 1847 +++++++++++++ src/corelib/statemachine/qstatemachine.h | 116 + src/corelib/statemachine/qstatemachine_p.h | 175 ++ src/corelib/statemachine/qtransition.cpp | 230 ++ src/corelib/statemachine/qtransition.h | 68 + src/corelib/statemachine/qtransition_p.h | 50 + src/corelib/statemachine/statemachine.pri | 47 + src/corelib/tools/qeasingcurve.cpp | 844 ++++++ src/corelib/tools/qeasingcurve.h | 114 + src/corelib/tools/qtimeline.cpp | 114 +- src/corelib/tools/qtimeline.h | 7 + src/corelib/tools/tools.pri | 2 + src/declarative/3rdparty/3rdparty.pri | 2 + src/declarative/3rdparty/easing.cpp | 726 +++++ src/declarative/3rdparty/legal.qdoc | 35 + src/declarative/3rdparty/qlistmodelinterface.h | 122 + src/declarative/canvas/canvas.pri | 19 + src/declarative/canvas/qsimplecanvas.cpp | 981 +++++++ src/declarative/canvas/qsimplecanvas.h | 187 ++ .../canvas/qsimplecanvas_graphicsview.cpp | 180 ++ src/declarative/canvas/qsimplecanvas_opengl.cpp | 456 ++++ src/declarative/canvas/qsimplecanvas_opengl1.cpp | 401 +++ src/declarative/canvas/qsimplecanvas_p.h | 196 ++ src/declarative/canvas/qsimplecanvas_software.cpp | 190 ++ src/declarative/canvas/qsimplecanvasfilter.cpp | 323 +++ src/declarative/canvas/qsimplecanvasfilter.h | 113 + src/declarative/canvas/qsimplecanvasfilter_p.h | 70 + src/declarative/canvas/qsimplecanvasitem.cpp | 1841 +++++++++++++ src/declarative/canvas/qsimplecanvasitem.h | 300 +++ src/declarative/canvas/qsimplecanvasitem_p.h | 242 ++ src/declarative/canvas/qsimplecanvasserver.cpp | 107 + src/declarative/canvas/qsimplecanvasserver_p.h | 71 + src/declarative/declarative.pro | 25 + src/declarative/extra/extra.pri | 24 + src/declarative/extra/qfxintegermodel.cpp | 126 + src/declarative/extra/qfxintegermodel.h | 86 + src/declarative/extra/qmlnumberformatter.cpp | 214 ++ src/declarative/extra/qmlnumberformatter.h | 92 + src/declarative/extra/qmlsqlconnection.cpp | 441 +++ src/declarative/extra/qmlsqlconnection.h | 117 + src/declarative/extra/qmlsqlquery.cpp | 696 +++++ src/declarative/extra/qmlsqlquery.h | 143 + src/declarative/extra/qmlxmllistmodel.cpp | 357 +++ src/declarative/extra/qmlxmllistmodel.h | 139 + src/declarative/extra/qnumberformat.cpp | 224 ++ src/declarative/extra/qnumberformat.h | 172 ++ src/declarative/fx/fx.pri | 94 + src/declarative/fx/qfxanchors.cpp | 857 ++++++ src/declarative/fx/qfxanchors.h | 194 ++ src/declarative/fx/qfxanchors_p.h | 105 + src/declarative/fx/qfxanimatedimageitem.cpp | 211 ++ src/declarative/fx/qfxanimatedimageitem.h | 100 + src/declarative/fx/qfxanimatedimageitem_p.h | 77 + src/declarative/fx/qfxblendedimage.cpp | 249 ++ src/declarative/fx/qfxblendedimage.h | 105 + src/declarative/fx/qfxblurfilter.cpp | 462 ++++ src/declarative/fx/qfxblurfilter.h | 82 + src/declarative/fx/qfxcomponentinstance.cpp | 132 + src/declarative/fx/qfxcomponentinstance.h | 89 + src/declarative/fx/qfxcomponentinstance_p.h | 76 + src/declarative/fx/qfxcontentwrapper.cpp | 129 + src/declarative/fx/qfxcontentwrapper.h | 90 + src/declarative/fx/qfxcontentwrapper_p.h | 71 + src/declarative/fx/qfxflickable.cpp | 1113 ++++++++ src/declarative/fx/qfxflickable.h | 195 ++ src/declarative/fx/qfxflickable_p.h | 166 ++ src/declarative/fx/qfxfocuspanel.cpp | 104 + src/declarative/fx/qfxfocuspanel.h | 81 + src/declarative/fx/qfxfocusrealm.cpp | 72 + src/declarative/fx/qfxfocusrealm.h | 67 + src/declarative/fx/qfxgridview.cpp | 1469 ++++++++++ src/declarative/fx/qfxgridview.h | 148 ++ src/declarative/fx/qfxhighlightfilter.cpp | 315 +++ src/declarative/fx/qfxhighlightfilter.h | 98 + src/declarative/fx/qfximage.cpp | 935 +++++++ src/declarative/fx/qfximage.h | 124 + src/declarative/fx/qfximage_p.h | 117 + src/declarative/fx/qfximageitem.cpp | 343 +++ src/declarative/fx/qfximageitem.h | 100 + src/declarative/fx/qfximageitem_p.h | 95 + src/declarative/fx/qfxitem.cpp | 1751 ++++++++++++ src/declarative/fx/qfxitem.h | 285 ++ src/declarative/fx/qfxitem_p.h | 182 ++ src/declarative/fx/qfxkeyactions.cpp | 930 +++++++ src/declarative/fx/qfxkeyactions.h | 319 +++ src/declarative/fx/qfxkeyproxy.cpp | 116 + src/declarative/fx/qfxkeyproxy.h | 78 + src/declarative/fx/qfxlayouts.cpp | 1027 +++++++ src/declarative/fx/qfxlayouts.h | 171 ++ src/declarative/fx/qfxlayouts_p.h | 100 + src/declarative/fx/qfxlistview.cpp | 1680 ++++++++++++ src/declarative/fx/qfxlistview.h | 157 ++ src/declarative/fx/qfxmouseregion.cpp | 589 ++++ src/declarative/fx/qfxmouseregion.h | 162 ++ src/declarative/fx/qfxmouseregion_p.h | 101 + src/declarative/fx/qfxpainted.cpp | 193 ++ src/declarative/fx/qfxpainted.h | 84 + src/declarative/fx/qfxpainted_p.h | 84 + src/declarative/fx/qfxparticles.cpp | 1063 ++++++++ src/declarative/fx/qfxparticles.h | 240 ++ src/declarative/fx/qfxpath.cpp | 745 ++++++ src/declarative/fx/qfxpath.h | 257 ++ src/declarative/fx/qfxpath_p.h | 79 + src/declarative/fx/qfxpathview.cpp | 841 ++++++ src/declarative/fx/qfxpathview.h | 132 + src/declarative/fx/qfxpathview_p.h | 132 + src/declarative/fx/qfxpixmap.cpp | 284 ++ src/declarative/fx/qfxpixmap.h | 92 + src/declarative/fx/qfxrect.cpp | 851 ++++++ src/declarative/fx/qfxrect.h | 140 + src/declarative/fx/qfxrect_p.h | 107 + src/declarative/fx/qfxreflectionfilter.cpp | 358 +++ src/declarative/fx/qfxreflectionfilter.h | 96 + src/declarative/fx/qfxrepeater.cpp | 354 +++ src/declarative/fx/qfxrepeater.h | 88 + src/declarative/fx/qfxrepeater_p.h | 81 + src/declarative/fx/qfxscalegrid.cpp | 216 ++ src/declarative/fx/qfxscalegrid.h | 120 + src/declarative/fx/qfxshadowfilter.cpp | 202 ++ src/declarative/fx/qfxshadowfilter.h | 86 + src/declarative/fx/qfxtext.cpp | 958 +++++++ src/declarative/fx/qfxtext.h | 153 ++ src/declarative/fx/qfxtext_p.h | 132 + src/declarative/fx/qfxtextedit.cpp | 804 ++++++ src/declarative/fx/qfxtextedit.h | 187 ++ src/declarative/fx/qfxtextedit_p.h | 102 + src/declarative/fx/qfxtransform.cpp | 661 +++++ src/declarative/fx/qfxtransform.h | 274 ++ src/declarative/fx/qfxvisualitemmodel.cpp | 690 +++++ src/declarative/fx/qfxvisualitemmodel.h | 120 + src/declarative/fx/qfxwebview.cpp | 1079 ++++++++ src/declarative/fx/qfxwebview.h | 217 ++ src/declarative/fx/qfxwidgetcontainer.cpp | 108 + src/declarative/fx/qfxwidgetcontainer.h | 79 + src/declarative/opengl/glbasicshaders.cpp | 707 +++++ src/declarative/opengl/glbasicshaders.h | 244 ++ src/declarative/opengl/glheaders.h | 49 + src/declarative/opengl/glsave.cpp | 1 + src/declarative/opengl/glsave.h | 111 + src/declarative/opengl/gltexture.cpp | 321 +++ src/declarative/opengl/gltexture.h | 116 + src/declarative/opengl/opengl.pri | 20 + src/declarative/qml/qml.h | 98 + src/declarative/qml/qml.pri | 63 + src/declarative/qml/qmlbindablevalue.cpp | 210 ++ src/declarative/qml/qmlbindablevalue.h | 94 + src/declarative/qml/qmlboundsignal.cpp | 158 ++ src/declarative/qml/qmlboundsignal_p.h | 104 + src/declarative/qml/qmlclassfactory.cpp | 47 + src/declarative/qml/qmlclassfactory_p.h | 63 + src/declarative/qml/qmlcompiledcomponent.cpp | 170 ++ src/declarative/qml/qmlcompiledcomponent_p.h | 80 + src/declarative/qml/qmlcompiler.cpp | 1662 ++++++++++++ src/declarative/qml/qmlcompiler_p.h | 183 ++ src/declarative/qml/qmlcomponent.cpp | 405 +++ src/declarative/qml/qmlcomponent.h | 102 + src/declarative/qml/qmlcomponent_p.h | 85 + src/declarative/qml/qmlcompositetypemanager.cpp | 359 +++ src/declarative/qml/qmlcompositetypemanager_p.h | 144 + src/declarative/qml/qmlcontext.cpp | 405 +++ src/declarative/qml/qmlcontext.h | 104 + src/declarative/qml/qmlcontext_p.h | 87 + src/declarative/qml/qmlcustomparser.cpp | 96 + src/declarative/qml/qmlcustomparser.h | 82 + src/declarative/qml/qmldom.cpp | 1372 ++++++++++ src/declarative/qml/qmldom.h | 263 ++ src/declarative/qml/qmldom_p.h | 116 + src/declarative/qml/qmlengine.cpp | 1295 +++++++++ src/declarative/qml/qmlengine.h | 107 + src/declarative/qml/qmlengine_p.h | 215 ++ src/declarative/qml/qmlexpression.h | 115 + src/declarative/qml/qmlinfo.cpp | 97 + src/declarative/qml/qmlinfo.h | 69 + src/declarative/qml/qmlinstruction.cpp | 214 ++ src/declarative/qml/qmlinstruction_p.h | 299 +++ src/declarative/qml/qmllist.h | 125 + src/declarative/qml/qmlmetaproperty.cpp | 847 ++++++ src/declarative/qml/qmlmetaproperty.h | 137 + src/declarative/qml/qmlmetaproperty_p.h | 75 + src/declarative/qml/qmlmetatype.cpp | 1164 ++++++++ src/declarative/qml/qmlmetatype.h | 258 ++ src/declarative/qml/qmlparser.cpp | 167 ++ src/declarative/qml/qmlparser_p.h | 209 ++ src/declarative/qml/qmlparserstatus.cpp | 75 + src/declarative/qml/qmlparserstatus.h | 69 + src/declarative/qml/qmlprivate.cpp | 48 + src/declarative/qml/qmlprivate.h | 365 +++ src/declarative/qml/qmlpropertyvaluesource.cpp | 75 + src/declarative/qml/qmlpropertyvaluesource.h | 79 + src/declarative/qml/qmlproxymetaobject.cpp | 113 + src/declarative/qml/qmlproxymetaobject_p.h | 85 + src/declarative/qml/qmlrefcount.cpp | 66 + src/declarative/qml/qmlrefcount_p.h | 69 + src/declarative/qml/qmlstringconverters.cpp | 212 ++ src/declarative/qml/qmlstringconverters_p.h | 68 + src/declarative/qml/qmlvme.cpp | 1345 ++++++++++ src/declarative/qml/qmlvme_p.h | 75 + src/declarative/qml/qmlvmemetaobject.cpp | 140 + src/declarative/qml/qmlvmemetaobject_p.h | 71 + src/declarative/qml/qmlxmlparser.cpp | 384 +++ src/declarative/qml/qmlxmlparser_p.h | 88 + src/declarative/qml/script/generator/generator.pro | 11 + src/declarative/qml/script/generator/main.cpp | 135 + src/declarative/qml/script/instructions.h | 32 + src/declarative/qml/script/keywords.cpp | 89 + src/declarative/qml/script/lexer.cpp | 139 + src/declarative/qml/script/lexer.h | 54 + src/declarative/qml/script/qmlbasicscript.cpp | 923 +++++++ src/declarative/qml/script/qmlbasicscript.h | 76 + src/declarative/qml/script/qmlbasicscript_p.h | 52 + src/declarative/qml/script/script.pri | 11 + src/declarative/qml/script/tokens.cpp | 44 + src/declarative/qml/script/tokens.h | 36 + src/declarative/test/qfxtestengine.cpp | 457 ++++ src/declarative/test/qfxtestengine.h | 85 + src/declarative/test/qfxtestobjects.cpp | 348 +++ src/declarative/test/qfxtestobjects.h | 212 ++ src/declarative/test/qfxtestview.cpp | 79 + src/declarative/test/qfxtestview.h | 74 + src/declarative/test/test.pri | 9 + src/declarative/timeline/gfxeasing.cpp | 846 ++++++ src/declarative/timeline/gfxeasing.h | 107 + src/declarative/timeline/gfxtimeline.cpp | 946 +++++++ src/declarative/timeline/gfxtimeline.h | 190 ++ src/declarative/timeline/gfxvalueproxy.h | 83 + src/declarative/timeline/timeline.pri | 9 + src/declarative/util/qbindablemap.cpp | 179 ++ src/declarative/util/qbindablemap.h | 87 + src/declarative/util/qfxglobal.h | 124 + src/declarative/util/qfxperf.cpp | 75 + src/declarative/util/qfxperf.h | 87 + src/declarative/util/qfxview.cpp | 310 +++ src/declarative/util/qfxview.h | 107 + src/declarative/util/qmlanimation.cpp | 2292 ++++++++++++++++ src/declarative/util/qmlanimation.h | 453 ++++ src/declarative/util/qmlanimation_p.h | 374 +++ src/declarative/util/qmlbehaviour.cpp | 248 ++ src/declarative/util/qmlbehaviour.h | 99 + src/declarative/util/qmlbind.cpp | 203 ++ src/declarative/util/qmlbind.h | 89 + src/declarative/util/qmlconnection.cpp | 290 ++ src/declarative/util/qmlconnection.h | 91 + src/declarative/util/qmldatetimeformatter.cpp | 368 +++ src/declarative/util/qmldatetimeformatter.h | 116 + src/declarative/util/qmlfollow.cpp | 309 +++ src/declarative/util/qmlfollow.h | 94 + src/declarative/util/qmlfont.cpp | 147 + src/declarative/util/qmlfont.h | 92 + src/declarative/util/qmllistaccessor.cpp | 243 ++ src/declarative/util/qmllistaccessor.h | 82 + src/declarative/util/qmllistmodel.cpp | 721 +++++ src/declarative/util/qmllistmodel.h | 96 + src/declarative/util/qmlnullablevalue_p.h | 67 + src/declarative/util/qmlopenmetaobject.cpp | 188 ++ src/declarative/util/qmlopenmetaobject.h | 96 + src/declarative/util/qmlpackage.cpp | 148 ++ src/declarative/util/qmlpackage.h | 86 + src/declarative/util/qmlscript.cpp | 219 ++ src/declarative/util/qmlscript.h | 80 + src/declarative/util/qmlsetproperties.cpp | 247 ++ src/declarative/util/qmlsetproperties.h | 83 + src/declarative/util/qmlstate.cpp | 469 ++++ src/declarative/util/qmlstate.h | 175 ++ src/declarative/util/qmlstate_p.h | 77 + src/declarative/util/qmlstategroup.cpp | 306 +++ src/declarative/util/qmlstategroup.h | 95 + src/declarative/util/qmlstateoperations.cpp | 416 +++ src/declarative/util/qmlstateoperations.h | 132 + src/declarative/util/qmltransition.cpp | 283 ++ src/declarative/util/qmltransition.h | 98 + src/declarative/util/qperformancelog.cpp | 177 ++ src/declarative/util/qperformancelog.h | 176 ++ src/declarative/util/util.pri | 49 + src/declarative/widgets/graphicslayouts.cpp | 325 +++ src/declarative/widgets/graphicslayouts.h | 190 ++ src/declarative/widgets/graphicswidgets.cpp | 173 ++ src/declarative/widgets/graphicswidgets.h | 60 + src/declarative/widgets/widgets.pri | 10 + src/gui/animation/animation.pri | 8 + src/gui/animation/qitemanimation.cpp | 361 +++ src/gui/animation/qitemanimation.h | 111 + src/gui/animation/qitemanimation_p.h | 83 + src/gui/graphicsview/qgraphicsitem.cpp | 252 +- src/gui/graphicsview/qgraphicsitem.h | 19 +- src/gui/graphicsview/qgraphicsitem_p.h | 12 +- src/gui/graphicsview/qgraphicslayout.h | 2 + src/gui/graphicsview/qgraphicslayoutitem.h | 2 + src/gui/graphicsview/qgraphicsproxywidget.cpp | 2 + src/gui/graphicsview/qgraphicsproxywidget.h | 2 + src/gui/graphicsview/qgraphicswidget.cpp | 4 +- src/gui/graphicsview/qgraphicswidget.h | 7 + src/gui/gui.pro | 2 + src/gui/kernel/qaction.h | 30 +- src/gui/kernel/qapplication.cpp | 6 + src/gui/kernel/qevent.cpp | 41 +- src/gui/kernel/qevent.h | 5 + src/gui/kernel/qevent_p.h | 6 + src/gui/painting/qdrawhelper.cpp | 12 +- src/gui/statemachine/qbasickeyeventtransition.cpp | 174 ++ src/gui/statemachine/qbasickeyeventtransition_p.h | 67 + .../statemachine/qbasicmouseeventtransition.cpp | 159 ++ .../statemachine/qbasicmouseeventtransition_p.h | 70 + src/gui/statemachine/qguistatemachine.cpp | 514 ++++ src/gui/statemachine/qkeyeventtransition.cpp | 156 ++ src/gui/statemachine/qkeyeventtransition.h | 60 + src/gui/statemachine/qmouseeventtransition.cpp | 162 ++ src/gui/statemachine/qmouseeventtransition.h | 62 + src/gui/statemachine/statemachine.pri | 16 + src/opengl/gl2paintengineex/qglshader_p.h | 2 + src/opengl/opengl.pro | 4 + src/opengl/qglextensions.cpp | 174 +- src/opengl/qglextensions_p.h | 134 +- src/opengl/qglpixmapfilter.cpp | 172 +- src/opengl/qglpixmapfilter_p.h | 29 - src/opengl/qglshaderprogram.cpp | 2798 ++++++++++++++++++++ src/opengl/qglshaderprogram.h | 266 ++ src/script/qscriptengine_p.cpp | 5 + src/script/qscriptenginefwd_p.h | 1 + src/script/qscriptextqobject.cpp | 33 +- src/src.pro | 4 + src/tools/moc/generator.cpp | 16 +- src/tools/moc/keywords.cpp | 162 +- src/tools/moc/moc.cpp | 11 +- src/tools/moc/moc.h | 7 +- src/tools/moc/token.h | 1 + src/tools/moc/util/generate_keywords.cpp | 1 + tests/auto/auto.pro | 10 + tests/auto/declarative/.gitignore | 3 + .../datetimeformatter/datetimeformatter.pro | 3 + .../datetimeformatter/tst_datetimeformatter.cpp | 83 + tests/auto/declarative/declarative.pro | 22 + .../auto/declarative/layouts/data/grid-margin.xml | 9 + .../layouts/data/grid-spacing-margin.xml | 9 + .../auto/declarative/layouts/data/grid-spacing.xml | 9 + tests/auto/declarative/layouts/data/grid.xml | 9 + .../declarative/layouts/data/horizontal-margin.xml | 7 + .../layouts/data/horizontal-spacing-margin.xml | 7 + .../layouts/data/horizontal-spacing.xml | 7 + tests/auto/declarative/layouts/data/horizontal.xml | 7 + .../declarative/layouts/data/vertical-margin.xml | 7 + .../layouts/data/vertical-spacing-margin.xml | 7 + .../declarative/layouts/data/vertical-spacing.xml | 7 + tests/auto/declarative/layouts/data/vertical.xml | 7 + tests/auto/declarative/layouts/layouts.pro | 6 + tests/auto/declarative/layouts/tst_layouts.cpp | 392 +++ tests/auto/declarative/listview/data/listview.xml | 14 + tests/auto/declarative/listview/listview.pro | 6 + tests/auto/declarative/listview/tst_listview.cpp | 484 ++++ .../auto/declarative/namespaces/data/Red/Rect.qml | 2 + tests/auto/declarative/namespaces/namespaces.pro | 6 + .../auto/declarative/namespaces/tst_namespaces.cpp | 94 + .../numberformatter/numberformatter.pro | 3 + .../numberformatter/tst_numberformatter.cpp | 216 ++ tests/auto/declarative/pathview/data/pathview.xml | 20 + tests/auto/declarative/pathview/pathview.pro | 6 + tests/auto/declarative/pathview/tst_pathview.cpp | 259 ++ .../auto/declarative/qbindablemap/qbindablemap.pro | 3 + .../declarative/qbindablemap/tst_qbindablemap.cpp | 72 + tests/auto/declarative/qfxtext/qfxtext.pro | 3 + tests/auto/declarative/qfxtext/tst_qfxtext.cpp | 412 +++ tests/auto/declarative/qfxtextedit/qfxtextedit.pro | 3 + .../declarative/qfxtextedit/tst_qfxtextedit.cpp | 326 +++ .../declarative/qmlbindengine/qmlbindengine.pro | 3 + .../qmlbindengine/tst_qmlbindengine.cpp | 123 + tests/auto/declarative/qmllist/qmllist.pro | 3 + tests/auto/declarative/qmllist/tst_qmllist.cpp | 38 + .../qmllistaccessor/qmllistaccessor.pro | 3 + .../qmllistaccessor/tst_qmllistaccessor.cpp | 61 + .../qmlmetaproperty/qmlmetaproperty.pro | 3 + .../qmlmetaproperty/tst_qmlmetaproperty.cpp | 104 + tests/auto/declarative/qmlparser/qmlparser.pro | 3 + tests/auto/declarative/qmlparser/tst_qmlparser.cpp | 444 ++++ tests/auto/declarative/repeater/data/repeater.xml | 7 + tests/auto/declarative/repeater/repeater.pro | 6 + tests/auto/declarative/repeater/tst_repeater.cpp | 91 + .../declarative/simplecanvasitem/data/test.xml | 12 + .../simplecanvasitem/simplecanvasitem.pro | 6 + .../simplecanvasitem/tst_simplecanvasitem.cpp | 79 + .../declarative/visual/ListView/basic1/basic1.xml | 19 + .../visual/ListView/basic1/data/opengl/image0.png | Bin 0 -> 3759 bytes .../ListView/basic1/data/opengl/manifest.xml | 4 + tests/auto/declarative/visual/ListView/basic1/test | 1 + .../declarative/visual/ListView/basic2/basic2.xml | 20 + .../visual/ListView/basic2/data/opengl/image0.png | Bin 0 -> 3759 bytes .../ListView/basic2/data/opengl/manifest.xml | 4 + tests/auto/declarative/visual/ListView/basic2/test | 1 + .../declarative/visual/ListView/basic3/basic3.xml | 18 + .../visual/ListView/basic3/data/opengl/image0.png | Bin 0 -> 3759 bytes .../ListView/basic3/data/opengl/manifest.xml | 4 + tests/auto/declarative/visual/ListView/basic3/test | 1 + .../declarative/visual/ListView/basic4/basic4.xml | 19 + .../visual/ListView/basic4/data/opengl/image0.png | Bin 0 -> 3759 bytes .../ListView/basic4/data/opengl/manifest.xml | 4 + tests/auto/declarative/visual/ListView/basic4/test | 1 + .../visual/bindinganimation/bindinganimation.xml | 19 + .../visual/bindinganimation/data/opengl/image0.png | Bin 0 -> 817 bytes .../bindinganimation/data/opengl/manifest-play.xml | 104 + .../bindinganimation/data/opengl/manifest.xml | 104 + .../auto/declarative/visual/bindinganimation/test | 1 + .../visual/colorAnimation/colorAnimation.xml | 18 + .../declarative/visual/colorAnimation/image0.png | Bin 0 -> 947 bytes .../visual/colorAnimation/manifest-play.xml | 73 + .../declarative/visual/colorAnimation/manifest.xml | 73 + tests/auto/declarative/visual/easing/easing.xml | 70 + tests/auto/declarative/visual/easing/image0.png | Bin 0 -> 17530 bytes .../declarative/visual/easing/manifest-play.xml | 23 + tests/auto/declarative/visual/easing/manifest.xml | 23 + .../auto/declarative/visual/easing/pics/qtlogo.png | Bin 0 -> 2738 bytes tests/auto/declarative/visual/flickable/Day.qml | 8 + tests/auto/declarative/visual/flickable/cork.jpg | Bin 0 -> 88766 bytes .../declarative/visual/flickable/flickable.xml | 43 + tests/auto/declarative/visual/flickable/image0.png | Bin 0 -> 360547 bytes .../declarative/visual/flickable/manifest-fail.xml | 30 + .../auto/declarative/visual/flickable/manifest.xml | 190 ++ .../auto/declarative/visual/flipable/flipable.xml | 138 + tests/auto/declarative/visual/flipable/image0.png | Bin 0 -> 6184 bytes .../declarative/visual/flipable/manifest-play.xml | 24 + .../auto/declarative/visual/flipable/manifest.xml | 24 + .../declarative/visual/flipable/pics/arrow.png | Bin 0 -> 546 bytes .../auto/declarative/visual/flipable/pics/face.png | Bin 0 -> 10112 bytes .../declarative/visual/flipable/pics/photo0.png | Bin 0 -> 10412 bytes .../declarative/visual/flipable/pics/photo1.png | Bin 0 -> 11068 bytes .../declarative/visual/flipable/pics/photo10.png | Bin 0 -> 12539 bytes .../declarative/visual/flipable/pics/photo2.png | Bin 0 -> 11490 bytes .../declarative/visual/flipable/pics/photo3.png | Bin 0 -> 11308 bytes .../declarative/visual/flipable/pics/photo4.png | Bin 0 -> 11322 bytes .../declarative/visual/flipable/pics/photo5.png | Bin 0 -> 11497 bytes .../declarative/visual/flipable/pics/photo6.png | Bin 0 -> 11707 bytes .../declarative/visual/flipable/pics/photo7.png | Bin 0 -> 11101 bytes .../declarative/visual/flipable/pics/photo8.png | Bin 0 -> 11558 bytes .../declarative/visual/flipable/pics/photo9.png | Bin 0 -> 10943 bytes .../declarative/visual/pauseAnimation/image0.png | Bin 0 -> 3209 bytes .../visual/pauseAnimation/manifest-play.xml | 138 + .../declarative/visual/pauseAnimation/manifest.xml | 138 + .../visual/pauseAnimation/pauseAnimation.xml | 13 + .../visual/pauseAnimation/pics/qtlogo.png | Bin 0 -> 2738 bytes .../visual/qfxtext/elide/data/opengl/image0.png | Bin 0 -> 980 bytes .../visual/qfxtext/elide/data/opengl/manifest.xml | 4 + .../declarative/visual/qfxtext/elide/elide.xml | 6 + tests/auto/declarative/visual/qfxtext/elide/test | 1 + .../declarative/visual/repeater/basic1/basic1.xml | 21 + .../visual/repeater/basic1/data/opengl/image0.png | Bin 0 -> 3493 bytes .../repeater/basic1/data/opengl/manifest.xml | 4 + tests/auto/declarative/visual/repeater/basic1/test | 1 + .../declarative/visual/repeater/basic2/basic2.xml | 22 + .../visual/repeater/basic2/data/opengl/image0.png | Bin 0 -> 3493 bytes .../repeater/basic2/data/opengl/manifest.xml | 4 + tests/auto/declarative/visual/repeater/basic2/test | 1 + .../declarative/visual/repeater/basic3/basic3.xml | 19 + .../visual/repeater/basic3/data/opengl/image0.png | Bin 0 -> 3493 bytes .../repeater/basic3/data/opengl/manifest.xml | 4 + tests/auto/declarative/visual/repeater/basic3/test | 1 + .../declarative/visual/repeater/basic4/basic4.xml | 18 + .../visual/repeater/basic4/data/opengl/image0.png | Bin 0 -> 3493 bytes .../repeater/basic4/data/opengl/manifest.xml | 4 + tests/auto/declarative/visual/repeater/basic4/test | 1 + tests/auto/declarative/visual/runtests.sh | 2 + tests/auto/declarative/visual/tests | 11 + tests/auto/declarative/visual/tst_visual.cpp | 72 + tests/auto/declarative/visual/visual.pro | 5 + .../visual/webview/autosize/data/opengl/image0.png | Bin 0 -> 5396 bytes .../webview/autosize/data/opengl/manifest.xml | 4 + .../auto/declarative/visual/webview/autosize/test | 1 + tests/auto/dynamicobject/dynamicobject.pro | 6 + tests/auto/dynamicobject/qdynamicmetaobject.cpp | 254 ++ tests/auto/dynamicobject/qdynamicmetaobject.h | 47 + tests/auto/dynamicobject/qmetaobjectbuilder.cpp | 2347 ++++++++++++++++ tests/auto/dynamicobject/qmetaobjectbuilder.h | 258 ++ tests/auto/dynamicobject/tst_qobject.cpp | 325 +++ tests/auto/qanimationgroup/qanimationgroup.pro | 5 + tests/auto/qanimationgroup/tst_qanimationgroup.cpp | 347 +++ tests/auto/qanimationstate/qanimationstate.pro | 5 + tests/auto/qanimationstate/tst_qanimationstate.cpp | 625 +++++ tests/auto/qeasingcurve/qeasingcurve.pro | 3 + tests/auto/qeasingcurve/tst_qeasingcurve.cpp | 488 ++++ .../qparallelanimationgroup.pro | 5 + .../tst_qparallelanimationgroup.cpp | 834 ++++++ .../auto/qpropertyanimation/qpropertyanimation.pro | 5 + .../qpropertyanimation/tst_qpropertyanimation.cpp | 831 ++++++ tests/auto/qscriptqobject/tst_qscriptqobject.cpp | 66 +- .../qsequentialanimationgroup.pro | 5 + .../tst_qsequentialanimationgroup.cpp | 1649 ++++++++++++ tests/auto/qstate/qstate.pro | 5 + tests/auto/qstate/tst_qstate.cpp | 372 +++ tests/auto/qstatemachine/qstatemachine.pro | 4 + tests/auto/qstatemachine/tst_qstatemachine.cpp | 2177 +++++++++++++++ tests/benchmarks/benchmarks.pro | 11 +- tests/benchmarks/qanimation/dummyanimation.cpp | 20 + tests/benchmarks/qanimation/dummyanimation.h | 19 + tests/benchmarks/qanimation/dummyobject.cpp | 25 + tests/benchmarks/qanimation/dummyobject.h | 23 + tests/benchmarks/qanimation/main.cpp | 173 ++ tests/benchmarks/qanimation/qanimation.pro | 18 + tests/benchmarks/qanimation/rectanimation.cpp | 58 + tests/benchmarks/qanimation/rectanimation.h | 30 + tests/benchmarks/qfxview/main.cpp | 182 ++ tests/benchmarks/qfxview/qfxview.pro | 16 + .../qfxview/testdata/tatwheel/editor/data.xml | 44 + .../qfxview/testdata/tatwheel/pics/background.png | Bin 0 -> 26508 bytes .../qfxview/testdata/tatwheel/pics/background3.png | Bin 0 -> 37671 bytes .../qfxview/testdata/tatwheel/pics/battery.png | Bin 0 -> 770 bytes .../testdata/tatwheel/pics/calendar-blur.png | Bin 0 -> 51439 bytes .../qfxview/testdata/tatwheel/pics/calendar.png | Bin 0 -> 10153 bytes .../testdata/tatwheel/pics/callhistory-blur.png | Bin 0 -> 57023 bytes .../qfxview/testdata/tatwheel/pics/callhistory.png | Bin 0 -> 13227 bytes .../qfxview/testdata/tatwheel/pics/camera-blur.png | Bin 0 -> 50955 bytes .../qfxview/testdata/tatwheel/pics/camera.png | Bin 0 -> 16126 bytes .../testdata/tatwheel/pics/contacts-blur.png | Bin 0 -> 51041 bytes .../qfxview/testdata/tatwheel/pics/contacts.png | Bin 0 -> 12177 bytes .../testdata/tatwheel/pics/file-manager-blur.png | Bin 0 -> 45164 bytes .../testdata/tatwheel/pics/file-manager.png | Bin 0 -> 8858 bytes .../qfxview/testdata/tatwheel/pics/fire.png | Bin 0 -> 1124 bytes .../qfxview/testdata/tatwheel/pics/flask-blue.png | Bin 0 -> 764 bytes .../testdata/tatwheel/pics/flask-container.png | Bin 0 -> 536 bytes .../qfxview/testdata/tatwheel/pics/flask-front.png | Bin 0 -> 962 bytes .../qfxview/testdata/tatwheel/pics/flask-pink.png | Bin 0 -> 747 bytes .../testdata/tatwheel/pics/flask-yellow.png | Bin 0 -> 775 bytes .../qfxview/testdata/tatwheel/pics/ice.png | Bin 0 -> 1112 bytes .../testdata/tatwheel/pics/icon-reflection.png | Bin 0 -> 7123 bytes .../testdata/tatwheel/pics/internet-blur.png | Bin 0 -> 57126 bytes .../qfxview/testdata/tatwheel/pics/internet.png | Bin 0 -> 24320 bytes .../testdata/tatwheel/pics/menu-background1.png | Bin 0 -> 2831 bytes .../testdata/tatwheel/pics/menu-border1.png | Bin 0 -> 926 bytes .../testdata/tatwheel/pics/menu-border3.png | Bin 0 -> 10153 bytes .../testdata/tatwheel/pics/menu-highlight.png | Bin 0 -> 3421 bytes .../qfxview/testdata/tatwheel/pics/menubar.png | Bin 0 -> 741 bytes .../testdata/tatwheel/pics/messages-blur.png | Bin 0 -> 44556 bytes .../qfxview/testdata/tatwheel/pics/messages.png | Bin 0 -> 11426 bytes .../qfxview/testdata/tatwheel/pics/moon.png | Bin 0 -> 1027 bytes .../qfxview/testdata/tatwheel/pics/sad.png | Bin 0 -> 1053 bytes .../testdata/tatwheel/pics/settings-blur.png | Bin 0 -> 50199 bytes .../qfxview/testdata/tatwheel/pics/settings.png | Bin 0 -> 8697 bytes .../qfxview/testdata/tatwheel/pics/signal.png | Bin 0 -> 739 bytes .../qfxview/testdata/tatwheel/pics/smile.png | Bin 0 -> 1051 bytes .../qfxview/testdata/tatwheel/pics/star.png | Bin 0 -> 262 bytes .../qfxview/testdata/tatwheel/pics/sun.png | Bin 0 -> 1021 bytes .../qfxview/testdata/tatwheel/pics/titlebar.png | Bin 0 -> 1041 bytes .../qfxview/testdata/tatwheel/pics/wifi.png | Bin 0 -> 782 bytes .../qfxview/testdata/tatwheel/tat-wheel.xml | 68 + tests/benchmarks/qmlxmlparser/main.cpp | 96 + tests/benchmarks/qmlxmlparser/qmlxmlparser.pro | 14 + .../benchmarks/qmlxmlparser/testdata/concept2.xml | 421 +++ tests/benchmarks/qvariant/qvariant.pro | 1 - tests/benchmarks/qvariant/tst_qvariant.cpp | 115 +- tools/configure/configureapp.cpp | 12 + tools/duiviewer/duiviewer.pro | 12 + tools/duiviewer/main.cpp | 135 + tools/duiviewer/qfxviewer.cpp | 361 +++ tools/duiviewer/qfxviewer.h | 71 + tools/qdoc3/codemarker.cpp | 109 +- tools/qdoc3/codemarker.h | 12 +- tools/qdoc3/command.cpp | 44 +- tools/qdoc3/cppcodemarker.cpp | 224 +- tools/qdoc3/cppcodemarker.h | 5 + tools/qdoc3/cppcodeparser.cpp | 260 +- tools/qdoc3/cppcodeparser.h | 12 + tools/qdoc3/doc.cpp | 14 +- tools/qdoc3/generator.cpp | 190 +- tools/qdoc3/generator.h | 5 +- tools/qdoc3/helpprojectwriter.cpp | 30 +- tools/qdoc3/htmlgenerator.cpp | 691 ++++- tools/qdoc3/htmlgenerator.h | 29 +- tools/qdoc3/jambiapiparser.cpp | 5 +- tools/qdoc3/node.cpp | 106 +- tools/qdoc3/node.h | 126 +- tools/qdoc3/pagegenerator.cpp | 59 +- tools/qdoc3/test/classic.css | 42 + tools/qdoc3/test/qt-build-docs.qdocconf | 3 +- tools/qdoc3/test/qt.qdocconf | 3 +- tools/qdoc3/tree.cpp | 50 +- tools/qdoc3/webxmlgenerator.cpp | 4 +- tools/tools.pro | 1 + 1210 files changed, 138839 insertions(+), 1789 deletions(-) create mode 100644 bin/snapshot delete mode 100644 demos/boxes/glshaders.cpp delete mode 100644 demos/boxes/glshaders.h create mode 100644 demos/declarative/calculator/CalcButton.qml create mode 100644 demos/declarative/calculator/calculator.js create mode 100644 demos/declarative/calculator/calculator.qml create mode 100644 demos/declarative/calculator/pics/button-pressed.png create mode 100644 demos/declarative/calculator/pics/button-pressed.sci create mode 100644 demos/declarative/calculator/pics/button.png create mode 100644 demos/declarative/calculator/pics/button.sci create mode 100644 demos/declarative/calculator/pics/clear.png create mode 100644 demos/declarative/mediabrowser/content/LikeOMeter.qml create mode 100644 demos/declarative/mediabrowser/content/MediaButton.qml create mode 100644 demos/declarative/mediabrowser/content/MovieInfoContainer.qml create mode 100644 demos/declarative/mediabrowser/content/MoviesPathView.qml create mode 100644 demos/declarative/mediabrowser/content/ScrollBar.qml create mode 100644 demos/declarative/mediabrowser/content/Star.qml create mode 100644 demos/declarative/mediabrowser/content/pics/background.png create mode 100644 demos/declarative/mediabrowser/content/pics/button-pressed.png create mode 100644 demos/declarative/mediabrowser/content/pics/button.png create mode 100644 demos/declarative/mediabrowser/content/pics/ghns_star.png create mode 100644 demos/declarative/mediabrowser/content/pics/reflection.png create mode 100644 demos/declarative/mediabrowser/content/pics/shadow-bottom.png create mode 100644 demos/declarative/mediabrowser/content/pics/shadow-corner.png create mode 100644 demos/declarative/mediabrowser/content/pics/shadow-right-screen.png create mode 100644 demos/declarative/mediabrowser/content/pics/shadow-right.png create mode 100644 demos/declarative/mediabrowser/dummydata/MoviesModel.qml create mode 100644 demos/declarative/mediabrowser/mediabrowser.qml create mode 100644 demos/declarative/webbrowser/README create mode 100644 demos/declarative/webbrowser/WebBrowser.qml create mode 100644 demos/declarative/webbrowser/content/RectSoftShadow.qml create mode 100644 demos/declarative/webbrowser/content/pics/addressbar-filled.png create mode 100644 demos/declarative/webbrowser/content/pics/addressbar-filled.sci create mode 100644 demos/declarative/webbrowser/content/pics/addressbar.png create mode 100644 demos/declarative/webbrowser/content/pics/addressbar.sci create mode 100644 demos/declarative/webbrowser/content/pics/back-disabled.png create mode 100644 demos/declarative/webbrowser/content/pics/back.png create mode 100644 demos/declarative/webbrowser/content/pics/footer.png create mode 100644 demos/declarative/webbrowser/content/pics/footer.sci create mode 100644 demos/declarative/webbrowser/content/pics/forward-disabled.png create mode 100644 demos/declarative/webbrowser/content/pics/forward.png create mode 100644 demos/declarative/webbrowser/content/pics/header.png create mode 100644 demos/declarative/webbrowser/content/pics/reload.png create mode 100644 demos/declarative/webbrowser/content/pics/softshadow-bottom.png create mode 100644 demos/declarative/webbrowser/content/pics/softshadow-left.png create mode 100644 demos/declarative/webbrowser/content/pics/softshadow-left.sci create mode 100644 demos/declarative/webbrowser/content/pics/softshadow-right.png create mode 100644 demos/declarative/webbrowser/content/pics/softshadow-right.sci create mode 100644 demos/declarative/webbrowser/content/pics/softshadow-top.png create mode 100644 doc/src/animation.qdoc create mode 100644 doc/src/declarative/anchor-layout.qdoc create mode 100644 doc/src/declarative/animation.qdoc create mode 100644 doc/src/declarative/basictypes.qdoc create mode 100644 doc/src/declarative/binding.qdoc create mode 100644 doc/src/declarative/components.qdoc create mode 100644 doc/src/declarative/cppitem.qdoc create mode 100644 doc/src/declarative/effects.qdoc create mode 100644 doc/src/declarative/elements.qdoc create mode 100644 doc/src/declarative/examples.qdoc create mode 100644 doc/src/declarative/focus.qdoc create mode 100644 doc/src/declarative/index.qdoc create mode 100644 doc/src/declarative/measuring-performance.qdoc create mode 100644 doc/src/declarative/modules.qdoc create mode 100644 doc/src/declarative/pics/ListViewHighlight.png create mode 100644 doc/src/declarative/pics/ListViewHorizontal.png create mode 100644 doc/src/declarative/pics/ListViewVertical.png create mode 100644 doc/src/declarative/pics/anchors.svg create mode 100644 doc/src/declarative/pics/animatedimageitem.gif create mode 100644 doc/src/declarative/pics/blur_example.png create mode 100644 doc/src/declarative/pics/declarative-qmlfocus1.png create mode 100644 doc/src/declarative/pics/declarative-qmlfocus2.png create mode 100644 doc/src/declarative/pics/declarative-qmlfocus3.png create mode 100644 doc/src/declarative/pics/declarative-qmlfocus4.png create mode 100644 doc/src/declarative/pics/edge1.png create mode 100644 doc/src/declarative/pics/edge2.png create mode 100644 doc/src/declarative/pics/edge3.png create mode 100644 doc/src/declarative/pics/edge4.png create mode 100644 doc/src/declarative/pics/edges.png create mode 100644 doc/src/declarative/pics/edges.svg create mode 100644 doc/src/declarative/pics/edges_examples.svg create mode 100644 doc/src/declarative/pics/edges_qml.png create mode 100644 doc/src/declarative/pics/edges_qml.svg create mode 100644 doc/src/declarative/pics/flickable.gif create mode 100644 doc/src/declarative/pics/flipable.gif create mode 100644 doc/src/declarative/pics/gridLayout_example.png create mode 100644 doc/src/declarative/pics/gridview.png create mode 100644 doc/src/declarative/pics/highlight.gif create mode 100644 doc/src/declarative/pics/horizontalLayout_example.png create mode 100644 doc/src/declarative/pics/layout-add.gif create mode 100644 doc/src/declarative/pics/layout-move.gif create mode 100644 doc/src/declarative/pics/layout-remove.gif create mode 100644 doc/src/declarative/pics/margins_qml.png create mode 100644 doc/src/declarative/pics/margins_qml.svg create mode 100644 doc/src/declarative/pics/particles.gif create mode 100644 doc/src/declarative/pics/pathview.gif create mode 100644 doc/src/declarative/pics/propanim.gif create mode 100644 doc/src/declarative/pics/qtlogo.png create mode 100644 doc/src/declarative/pics/reflection_example.png create mode 100644 doc/src/declarative/pics/scalegrid.svg create mode 100644 doc/src/declarative/pics/shadow_example.png create mode 100644 doc/src/declarative/pics/spacing_a.png create mode 100644 doc/src/declarative/pics/spacing_b.png create mode 100644 doc/src/declarative/pics/trivialListView.png create mode 100644 doc/src/declarative/pics/verticalLayout_example.png create mode 100644 doc/src/declarative/pics/verticalLayout_transition.gif create mode 100644 doc/src/declarative/pics/webview.png create mode 100644 doc/src/declarative/qmlforcpp.qdoc create mode 100644 doc/src/declarative/qtprogrammers.qdoc create mode 100644 doc/src/declarative/scenegraph.qdoc create mode 100644 doc/src/declarative/tutorial.qdoc create mode 100644 doc/src/declarative/tutorial1.qdoc create mode 100644 doc/src/declarative/tutorial2.qdoc create mode 100644 doc/src/declarative/tutorial3.qdoc create mode 100644 doc/src/diagrams/programs/easingcurve/easingcurve.pro create mode 100644 doc/src/diagrams/programs/easingcurve/main.cpp create mode 100644 doc/src/duiviewer.qdoc create mode 100644 doc/src/examples/trafficlight.qdoc create mode 100644 doc/src/images/declarative-anchors_example.png create mode 100644 doc/src/images/declarative-anchors_example2.png create mode 100644 doc/src/images/declarative-image_tile.png create mode 100644 doc/src/images/declarative-item_opacity1.png create mode 100644 doc/src/images/declarative-item_opacity2.png create mode 100644 doc/src/images/declarative-item_stacking1.png create mode 100644 doc/src/images/declarative-item_stacking2.png create mode 100644 doc/src/images/declarative-item_stacking3.png create mode 100644 doc/src/images/declarative-item_stacking4.png create mode 100644 doc/src/images/declarative-qtlogo1.png create mode 100644 doc/src/images/declarative-qtlogo2.png create mode 100644 doc/src/images/declarative-qtlogo3.png create mode 100644 doc/src/images/declarative-qtlogo4.png create mode 100644 doc/src/images/declarative-rect.png create mode 100644 doc/src/images/declarative-rect_gradient.png create mode 100644 doc/src/images/declarative-rect_tint.png create mode 100644 doc/src/images/declarative-rotation.png create mode 100644 doc/src/images/declarative-scale.png create mode 100644 doc/src/images/declarative-scalegrid.png create mode 100644 doc/src/images/declarative-text.png create mode 100644 doc/src/images/declarative-textedit.gif create mode 100644 doc/src/images/declarative-textformat.png create mode 100644 doc/src/images/declarative-textstyle.png create mode 100644 doc/src/images/declarative-transformorigin.png create mode 100644 doc/src/images/declarative-tutorial1.png create mode 100644 doc/src/images/declarative-tutorial2.png create mode 100644 doc/src/images/declarative-tutorial3_animation.gif create mode 100644 doc/src/images/qeasingcurve-cosinecurve.png create mode 100644 doc/src/images/qeasingcurve-inback.png create mode 100644 doc/src/images/qeasingcurve-inbounce.png create mode 100644 doc/src/images/qeasingcurve-incirc.png create mode 100644 doc/src/images/qeasingcurve-incubic.png create mode 100644 doc/src/images/qeasingcurve-incurve.png create mode 100644 doc/src/images/qeasingcurve-inelastic.png create mode 100644 doc/src/images/qeasingcurve-inexpo.png create mode 100644 doc/src/images/qeasingcurve-inoutback.png create mode 100644 doc/src/images/qeasingcurve-inoutbounce.png create mode 100644 doc/src/images/qeasingcurve-inoutcirc.png create mode 100644 doc/src/images/qeasingcurve-inoutcubic.png create mode 100644 doc/src/images/qeasingcurve-inoutelastic.png create mode 100644 doc/src/images/qeasingcurve-inoutexpo.png create mode 100644 doc/src/images/qeasingcurve-inoutquad.png create mode 100644 doc/src/images/qeasingcurve-inoutquart.png create mode 100644 doc/src/images/qeasingcurve-inoutquint.png create mode 100644 doc/src/images/qeasingcurve-inoutsine.png create mode 100644 doc/src/images/qeasingcurve-inquad.png create mode 100644 doc/src/images/qeasingcurve-inquart.png create mode 100644 doc/src/images/qeasingcurve-inquint.png create mode 100644 doc/src/images/qeasingcurve-insine.png create mode 100644 doc/src/images/qeasingcurve-linear.png create mode 100644 doc/src/images/qeasingcurve-outback.png create mode 100644 doc/src/images/qeasingcurve-outbounce.png create mode 100644 doc/src/images/qeasingcurve-outcirc.png create mode 100644 doc/src/images/qeasingcurve-outcubic.png create mode 100644 doc/src/images/qeasingcurve-outcurve.png create mode 100644 doc/src/images/qeasingcurve-outelastic.png create mode 100644 doc/src/images/qeasingcurve-outexpo.png create mode 100644 doc/src/images/qeasingcurve-outinback.png create mode 100644 doc/src/images/qeasingcurve-outinbounce.png create mode 100644 doc/src/images/qeasingcurve-outincirc.png create mode 100644 doc/src/images/qeasingcurve-outincubic.png create mode 100644 doc/src/images/qeasingcurve-outinelastic.png create mode 100644 doc/src/images/qeasingcurve-outinexpo.png create mode 100644 doc/src/images/qeasingcurve-outinquad.png create mode 100644 doc/src/images/qeasingcurve-outinquart.png create mode 100644 doc/src/images/qeasingcurve-outinquint.png create mode 100644 doc/src/images/qeasingcurve-outinsine.png create mode 100644 doc/src/images/qeasingcurve-outquad.png create mode 100644 doc/src/images/qeasingcurve-outquart.png create mode 100644 doc/src/images/qeasingcurve-outquint.png create mode 100644 doc/src/images/qeasingcurve-outsine.png create mode 100644 doc/src/images/qeasingcurve-sinecurve.png create mode 100644 doc/src/images/statemachine-button-history.png create mode 100644 doc/src/images/statemachine-button-nested.png create mode 100644 doc/src/images/statemachine-button.png create mode 100644 doc/src/images/statemachine-finished.png create mode 100644 doc/src/images/statemachine-nonparallel.png create mode 100644 doc/src/images/statemachine-parallel.png create mode 100644 doc/src/images/trafficlight-example.png create mode 100644 doc/src/snippets/code/src_corelib_tools_qeasingcurve.cpp create mode 100644 doc/src/statemachine.qdoc create mode 100644 examples/animation/animatedtiles/animatedtiles.pro create mode 100644 examples/animation/animatedtiles/animatedtiles.qrc create mode 100644 examples/animation/animatedtiles/images/Time-For-Lunch-2.jpg create mode 100644 examples/animation/animatedtiles/images/centered.png create mode 100644 examples/animation/animatedtiles/images/ellipse.png create mode 100644 examples/animation/animatedtiles/images/figure8.png create mode 100644 examples/animation/animatedtiles/images/kinetic.png create mode 100644 examples/animation/animatedtiles/images/random.png create mode 100644 examples/animation/animatedtiles/images/tile.png create mode 100644 examples/animation/animatedtiles/main.cpp create mode 100644 examples/animation/animation.pro create mode 100644 examples/animation/appchooser/accessories-dictionary.png create mode 100644 examples/animation/appchooser/akregator.png create mode 100644 examples/animation/appchooser/appchooser.pro create mode 100644 examples/animation/appchooser/appchooser.qrc create mode 100644 examples/animation/appchooser/digikam.png create mode 100644 examples/animation/appchooser/k3b.png create mode 100644 examples/animation/appchooser/main.cpp create mode 100644 examples/animation/easing/animation.h create mode 100644 examples/animation/easing/easing.pro create mode 100644 examples/animation/easing/form.ui create mode 100644 examples/animation/easing/images/qt-logo.png create mode 100644 examples/animation/easing/main.cpp create mode 100644 examples/animation/easing/resources.qrc create mode 100644 examples/animation/easing/window.cpp create mode 100644 examples/animation/easing/window.h create mode 100644 examples/animation/example/example.pro create mode 100644 examples/animation/example/main.cpp create mode 100644 examples/animation/example/mainwindow.cpp create mode 100644 examples/animation/example/mainwindow.h create mode 100644 examples/animation/moveblocks/main.cpp create mode 100644 examples/animation/moveblocks/moveblocks.pro create mode 100644 examples/animation/padnavigator-ng/backside.ui create mode 100644 examples/animation/padnavigator-ng/images/artsfftscope.png create mode 100644 examples/animation/padnavigator-ng/images/blue_angle_swirl.jpg create mode 100644 examples/animation/padnavigator-ng/images/kontact_contacts.png create mode 100644 examples/animation/padnavigator-ng/images/kontact_journal.png create mode 100644 examples/animation/padnavigator-ng/images/kontact_mail.png create mode 100644 examples/animation/padnavigator-ng/images/kontact_notes.png create mode 100644 examples/animation/padnavigator-ng/images/kopeteavailable.png create mode 100644 examples/animation/padnavigator-ng/images/metacontact_online.png create mode 100644 examples/animation/padnavigator-ng/images/minitools.png create mode 100644 examples/animation/padnavigator-ng/main.cpp create mode 100644 examples/animation/padnavigator-ng/padnavigator.pro create mode 100644 examples/animation/padnavigator-ng/padnavigator.qrc create mode 100644 examples/animation/padnavigator-ng/panel.cpp create mode 100644 examples/animation/padnavigator-ng/panel.h create mode 100644 examples/animation/padnavigator-ng/roundrectitem.cpp create mode 100644 examples/animation/padnavigator-ng/roundrectitem.h create mode 100644 examples/animation/padnavigator-ng/splashitem.cpp create mode 100644 examples/animation/padnavigator-ng/splashitem.h create mode 100644 examples/animation/photobrowser/main.cpp create mode 100644 examples/animation/photobrowser/menu.cpp create mode 100644 examples/animation/photobrowser/menu.h create mode 100644 examples/animation/photobrowser/photobrowser.pro create mode 100644 examples/animation/photobrowser/river.cpp create mode 100644 examples/animation/photobrowser/river.h create mode 100644 examples/animation/photobrowser/riveritem.cpp create mode 100644 examples/animation/photobrowser/riveritem.h create mode 100644 examples/animation/piemenu/main.cpp create mode 100644 examples/animation/piemenu/piemenu.pro create mode 100644 examples/animation/piemenu/qgraphicspiemenu.cpp create mode 100644 examples/animation/piemenu/qgraphicspiemenu.h create mode 100644 examples/animation/piemenu/qgraphicspiemenu_p.h create mode 100644 examples/animation/piemenu/qgraphicspiemenusection_p.h create mode 100644 examples/animation/piemenu/scene.cpp create mode 100644 examples/animation/piemenu/scene.h create mode 100644 examples/animation/research/memberfunctions/main.cpp create mode 100644 examples/animation/research/memberfunctions/memberfunctions.pro create mode 100644 examples/animation/research/memberfunctions/qvalueanimation.cpp create mode 100644 examples/animation/research/memberfunctions/qvalueanimation.h create mode 100644 examples/animation/research/memberfunctions/qvalueanimation_p.h create mode 100644 examples/animation/research/propertytransform/main.cpp create mode 100644 examples/animation/research/propertytransform/propertytransform.pro create mode 100644 examples/animation/research/propertytransform/qpropertytransform.h create mode 100644 examples/animation/research/sound/main.cpp create mode 100644 examples/animation/research/sound/media/sax.mp3 create mode 100644 examples/animation/research/sound/sound.pro create mode 100644 examples/animation/research/sound/sound.qrc create mode 100644 examples/animation/states/accessories-dictionary.png create mode 100644 examples/animation/states/akregator.png create mode 100644 examples/animation/states/digikam.png create mode 100644 examples/animation/states/help-browser.png create mode 100644 examples/animation/states/k3b.png create mode 100644 examples/animation/states/kchart.png create mode 100644 examples/animation/states/main.cpp create mode 100644 examples/animation/states/states.pro create mode 100644 examples/animation/states/states.qrc create mode 100644 examples/animation/stickman/animation.cpp create mode 100644 examples/animation/stickman/animation.h create mode 100644 examples/animation/stickman/animations/chilling create mode 100644 examples/animation/stickman/animations/dancing create mode 100644 examples/animation/stickman/animations/dead create mode 100644 examples/animation/stickman/animations/jumping create mode 100644 examples/animation/stickman/graphicsview.cpp create mode 100644 examples/animation/stickman/graphicsview.h create mode 100644 examples/animation/stickman/lifecycle.cpp create mode 100644 examples/animation/stickman/lifecycle.h create mode 100644 examples/animation/stickman/main.cpp create mode 100644 examples/animation/stickman/node.cpp create mode 100644 examples/animation/stickman/node.h create mode 100644 examples/animation/stickman/stickman.cpp create mode 100644 examples/animation/stickman/stickman.h create mode 100644 examples/animation/stickman/stickman.pro create mode 100644 examples/animation/sub-attaq/animationmanager.cpp create mode 100644 examples/animation/sub-attaq/animationmanager.h create mode 100644 examples/animation/sub-attaq/boat.cpp create mode 100644 examples/animation/sub-attaq/boat.h create mode 100644 examples/animation/sub-attaq/boat_p.h create mode 100644 examples/animation/sub-attaq/bomb.cpp create mode 100644 examples/animation/sub-attaq/bomb.h create mode 100644 examples/animation/sub-attaq/custompropertyanimation.cpp create mode 100644 examples/animation/sub-attaq/custompropertyanimation.h create mode 100644 examples/animation/sub-attaq/custompropertyanimation_p.h create mode 100644 examples/animation/sub-attaq/data.xml create mode 100644 examples/animation/sub-attaq/graphicsscene.cpp create mode 100644 examples/animation/sub-attaq/graphicsscene.h create mode 100644 examples/animation/sub-attaq/main.cpp create mode 100644 examples/animation/sub-attaq/mainwindow.cpp create mode 100644 examples/animation/sub-attaq/mainwindow.h create mode 100644 examples/animation/sub-attaq/pics/big/background.png create mode 100644 examples/animation/sub-attaq/pics/big/boat.png create mode 100644 examples/animation/sub-attaq/pics/big/bomb.png create mode 100644 examples/animation/sub-attaq/pics/big/explosion/boat/step1.png create mode 100644 examples/animation/sub-attaq/pics/big/explosion/boat/step2.png create mode 100644 examples/animation/sub-attaq/pics/big/explosion/boat/step3.png create mode 100644 examples/animation/sub-attaq/pics/big/explosion/boat/step4.png create mode 100644 examples/animation/sub-attaq/pics/big/explosion/submarine/step1.png create mode 100644 examples/animation/sub-attaq/pics/big/explosion/submarine/step2.png create mode 100644 examples/animation/sub-attaq/pics/big/explosion/submarine/step3.png create mode 100644 examples/animation/sub-attaq/pics/big/explosion/submarine/step4.png create mode 100644 examples/animation/sub-attaq/pics/big/submarine.png create mode 100644 examples/animation/sub-attaq/pics/big/surface.png create mode 100644 examples/animation/sub-attaq/pics/big/torpedo.png create mode 100644 examples/animation/sub-attaq/pics/scalable/background-n810.svg create mode 100644 examples/animation/sub-attaq/pics/scalable/background.svg create mode 100644 examples/animation/sub-attaq/pics/scalable/boat.svg create mode 100644 examples/animation/sub-attaq/pics/scalable/bomb.svg create mode 100644 examples/animation/sub-attaq/pics/scalable/sand.svg create mode 100644 examples/animation/sub-attaq/pics/scalable/see.svg create mode 100644 examples/animation/sub-attaq/pics/scalable/sky.svg create mode 100644 examples/animation/sub-attaq/pics/scalable/sub-attaq.svg create mode 100644 examples/animation/sub-attaq/pics/scalable/submarine.svg create mode 100644 examples/animation/sub-attaq/pics/scalable/surface.svg create mode 100644 examples/animation/sub-attaq/pics/scalable/torpedo.svg create mode 100644 examples/animation/sub-attaq/pics/small/background.png create mode 100644 examples/animation/sub-attaq/pics/small/boat.png create mode 100644 examples/animation/sub-attaq/pics/small/bomb.png create mode 100644 examples/animation/sub-attaq/pics/small/submarine.png create mode 100644 examples/animation/sub-attaq/pics/small/surface.png create mode 100644 examples/animation/sub-attaq/pics/small/torpedo.png create mode 100644 examples/animation/sub-attaq/pics/welcome/logo-a.png create mode 100644 examples/animation/sub-attaq/pics/welcome/logo-a2.png create mode 100644 examples/animation/sub-attaq/pics/welcome/logo-b.png create mode 100644 examples/animation/sub-attaq/pics/welcome/logo-dash.png create mode 100644 examples/animation/sub-attaq/pics/welcome/logo-excl.png create mode 100644 examples/animation/sub-attaq/pics/welcome/logo-q.png create mode 100644 examples/animation/sub-attaq/pics/welcome/logo-s.png create mode 100644 examples/animation/sub-attaq/pics/welcome/logo-t.png create mode 100644 examples/animation/sub-attaq/pics/welcome/logo-t2.png create mode 100644 examples/animation/sub-attaq/pics/welcome/logo-u.png create mode 100644 examples/animation/sub-attaq/pixmapitem.cpp create mode 100644 examples/animation/sub-attaq/pixmapitem.h create mode 100644 examples/animation/sub-attaq/states.cpp create mode 100644 examples/animation/sub-attaq/states.h create mode 100644 examples/animation/sub-attaq/sub-attaq.pro create mode 100644 examples/animation/sub-attaq/subattaq.qrc create mode 100644 examples/animation/sub-attaq/submarine.cpp create mode 100644 examples/animation/sub-attaq/submarine.h create mode 100644 examples/animation/sub-attaq/submarine_p.h create mode 100644 examples/animation/sub-attaq/torpedo.cpp create mode 100644 examples/animation/sub-attaq/torpedo.h create mode 100644 examples/declarative/animation/animation.qml create mode 100644 examples/declarative/behaviours/MyRect.qml create mode 100644 examples/declarative/behaviours/test.qml create mode 100644 examples/declarative/connections/connections.qml create mode 100644 examples/declarative/contacts/contacts.pro create mode 100644 examples/declarative/contacts/contacts.qml create mode 100644 examples/declarative/contacts/dummydata/contactModel.qml create mode 100644 examples/declarative/contacts/main.cpp create mode 100644 examples/declarative/declarative.pro create mode 100644 examples/declarative/dial/DialLibrary/Dial.qml create mode 100644 examples/declarative/dial/DialLibrary/background.svg create mode 100644 examples/declarative/dial/DialLibrary/needle.svg create mode 100644 examples/declarative/dial/DialLibrary/needle_shadow.svg create mode 100644 examples/declarative/dial/DialLibrary/overlay.svg create mode 100644 examples/declarative/dial/dial.qml create mode 100644 examples/declarative/easing/easing.qml create mode 100644 examples/declarative/follow/follow.qml create mode 100644 examples/declarative/follow/pong.qml create mode 100644 examples/declarative/listview/content/MediaButton.qml create mode 100644 examples/declarative/listview/content/pics/button-pressed.png create mode 100644 examples/declarative/listview/content/pics/button.png create mode 100644 examples/declarative/listview/content/pics/fruit-salad.jpg create mode 100644 examples/declarative/listview/content/pics/hamburger.jpg create mode 100644 examples/declarative/listview/content/pics/lemonade.jpg create mode 100644 examples/declarative/listview/content/pics/pancakes.jpg create mode 100644 examples/declarative/listview/content/pics/vegetable-soup.jpg create mode 100644 examples/declarative/listview/dummydata/MyPetsModel.qml create mode 100644 examples/declarative/listview/dummydata/Recipies.qml create mode 100644 examples/declarative/listview/highlight.qml create mode 100644 examples/declarative/listview/listview.qml create mode 100644 examples/declarative/listview/recipes.qml create mode 100644 examples/declarative/minehunt/Description.qml create mode 100644 examples/declarative/minehunt/Explosion.qml create mode 100644 examples/declarative/minehunt/main.cpp create mode 100644 examples/declarative/minehunt/minehunt.pro create mode 100644 examples/declarative/minehunt/minehunt.qml create mode 100644 examples/declarative/minehunt/pics/No-Ones-Laughing-3.jpg create mode 100644 examples/declarative/minehunt/pics/bomb-color.png create mode 100644 examples/declarative/minehunt/pics/bomb.png create mode 100644 examples/declarative/minehunt/pics/cachepix-black.png create mode 100644 examples/declarative/minehunt/pics/cachepix-black.sci create mode 100644 examples/declarative/minehunt/pics/cachepix-boxless.png create mode 100644 examples/declarative/minehunt/pics/cachepix-boxless.sci create mode 100644 examples/declarative/minehunt/pics/flag-color.png create mode 100644 examples/declarative/minehunt/pics/flag.png create mode 100644 examples/declarative/minehunt/pics/frown.png create mode 100644 examples/declarative/minehunt/pics/glee.png create mode 100644 examples/declarative/minehunt/pics/smile.png create mode 100644 examples/declarative/minehunt/pics/star.png create mode 100644 examples/declarative/mouseregion/mouse.qml create mode 100644 examples/declarative/namespaces/BlueStuff/Rect.qml create mode 100644 examples/declarative/namespaces/Local.qml create mode 100644 examples/declarative/namespaces/components.qml create mode 100644 examples/declarative/namespaces/lib/Chronos/Clock.qml create mode 100644 examples/declarative/namespaces/lib/Chronos/Hand.qml create mode 100644 examples/declarative/namespaces/lib/Chronos/pics/clockface.png create mode 100644 examples/declarative/namespaces/lib/Path/PathLabel.qml create mode 100644 examples/declarative/namespaces/lib/RedStuff/Rect.qml create mode 100644 examples/declarative/namespaces/lib/Wrong/Wrong.qml create mode 100644 examples/declarative/namespaces/library.qml create mode 100644 examples/declarative/namespaces/path.qml create mode 100644 examples/declarative/namespaces/simple.qml create mode 100644 examples/declarative/namespaces/wrong1.qml create mode 100644 examples/declarative/scrollbar/ScrollBar.qml create mode 100644 examples/declarative/scrollbar/display.qml create mode 100644 examples/declarative/scrollbar/pics/niagara_falls.jpg create mode 100644 examples/declarative/slideswitch/Switch.qml create mode 100644 examples/declarative/slideswitch/background.svg create mode 100644 examples/declarative/slideswitch/display.qml create mode 100644 examples/declarative/slideswitch/knob.svg create mode 100644 examples/declarative/states/states.qml create mode 100644 examples/declarative/states/transitions.qml create mode 100644 examples/declarative/support/contact.cpp create mode 100644 examples/declarative/support/contact.h create mode 100644 examples/declarative/support/contactmodel.cpp create mode 100644 examples/declarative/support/contactmodel.h create mode 100644 examples/declarative/support/support.pro create mode 100644 examples/declarative/tutorials/contacts/1_Drawing_and_Animation/1_Drawing_an_animation.qml create mode 100644 examples/declarative/tutorials/contacts/1_Drawing_and_Animation/RemoveButton1.qml create mode 100644 examples/declarative/tutorials/contacts/1_Drawing_and_Animation/RemoveButton2.qml create mode 100644 examples/declarative/tutorials/contacts/1_Drawing_and_Animation/RemoveButton3.qml create mode 100644 examples/declarative/tutorials/contacts/1_Drawing_and_Animation/RemoveButton4.qml create mode 100644 examples/declarative/tutorials/contacts/1_Drawing_and_Animation/RemoveButton5.qml create mode 100644 examples/declarative/tutorials/contacts/2_Reuse/2_Reuse.qml create mode 100644 examples/declarative/tutorials/contacts/2_Reuse/Contact3.qml create mode 100644 examples/declarative/tutorials/contacts/2_Reuse/Contact4.qml create mode 100644 examples/declarative/tutorials/contacts/2_Reuse/ContactField1.qml create mode 100644 examples/declarative/tutorials/contacts/2_Reuse/ContactField2.qml create mode 100644 examples/declarative/tutorials/contacts/2_Reuse/ContactField3.qml create mode 100644 examples/declarative/tutorials/contacts/2_Reuse/ContactField4.qml create mode 100644 examples/declarative/tutorials/contacts/2_Reuse/FieldText3.qml create mode 100644 examples/declarative/tutorials/contacts/2_Reuse/FieldText4.qml create mode 100644 examples/declarative/tutorials/contacts/2_Reuse/RemoveButton1.qml create mode 100644 examples/declarative/tutorials/contacts/2_Reuse/RemoveButton2.qml create mode 100644 examples/declarative/tutorials/contacts/2_Reuse/RemoveButton3.qml create mode 100644 examples/declarative/tutorials/contacts/2_Reuse/RemoveButton4.qml create mode 100644 examples/declarative/tutorials/contacts/3_Collections/3_Collections.qml create mode 100644 examples/declarative/tutorials/contacts/3_Collections/Button.qml create mode 100644 examples/declarative/tutorials/contacts/3_Collections/Contact.qml create mode 100644 examples/declarative/tutorials/contacts/3_Collections/ContactField.qml create mode 100644 examples/declarative/tutorials/contacts/3_Collections/ContactView1.qml create mode 100644 examples/declarative/tutorials/contacts/3_Collections/ContactView2.qml create mode 100644 examples/declarative/tutorials/contacts/3_Collections/ContactView3.qml create mode 100644 examples/declarative/tutorials/contacts/3_Collections/FieldText.qml create mode 100644 examples/declarative/tutorials/contacts/3_Collections/RemoveButton.qml create mode 100644 examples/declarative/tutorials/contacts/shared/contacts.sqlite create mode 100644 examples/declarative/tutorials/contacts/shared/pics/cancel.png create mode 100644 examples/declarative/tutorials/contacts/shared/pics/email.png create mode 100644 examples/declarative/tutorials/contacts/shared/pics/new.png create mode 100644 examples/declarative/tutorials/contacts/shared/pics/ok.png create mode 100644 examples/declarative/tutorials/contacts/shared/pics/phone.png create mode 100644 examples/declarative/tutorials/contacts/shared/pics/search.png create mode 100644 examples/declarative/tutorials/contacts/shared/pics/trash.png create mode 100644 examples/declarative/tutorials/contacts/t8/Button.qml create mode 100644 examples/declarative/tutorials/contacts/t8/Contact.qml create mode 100644 examples/declarative/tutorials/contacts/t8/Field.qml create mode 100644 examples/declarative/tutorials/contacts/t8/FieldRemover.qml create mode 100644 examples/declarative/tutorials/contacts/t8/FieldText.qml create mode 100644 examples/declarative/tutorials/contacts/t8/SearchBar.qml create mode 100644 examples/declarative/tutorials/contacts/t8/contacts.qml create mode 100644 examples/declarative/tutorials/t1/tutorial1.qml create mode 100644 examples/declarative/tutorials/t2/Cell.qml create mode 100644 examples/declarative/tutorials/t2/tutorial2.qml create mode 100644 examples/declarative/tutorials/t3/Cell.qml create mode 100644 examples/declarative/tutorials/t3/tutorial3.qml create mode 100644 examples/declarative/velocity/Day.qml create mode 100644 examples/declarative/velocity/cork.jpg create mode 100644 examples/declarative/velocity/sticky.png create mode 100644 examples/declarative/velocity/tack.png create mode 100644 examples/declarative/velocity/velocity.qml create mode 100644 examples/declarative/webview/autosize.qml create mode 100644 examples/declarative/webview/content/SpinSquare.qml create mode 100644 examples/declarative/webview/inline-html.qml create mode 100644 examples/declarative/webview/inline-xhtml.qml create mode 100644 examples/declarative/webview/qml-in-html.qml create mode 100644 examples/declarative/webview/transparent.qml create mode 100644 examples/declarative/xmldata/daringfireball.qml create mode 100644 examples/declarative/xmldata/yahoonews.qml create mode 100644 examples/statemachine/README create mode 100644 examples/statemachine/citizenquartz/citizenquartz.pro create mode 100644 examples/statemachine/citizenquartz/citizenquartz.qrc create mode 100644 examples/statemachine/citizenquartz/clock.cpp create mode 100644 examples/statemachine/citizenquartz/clock.h create mode 100644 examples/statemachine/citizenquartz/clockbutton.cpp create mode 100644 examples/statemachine/citizenquartz/clockbutton.h create mode 100644 examples/statemachine/citizenquartz/clockdisplay.cpp create mode 100644 examples/statemachine/citizenquartz/clockdisplay.h create mode 100644 examples/statemachine/citizenquartz/images/alarm.png create mode 100644 examples/statemachine/citizenquartz/main.cpp create mode 100644 examples/statemachine/citizenquartz/propertyaddstate.cpp create mode 100644 examples/statemachine/citizenquartz/propertyaddstate.h create mode 100644 examples/statemachine/citizenquartz/sound/alarm.wav create mode 100644 examples/statemachine/citizenquartz/timeperiod.h create mode 100644 examples/statemachine/clockticking/clockticking.pro create mode 100644 examples/statemachine/clockticking/main.cpp create mode 100644 examples/statemachine/composition/composition.pro create mode 100644 examples/statemachine/composition/main.cpp create mode 100644 examples/statemachine/eventtransitions/eventtransitions.pro create mode 100644 examples/statemachine/eventtransitions/main.cpp create mode 100644 examples/statemachine/factorial/factorial.pro create mode 100644 examples/statemachine/factorial/main.cpp create mode 100644 examples/statemachine/helloworld/helloworld.pro create mode 100644 examples/statemachine/helloworld/main.cpp create mode 100644 examples/statemachine/pauseandresume/main.cpp create mode 100644 examples/statemachine/pauseandresume/pauseandresume.pro create mode 100644 examples/statemachine/pingpong/main.cpp create mode 100644 examples/statemachine/pingpong/pingpong.pro create mode 100644 examples/statemachine/statemachine.pro create mode 100644 examples/statemachine/trafficlight/main.cpp create mode 100644 examples/statemachine/trafficlight/trafficlight.pro create mode 100644 examples/statemachine/twowaybutton/main.cpp create mode 100644 examples/statemachine/twowaybutton/twowaybutton.pro create mode 100644 mkspecs/linux-g++-x11egl/qmake.conf create mode 100644 mkspecs/linux-g++-x11egl/qplatformdefs.h create mode 100644 mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf create mode 100644 mkspecs/qws/linux-arm-gnueabi-g++/qplatformdefs.h create mode 100644 src/3rdparty/easing/easing.cpp create mode 100644 src/3rdparty/easing/legal.qdoc create mode 100644 src/corelib/animation/animation.pri create mode 100644 src/corelib/animation/qabstractanimation.cpp create mode 100644 src/corelib/animation/qabstractanimation.h create mode 100644 src/corelib/animation/qabstractanimation_p.h create mode 100644 src/corelib/animation/qanimationgroup.cpp create mode 100644 src/corelib/animation/qanimationgroup.h create mode 100644 src/corelib/animation/qanimationgroup_p.h create mode 100644 src/corelib/animation/qparallelanimationgroup.cpp create mode 100644 src/corelib/animation/qparallelanimationgroup.h create mode 100644 src/corelib/animation/qparallelanimationgroup_p.h create mode 100644 src/corelib/animation/qpauseanimation.cpp create mode 100644 src/corelib/animation/qpauseanimation.h create mode 100644 src/corelib/animation/qpropertyanimation.cpp create mode 100644 src/corelib/animation/qpropertyanimation.h create mode 100644 src/corelib/animation/qpropertyanimation_p.h create mode 100644 src/corelib/animation/qsequentialanimationgroup.cpp create mode 100644 src/corelib/animation/qsequentialanimationgroup.h create mode 100644 src/corelib/animation/qsequentialanimationgroup_p.h create mode 100644 src/corelib/animation/qvariantanimation.cpp create mode 100644 src/corelib/animation/qvariantanimation.h create mode 100644 src/corelib/animation/qvariantanimation_p.h create mode 100644 src/corelib/kernel/qmetaobjectbuilder.cpp create mode 100644 src/corelib/kernel/qmetaobjectbuilder_p.h create mode 100644 src/corelib/statemachine/qabstractstate.cpp create mode 100644 src/corelib/statemachine/qabstractstate.h create mode 100644 src/corelib/statemachine/qabstractstate_p.h create mode 100644 src/corelib/statemachine/qabstracttransition.cpp create mode 100644 src/corelib/statemachine/qabstracttransition.h create mode 100644 src/corelib/statemachine/qabstracttransition_p.h create mode 100644 src/corelib/statemachine/qactionstate.cpp create mode 100644 src/corelib/statemachine/qactionstate.h create mode 100644 src/corelib/statemachine/qactionstate_p.h create mode 100644 src/corelib/statemachine/qanimationstate.cpp create mode 100644 src/corelib/statemachine/qanimationstate.h create mode 100644 src/corelib/statemachine/qboundevent_p.h create mode 100644 src/corelib/statemachine/qeventtransition.cpp create mode 100644 src/corelib/statemachine/qeventtransition.h create mode 100644 src/corelib/statemachine/qeventtransition_p.h create mode 100644 src/corelib/statemachine/qfinalstate.cpp create mode 100644 src/corelib/statemachine/qfinalstate.h create mode 100644 src/corelib/statemachine/qhistorystate.cpp create mode 100644 src/corelib/statemachine/qhistorystate.h create mode 100644 src/corelib/statemachine/qhistorystate_p.h create mode 100644 src/corelib/statemachine/qsignalevent.h create mode 100644 src/corelib/statemachine/qsignaleventgenerator_p.h create mode 100644 src/corelib/statemachine/qsignaltransition.cpp create mode 100644 src/corelib/statemachine/qsignaltransition.h create mode 100644 src/corelib/statemachine/qsignaltransition_p.h create mode 100644 src/corelib/statemachine/qstate.cpp create mode 100644 src/corelib/statemachine/qstate.h create mode 100644 src/corelib/statemachine/qstate_p.h create mode 100644 src/corelib/statemachine/qstateaction.cpp create mode 100644 src/corelib/statemachine/qstateaction.h create mode 100644 src/corelib/statemachine/qstateaction_p.h create mode 100644 src/corelib/statemachine/qstatefinishedevent.h create mode 100644 src/corelib/statemachine/qstatefinishedtransition.cpp create mode 100644 src/corelib/statemachine/qstatefinishedtransition.h create mode 100644 src/corelib/statemachine/qstatemachine.cpp create mode 100644 src/corelib/statemachine/qstatemachine.h create mode 100644 src/corelib/statemachine/qstatemachine_p.h create mode 100644 src/corelib/statemachine/qtransition.cpp create mode 100644 src/corelib/statemachine/qtransition.h create mode 100644 src/corelib/statemachine/qtransition_p.h create mode 100644 src/corelib/statemachine/statemachine.pri create mode 100644 src/corelib/tools/qeasingcurve.cpp create mode 100644 src/corelib/tools/qeasingcurve.h create mode 100644 src/declarative/3rdparty/3rdparty.pri create mode 100644 src/declarative/3rdparty/easing.cpp create mode 100644 src/declarative/3rdparty/legal.qdoc create mode 100644 src/declarative/3rdparty/qlistmodelinterface.h create mode 100644 src/declarative/canvas/canvas.pri create mode 100644 src/declarative/canvas/qsimplecanvas.cpp create mode 100644 src/declarative/canvas/qsimplecanvas.h create mode 100644 src/declarative/canvas/qsimplecanvas_graphicsview.cpp create mode 100644 src/declarative/canvas/qsimplecanvas_opengl.cpp create mode 100644 src/declarative/canvas/qsimplecanvas_opengl1.cpp create mode 100644 src/declarative/canvas/qsimplecanvas_p.h create mode 100644 src/declarative/canvas/qsimplecanvas_software.cpp create mode 100644 src/declarative/canvas/qsimplecanvasfilter.cpp create mode 100644 src/declarative/canvas/qsimplecanvasfilter.h create mode 100644 src/declarative/canvas/qsimplecanvasfilter_p.h create mode 100644 src/declarative/canvas/qsimplecanvasitem.cpp create mode 100644 src/declarative/canvas/qsimplecanvasitem.h create mode 100644 src/declarative/canvas/qsimplecanvasitem_p.h create mode 100644 src/declarative/canvas/qsimplecanvasserver.cpp create mode 100644 src/declarative/canvas/qsimplecanvasserver_p.h create mode 100644 src/declarative/declarative.pro create mode 100644 src/declarative/extra/extra.pri create mode 100644 src/declarative/extra/qfxintegermodel.cpp create mode 100644 src/declarative/extra/qfxintegermodel.h create mode 100644 src/declarative/extra/qmlnumberformatter.cpp create mode 100644 src/declarative/extra/qmlnumberformatter.h create mode 100644 src/declarative/extra/qmlsqlconnection.cpp create mode 100644 src/declarative/extra/qmlsqlconnection.h create mode 100644 src/declarative/extra/qmlsqlquery.cpp create mode 100644 src/declarative/extra/qmlsqlquery.h create mode 100644 src/declarative/extra/qmlxmllistmodel.cpp create mode 100644 src/declarative/extra/qmlxmllistmodel.h create mode 100644 src/declarative/extra/qnumberformat.cpp create mode 100644 src/declarative/extra/qnumberformat.h create mode 100644 src/declarative/fx/fx.pri create mode 100644 src/declarative/fx/qfxanchors.cpp create mode 100644 src/declarative/fx/qfxanchors.h create mode 100644 src/declarative/fx/qfxanchors_p.h create mode 100644 src/declarative/fx/qfxanimatedimageitem.cpp create mode 100644 src/declarative/fx/qfxanimatedimageitem.h create mode 100644 src/declarative/fx/qfxanimatedimageitem_p.h create mode 100644 src/declarative/fx/qfxblendedimage.cpp create mode 100644 src/declarative/fx/qfxblendedimage.h create mode 100644 src/declarative/fx/qfxblurfilter.cpp create mode 100644 src/declarative/fx/qfxblurfilter.h create mode 100644 src/declarative/fx/qfxcomponentinstance.cpp create mode 100644 src/declarative/fx/qfxcomponentinstance.h create mode 100644 src/declarative/fx/qfxcomponentinstance_p.h create mode 100644 src/declarative/fx/qfxcontentwrapper.cpp create mode 100644 src/declarative/fx/qfxcontentwrapper.h create mode 100644 src/declarative/fx/qfxcontentwrapper_p.h create mode 100644 src/declarative/fx/qfxflickable.cpp create mode 100644 src/declarative/fx/qfxflickable.h create mode 100644 src/declarative/fx/qfxflickable_p.h create mode 100644 src/declarative/fx/qfxfocuspanel.cpp create mode 100644 src/declarative/fx/qfxfocuspanel.h create mode 100644 src/declarative/fx/qfxfocusrealm.cpp create mode 100644 src/declarative/fx/qfxfocusrealm.h create mode 100644 src/declarative/fx/qfxgridview.cpp create mode 100644 src/declarative/fx/qfxgridview.h create mode 100644 src/declarative/fx/qfxhighlightfilter.cpp create mode 100644 src/declarative/fx/qfxhighlightfilter.h create mode 100644 src/declarative/fx/qfximage.cpp create mode 100644 src/declarative/fx/qfximage.h create mode 100644 src/declarative/fx/qfximage_p.h create mode 100644 src/declarative/fx/qfximageitem.cpp create mode 100644 src/declarative/fx/qfximageitem.h create mode 100644 src/declarative/fx/qfximageitem_p.h create mode 100644 src/declarative/fx/qfxitem.cpp create mode 100644 src/declarative/fx/qfxitem.h create mode 100644 src/declarative/fx/qfxitem_p.h create mode 100644 src/declarative/fx/qfxkeyactions.cpp create mode 100644 src/declarative/fx/qfxkeyactions.h create mode 100644 src/declarative/fx/qfxkeyproxy.cpp create mode 100644 src/declarative/fx/qfxkeyproxy.h create mode 100644 src/declarative/fx/qfxlayouts.cpp create mode 100644 src/declarative/fx/qfxlayouts.h create mode 100644 src/declarative/fx/qfxlayouts_p.h create mode 100644 src/declarative/fx/qfxlistview.cpp create mode 100644 src/declarative/fx/qfxlistview.h create mode 100644 src/declarative/fx/qfxmouseregion.cpp create mode 100644 src/declarative/fx/qfxmouseregion.h create mode 100644 src/declarative/fx/qfxmouseregion_p.h create mode 100644 src/declarative/fx/qfxpainted.cpp create mode 100644 src/declarative/fx/qfxpainted.h create mode 100644 src/declarative/fx/qfxpainted_p.h create mode 100644 src/declarative/fx/qfxparticles.cpp create mode 100644 src/declarative/fx/qfxparticles.h create mode 100644 src/declarative/fx/qfxpath.cpp create mode 100644 src/declarative/fx/qfxpath.h create mode 100644 src/declarative/fx/qfxpath_p.h create mode 100644 src/declarative/fx/qfxpathview.cpp create mode 100644 src/declarative/fx/qfxpathview.h create mode 100644 src/declarative/fx/qfxpathview_p.h create mode 100644 src/declarative/fx/qfxpixmap.cpp create mode 100644 src/declarative/fx/qfxpixmap.h create mode 100644 src/declarative/fx/qfxrect.cpp create mode 100644 src/declarative/fx/qfxrect.h create mode 100644 src/declarative/fx/qfxrect_p.h create mode 100644 src/declarative/fx/qfxreflectionfilter.cpp create mode 100644 src/declarative/fx/qfxreflectionfilter.h create mode 100644 src/declarative/fx/qfxrepeater.cpp create mode 100644 src/declarative/fx/qfxrepeater.h create mode 100644 src/declarative/fx/qfxrepeater_p.h create mode 100644 src/declarative/fx/qfxscalegrid.cpp create mode 100644 src/declarative/fx/qfxscalegrid.h create mode 100644 src/declarative/fx/qfxshadowfilter.cpp create mode 100644 src/declarative/fx/qfxshadowfilter.h create mode 100644 src/declarative/fx/qfxtext.cpp create mode 100644 src/declarative/fx/qfxtext.h create mode 100644 src/declarative/fx/qfxtext_p.h create mode 100644 src/declarative/fx/qfxtextedit.cpp create mode 100644 src/declarative/fx/qfxtextedit.h create mode 100644 src/declarative/fx/qfxtextedit_p.h create mode 100644 src/declarative/fx/qfxtransform.cpp create mode 100644 src/declarative/fx/qfxtransform.h create mode 100644 src/declarative/fx/qfxvisualitemmodel.cpp create mode 100644 src/declarative/fx/qfxvisualitemmodel.h create mode 100644 src/declarative/fx/qfxwebview.cpp create mode 100644 src/declarative/fx/qfxwebview.h create mode 100644 src/declarative/fx/qfxwidgetcontainer.cpp create mode 100644 src/declarative/fx/qfxwidgetcontainer.h create mode 100644 src/declarative/opengl/glbasicshaders.cpp create mode 100644 src/declarative/opengl/glbasicshaders.h create mode 100644 src/declarative/opengl/glheaders.h create mode 100644 src/declarative/opengl/glsave.cpp create mode 100644 src/declarative/opengl/glsave.h create mode 100644 src/declarative/opengl/gltexture.cpp create mode 100644 src/declarative/opengl/gltexture.h create mode 100644 src/declarative/opengl/opengl.pri create mode 100644 src/declarative/qml/qml.h create mode 100644 src/declarative/qml/qml.pri create mode 100644 src/declarative/qml/qmlbindablevalue.cpp create mode 100644 src/declarative/qml/qmlbindablevalue.h create mode 100644 src/declarative/qml/qmlboundsignal.cpp create mode 100644 src/declarative/qml/qmlboundsignal_p.h create mode 100644 src/declarative/qml/qmlclassfactory.cpp create mode 100644 src/declarative/qml/qmlclassfactory_p.h create mode 100644 src/declarative/qml/qmlcompiledcomponent.cpp create mode 100644 src/declarative/qml/qmlcompiledcomponent_p.h create mode 100644 src/declarative/qml/qmlcompiler.cpp create mode 100644 src/declarative/qml/qmlcompiler_p.h create mode 100644 src/declarative/qml/qmlcomponent.cpp create mode 100644 src/declarative/qml/qmlcomponent.h create mode 100644 src/declarative/qml/qmlcomponent_p.h create mode 100644 src/declarative/qml/qmlcompositetypemanager.cpp create mode 100644 src/declarative/qml/qmlcompositetypemanager_p.h create mode 100644 src/declarative/qml/qmlcontext.cpp create mode 100644 src/declarative/qml/qmlcontext.h create mode 100644 src/declarative/qml/qmlcontext_p.h create mode 100644 src/declarative/qml/qmlcustomparser.cpp create mode 100644 src/declarative/qml/qmlcustomparser.h create mode 100644 src/declarative/qml/qmldom.cpp create mode 100644 src/declarative/qml/qmldom.h create mode 100644 src/declarative/qml/qmldom_p.h create mode 100644 src/declarative/qml/qmlengine.cpp create mode 100644 src/declarative/qml/qmlengine.h create mode 100644 src/declarative/qml/qmlengine_p.h create mode 100644 src/declarative/qml/qmlexpression.h create mode 100644 src/declarative/qml/qmlinfo.cpp create mode 100644 src/declarative/qml/qmlinfo.h create mode 100644 src/declarative/qml/qmlinstruction.cpp create mode 100644 src/declarative/qml/qmlinstruction_p.h create mode 100644 src/declarative/qml/qmllist.h create mode 100644 src/declarative/qml/qmlmetaproperty.cpp create mode 100644 src/declarative/qml/qmlmetaproperty.h create mode 100644 src/declarative/qml/qmlmetaproperty_p.h create mode 100644 src/declarative/qml/qmlmetatype.cpp create mode 100644 src/declarative/qml/qmlmetatype.h create mode 100644 src/declarative/qml/qmlparser.cpp create mode 100644 src/declarative/qml/qmlparser_p.h create mode 100644 src/declarative/qml/qmlparserstatus.cpp create mode 100644 src/declarative/qml/qmlparserstatus.h create mode 100644 src/declarative/qml/qmlprivate.cpp create mode 100644 src/declarative/qml/qmlprivate.h create mode 100644 src/declarative/qml/qmlpropertyvaluesource.cpp create mode 100644 src/declarative/qml/qmlpropertyvaluesource.h create mode 100644 src/declarative/qml/qmlproxymetaobject.cpp create mode 100644 src/declarative/qml/qmlproxymetaobject_p.h create mode 100644 src/declarative/qml/qmlrefcount.cpp create mode 100644 src/declarative/qml/qmlrefcount_p.h create mode 100644 src/declarative/qml/qmlstringconverters.cpp create mode 100644 src/declarative/qml/qmlstringconverters_p.h create mode 100644 src/declarative/qml/qmlvme.cpp create mode 100644 src/declarative/qml/qmlvme_p.h create mode 100644 src/declarative/qml/qmlvmemetaobject.cpp create mode 100644 src/declarative/qml/qmlvmemetaobject_p.h create mode 100644 src/declarative/qml/qmlxmlparser.cpp create mode 100644 src/declarative/qml/qmlxmlparser_p.h create mode 100644 src/declarative/qml/script/generator/generator.pro create mode 100644 src/declarative/qml/script/generator/main.cpp create mode 100644 src/declarative/qml/script/instructions.h create mode 100644 src/declarative/qml/script/keywords.cpp create mode 100644 src/declarative/qml/script/lexer.cpp create mode 100644 src/declarative/qml/script/lexer.h create mode 100644 src/declarative/qml/script/qmlbasicscript.cpp create mode 100644 src/declarative/qml/script/qmlbasicscript.h create mode 100644 src/declarative/qml/script/qmlbasicscript_p.h create mode 100644 src/declarative/qml/script/script.pri create mode 100644 src/declarative/qml/script/tokens.cpp create mode 100644 src/declarative/qml/script/tokens.h create mode 100644 src/declarative/test/qfxtestengine.cpp create mode 100644 src/declarative/test/qfxtestengine.h create mode 100644 src/declarative/test/qfxtestobjects.cpp create mode 100644 src/declarative/test/qfxtestobjects.h create mode 100644 src/declarative/test/qfxtestview.cpp create mode 100644 src/declarative/test/qfxtestview.h create mode 100644 src/declarative/test/test.pri create mode 100644 src/declarative/timeline/gfxeasing.cpp create mode 100644 src/declarative/timeline/gfxeasing.h create mode 100644 src/declarative/timeline/gfxtimeline.cpp create mode 100644 src/declarative/timeline/gfxtimeline.h create mode 100644 src/declarative/timeline/gfxvalueproxy.h create mode 100644 src/declarative/timeline/timeline.pri create mode 100644 src/declarative/util/qbindablemap.cpp create mode 100644 src/declarative/util/qbindablemap.h create mode 100644 src/declarative/util/qfxglobal.h create mode 100644 src/declarative/util/qfxperf.cpp create mode 100644 src/declarative/util/qfxperf.h create mode 100644 src/declarative/util/qfxview.cpp create mode 100644 src/declarative/util/qfxview.h create mode 100644 src/declarative/util/qmlanimation.cpp create mode 100644 src/declarative/util/qmlanimation.h create mode 100644 src/declarative/util/qmlanimation_p.h create mode 100644 src/declarative/util/qmlbehaviour.cpp create mode 100644 src/declarative/util/qmlbehaviour.h create mode 100644 src/declarative/util/qmlbind.cpp create mode 100644 src/declarative/util/qmlbind.h create mode 100644 src/declarative/util/qmlconnection.cpp create mode 100644 src/declarative/util/qmlconnection.h create mode 100644 src/declarative/util/qmldatetimeformatter.cpp create mode 100644 src/declarative/util/qmldatetimeformatter.h create mode 100644 src/declarative/util/qmlfollow.cpp create mode 100644 src/declarative/util/qmlfollow.h create mode 100644 src/declarative/util/qmlfont.cpp create mode 100644 src/declarative/util/qmlfont.h create mode 100644 src/declarative/util/qmllistaccessor.cpp create mode 100644 src/declarative/util/qmllistaccessor.h create mode 100644 src/declarative/util/qmllistmodel.cpp create mode 100644 src/declarative/util/qmllistmodel.h create mode 100644 src/declarative/util/qmlnullablevalue_p.h create mode 100644 src/declarative/util/qmlopenmetaobject.cpp create mode 100644 src/declarative/util/qmlopenmetaobject.h create mode 100644 src/declarative/util/qmlpackage.cpp create mode 100644 src/declarative/util/qmlpackage.h create mode 100644 src/declarative/util/qmlscript.cpp create mode 100644 src/declarative/util/qmlscript.h create mode 100644 src/declarative/util/qmlsetproperties.cpp create mode 100644 src/declarative/util/qmlsetproperties.h create mode 100644 src/declarative/util/qmlstate.cpp create mode 100644 src/declarative/util/qmlstate.h create mode 100644 src/declarative/util/qmlstate_p.h create mode 100644 src/declarative/util/qmlstategroup.cpp create mode 100644 src/declarative/util/qmlstategroup.h create mode 100644 src/declarative/util/qmlstateoperations.cpp create mode 100644 src/declarative/util/qmlstateoperations.h create mode 100644 src/declarative/util/qmltransition.cpp create mode 100644 src/declarative/util/qmltransition.h create mode 100644 src/declarative/util/qperformancelog.cpp create mode 100644 src/declarative/util/qperformancelog.h create mode 100644 src/declarative/util/util.pri create mode 100644 src/declarative/widgets/graphicslayouts.cpp create mode 100644 src/declarative/widgets/graphicslayouts.h create mode 100644 src/declarative/widgets/graphicswidgets.cpp create mode 100644 src/declarative/widgets/graphicswidgets.h create mode 100644 src/declarative/widgets/widgets.pri create mode 100644 src/gui/animation/animation.pri create mode 100644 src/gui/animation/qitemanimation.cpp create mode 100644 src/gui/animation/qitemanimation.h create mode 100644 src/gui/animation/qitemanimation_p.h create mode 100644 src/gui/statemachine/qbasickeyeventtransition.cpp create mode 100644 src/gui/statemachine/qbasickeyeventtransition_p.h create mode 100644 src/gui/statemachine/qbasicmouseeventtransition.cpp create mode 100644 src/gui/statemachine/qbasicmouseeventtransition_p.h create mode 100644 src/gui/statemachine/qguistatemachine.cpp create mode 100644 src/gui/statemachine/qkeyeventtransition.cpp create mode 100644 src/gui/statemachine/qkeyeventtransition.h create mode 100644 src/gui/statemachine/qmouseeventtransition.cpp create mode 100644 src/gui/statemachine/qmouseeventtransition.h create mode 100644 src/gui/statemachine/statemachine.pri create mode 100644 src/opengl/qglshaderprogram.cpp create mode 100644 src/opengl/qglshaderprogram.h create mode 100644 tests/auto/declarative/.gitignore create mode 100644 tests/auto/declarative/datetimeformatter/datetimeformatter.pro create mode 100644 tests/auto/declarative/datetimeformatter/tst_datetimeformatter.cpp create mode 100644 tests/auto/declarative/declarative.pro create mode 100644 tests/auto/declarative/layouts/data/grid-margin.xml create mode 100644 tests/auto/declarative/layouts/data/grid-spacing-margin.xml create mode 100644 tests/auto/declarative/layouts/data/grid-spacing.xml create mode 100644 tests/auto/declarative/layouts/data/grid.xml create mode 100644 tests/auto/declarative/layouts/data/horizontal-margin.xml create mode 100644 tests/auto/declarative/layouts/data/horizontal-spacing-margin.xml create mode 100644 tests/auto/declarative/layouts/data/horizontal-spacing.xml create mode 100644 tests/auto/declarative/layouts/data/horizontal.xml create mode 100644 tests/auto/declarative/layouts/data/vertical-margin.xml create mode 100644 tests/auto/declarative/layouts/data/vertical-spacing-margin.xml create mode 100644 tests/auto/declarative/layouts/data/vertical-spacing.xml create mode 100644 tests/auto/declarative/layouts/data/vertical.xml create mode 100644 tests/auto/declarative/layouts/layouts.pro create mode 100644 tests/auto/declarative/layouts/tst_layouts.cpp create mode 100644 tests/auto/declarative/listview/data/listview.xml create mode 100644 tests/auto/declarative/listview/listview.pro create mode 100644 tests/auto/declarative/listview/tst_listview.cpp create mode 100644 tests/auto/declarative/namespaces/data/Red/Rect.qml create mode 100644 tests/auto/declarative/namespaces/namespaces.pro create mode 100644 tests/auto/declarative/namespaces/tst_namespaces.cpp create mode 100644 tests/auto/declarative/numberformatter/numberformatter.pro create mode 100644 tests/auto/declarative/numberformatter/tst_numberformatter.cpp create mode 100644 tests/auto/declarative/pathview/data/pathview.xml create mode 100644 tests/auto/declarative/pathview/pathview.pro create mode 100644 tests/auto/declarative/pathview/tst_pathview.cpp create mode 100644 tests/auto/declarative/qbindablemap/qbindablemap.pro create mode 100644 tests/auto/declarative/qbindablemap/tst_qbindablemap.cpp create mode 100644 tests/auto/declarative/qfxtext/qfxtext.pro create mode 100644 tests/auto/declarative/qfxtext/tst_qfxtext.cpp create mode 100644 tests/auto/declarative/qfxtextedit/qfxtextedit.pro create mode 100644 tests/auto/declarative/qfxtextedit/tst_qfxtextedit.cpp create mode 100644 tests/auto/declarative/qmlbindengine/qmlbindengine.pro create mode 100644 tests/auto/declarative/qmlbindengine/tst_qmlbindengine.cpp create mode 100644 tests/auto/declarative/qmllist/qmllist.pro create mode 100644 tests/auto/declarative/qmllist/tst_qmllist.cpp create mode 100644 tests/auto/declarative/qmllistaccessor/qmllistaccessor.pro create mode 100644 tests/auto/declarative/qmllistaccessor/tst_qmllistaccessor.cpp create mode 100644 tests/auto/declarative/qmlmetaproperty/qmlmetaproperty.pro create mode 100644 tests/auto/declarative/qmlmetaproperty/tst_qmlmetaproperty.cpp create mode 100644 tests/auto/declarative/qmlparser/qmlparser.pro create mode 100644 tests/auto/declarative/qmlparser/tst_qmlparser.cpp create mode 100644 tests/auto/declarative/repeater/data/repeater.xml create mode 100644 tests/auto/declarative/repeater/repeater.pro create mode 100644 tests/auto/declarative/repeater/tst_repeater.cpp create mode 100644 tests/auto/declarative/simplecanvasitem/data/test.xml create mode 100644 tests/auto/declarative/simplecanvasitem/simplecanvasitem.pro create mode 100644 tests/auto/declarative/simplecanvasitem/tst_simplecanvasitem.cpp create mode 100644 tests/auto/declarative/visual/ListView/basic1/basic1.xml create mode 100644 tests/auto/declarative/visual/ListView/basic1/data/opengl/image0.png create mode 100644 tests/auto/declarative/visual/ListView/basic1/data/opengl/manifest.xml create mode 100644 tests/auto/declarative/visual/ListView/basic1/test create mode 100644 tests/auto/declarative/visual/ListView/basic2/basic2.xml create mode 100644 tests/auto/declarative/visual/ListView/basic2/data/opengl/image0.png create mode 100644 tests/auto/declarative/visual/ListView/basic2/data/opengl/manifest.xml create mode 100644 tests/auto/declarative/visual/ListView/basic2/test create mode 100644 tests/auto/declarative/visual/ListView/basic3/basic3.xml create mode 100644 tests/auto/declarative/visual/ListView/basic3/data/opengl/image0.png create mode 100644 tests/auto/declarative/visual/ListView/basic3/data/opengl/manifest.xml create mode 100644 tests/auto/declarative/visual/ListView/basic3/test create mode 100644 tests/auto/declarative/visual/ListView/basic4/basic4.xml create mode 100644 tests/auto/declarative/visual/ListView/basic4/data/opengl/image0.png create mode 100644 tests/auto/declarative/visual/ListView/basic4/data/opengl/manifest.xml create mode 100644 tests/auto/declarative/visual/ListView/basic4/test create mode 100644 tests/auto/declarative/visual/bindinganimation/bindinganimation.xml create mode 100644 tests/auto/declarative/visual/bindinganimation/data/opengl/image0.png create mode 100644 tests/auto/declarative/visual/bindinganimation/data/opengl/manifest-play.xml create mode 100644 tests/auto/declarative/visual/bindinganimation/data/opengl/manifest.xml create mode 100644 tests/auto/declarative/visual/bindinganimation/test create mode 100644 tests/auto/declarative/visual/colorAnimation/colorAnimation.xml create mode 100644 tests/auto/declarative/visual/colorAnimation/image0.png create mode 100644 tests/auto/declarative/visual/colorAnimation/manifest-play.xml create mode 100644 tests/auto/declarative/visual/colorAnimation/manifest.xml create mode 100644 tests/auto/declarative/visual/easing/easing.xml create mode 100644 tests/auto/declarative/visual/easing/image0.png create mode 100644 tests/auto/declarative/visual/easing/manifest-play.xml create mode 100644 tests/auto/declarative/visual/easing/manifest.xml create mode 100644 tests/auto/declarative/visual/easing/pics/qtlogo.png create mode 100644 tests/auto/declarative/visual/flickable/Day.qml create mode 100644 tests/auto/declarative/visual/flickable/cork.jpg create mode 100644 tests/auto/declarative/visual/flickable/flickable.xml create mode 100644 tests/auto/declarative/visual/flickable/image0.png create mode 100644 tests/auto/declarative/visual/flickable/manifest-fail.xml create mode 100644 tests/auto/declarative/visual/flickable/manifest.xml create mode 100644 tests/auto/declarative/visual/flipable/flipable.xml create mode 100644 tests/auto/declarative/visual/flipable/image0.png create mode 100644 tests/auto/declarative/visual/flipable/manifest-play.xml create mode 100644 tests/auto/declarative/visual/flipable/manifest.xml create mode 100644 tests/auto/declarative/visual/flipable/pics/arrow.png create mode 100644 tests/auto/declarative/visual/flipable/pics/face.png create mode 100644 tests/auto/declarative/visual/flipable/pics/photo0.png create mode 100644 tests/auto/declarative/visual/flipable/pics/photo1.png create mode 100644 tests/auto/declarative/visual/flipable/pics/photo10.png create mode 100644 tests/auto/declarative/visual/flipable/pics/photo2.png create mode 100644 tests/auto/declarative/visual/flipable/pics/photo3.png create mode 100644 tests/auto/declarative/visual/flipable/pics/photo4.png create mode 100644 tests/auto/declarative/visual/flipable/pics/photo5.png create mode 100644 tests/auto/declarative/visual/flipable/pics/photo6.png create mode 100644 tests/auto/declarative/visual/flipable/pics/photo7.png create mode 100644 tests/auto/declarative/visual/flipable/pics/photo8.png create mode 100644 tests/auto/declarative/visual/flipable/pics/photo9.png create mode 100644 tests/auto/declarative/visual/pauseAnimation/image0.png create mode 100644 tests/auto/declarative/visual/pauseAnimation/manifest-play.xml create mode 100644 tests/auto/declarative/visual/pauseAnimation/manifest.xml create mode 100644 tests/auto/declarative/visual/pauseAnimation/pauseAnimation.xml create mode 100644 tests/auto/declarative/visual/pauseAnimation/pics/qtlogo.png create mode 100644 tests/auto/declarative/visual/qfxtext/elide/data/opengl/image0.png create mode 100644 tests/auto/declarative/visual/qfxtext/elide/data/opengl/manifest.xml create mode 100644 tests/auto/declarative/visual/qfxtext/elide/elide.xml create mode 100644 tests/auto/declarative/visual/qfxtext/elide/test create mode 100644 tests/auto/declarative/visual/repeater/basic1/basic1.xml create mode 100644 tests/auto/declarative/visual/repeater/basic1/data/opengl/image0.png create mode 100644 tests/auto/declarative/visual/repeater/basic1/data/opengl/manifest.xml create mode 100644 tests/auto/declarative/visual/repeater/basic1/test create mode 100644 tests/auto/declarative/visual/repeater/basic2/basic2.xml create mode 100644 tests/auto/declarative/visual/repeater/basic2/data/opengl/image0.png create mode 100644 tests/auto/declarative/visual/repeater/basic2/data/opengl/manifest.xml create mode 100644 tests/auto/declarative/visual/repeater/basic2/test create mode 100644 tests/auto/declarative/visual/repeater/basic3/basic3.xml create mode 100644 tests/auto/declarative/visual/repeater/basic3/data/opengl/image0.png create mode 100644 tests/auto/declarative/visual/repeater/basic3/data/opengl/manifest.xml create mode 100644 tests/auto/declarative/visual/repeater/basic3/test create mode 100644 tests/auto/declarative/visual/repeater/basic4/basic4.xml create mode 100644 tests/auto/declarative/visual/repeater/basic4/data/opengl/image0.png create mode 100644 tests/auto/declarative/visual/repeater/basic4/data/opengl/manifest.xml create mode 100644 tests/auto/declarative/visual/repeater/basic4/test create mode 100755 tests/auto/declarative/visual/runtests.sh create mode 100644 tests/auto/declarative/visual/tests create mode 100644 tests/auto/declarative/visual/tst_visual.cpp create mode 100644 tests/auto/declarative/visual/visual.pro create mode 100644 tests/auto/declarative/visual/webview/autosize/data/opengl/image0.png create mode 100644 tests/auto/declarative/visual/webview/autosize/data/opengl/manifest.xml create mode 100644 tests/auto/declarative/visual/webview/autosize/test create mode 100644 tests/auto/dynamicobject/dynamicobject.pro create mode 100644 tests/auto/dynamicobject/qdynamicmetaobject.cpp create mode 100644 tests/auto/dynamicobject/qdynamicmetaobject.h create mode 100644 tests/auto/dynamicobject/qmetaobjectbuilder.cpp create mode 100644 tests/auto/dynamicobject/qmetaobjectbuilder.h create mode 100644 tests/auto/dynamicobject/tst_qobject.cpp create mode 100644 tests/auto/qanimationgroup/qanimationgroup.pro create mode 100644 tests/auto/qanimationgroup/tst_qanimationgroup.cpp create mode 100644 tests/auto/qanimationstate/qanimationstate.pro create mode 100644 tests/auto/qanimationstate/tst_qanimationstate.cpp create mode 100644 tests/auto/qeasingcurve/qeasingcurve.pro create mode 100644 tests/auto/qeasingcurve/tst_qeasingcurve.cpp create mode 100644 tests/auto/qparallelanimationgroup/qparallelanimationgroup.pro create mode 100644 tests/auto/qparallelanimationgroup/tst_qparallelanimationgroup.cpp create mode 100644 tests/auto/qpropertyanimation/qpropertyanimation.pro create mode 100644 tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp create mode 100644 tests/auto/qsequentialanimationgroup/qsequentialanimationgroup.pro create mode 100644 tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp create mode 100644 tests/auto/qstate/qstate.pro create mode 100644 tests/auto/qstate/tst_qstate.cpp create mode 100644 tests/auto/qstatemachine/qstatemachine.pro create mode 100644 tests/auto/qstatemachine/tst_qstatemachine.cpp create mode 100644 tests/benchmarks/qanimation/dummyanimation.cpp create mode 100644 tests/benchmarks/qanimation/dummyanimation.h create mode 100644 tests/benchmarks/qanimation/dummyobject.cpp create mode 100644 tests/benchmarks/qanimation/dummyobject.h create mode 100644 tests/benchmarks/qanimation/main.cpp create mode 100644 tests/benchmarks/qanimation/qanimation.pro create mode 100644 tests/benchmarks/qanimation/rectanimation.cpp create mode 100644 tests/benchmarks/qanimation/rectanimation.h create mode 100644 tests/benchmarks/qfxview/main.cpp create mode 100644 tests/benchmarks/qfxview/qfxview.pro create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/editor/data.xml create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/background.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/background3.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/battery.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/calendar-blur.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/calendar.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/callhistory-blur.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/callhistory.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/camera-blur.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/camera.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/contacts-blur.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/contacts.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/file-manager-blur.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/file-manager.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/fire.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/flask-blue.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/flask-container.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/flask-front.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/flask-pink.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/flask-yellow.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/ice.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/icon-reflection.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/internet-blur.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/internet.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/menu-background1.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/menu-border1.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/menu-border3.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/menu-highlight.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/menubar.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/messages-blur.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/messages.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/moon.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/sad.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/settings-blur.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/settings.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/signal.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/smile.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/star.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/sun.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/titlebar.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/pics/wifi.png create mode 100644 tests/benchmarks/qfxview/testdata/tatwheel/tat-wheel.xml create mode 100644 tests/benchmarks/qmlxmlparser/main.cpp create mode 100644 tests/benchmarks/qmlxmlparser/qmlxmlparser.pro create mode 100644 tests/benchmarks/qmlxmlparser/testdata/concept2.xml create mode 100644 tools/duiviewer/duiviewer.pro create mode 100644 tools/duiviewer/main.cpp create mode 100644 tools/duiviewer/qfxviewer.cpp create mode 100644 tools/duiviewer/qfxviewer.h diff --git a/.gitignore b/.gitignore index 0de9563..9f4144a 100644 --- a/.gitignore +++ b/.gitignore @@ -12,8 +12,11 @@ config.tests/*/*/* !config.tests/*/*/*[.]* config.tests/*/*/*[.]app +callgrind.out.* +pcviewer.cfg *~ *.a +*.la *.core *.moc *.o @@ -44,6 +47,7 @@ bin/Qt*.dll bin/assistant* bin/designer* bin/dumpcpp* +bin/duiviewer* bin/idc* bin/linguist* bin/lrelease* diff --git a/bin/snapshot b/bin/snapshot new file mode 100644 index 0000000..8cf3be2 --- /dev/null +++ b/bin/snapshot @@ -0,0 +1,333 @@ +#!/usr/bin/perl -w +###################################################################### +# +# +###################################################################### + +# use packages ------------------------------------------------------- +use File::Basename; +use File::Path; +use Cwd; +use Config; +use strict; + +my $targetPath = ""; +my $qtdir = $ENV{"QTDIR"}; + +my @files = ( + "3rdparty/easing/easing.cpp", + "corelib/tools/qeasingcurve.h", + "corelib/tools/qeasingcurve.cpp", + "corelib/animation/animation.pri", + "corelib/animation/qabstractanimation.cpp", + "corelib/animation/qabstractanimation.h", + "corelib/animation/qabstractanimation_p.h", + "corelib/animation/qvariantanimation.cpp", + "corelib/animation/qvariantanimation.h", + "corelib/animation/qanimationgroup.cpp", + "corelib/animation/qvariantanimation_p.h", + "corelib/animation/qanimationgroup.h", + "corelib/animation/qanimationgroup_p.h", + "corelib/animation/qparallelanimationgroup.cpp", + "corelib/animation/qparallelanimationgroup.h", + "corelib/animation/qparallelanimationgroup_p.h", + "corelib/animation/qpauseanimation.cpp", + "corelib/animation/qpauseanimation.h", + "corelib/animation/qpropertyanimation.cpp", + "corelib/animation/qpropertyanimation.h", + "corelib/animation/qpropertyanimation_p.h", + "corelib/animation/qsequentialanimationgroup.cpp", + "corelib/animation/qsequentialanimationgroup.h", + "corelib/animation/qsequentialanimationgroup_p.h", + "corelib/statemachine/statemachine.pri", + "corelib/statemachine/qabstractstate.cpp", + "corelib/statemachine/qabstractstate.h", + "corelib/statemachine/qabstractstate_p.h", + "corelib/statemachine/qabstracttransition.cpp", + "corelib/statemachine/qabstracttransition.h", + "corelib/statemachine/qabstracttransition_p.h", + "corelib/statemachine/qactionstate.h", + "corelib/statemachine/qactionstate_p.h", + "corelib/statemachine/qactionstate.cpp", + "corelib/statemachine/qanimationstate.cpp", + "corelib/statemachine/qanimationstate.h", + "corelib/statemachine/qboundevent_p.h", + "corelib/statemachine/qeventtransition.cpp", + "corelib/statemachine/qeventtransition.h", + "corelib/statemachine/qeventtransition_p.h", + "corelib/statemachine/qfinalstate.cpp", + "corelib/statemachine/qfinalstate.h", + "corelib/statemachine/qhistorystate.cpp", + "corelib/statemachine/qhistorystate.h", + "corelib/statemachine/qhistorystate_p.h", + "corelib/statemachine/qsignalevent.h", + "corelib/statemachine/qsignaleventgenerator_p.h", + "corelib/statemachine/qsignaltransition.cpp", + "corelib/statemachine/qsignaltransition.h", + "corelib/statemachine/qsignaltransition_p.h", + "corelib/statemachine/qstate.cpp", + "corelib/statemachine/qstate.h", + "corelib/statemachine/qstateaction.cpp", + "corelib/statemachine/qstateaction.h", + "corelib/statemachine/qstateaction_p.h", + "corelib/statemachine/qstatefinishedevent.h", + "corelib/statemachine/qstatefinishedtransition.cpp", + "corelib/statemachine/qstatefinishedtransition.h", + "corelib/statemachine/qstatemachine.cpp", + "corelib/statemachine/qstatemachine.h", + "corelib/statemachine/qstatemachine_p.h", + "corelib/statemachine/qstate_p.h", + "corelib/statemachine/qtransition.cpp", + "corelib/statemachine/qtransition.h", + "corelib/statemachine/qtransition_p.h", + "gui/statemachine/qkeyeventtransition.h", + "gui/statemachine/qkeyeventtransition.cpp", + "gui/statemachine/qbasickeyeventtransition.cpp", + "gui/statemachine/qbasickeyeventtransition_p.h", + "gui/statemachine/qbasicmouseeventtransition.cpp", + "gui/statemachine/qbasicmouseeventtransition_p.h", + "gui/statemachine/qguistatemachine.cpp", + "gui/statemachine/qkeyeventtransition.cpp", + "gui/statemachine/qkeyeventtransition.h", + "gui/statemachine/qmouseeventtransition.cpp", + "gui/statemachine/qmouseeventtransition.h", + "gui/statemachine/statemachine.pri", # needs special handling + ); + + +while ( @ARGV ) { + my $arg = shift @ARGV; + if ("$arg" eq "-to") { + $targetPath = shift @ARGV; + } +} + +if ($targetPath eq "") { + die("missing -to option"); +} + +my $projectXML = "$targetPath\\files.xml"; +open(OXML, "> " . $projectXML) || die "Could not open $projectXML for writing (no write permission?)"; + +print "COPYING SOURCES...\n"; +foreach my $files(@files) { + copyFile("$qtdir/src/$files","$targetPath/src"); +} +copyFile("$qtdir/doc/src/animation.qdoc","$targetPath/doc"); +copyFile("$qtdir/doc/src/statemachine.qdoc","$targetPath/doc"); +copyFile("$qtdir/src/3rdparty/easing/legal.qdoc","$targetPath/doc"); + +copyFile("$qtdir/doc/src/snippets/code/src_corelib_tools_qeasingcurve.cpp","$targetPath/doc/src/snippets/code"); + + +my %animation_examples = ( + easing => [ "easing.pro", + "main.cpp", + "window.cpp", + "window.h", + "animation.h", + "form.ui", + "images/qt-logo.png", + "resources.qrc"], + moveblocks => [ "moveblocks.pro", + "main.cpp" ], + animatedtiles => [ "animatedtiles.pro", + "animatedtiles.qrc", + "main.cpp", + "images/*"], + "sub-attaq" => ["sub-attaq.pro", + "animationmanager.cpp", + "animationmanager.h", + "boat.cpp", + "boat_p.h", + "boat.h", + "bomb.cpp", + "bomb.h", + "custompropertyanimation.h", + "custompropertyanimation_p.h", + "custompropertyanimation.cpp", + "graphicsscene.cpp", + "graphicsscene.h", + "main.cpp", + "mainwindow.cpp", + "mainwindow.h", + "pics/scalable/*", + "pics/big/*", + "pics/small/*", + "pics/welcome/*", + "pixmapitem.cpp", + "pixmapitem.h", + "subattaq.qrc", + "submarine.cpp", + "submarine.h", + "submarine_p.h", + "states.cpp", + "states.h", + "torpedo.cpp", + "torpedo.h"], + "stickman" => ["stickman.pro", + "main.cpp", + "animation.cpp", + "animation.h", + "graphicsview.cpp", + "graphicsview.h", + "lifecycle.cpp", + "lifecycle.h", + "node.cpp", + "node.h", + "stickman.cpp", + "stickman.h", + "animations/chilling", + "animations/dancing", + "animations/dead", + "animations/jumping"] + ); + +my $exDir; +print "COPYING EXAMPLES...\n"; +for $exDir ( keys %animation_examples ) { + print " $exDir...\n"; + my $i = 0; + for $i ( 0 .. $#{ $animation_examples{$exDir} } ) { + my $ex_file = $animation_examples{$exDir}[$i]; + + my $copyTargetPath; + my $glob = 0; + if (index($ex_file,"/") > 0) { + my($basefile, $fullPath) = fileparse("$targetPath/examples/$exDir/$ex_file"); + if ($basefile eq "*") { + $glob = 1; + } + mkpath "$fullPath", 0777 unless(-e "$fullPath"); + $copyTargetPath = "$fullPath"; + } else { + $copyTargetPath = "$targetPath/examples/$exDir"; + } + my $lastCh = substr($copyTargetPath, length($copyTargetPath) - 1, 1); + if ($lastCh eq "/" || $lastCh eq "\\") { + chop($copyTargetPath); + } + + if ($glob eq 1) { + my @globFiles = < $qtdir/examples/animation/$exDir/$ex_file >; + foreach my $globFile(@globFiles) { + copyFile("$globFile", "$copyTargetPath"); + } + } else { + copyFile("$qtdir/examples/animation/$exDir/$ex_file", "$copyTargetPath"); + } + } +} + +close OXML; +print("Finished!"); +###################################################################### +# Syntax: copyFile(gitfile, destinationPath) +# Params: gitfile, string, filename to create duplicate for +# destinationPath, string, destination name of duplicate +# +# Purpose: Copies to the solutions area. +# Returns: -- +# Warning: Dies if script cannot get write access. +###################################################################### +sub copyFile +{ + my ($gitfile, $destinationPath) = @_; + # Bi-directional synchronization + open( I, "< " . $gitfile ) || die "Could not open $gitfile for reading"; + local $/; + binmode I; + my $filecontents = ; + my ($baseFileName, $path, $ext) = fileparse($gitfile, qr/\.[^.]*/); + if ($ext eq ".h" or $ext eq ".cpp" or $ext eq ".qdoc") { + # both public and private classes + $filecontents =~s/QAbstractAnimation/QtAbstractAnimation/g; + $filecontents =~s/QAnimationGroup/QtAnimationGroup/g; + $filecontents =~s/QParallelAnimationGroup/QtParallelAnimationGroup/g; + $filecontents =~s/QSequentialAnimationGroup/QtSequentialAnimationGroup/g; + $filecontents =~s/QEasingCurve/QtEasingCurve/g; + $filecontents =~s/QVariantAnimation/QtVariantAnimation/g; + $filecontents =~s/QPropertyAnimation/QtPropertyAnimation/g; + $filecontents =~s/QItemAnimation/QtItemAnimation/g; + $filecontents =~s/QPauseAnimation/QtPauseAnimation/g; + $filecontents =~s/QAbstractState/QtAbstractState/g; + $filecontents =~s/QAbstractStateGroup/QtAbstractStateGroup/g; + $filecontents =~s/QAbstractTransition/QtAbstractTransition/g; + $filecontents =~s/QActionState/QtActionState/g; + $filecontents =~s/QAnimationState/QtAnimationState/g; + $filecontents =~s/QEventTransition/QtEventTransition/g; + $filecontents =~s/QFinalState/QtFinalState/g; + $filecontents =~s/QHistoryState/QtHistoryState/g; + $filecontents =~s/QParallelStateGroup/QtParallelStateGroup/g; + $filecontents =~s/QSignalEvent/QtSignalEvent/g; + $filecontents =~s/QSignalTransition/QtSignalTransition/g; + $filecontents =~s/QState/QtState/g; + $filecontents =~s/QStateAction/QtStateAction/g; + $filecontents =~s/QStateSetPropertyAction/QtStateSetPropertyAction/g; + $filecontents =~s/QStateInvokeMethodAction/QtStateInvokeMethodAction/g; + $filecontents =~s/QStateFinishedEvent/QtStateFinishedEvent/g; + $filecontents =~s/QStateFinishedTransition/QtStateFinishedTransition/g; + $filecontents =~s/QStateMachine/QtStateMachine/g; + $filecontents =~s/QTransition/QtTransition/g; + $filecontents =~s/QMouseEventTransition/QtMouseEventTransition/g; + $filecontents =~s/QKeyEventTransition/QtKeyEventTransition/g; + $filecontents =~s/QGraphicsWidget/QtGraphicsWidget/g; + $filecontents =~s/Q_CORE_EXPORT/Q_ANIMATION_EXPORT/g; + $filecontents =~s/Q_GUI_EXPORT/Q_ANIMATION_EXPORT/g; + $filecontents =~s/QBoundEvent/QtBoundEvent/g; + + $filecontents =~s/class Q_GUI_EXPORT/class/g; + $filecontents =~s/class Q_AUTOTEST_EXPORT/class/g; + + $filecontents =~s/(#\s*include\s+["])q/${1}qt/g; + + # moc stuff + $filecontents =~s/(#\s*include\s+["])moc_q/${1}moc_qt/g; + + $filecontents =~s/\\since 4\.[0-9]//g; + $filecontents =~s/\\ingroup [a-z]+//g; + + if (substr($filecontents, 0, 10) eq "/*********") { + my $endOfComment = index($filecontents, "*/"); + $filecontents = substr($filecontents, $endOfComment + 2); + } + } + if ($ext eq ".pri" ) { + $filecontents =~s/\$\$PWD\/q/\$\$PWD\/qt/g; + $filecontents =~s/animation\/q/\$\$PWD\/qt/g; + + # oooh such a hack this is + if ($baseFileName eq "statemachine") { + if (index($gitfile, "corelib/statemachine") >= 0) { + $baseFileName = "corelib_statemachine"; + } + if (index($gitfile, "gui/statemachine") >= 0) { + $baseFileName = "gui_statemachine"; + } + + } + + } + + if ($ext eq ".pro") { + $filecontents = "$filecontents\ninclude(../../src/qtanimationframework.pri)\n"; + } + close I; + + mkpath $destinationPath, 0777 unless(-e "$destinationPath"); + + if ($ext eq ".h" or $ext eq ".cpp" or $ext eq ".qdoc") { + $baseFileName =~s/^q/qt/g; + } + my $targetFile = "$destinationPath/$baseFileName$ext"; + open(O, "> " . $targetFile) || die "Could not open $targetFile for writing (no write permission?)"; + local $/; + binmode O; + print O $filecontents; + close O; + + my $xmlEntry = substr($targetFile, length($targetPath) + 1); + print "$xmlEntry\n"; + print OXML "$xmlEntry\n"; +} + diff --git a/bin/syncqt b/bin/syncqt index 7a9f1d3..8f797e8 100755 --- a/bin/syncqt +++ b/bin/syncqt @@ -23,6 +23,7 @@ my $basedir = $ENV{"QTDIR"}; $basedir =~ s=\\=/=g; my %modules = ( # path to module name map "QtGui" => "$basedir/src/gui", + "QtAnimation" => "$basedir/src/animation", "QtOpenGL" => "$basedir/src/opengl", "QtCore" => "$basedir/src/corelib", "QtXml" => "$basedir/src/xml", @@ -30,6 +31,7 @@ my %modules = ( # path to module name map "QtSql" => "$basedir/src/sql", "QtNetwork" => "$basedir/src/network", "QtSvg" => "$basedir/src/svg", + "QtDeclarative" => "$basedir/src/declarative", "QtScript" => "$basedir/src/script", "QtScriptTools" => "$basedir/src/scripttools", "Qt3Support" => "$basedir/src/qt3support", @@ -680,8 +682,10 @@ foreach (@modules_to_sync) { foreach(split(/ /, "$1")) { $master_contents .= "#include \n" if("$_" eq "core"); $master_contents .= "#include \n" if("$_" eq "gui"); + $master_contents .= "#include \n" if("$_" eq "experimental-animation"); $master_contents .= "#include \n" if("$_" eq "network"); $master_contents .= "#include \n" if("$_" eq "svg"); + $master_contents .= "#include \n" if("$_" eq "declarative"); $master_contents .= "#include \n" if("$_" eq "script"); $master_contents .= "#include \n" if("$_" eq "scripttools"); $master_contents .= "#include \n" if("$_" eq "qt3support"); diff --git a/configure b/configure index 2298d5b..420994c 100755 --- a/configure +++ b/configure @@ -600,6 +600,7 @@ CFG_RELEASE_QMAKE=no CFG_PHONON=auto CFG_PHONON_BACKEND=yes CFG_SVG=yes +CFG_DECLARATIVE=yes CFG_WEBKIT=auto # (yes|no|auto) CFG_GFX_AVAILABLE="linuxfb transformed qvfb vnc multiscreen" @@ -830,7 +831,7 @@ while [ "$#" -gt 0 ]; do VAL=no ;; #Qt style yes options - -incremental|-qvfb|-profile|-shared|-static|-sm|-xinerama|-xshape|-xinput|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-nis|-qdbus|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-qt3support|-debug-and-release|-exceptions|-cocoa|-universal|-prefix-install|-silent|-armfpa|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-ptmalloc|-xmlpatterns|-phonon|-phonon-backend|-svg|-webkit|-scripttools|-rpath|-force-pkg-config) + -incremental|-qvfb|-profile|-shared|-static|-sm|-xinerama|-xshape|-xinput|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-nis|-qdbus|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-qt3support|-debug-and-release|-exceptions|-cocoa|-universal|-prefix-install|-silent|-armfpa|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-ptmalloc|-xmlpatterns|-phonon|-phonon-backend|-svg|-declarative|-webkit|-scripttools|-rpath|-force-pkg-config) VAR=`echo $1 | sed "s,^-\(.*\),\1,"` VAL=yes ;; @@ -1724,6 +1725,17 @@ while [ "$#" -gt 0 ]; do UNKNOWN_OPT=yes fi fi + ;; + declarative) + if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then + CFG_DECLARATIVE="yes" + else + if [ "$VAL" = "no" ]; then + CFG_DECLARATIVE="no" + else + UNKNOWN_OPT=yes + fi + fi ;; webkit) if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then @@ -3066,7 +3078,7 @@ Usage: $relconf [-h] [-prefix ] [-prefix-install] [-bindir ] [-libdir [-no-phonon] [-phonon] [-no-phonon-backend] [-phonon-backend] [-no-openssl] [-openssl] [-openssl-linked] [-no-gtkstyle] [-gtkstyle] [-no-svg] [-svg] [-no-webkit] [-webkit] - [-no-scripttools] [-scripttools] + [-no-scripttools] [-scripttools] [-no-declarative] [-declarative] [additional platform specific options (see below)] @@ -3215,6 +3227,9 @@ fi -no-scripttools .... Do not build the QtScriptTools module. + -scripttools ....... Build the QtScriptTools module. + -no-declarative .....Do not build the declarative module. + + -declarative ....... Build the declarative module. + -platform target ... The operating system and compiler you are building on ($PLATFORM). @@ -5961,6 +5976,12 @@ else QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SVG" fi +if [ "$CFG_DECLARATIVE" = "yes" ]; then + QT_CONFIG="$QT_CONFIG declarative" +else + QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DECLARATIVE" +fi + if [ "$CFG_WEBKIT" = "auto" ]; then CFG_WEBKIT="$canBuildWebKit" fi @@ -6846,6 +6867,7 @@ echo "QtXmlPatterns module $CFG_XMLPATTERNS" echo "Phonon module ....... $CFG_PHONON" echo "SVG module .......... $CFG_SVG" echo "WebKit module ....... $CFG_WEBKIT" +echo "Declarative module .. $CFG_DECLARATIVE" echo "STL support ......... $CFG_STL" echo "PCH support ......... $CFG_PRECOMPILE" echo "MMX/3DNOW/SSE/SSE2.. ${CFG_MMX}/${CFG_3DNOW}/${CFG_SSE}/${CFG_SSE2}" diff --git a/configure.exe b/configure.exe index ff71f08..54e8a60 100644 Binary files a/configure.exe and b/configure.exe differ diff --git a/demos/boxes/boxes.pro b/demos/boxes/boxes.pro index 6c1a331..a7b19a3 100644 --- a/demos/boxes/boxes.pro +++ b/demos/boxes/boxes.pro @@ -11,7 +11,6 @@ INCLUDEPATH += . HEADERS += 3rdparty/fbm.h \ glbuffers.h \ glextensions.h \ - glshaders.h \ gltrianglemesh.h \ qtbox.h \ roundedbox.h \ @@ -21,7 +20,6 @@ HEADERS += 3rdparty/fbm.h \ SOURCES += 3rdparty/fbm.c \ glbuffers.cpp \ glextensions.cpp \ - glshaders.cpp \ main.cpp \ qtbox.cpp \ roundedbox.cpp \ diff --git a/demos/boxes/glextensions.cpp b/demos/boxes/glextensions.cpp index 59256a8..5f168b6 100644 --- a/demos/boxes/glextensions.cpp +++ b/demos/boxes/glextensions.cpp @@ -47,23 +47,6 @@ bool GLExtensionFunctions::resolve(const QGLContext *context) { bool ok = true; - RESOLVE_GL_FUNC(CreateShaderObjectARB) - RESOLVE_GL_FUNC(ShaderSourceARB) - RESOLVE_GL_FUNC(CompileShaderARB) - RESOLVE_GL_FUNC(GetObjectParameterivARB) - RESOLVE_GL_FUNC(DeleteObjectARB) - RESOLVE_GL_FUNC(GetInfoLogARB) - RESOLVE_GL_FUNC(CreateProgramObjectARB) - RESOLVE_GL_FUNC(AttachObjectARB) - RESOLVE_GL_FUNC(DetachObjectARB) - RESOLVE_GL_FUNC(LinkProgramARB) - RESOLVE_GL_FUNC(UseProgramObjectARB) - RESOLVE_GL_FUNC(GetUniformLocationARB) - RESOLVE_GL_FUNC(Uniform1iARB) - RESOLVE_GL_FUNC(Uniform1fARB) - RESOLVE_GL_FUNC(Uniform4fARB) - RESOLVE_GL_FUNC(UniformMatrix4fvARB) - RESOLVE_GL_FUNC(GenFramebuffersEXT) RESOLVE_GL_FUNC(GenRenderbuffersEXT) RESOLVE_GL_FUNC(BindRenderbufferEXT) @@ -88,26 +71,6 @@ bool GLExtensionFunctions::resolve(const QGLContext *context) return ok; } -bool GLExtensionFunctions::glslSupported() { - return CreateShaderObjectARB - && CreateShaderObjectARB - && ShaderSourceARB - && CompileShaderARB - && GetObjectParameterivARB - && DeleteObjectARB - && GetInfoLogARB - && CreateProgramObjectARB - && AttachObjectARB - && DetachObjectARB - && LinkProgramARB - && UseProgramObjectARB - && GetUniformLocationARB - && Uniform1iARB - && Uniform1fARB - && Uniform4fARB - && UniformMatrix4fvARB; -} - bool GLExtensionFunctions::fboSupported() { return GenFramebuffersEXT && GenRenderbuffersEXT diff --git a/demos/boxes/glextensions.h b/demos/boxes/glextensions.h index 74617d6..4755532 100644 --- a/demos/boxes/glextensions.h +++ b/demos/boxes/glextensions.h @@ -47,23 +47,6 @@ /* Functions resolved: -glCreateShaderObjectARB -glShaderSourceARB -glCompileShaderARB -glGetObjectParameterivARB -glDeleteObjectARB -glGetInfoLogARB -glCreateProgramObjectARB -glAttachObjectARB -glDetachObjectARB -glLinkProgramARB -glUseProgramObjectARB -glGetUniformLocationARB -glUniform1iARB -glUniform1fARB -glUniform4fARB -glUniformMatrix4fvARB - glGenFramebuffersEXT glGenRenderbuffersEXT glBindRenderbufferEXT @@ -136,39 +119,6 @@ typedef ptrdiff_t GLsizeiptr; #define GL_DEPTH_ATTACHMENT_EXT 0x8D00 #endif -#ifndef GL_ARB_vertex_shader -#define GL_VERTEX_SHADER_ARB 0x8B31 -#endif - -#ifndef GL_ARB_fragment_shader -#define GL_FRAGMENT_SHADER_ARB 0x8B30 -#endif - -#ifndef GL_ARB_shader_objects -typedef char GLcharARB; -typedef unsigned int GLhandleARB; -#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 -#define GL_OBJECT_LINK_STATUS_ARB 0x8B82 -#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 -#endif - -typedef GLhandleARB (APIENTRY *_glCreateShaderObjectARB) (GLenum); -typedef void (APIENTRY *_glShaderSourceARB) (GLhandleARB, GLuint, const GLcharARB**, GLint *); -typedef void (APIENTRY *_glCompileShaderARB) (GLhandleARB); -typedef void (APIENTRY *_glGetObjectParameterivARB) (GLhandleARB, GLenum, int *); -typedef void (APIENTRY *_glDeleteObjectARB) (GLhandleARB); -typedef void (APIENTRY *_glGetInfoLogARB) (GLhandleARB, GLsizei, GLsizei *, GLcharARB *); -typedef GLhandleARB (APIENTRY *_glCreateProgramObjectARB) (); -typedef void (APIENTRY *_glAttachObjectARB) (GLhandleARB, GLhandleARB); -typedef void (APIENTRY *_glDetachObjectARB) (GLhandleARB, GLhandleARB); -typedef void (APIENTRY *_glLinkProgramARB) (GLhandleARB); -typedef void (APIENTRY *_glUseProgramObjectARB) (GLhandleARB); -typedef GLint (APIENTRY *_glGetUniformLocationARB) (GLhandleARB, const GLcharARB *); -typedef void (APIENTRY *_glUniform1iARB) (GLint, GLint); -typedef void (APIENTRY *_glUniform1fARB) (GLint, GLfloat); -typedef void (APIENTRY *_glUniform4fARB) (GLint, GLfloat, GLfloat, GLfloat, GLfloat); -typedef void (APIENTRY *_glUniformMatrix4fvARB) (GLint, GLuint, GLboolean, const GLfloat *); - typedef void (APIENTRY *_glGenFramebuffersEXT) (GLsizei, GLuint *); typedef void (APIENTRY *_glGenRenderbuffersEXT) (GLsizei, GLuint *); typedef void (APIENTRY *_glBindRenderbufferEXT) (GLenum, GLuint); @@ -194,27 +144,9 @@ struct GLExtensionFunctions { bool resolve(const QGLContext *context); - bool glslSupported(); bool fboSupported(); bool openGL15Supported(); // the rest: multi-texture, 3D-texture, vertex buffer objects - _glCreateShaderObjectARB CreateShaderObjectARB; - _glShaderSourceARB ShaderSourceARB; - _glCompileShaderARB CompileShaderARB; - _glGetObjectParameterivARB GetObjectParameterivARB; - _glDeleteObjectARB DeleteObjectARB; - _glGetInfoLogARB GetInfoLogARB; - _glCreateProgramObjectARB CreateProgramObjectARB; - _glAttachObjectARB AttachObjectARB; - _glDetachObjectARB DetachObjectARB; - _glLinkProgramARB LinkProgramARB; - _glUseProgramObjectARB UseProgramObjectARB; - _glGetUniformLocationARB GetUniformLocationARB; - _glUniform1iARB Uniform1iARB; - _glUniform1fARB Uniform1fARB; - _glUniform4fARB Uniform4fARB; - _glUniformMatrix4fvARB UniformMatrix4fvARB; - _glGenFramebuffersEXT GenFramebuffersEXT; _glGenRenderbuffersEXT GenRenderbuffersEXT; _glBindRenderbufferEXT BindRenderbufferEXT; @@ -243,23 +175,6 @@ inline GLExtensionFunctions &getGLExtensionFunctions() return funcs; } -#define glCreateShaderObjectARB getGLExtensionFunctions().CreateShaderObjectARB -#define glShaderSourceARB getGLExtensionFunctions().ShaderSourceARB -#define glCompileShaderARB getGLExtensionFunctions().CompileShaderARB -#define glGetObjectParameterivARB getGLExtensionFunctions().GetObjectParameterivARB -#define glDeleteObjectARB getGLExtensionFunctions().DeleteObjectARB -#define glGetInfoLogARB getGLExtensionFunctions().GetInfoLogARB -#define glCreateProgramObjectARB getGLExtensionFunctions().CreateProgramObjectARB -#define glAttachObjectARB getGLExtensionFunctions().AttachObjectARB -#define glDetachObjectARB getGLExtensionFunctions().DetachObjectARB -#define glLinkProgramARB getGLExtensionFunctions().LinkProgramARB -#define glUseProgramObjectARB getGLExtensionFunctions().UseProgramObjectARB -#define glGetUniformLocationARB getGLExtensionFunctions().GetUniformLocationARB -#define glUniform1iARB getGLExtensionFunctions().Uniform1iARB -#define glUniform1fARB getGLExtensionFunctions().Uniform1fARB -#define glUniform4fARB getGLExtensionFunctions().Uniform4fARB -#define glUniformMatrix4fvARB getGLExtensionFunctions().UniformMatrix4fvARB - #define glGenFramebuffersEXT getGLExtensionFunctions().GenFramebuffersEXT #define glGenRenderbuffersEXT getGLExtensionFunctions().GenRenderbuffersEXT #define glBindRenderbufferEXT getGLExtensionFunctions().BindRenderbufferEXT diff --git a/demos/boxes/glshaders.cpp b/demos/boxes/glshaders.cpp deleted file mode 100644 index b6999a8..0000000 --- a/demos/boxes/glshaders.cpp +++ /dev/null @@ -1,266 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) -** -** This file is part of the demonstration applications of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain -** additional rights. These rights are described in the Nokia Qt LGPL -** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "glshaders.h" - -#define GLSHADERS_ASSERT_OPENGL(prefix, assertion, returnStatement) \ -if (m_failed || !(assertion)) { \ - if (!m_failed) qCritical(prefix ": The necessary OpenGL functions are not available."); \ - m_failed = true; \ - returnStatement; \ -} - - -GLShader::GLShader(const char *data, int size, GLenum shaderType) -: m_compileError(false), m_failed(false) -{ - GLSHADERS_ASSERT_OPENGL("GLShader::GLShader", - glCreateShaderObjectARB && glShaderSourceARB && glCompileShaderARB && glGetObjectParameterivARB, return) - - m_shader = glCreateShaderObjectARB(shaderType); - - GLint glSize = size; - glShaderSourceARB(m_shader, 1, &data, &glSize); - glCompileShaderARB(m_shader); - int status; - glGetObjectParameterivARB(m_shader, GL_OBJECT_COMPILE_STATUS_ARB, &status); - m_compileError = (status != 1); -} - -GLShader::GLShader(const QString& fileName, GLenum shaderType) - : m_compileError(false), m_failed(false) -{ - GLSHADERS_ASSERT_OPENGL("GLShader::GLShader", - glCreateShaderObjectARB && glShaderSourceARB && glCompileShaderARB && glGetObjectParameterivARB, return) - - m_shader = glCreateShaderObjectARB(shaderType); - - QFile file(fileName); - if (file.open(QIODevice::ReadOnly)) { - QByteArray bytes = file.readAll(); - GLint size = file.size(); - const char *p = bytes.data(); - file.close(); - glShaderSourceARB(m_shader, 1, &p, &size); - glCompileShaderARB(m_shader); - int status; - glGetObjectParameterivARB(m_shader, GL_OBJECT_COMPILE_STATUS_ARB, &status); - m_compileError = (status != 1); - } else { - m_compileError = true; - } -} - -GLShader::~GLShader() -{ - GLSHADERS_ASSERT_OPENGL("GLShader::~GLShader", glDeleteObjectARB, return) - - glDeleteObjectARB(m_shader); -} - -QString GLShader::log() -{ - GLSHADERS_ASSERT_OPENGL("GLShader::log", glGetObjectParameterivARB - && glGetInfoLogARB, return QLatin1String("GLSL not supported.")) - - int length; - glGetObjectParameterivARB(m_shader, GL_OBJECT_INFO_LOG_LENGTH_ARB, &length); - char *log = new char[length + 1]; - GLsizei glLength = length; - glGetInfoLogARB(m_shader, glLength, &glLength, log); - log[glLength] = '\0'; - QString result(log); - delete log; - return result; -} - -GLVertexShader::GLVertexShader(const char *data, int size) : GLShader(data, size, GL_VERTEX_SHADER_ARB) -{ -} - -GLVertexShader::GLVertexShader(const QString& fileName) : GLShader(fileName, GL_VERTEX_SHADER_ARB) -{ -} - -GLFragmentShader::GLFragmentShader(const char *data, int size) : GLShader(data, size, GL_FRAGMENT_SHADER_ARB) -{ -} - -GLFragmentShader::GLFragmentShader(const QString& fileName) : GLShader(fileName, GL_FRAGMENT_SHADER_ARB) -{ -} - -GLProgram::GLProgram() : m_linked(false), m_linkError(false), m_failed(false) -{ - GLSHADERS_ASSERT_OPENGL("GLProgram::GLProgram", glCreateProgramObjectARB, return) - - m_program = glCreateProgramObjectARB(); -} - -GLProgram::~GLProgram() -{ - GLSHADERS_ASSERT_OPENGL("GLProgram::~GLProgram", glDeleteObjectARB, return) - - glDeleteObjectARB(m_program); -} - -void GLProgram::attach(const GLShader &shader) -{ - GLSHADERS_ASSERT_OPENGL("GLProgram::attach", glAttachObjectARB, return) - - glAttachObjectARB(m_program, shader.m_shader); - m_linked = m_linkError = false; -} - -void GLProgram::detach(const GLShader &shader) -{ - GLSHADERS_ASSERT_OPENGL("GLProgram::detach", glDetachObjectARB, return) - - glDetachObjectARB(m_program, shader.m_shader); - m_linked = m_linkError = false; -} - -bool GLProgram::failed() -{ - if (m_failed || m_linkError) - return true; - - if (m_linked) - return false; - - GLSHADERS_ASSERT_OPENGL("GLProgram::failed", glLinkProgramARB && glGetObjectParameterivARB, return true) - - glLinkProgramARB(m_program); - int status; - glGetObjectParameterivARB(m_program, GL_OBJECT_LINK_STATUS_ARB, &status); - m_linkError = !(m_linked = (status == 1)); - return m_linkError; -} - -QString GLProgram::log() -{ - GLSHADERS_ASSERT_OPENGL("GLProgram::log", glGetObjectParameterivARB && glGetInfoLogARB, - return QLatin1String("Failed.")) - - int length; - glGetObjectParameterivARB(m_program, GL_OBJECT_INFO_LOG_LENGTH_ARB, &length); - char *log = new char[length + 1]; - GLsizei glLength = length; - glGetInfoLogARB(m_program, glLength, &glLength, log); - log[glLength] = '\0'; - QString result(log); - delete log; - return result; -} - -void GLProgram::bind() -{ - GLSHADERS_ASSERT_OPENGL("GLProgram::bind", glUseProgramObjectARB, return) - - if (!failed()) - glUseProgramObjectARB(m_program); -} - -void GLProgram::unbind() -{ - GLSHADERS_ASSERT_OPENGL("GLProgram::bind", glUseProgramObjectARB, return) - - glUseProgramObjectARB(0); -} - -bool GLProgram::hasParameter(const QString& name) -{ - GLSHADERS_ASSERT_OPENGL("GLProgram::hasParameter", glGetUniformLocationARB, return false) - - if (!failed()) { - QByteArray asciiName = name.toAscii(); - return -1 != glGetUniformLocationARB(m_program, asciiName.data()); - } - return false; -} - -void GLProgram::setInt(const QString& name, int value) -{ - GLSHADERS_ASSERT_OPENGL("GLProgram::setInt", glGetUniformLocationARB && glUniform1iARB, return) - - if (!failed()) { - QByteArray asciiName = name.toAscii(); - int loc = glGetUniformLocationARB(m_program, asciiName.data()); - glUniform1iARB(loc, value); - } -} - -void GLProgram::setFloat(const QString& name, float value) -{ - GLSHADERS_ASSERT_OPENGL("GLProgram::setFloat", glGetUniformLocationARB && glUniform1fARB, return) - - if (!failed()) { - QByteArray asciiName = name.toAscii(); - int loc = glGetUniformLocationARB(m_program, asciiName.data()); - glUniform1fARB(loc, value); - } -} - -void GLProgram::setColor(const QString& name, QRgb value) -{ - GLSHADERS_ASSERT_OPENGL("GLProgram::setColor", glGetUniformLocationARB && glUniform4fARB, return) - - //qDebug() << "Setting color" << name; - if (!failed()) { - QByteArray asciiName = name.toAscii(); - int loc = glGetUniformLocationARB(m_program, asciiName.data()); - //qDebug() << "Location of" << name << "is" << loc; - QColor color(value); - glUniform4fARB(loc, color.redF(), color.greenF(), color.blueF(), color.alphaF()); - } -} - -void GLProgram::setMatrix(const QString& name, const gfx::Matrix4x4f &mat) -{ - GLSHADERS_ASSERT_OPENGL("GLProgram::setMatrix", glGetUniformLocationARB && glUniformMatrix4fvARB, return) - - if (!failed()) { - QByteArray asciiName = name.toAscii(); - int loc = glGetUniformLocationARB(m_program, asciiName.data()); - //qDebug() << "Location of" << name << "is" << loc; - glUniformMatrix4fvARB(loc, 1, GL_FALSE, mat.bits()); - } -} \ No newline at end of file diff --git a/demos/boxes/glshaders.h b/demos/boxes/glshaders.h deleted file mode 100644 index 2b6209a..0000000 --- a/demos/boxes/glshaders.h +++ /dev/null @@ -1,108 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** Contact: Qt Software Information (qt-info@nokia.com) -** -** This file is part of the demonstration applications of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the either Technology Preview License Agreement or the -** Beta Release License Agreement. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain -** additional rights. These rights are described in the Nokia Qt LGPL -** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this -** package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at qt-sales@nokia.com. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef GLSHADERS_H -#define GLSHADERS_H - -//#include -#include "glextensions.h" - -#include -#include - -#include "vector.h" - -class GLShader -{ -public: - friend class GLProgram; - virtual ~GLShader(); - bool failed() const {return m_failed;} - QString log(); -protected: - GLShader(const char *data, int size, GLenum shaderType); - GLShader(const QString& fileName, GLenum shaderType); - - GLhandleARB m_shader; - bool m_compileError; - bool m_failed; -}; - -class GLVertexShader : public GLShader -{ -public: - GLVertexShader(const char *data, int size); - GLVertexShader(const QString& fileName); -}; - -class GLFragmentShader : public GLShader -{ -public: - GLFragmentShader(const char *data, int size); - GLFragmentShader(const QString& fileName); -}; - -class GLProgram -{ -public: - GLProgram(); - ~GLProgram(); - void attach(const GLShader &shader); - void detach(const GLShader &shader); - void bind(); - void unbind(); - bool failed(); - QString log(); - bool hasParameter(const QString& name); - // use program before setting values - void setInt(const QString& name, int value); - void setFloat(const QString& name, float value); - void setColor(const QString& name, QRgb value); - void setMatrix(const QString& name, const gfx::Matrix4x4f &mat); - // TODO: add a bunch of set-functions for different types. -private: - GLhandleARB m_program; - bool m_linked; - bool m_linkError; - bool m_failed; -}; - -#endif diff --git a/demos/boxes/scene.cpp b/demos/boxes/scene.cpp index 1040e17..5f1fe14 100644 --- a/demos/boxes/scene.cpp +++ b/demos/boxes/scene.cpp @@ -531,11 +531,11 @@ Scene::~Scene() if (texture) delete texture; if (m_mainCubemap) delete m_mainCubemap; - foreach (GLProgram *program, m_programs) + foreach (QGLShaderProgram *program, m_programs) if (program) delete program; if (m_vertexShader) delete m_vertexShader; - foreach (GLFragmentShader *shader, m_fragmentShaders) + foreach (QGLShader *shader, m_fragmentShaders) if (shader) delete shader; foreach (GLRenderTargetCube *rt, m_cubemaps) if (rt) delete rt; @@ -549,16 +549,18 @@ void Scene::initGL() { m_box = new GLRoundedBox(0.25f, 1.0f, 10); - m_vertexShader = new GLVertexShader(":/res/boxes/basic.vsh"); + m_vertexShader = new QGLShader(":/res/boxes/basic.vsh", QGLShader::VertexShader); QStringList list; list << ":/res/boxes/cubemap_posx.jpg" << ":/res/boxes/cubemap_negx.jpg" << ":/res/boxes/cubemap_posy.jpg" << ":/res/boxes/cubemap_negy.jpg" << ":/res/boxes/cubemap_posz.jpg" << ":/res/boxes/cubemap_negz.jpg"; m_environment = new GLTextureCube(list, qMin(1024, m_maxTextureSize)); - m_environmentShader = new GLFragmentShader(environmentShaderText, strlen(environmentShaderText)); - m_environmentProgram = new GLProgram; - m_environmentProgram->attach(*m_vertexShader); - m_environmentProgram->attach(*m_environmentShader); + m_environmentShader = new QGLShader(QGLShader::FragmentShader); + m_environmentShader->setSourceCode(environmentShaderText); + m_environmentProgram = new QGLShaderProgram; + m_environmentProgram->addShader(m_vertexShader); + m_environmentProgram->addShader(m_environmentShader); + m_environmentProgram->link(); const int NOISE_SIZE = 128; // for a different size, B and BM in fbm.c must also be changed m_noise = new GLTexture3D(NOISE_SIZE, NOISE_SIZE, NOISE_SIZE); @@ -610,19 +612,19 @@ void Scene::initGL() filter = QStringList("*.fsh"); files = QDir(":/res/boxes/").entryInfoList(filter, QDir::Files | QDir::Readable); foreach (QFileInfo file, files) { - GLProgram *program = new GLProgram; - GLFragmentShader* shader = new GLFragmentShader(file.absoluteFilePath()); + QGLShaderProgram *program = new QGLShaderProgram; + QGLShader* shader = new QGLShader(file.absoluteFilePath(), QGLShader::FragmentShader); // The program does not take ownership over the shaders, so store them in a vector so they can be deleted afterwards. - program->attach(*m_vertexShader); - program->attach(*shader); - if (program->failed()) { + program->addShader(m_vertexShader); + program->addShader(shader); + if (!program->link()) { qWarning("Failed to compile and link shader program"); qWarning("Vertex shader log:"); - qWarning() << m_vertexShader->log(); + qWarning() << m_vertexShader->errors(); qWarning() << "Fragment shader log ( file =" << file.absoluteFilePath() << "):"; - qWarning() << shader->log(); + qWarning() << shader->errors(); qWarning("Shader program log:"); - qWarning() << program->log(); + qWarning() << program->errors(); delete shader; delete program; @@ -633,13 +635,13 @@ void Scene::initGL() m_programs << program; m_renderOptions->addShader(file.baseName()); - program->bind(); - m_cubemaps << (program->hasParameter("env") ? new GLRenderTargetCube(qMin(256, m_maxTextureSize)) : 0); - program->unbind(); + program->enable(); + m_cubemaps << ((program->uniformLocation("env") != -1) ? new GLRenderTargetCube(qMin(256, m_maxTextureSize)) : 0); + program->disable(); } if (m_programs.size() == 0) - m_programs << new GLProgram; + m_programs << new QGLShaderProgram; m_renderOptions->emitParameterChanged(); } @@ -674,12 +676,12 @@ void Scene::renderBoxes(const gfx::Matrix4x4f &view, int excludeBox) // Don't render the environment if the environment texture can't be set for the correct sampler. if (glActiveTexture) { m_environment->bind(); - m_environmentProgram->bind(); - m_environmentProgram->setInt("tex", 0); - m_environmentProgram->setInt("env", 1); - m_environmentProgram->setInt("noise", 2); + m_environmentProgram->enable(); + m_environmentProgram->setUniformValue("tex", GLint(0)); + m_environmentProgram->setUniformValue("env", GLint(1)); + m_environmentProgram->setUniformValue("noise", GLint(2)); m_box->draw(); - m_environmentProgram->unbind(); + m_environmentProgram->disable(); m_environment->unbind(); } @@ -707,14 +709,18 @@ void Scene::renderBoxes(const gfx::Matrix4x4f &view, int excludeBox) else m_environment->bind(); } - m_programs[i]->bind(); - m_programs[i]->setInt("tex", 0); - m_programs[i]->setInt("env", 1); - m_programs[i]->setInt("noise", 2); - m_programs[i]->setMatrix("view", view); - m_programs[i]->setMatrix("invView", invView); + m_programs[i]->enable(); + m_programs[i]->setUniformValue("tex", GLint(0)); + m_programs[i]->setUniformValue("env", GLint(1)); + m_programs[i]->setUniformValue("noise", GLint(2)); + QMatrix4x4 mview; + QMatrix4x4 minvview; + memcpy(mview.data(), view.bits(), sizeof(float) * 16); + memcpy(minvview.data(), invView.bits(), sizeof(float) * 16); + m_programs[i]->setUniformValue("view", mview); + m_programs[i]->setUniformValue("invView", minvview); m_box->draw(); - m_programs[i]->unbind(); + m_programs[i]->disable(); if (glActiveTexture) { if (m_dynamicCubemap && m_cubemaps[i]) @@ -737,14 +743,18 @@ void Scene::renderBoxes(const gfx::Matrix4x4f &view, int excludeBox) m_environment->bind(); } - m_programs[m_currentShader]->bind(); - m_programs[m_currentShader]->setInt("tex", 0); - m_programs[m_currentShader]->setInt("env", 1); - m_programs[m_currentShader]->setInt("noise", 2); - m_programs[m_currentShader]->setMatrix("view", view); - m_programs[m_currentShader]->setMatrix("invView", invView); + m_programs[m_currentShader]->enable(); + m_programs[m_currentShader]->setUniformValue("tex", GLint(0)); + m_programs[m_currentShader]->setUniformValue("env", GLint(1)); + m_programs[m_currentShader]->setUniformValue("noise", GLint(2)); + QMatrix4x4 mview; + QMatrix4x4 minvview; + memcpy(mview.data(), view.bits(), sizeof(float) * 16); + memcpy(minvview.data(), invView.bits(), sizeof(float) * 16); + m_programs[m_currentShader]->setUniformValue("view", mview); + m_programs[m_currentShader]->setUniformValue("invView", minvview); m_box->draw(); - m_programs[m_currentShader]->unbind(); + m_programs[m_currentShader]->disable(); if (glActiveTexture) { if (m_dynamicCubemap) @@ -1021,20 +1031,20 @@ void Scene::toggleDynamicCubemap(int state) void Scene::setColorParameter(const QString &name, QRgb color) { // set the color in all programs - foreach (GLProgram *program, m_programs) { - program->bind(); - program->setColor(name, color); - program->unbind(); + foreach (QGLShaderProgram *program, m_programs) { + program->enable(); + program->setUniformValue(program->uniformLocation(name), QColor(color)); + program->disable(); } } void Scene::setFloatParameter(const QString &name, float value) { // set the color in all programs - foreach (GLProgram *program, m_programs) { - program->bind(); - program->setFloat(name, value); - program->unbind(); + foreach (QGLShaderProgram *program, m_programs) { + program->enable(); + program->setUniformValue(program->uniformLocation(name), value); + program->disable(); } } diff --git a/demos/boxes/scene.h b/demos/boxes/scene.h index 2db9317..c056739 100644 --- a/demos/boxes/scene.h +++ b/demos/boxes/scene.h @@ -53,7 +53,6 @@ #include "vector.h" #include "trackball.h" #include "glbuffers.h" -#include "glshaders.h" #include "qtbox.h" #define PI 3.14159265358979 @@ -231,11 +230,11 @@ private: GLTexture3D *m_noise; GLRenderTargetCube *m_mainCubemap; QVector m_cubemaps; - QVector m_programs; - GLVertexShader *m_vertexShader; - QVector m_fragmentShaders; - GLFragmentShader *m_environmentShader; - GLProgram *m_environmentProgram; + QVector m_programs; + QGLShader *m_vertexShader; + QVector m_fragmentShaders; + QGLShader *m_environmentShader; + QGLShaderProgram *m_environmentProgram; }; diff --git a/demos/declarative/calculator/CalcButton.qml b/demos/declarative/calculator/CalcButton.qml new file mode 100644 index 0000000..c925314 --- /dev/null +++ b/demos/declarative/calculator/CalcButton.qml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demos/declarative/calculator/calculator.js b/demos/declarative/calculator/calculator.js new file mode 100644 index 0000000..774b232 --- /dev/null +++ b/demos/declarative/calculator/calculator.js @@ -0,0 +1,87 @@ + +var curVal = 0; +var memory = 0; +var lastOp = ""; +var timer = 0; + +function disabled(op) { + if (op == "." && CurNum.text.toString().search(/\./) != -1) { + return true; + } else if (op == "Sqrt" && CurNum.text.toString().search(/-/) != -1) { + return true; + } else { + return false; + } +} + +function doOp(op) { + if (disabled(op)) { + return; + } + + if (op.toString().length==1 && ((op >= "0" && op <= "9") || op==".") ) { + if (CurNum.text.toString().length >= 14) + return; // No arbitrary length numbers + if (lastOp.toString().length == 1 && ((lastOp >= "0" && lastOp <= "9") || lastOp==".") ) { + CurNum.text = CurNum.text + op.toString(); + } else { + CurNum.text = op; + } + lastOp = op; + return; + } + lastOp = op; + + // Pending operations + if (CurrentOperation.text == "+") { + CurNum.text = Number(CurNum.text.valueOf()) + Number(curVal.valueOf()); + } else if (CurrentOperation.text == "-") { + CurNum.text = Number(curVal) - Number(CurNum.text.valueOf()); + } else if (CurrentOperation.text == "x") { + CurNum.text = Number(curVal) * Number(CurNum.text.valueOf()); + } else if (CurrentOperation.text == "/") { + CurNum.text = Number(Number(curVal) / Number(CurNum.text.valueOf())).toString(); + } else if (CurrentOperation.text == "=") { + } + + if (op == "+" || op == "-" || op == "x" || op == "/") { + CurrentOperation.text = op; + curVal = CurNum.text.valueOf(); + return; + } + curVal = 0; + CurrentOperation.text = ""; + + // Immediate operations + if (op == "1/x") { // reciprocal + CurNum.text = (1 / CurNum.text.valueOf()).toString(); + } else if (op == "^2") { // squared + CurNum.text = (CurNum.text.valueOf() * CurNum.text.valueOf()).toString(); + } else if (op == "Abs") { + CurNum.text = (Math.abs(CurNum.text.valueOf())).toString(); + } else if (op == "Int") { + CurNum.text = (Math.floor(CurNum.text.valueOf())).toString(); + } else if (op == "+/-") { // plus/minus + CurNum.text = (CurNum.text.valueOf() * -1).toString(); + } else if (op == "Sqrt") { // square root + CurNum.text = (Math.sqrt(CurNum.text.valueOf())).toString(); + } else if (op == "MC") { // memory clear + memory = 0; + } else if (op == "M+") { // memory increment + memory += CurNum.text.valueOf(); + } else if (op == "MR") { // memory recall + CurNum.text = memory.toString(); + } else if (op == "MS") { // memory set + memory = CurNum.text.valueOf(); + } else if (op == "Bksp") { + CurNum.text = CurNum.text.toString().slice(0, -1); + } else if (op == "C") { + CurNum.text = "0"; + } else if (op == "AC") { + curVal = 0; + memory = 0; + lastOp = ""; + CurNum.text ="0"; + } +} + diff --git a/demos/declarative/calculator/calculator.qml b/demos/declarative/calculator/calculator.qml new file mode 100644 index 0000000..4ada896 --- /dev/null +++ b/demos/declarative/calculator/calculator.qml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demos/declarative/mediabrowser/content/ScrollBar.qml b/demos/declarative/mediabrowser/content/ScrollBar.qml new file mode 100644 index 0000000..974f4d0 --- /dev/null +++ b/demos/declarative/mediabrowser/content/ScrollBar.qml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + diff --git a/demos/declarative/mediabrowser/content/Star.qml b/demos/declarative/mediabrowser/content/Star.qml new file mode 100644 index 0000000..1db29e8 --- /dev/null +++ b/demos/declarative/mediabrowser/content/Star.qml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demos/declarative/mediabrowser/content/pics/background.png b/demos/declarative/mediabrowser/content/pics/background.png new file mode 100644 index 0000000..5b37072 Binary files /dev/null and b/demos/declarative/mediabrowser/content/pics/background.png differ diff --git a/demos/declarative/mediabrowser/content/pics/button-pressed.png b/demos/declarative/mediabrowser/content/pics/button-pressed.png new file mode 100644 index 0000000..e434d32 Binary files /dev/null and b/demos/declarative/mediabrowser/content/pics/button-pressed.png differ diff --git a/demos/declarative/mediabrowser/content/pics/button.png b/demos/declarative/mediabrowser/content/pics/button.png new file mode 100644 index 0000000..56a63ce Binary files /dev/null and b/demos/declarative/mediabrowser/content/pics/button.png differ diff --git a/demos/declarative/mediabrowser/content/pics/ghns_star.png b/demos/declarative/mediabrowser/content/pics/ghns_star.png new file mode 100644 index 0000000..4ad43cc Binary files /dev/null and b/demos/declarative/mediabrowser/content/pics/ghns_star.png differ diff --git a/demos/declarative/mediabrowser/content/pics/reflection.png b/demos/declarative/mediabrowser/content/pics/reflection.png new file mode 100644 index 0000000..c143a48 Binary files /dev/null and b/demos/declarative/mediabrowser/content/pics/reflection.png differ diff --git a/demos/declarative/mediabrowser/content/pics/shadow-bottom.png b/demos/declarative/mediabrowser/content/pics/shadow-bottom.png new file mode 100644 index 0000000..523f6e7 Binary files /dev/null and b/demos/declarative/mediabrowser/content/pics/shadow-bottom.png differ diff --git a/demos/declarative/mediabrowser/content/pics/shadow-corner.png b/demos/declarative/mediabrowser/content/pics/shadow-corner.png new file mode 100644 index 0000000..ef8c856 Binary files /dev/null and b/demos/declarative/mediabrowser/content/pics/shadow-corner.png differ diff --git a/demos/declarative/mediabrowser/content/pics/shadow-right-screen.png b/demos/declarative/mediabrowser/content/pics/shadow-right-screen.png new file mode 100644 index 0000000..9856c4f Binary files /dev/null and b/demos/declarative/mediabrowser/content/pics/shadow-right-screen.png differ diff --git a/demos/declarative/mediabrowser/content/pics/shadow-right.png b/demos/declarative/mediabrowser/content/pics/shadow-right.png new file mode 100644 index 0000000..f534a35 Binary files /dev/null and b/demos/declarative/mediabrowser/content/pics/shadow-right.png differ diff --git a/demos/declarative/mediabrowser/dummydata/MoviesModel.qml b/demos/declarative/mediabrowser/dummydata/MoviesModel.qml new file mode 100644 index 0000000..87bca37 --- /dev/null +++ b/demos/declarative/mediabrowser/dummydata/MoviesModel.qml @@ -0,0 +1,38 @@ + + + Repoman + http://www.impawards.com/1984/posters/repo_man.jpg + Cult classic. Car repossession. Radiation. Plate O' Shrimp. + 2 + + + Monsters vs Aliens + http://www.impawards.com/2009/posters/monsters_vs_aliens_ver6.jpg + Love Monsters? Love Aliens? You're in luck. + 1 + + + Cruel Intentions + http://impawards.com/1999/posters/cruel_intentions_ver1.jpg + Modern-day update of Les Liaisons Dangereuses. Better because it has nothing to do with the French. + 3 + + + Lord of War + http://www.impawards.com/2005/posters/lord_of_war_ver2.jpg + There are over 500 million fire arms in worldwide circulation. That is one fire arm for every twelve people on the planet. The only question is how do we arm the other eleven? + 4 + + + The Devil's Advocate + http://impawards.com/1997/posters/devils_advocate_ver1.jpg + An ambitious your district attorney joins a powerful New York law firm headed by the devil. + 4 + + + Team America: World Police + http://impawards.com/2004/posters/team_america_world_police.jpg + Hey terrorist, terrorize this. + 1 + + diff --git a/demos/declarative/mediabrowser/mediabrowser.qml b/demos/declarative/mediabrowser/mediabrowser.qml new file mode 100644 index 0000000..df7baa9 --- /dev/null +++ b/demos/declarative/mediabrowser/mediabrowser.qml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demos/declarative/webbrowser/README b/demos/declarative/webbrowser/README new file mode 100644 index 0000000..a081e30 --- /dev/null +++ b/demos/declarative/webbrowser/README @@ -0,0 +1,5 @@ +For good performance, be sure to use disk cache for remote content: + + duiviewer -cache WebBrowser.qml + +Otherwise everything always re-loads over the network. diff --git a/demos/declarative/webbrowser/WebBrowser.qml b/demos/declarative/webbrowser/WebBrowser.qml new file mode 100644 index 0000000..08b94e3 --- /dev/null +++ b/demos/declarative/webbrowser/WebBrowser.qml @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demos/declarative/webbrowser/content/RectSoftShadow.qml b/demos/declarative/webbrowser/content/RectSoftShadow.qml new file mode 100644 index 0000000..0235842 --- /dev/null +++ b/demos/declarative/webbrowser/content/RectSoftShadow.qml @@ -0,0 +1,10 @@ + + + + + + diff --git a/demos/declarative/webbrowser/content/pics/addressbar-filled.png b/demos/declarative/webbrowser/content/pics/addressbar-filled.png new file mode 100644 index 0000000..c793a10 Binary files /dev/null and b/demos/declarative/webbrowser/content/pics/addressbar-filled.png differ diff --git a/demos/declarative/webbrowser/content/pics/addressbar-filled.sci b/demos/declarative/webbrowser/content/pics/addressbar-filled.sci new file mode 100644 index 0000000..464dbf5 --- /dev/null +++ b/demos/declarative/webbrowser/content/pics/addressbar-filled.sci @@ -0,0 +1,6 @@ +gridLeft: 7 +gridTop: 7 +gridBottom: 7 +gridRight: 7 +imageFile: addressbar-filled.png + diff --git a/demos/declarative/webbrowser/content/pics/addressbar.png b/demos/declarative/webbrowser/content/pics/addressbar.png new file mode 100644 index 0000000..9b8e2c9 Binary files /dev/null and b/demos/declarative/webbrowser/content/pics/addressbar.png differ diff --git a/demos/declarative/webbrowser/content/pics/addressbar.sci b/demos/declarative/webbrowser/content/pics/addressbar.sci new file mode 100644 index 0000000..23a2a19 --- /dev/null +++ b/demos/declarative/webbrowser/content/pics/addressbar.sci @@ -0,0 +1,6 @@ +gridLeft: 7 +gridTop: 7 +gridBottom: 7 +gridRight: 7 +imageFile: addressbar.png + diff --git a/demos/declarative/webbrowser/content/pics/back-disabled.png b/demos/declarative/webbrowser/content/pics/back-disabled.png new file mode 100644 index 0000000..0ca0701 Binary files /dev/null and b/demos/declarative/webbrowser/content/pics/back-disabled.png differ diff --git a/demos/declarative/webbrowser/content/pics/back.png b/demos/declarative/webbrowser/content/pics/back.png new file mode 100644 index 0000000..3e88a6c Binary files /dev/null and b/demos/declarative/webbrowser/content/pics/back.png differ diff --git a/demos/declarative/webbrowser/content/pics/footer.png b/demos/declarative/webbrowser/content/pics/footer.png new file mode 100644 index 0000000..f5fe95f Binary files /dev/null and b/demos/declarative/webbrowser/content/pics/footer.png differ diff --git a/demos/declarative/webbrowser/content/pics/footer.sci b/demos/declarative/webbrowser/content/pics/footer.sci new file mode 100644 index 0000000..de0ed04 --- /dev/null +++ b/demos/declarative/webbrowser/content/pics/footer.sci @@ -0,0 +1,6 @@ +gridLeft: 10 +gridTop: 0 +gridBottom: 0 +gridRight: 10 +imageFile: footer.png + diff --git a/demos/declarative/webbrowser/content/pics/forward-disabled.png b/demos/declarative/webbrowser/content/pics/forward-disabled.png new file mode 100644 index 0000000..573aaa4 Binary files /dev/null and b/demos/declarative/webbrowser/content/pics/forward-disabled.png differ diff --git a/demos/declarative/webbrowser/content/pics/forward.png b/demos/declarative/webbrowser/content/pics/forward.png new file mode 100644 index 0000000..d4eb026 Binary files /dev/null and b/demos/declarative/webbrowser/content/pics/forward.png differ diff --git a/demos/declarative/webbrowser/content/pics/header.png b/demos/declarative/webbrowser/content/pics/header.png new file mode 100644 index 0000000..c4aff2e Binary files /dev/null and b/demos/declarative/webbrowser/content/pics/header.png differ diff --git a/demos/declarative/webbrowser/content/pics/reload.png b/demos/declarative/webbrowser/content/pics/reload.png new file mode 100644 index 0000000..fa4d033 Binary files /dev/null and b/demos/declarative/webbrowser/content/pics/reload.png differ diff --git a/demos/declarative/webbrowser/content/pics/softshadow-bottom.png b/demos/declarative/webbrowser/content/pics/softshadow-bottom.png new file mode 100644 index 0000000..59c1ba1 Binary files /dev/null and b/demos/declarative/webbrowser/content/pics/softshadow-bottom.png differ diff --git a/demos/declarative/webbrowser/content/pics/softshadow-left.png b/demos/declarative/webbrowser/content/pics/softshadow-left.png new file mode 100644 index 0000000..d08f5c7 Binary files /dev/null and b/demos/declarative/webbrowser/content/pics/softshadow-left.png differ diff --git a/demos/declarative/webbrowser/content/pics/softshadow-left.sci b/demos/declarative/webbrowser/content/pics/softshadow-left.sci new file mode 100644 index 0000000..82e38f8 --- /dev/null +++ b/demos/declarative/webbrowser/content/pics/softshadow-left.sci @@ -0,0 +1,5 @@ +gridLeft: 0 +gridTop: 16 +gridBottom: 16 +gridRight: 0 +imageFile: softshadow-left.png diff --git a/demos/declarative/webbrowser/content/pics/softshadow-right.png b/demos/declarative/webbrowser/content/pics/softshadow-right.png new file mode 100644 index 0000000..1bb29d5 Binary files /dev/null and b/demos/declarative/webbrowser/content/pics/softshadow-right.png differ diff --git a/demos/declarative/webbrowser/content/pics/softshadow-right.sci b/demos/declarative/webbrowser/content/pics/softshadow-right.sci new file mode 100644 index 0000000..e9494ed --- /dev/null +++ b/demos/declarative/webbrowser/content/pics/softshadow-right.sci @@ -0,0 +1,5 @@ +gridLeft: 0 +gridTop: 16 +gridBottom: 16 +gridRight: 0 +imageFile: softshadow-right.png diff --git a/demos/declarative/webbrowser/content/pics/softshadow-top.png b/demos/declarative/webbrowser/content/pics/softshadow-top.png new file mode 100644 index 0000000..ef86738 Binary files /dev/null and b/demos/declarative/webbrowser/content/pics/softshadow-top.png differ diff --git a/doc/src/animation.qdoc b/doc/src/animation.qdoc new file mode 100644 index 0000000..081660c --- /dev/null +++ b/doc/src/animation.qdoc @@ -0,0 +1,365 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Contact: Qt Software Information (qt-info@nokia.com) +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the either Technology Preview License Agreement or the +** Beta Release License Agreement. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain +** additional rights. These rights are described in the Nokia Qt LGPL +** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this +** package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \page animation.html + \title The Animation Framework + \ingroup architecture + \ingroup animation + \brief An overview of the Animation Framework + + \keyword Animation + + The animation framework is part of the Kinetic project, and aims + to provide an easy way for creating animated and smooth GUI's. By + animating Qt properties, the framework provides great freedom for + animating widgets and other \l{QObject}s. The framework can also + be used with the Graphics View framework. + + In this overview, we explain the basics of its architecture. We + also show examples of the most common techniques that the + framework allows for animating QObjects and graphics items. + + \tableofcontents + + \section1 The Animation Architecture + + We will in this section take a high-level look at the animation + framework's architecture and how it is used to animate Qt + properties. + + The animation framework foundation consists of the base class + QAbstractAnimation, and its two subclasses QVariantAnimation and + QAnimationGroup. QAbstractAnimation is the ancestor of all + animations. It represents basic properties that are common for all + animations in the framework; notably, the ability to start, stop, + and pause an animation. It is also receives the time change + notifications. + + The animation framework further provides the QPropertyAnimation + class, which inherits QVariantAnimation and performs animation of + a Qt property, which is part of Qt's \l{Meta-Object + System}{meta-object system}. The class performs an interpolation + over the property using an easing curve. So when you want to + animate a value, you can declare it as a property and make your + class a QObject. Note that this gives us great freedom in + animating already existing widgets and other \l{QObject}s. + + Complex animations can be constructed by building a tree structure + of \l{QAbstractAnimation}s. The tree is built by using + \l{QAnimationGroup}s, which function as containers for other + animations. Note also that the groups are subclasses of + QAbstractAnimation, so groups can themselves contain other groups. + + The animation framework can be used on its own, but is also + designed to be part of the state machine framework (See the + \l{The State Machine Framework}{state machine framework} for an + introduction to the Qt state machine). The state machine provides + a special state that can play an animation. A QState can also set + properties when the state is entered or exited, and this special + animation state will interpolate between these values when given a + QPropertyAnimation. We will look more closely at this later. + + Behind the scenes, the animations are controlled by a global + timer, which sends \l{QAbstractAnimation::updateCurrentTime()}{updates} to + all animations that are playing. + + For detailed descriptions of the classes' function and roles in + the framework, please look up their class descriptions. + + \section1 Animating Qt Properties + + As mentioned in the previous section, the QPropertyAnimation class + can interpolate over Qt properties. It is this class that should + be used for animation of values; in fact, its superclass, + QVariantAnimation, is an abstract class, and cannot be used + directly. + + A major reason we chose to animate Qt properties is that it + presents us with freedom to animate already existing classes in + the Qt API. Notably, the QWidget class (which we can also embed in + a QGraphicsView) has properties for its bounds, colors, etc. + Let's look at a small example: + + \code + QPushButton button("Animated Button"); + button.show(); + + QPropertyAnimation animation(&button, "geometry"); + animation.setDuration(10000); + animation.setStartValue(QRect(0, 0, 100, 30)); + animation.setEndValue(QRect(250, 250, 100, 30)); + + animation.start(); + \endcode + + This code will move \c button from the top left corner of the + screen to the position (250, 250). + + The example above will do a linear interpolation between the + start and end value. It is also possible to set values + situated between the start and end value. The interpolation + will then go by these points. + + \code + QPushButton button("Animated Button"); + button.show(); + + QPropertyAnimation animation(&button, "geometry"); + animation.setDuration(10000); + + animation.setKeyValueAt(0, QRect(0, 0, 100, 30)); + animation.setKeyValueAt(0.8, QRect(250, 250, 100, 30)); + animation.setKeyValueAt(1, QRect(0, 0, 100, 30)); + + animation.start(); + \endcode + + In this example, the animation will take the button to (250, 250) + in 8 seconds, and then move it back to its original position in + the remaining 2 seconds. The movement will be linearly + interpolated between these points. + + You also have the possibility to animate values of a QObject + that is not declared as a Qt property. The only requirement is + that this value has a setter. You can then subclass the class + containing the value and declare a property that uses this setter. + Note that all Qt properties requires a getter, so you will need to + provide a getter yourself if this is not defined. + + \code + class MyGraphicsRectItem : public QObject, public QGraphicsRectItem + { + Q_OBJECT + Q_PROPERTY(QRectF geometry READ geometry WRITE setGeometry) + }; + \endcode + + In the above code example, we subclass QGraphicsRectItem and + define a geometry property. We can now animate the widgets + geometry even if QGraphicsRectItem does not provide the geometry + property. + + For a general introduction to the Qt property system, see its + \l{Qt's Property System}{overview}. + + \section1 Animations and the Graphics View Framework + + When you want to animate \l{QGraphicsItem}s, you also use + QPropertyAnimation. But, unfortunetly, QGraphicsItem does not + inherit QObject. A good solution is to subclass the graphics item + you wish to animate. This class will then also inherit QObject. + This way, QPropertyAnimation can be used for \l{QGraphicsItem}s. + The example below shows how this is done. Another possibility is + to inherit QGraphicsWidget, which already is a QObject. + + \code + class Pixmap : public QObject, public QGraphicsPixmapItem + { + Q_OBJECT + Q_PROPERTY(QPointF pos READ pos WRITE setPos) + ... + \endcode + + As described in the previous section, we need to define + properties that we wish to animate. + + Note that QObject must be the first class inherited as the + meta-object system demands this. + + \warning The QItemAnimation class, which was initially intended + for animating \l{QGraphicsItem}s may be deprecated or removed from + the animation framework. + + \omit (need something about the list of animations). \endomit + + \section1 Easing Curves + + As mentioned, QPropertyAnimation performs an interpolation between + the start and end property value. In addition to adding more key + values to the animation, you can also use an easing curve. Easing + curves describe a function that controls how the speed of the + interpolation between 0 and 1 should be, and are useful if you + want to control the speed of an animation without changing the + path of the interpolation. + + \code + QPushButton button("Animated Button"); + button.show(); + + QPropertyAnimation animation(&button, "geometry"); + animation.setDuration(3000); + animation.setStartValue(QRect(0, 0, 100, 30)); + animation.setEndValue(QRect(250, 250, 100, 30)); + + animation.setEasingCurve(QEasingCurve::OutBounce); + + animation.start(); + \endcode + + Here the animation will follow a curve that makes it bounce like a + ball as if it was dropped from the start to the end position. + QEasingCurve has a large collection of curves for you to choose + from. These are defined by the QEasingCurve::Type enum. If you are + in need of another curve, you can also implement one yourself, and + register it with QEasingCurve. + + \omit Drop this for the first Lab release + (Example of custom easing curve (without the actual impl of + the function I expect) + \endomit + + \section1 Putting Animations Together + + An application will often contain more than one animation. For + instance, you might want to move more than one graphics item + simultaneously or move them in sequence after each other. + + The subclasses of QAnimationGroup (QSequentialAnimationGroup and + QParallelAnimationGroup) are containers for other animations so + that these animations can be animated either in sequence or + parallel. The QAnimationGroup is an example of an animation that + does not animate properties, but it gets notified of time changes + periodically. This enables it to forward those time changes to its + contained animations, and thereby controlling when its animations + are played. + + Let's look at code examples that use both + QSequentialAnimationGroup and QParallelAnimationGroup, starting + off with the latter. + + \code + QPushButton *bonnie = new QPushButton("Bonnie"); + bonnie.show(); + + QPushButton *clyde = new QPushButton("Clyde"); + clyde.show(); + + QPropertyAnimation *anim1 = new QPropertyAnimation(bonnie, "geometry"); + // Set up anim1 + + QPropertyAnimation *anim2 = new QPropertyAnimation(clyde, "geometry"); + // Set up anim2 + + QParallelAnimationGroup *group = new QParallelAnimationGroup; + group->addAnimation(anim1); + group->addAnimation(anim2); + + group->start(); + \endcode + + A parallel group plays more than one animation at the same time. + Calling its \l{QAbstractAnimation::}{start()} function will start + all animations it governs. + + \code + QPushButton button("Animated Button"); + button.show(); + + QPropertyAnimation anim1(&button, "geometry"); + anim1.setDuration(3000); + anim1.setStartValue(QRect(0, 0, 100, 30)); + anim1.setEndValue(QRect(500, 500, 100, 30)); + + QPropertyAnimation anim2(&button, "geometry"); + anim2.setDuration(3000); + anim2.setStartValue(QRect(500, 500, 100, 30)); + anim2.setEndValue(QRect(1000, 500, 100, 30)); + + QSequentialAnimationGroup group; + + group.addAnimation(&anim1); + group.addAnimation(&anim2); + + group.start(); + \endcode + + As you no doubt have guessed, QSequentialAnimationGroup plays + its animations in sequence. It starts the next animation in + the list after the previous is finished. + + Since an animation group is an animation itself, you can add + it to another group. This way, you can build a tree structure + of animations which specifies when the animations are played + in relation to each other. + + \section1 Animations and States + + When using a \l{The State Machine Framework}{state machine}, we + have a special state, QAnimationState, that will play one or more + animations. + + The QState::addAnimatedTransition() convenience function lets you + associate an animation to a state transition. The function will + create the QAnimationState for you, and insert it into the state + machine. We also have the possibility to associate properties with + the states rather than setting the start and end values ourselves. + Below is a complete code example that animates the geometry of a + QPushButton. + + \code + QPushButton *button = new QPushButton("Animated Button"); + button->show(); + + QStateMachine *machine = new QStateMachine; + + QState *state1 = new QState(machine->rootState()); + state1->setPropertyOnEntry(button, "geometry", + QRect(0, 0, 100, 30)); + machine->setInitialState(state1); + + QState *state2 = new QState(machine->rootState()); + state2->setPropertyOnEntry(button, "geometry", + QRect(250, 250, 100, 30)); + + state1->addAnimatedTransition(button, SIGNAL(clicked()), state2, + new QPropertyAnimation(button, "geometry")); + state2->addAnimatedTransition(button, SIGNAL(clicked()), state1, + new QPropertyAnimation(button, "geometry")); + + machine->start(); + \endcode + + For a more comprehensive example of how to use the state machine + framework for animations, see the states example (it lives in the + \c{examples/animation/states} directory). +*/ + diff --git a/doc/src/declarative/anchor-layout.qdoc b/doc/src/declarative/anchor-layout.qdoc new file mode 100644 index 0000000..9647a72 --- /dev/null +++ b/doc/src/declarative/anchor-layout.qdoc @@ -0,0 +1,68 @@ +/*! +\page anchor-layout.html +\target anchor-layout +\title Anchor-based Layout + +In additional to the more traditional Fx layouts \l {xmlGridLayout}{GridLayout}, \l {xmlHorizontalLayout}{HorizontalLayout}, and \l {xmlVerticalLayout}{VerticalLayout}, QML also provides a way to layout items using the concept of anchors. Each visual Fx item can be thought of as having a set of 6 invisible "anchor lines": \e left, \e horizontalCenter, \e right, \e top, \e verticalCenter, and \e bottom. + +\image edges_qml.png + +The Fx anchoring system allows you to define relationships between the anchor lines of different items. For example, you can write: + +\code + + +\endcode + +In this case, the left edge of \e rect2 is bound to the right edge of rect1, producing the following: + +\image edge1.png + +The anchoring system also allows you to specify margins and offsets. Margins specify the amount of empty space to leave to the outside of an item, while offsets allow you to manipulate positioning using the center anchor lines. Note that margins specified using the anchor layout system only have meaning for anchors; they won't have any effect when using other layouts or absolute positioning. + +\image margins_qml.png + +The following example specifies a left margin: + +\code + + +\endcode + +In this case, a margin of 5 pixels is reserved to the left of \e rect2, producing the following: + +\image edge2.png + +You can specify multiple anchors. For example: + +\code + + +\endcode + +\image edge3.png + +By specifying multiple horizontal or vertical anchors you can control the size of an item. For example: + +\code + + + +\endcode + +\image edge4.png + +\section1 Limitations + +For performance reasons, you can only anchor an item to its siblings and direct parent. For example, the following anchor would be considered invalid and would produce a warning: + +\code + + + + + + +\endcode + +*/ diff --git a/doc/src/declarative/animation.qdoc b/doc/src/declarative/animation.qdoc new file mode 100644 index 0000000..a1ab44b --- /dev/null +++ b/doc/src/declarative/animation.qdoc @@ -0,0 +1,130 @@ +/*! +\page animation.html +\target animation +\title QML Animation + +QML supports three different forms of animation - basic property animation, +states and transitions and property behaviors. + +\section1 Property Animation + +Animation in QML is done by animating properties of objects. + +Any property of a recognizable type can be animated. Currently those types include: +\list +\o qreal +\o int +\o Most of QVariant's built-in types +\endlist + +Animations can also involve numerous properties on numerous objects. + +Other Features: +\list +\o Support for a large set of parameterized easing curves. (based on the Penner easing equations) +\o Animation synchronization +\endlist + +The simplest form of animation is using \c <NumericAnimation/> + +The following example creates a bouncing effect: +\code + + + + + + + + + + +\endcode + +\image propanim.gif + +\target states-transitions +\section1 States and Transitions + +\section2 States + +QML states describe user interface configurations, including: +\list +\o What UI elements are present +\o The properties of those elements (including how they behave) +\o What actions are available +\endlist + +A state can also be thought of as a set of batched changes from a default configuration. + +Examples of states in modern UI: +\list +\o A Contacts application has a 'View Contact' state and an 'Edit Contact' State. In the first state the information presented is static (using labels), and in the second it is editable (using editors). +\o A button has a pressed and unpressed state. When pressed the text moves down and to the right, and the button has a slightly darker appearance. +\endlist + +In QML: +\list +\o Any object can use states. +\o There is a default state. The default state can be explicitly set. +\o A state can affect other the properties of other objects, not just the object owning the state (and not just that object's children). +\endlist + +The following example shows a simple use of states. In the default state \c myrect is positioned at 0,0. In the 'moved' state it is positioned at 50,50. + +\code + + + + + + + + + +\endcode + +\section2 Transitions + +QML transitions describe animations to perform when state changes occur. + +For the previous example, a transition could describe how \c myrect moved from its initial position to its new position: + +\code + + + + + +\endcode + +QML transitions can use selectors to determine which state changes a transition should apply to: + +\code + +... + +\endcode + +Transitions can happen in parallel, in sequence, or in any combination of the two:; + +\code + + + + + + + + + + +\endcode + +\section1 Property Behaviors + +\todo Document. Should we remove property behaviour altogether? +*/ diff --git a/doc/src/declarative/basictypes.qdoc b/doc/src/declarative/basictypes.qdoc new file mode 100644 index 0000000..d6dae77 --- /dev/null +++ b/doc/src/declarative/basictypes.qdoc @@ -0,0 +1,387 @@ +/*! + \page basicxmltypes.html + \title Common QML Types + + QML uses a range of property types, which you will see + referenced throughout the element documentation. Almost all of them are + exactly what you would expect. + + \target basicxmlint + \raw HTML +
+
+ + +
int
+
+
+ \endraw + + ints are whole numbers - things like 0, 10 and -20. The possible int + values range from around -2000000000 to around 2000000000, although most + elements will only accept a reduced range (which they mention in their + documentation). + + int's must be specified using the plain old syntax you learned at school - + none of that scientific notation nonsense is supported. + + Setting ints looks like this: + \code + + \endcode + + \raw HTML +
+
+ \endraw + + \target basicxmlbool + \raw HTML +
+
+
+ + +
bool
+
+
+ \endraw + + bools are a binary true/false value, represented by the strings + "true" and "false" in XML. + + Setting bools looks like this: + \code + + \endcode + + \note Technically bool treats an empty string, "false" and "0" as false and + everything else as true. Seriously, though, use "true" and "false". + + \raw HTML +
+
+ \endraw + + \target basicxmlreal + \raw HTML +
+
+
+ + +
real
+
+
+ \endraw + + reals are numbers - either whole numbers like ints, or fractional numbers + like 1.2 and -29.8. + + Setting reals looks like this: + \code + + \endcode + + \note In QML all reals are stored in single precision, \l {http://en.wikipedia.org/wiki/IEEE_754}{IEEE floating point} format. + + \raw HTML +
+
+ \endraw + + \target basicxmlstring + \raw HTML +
+
+
+ + +
string
+
+
+ \endraw + + strings are free form text, like "hello world", "QML is cool" and + anything else you can think of. + + Setting a string looks like this: + \code + + \endcode + + \raw HTML +
+
+ \endraw + + \target basicxmlcolor + \raw HTML +
+
+
+ + +
color
+
+
+ \endraw + + Colors are most commonly specified as an \l {http://www.w3.org/TR/SVG/types.html#ColorKeywords}{SVG color name}. These names include colors like + "red", "green" and "lightsteelblue". + + If the color you want isn't part of this list, colors can also be specified + in hexidecimal triplets or quads that take the form \c "#RRGGBB" and + \c "#AARRGGBB" respectively. For example, the color red corresponds to a + triplet of \c "#FF0000" and a slightly transparent blue to a quad of + \c "#800000FF". + + Setting a color looks like this: + \code + + + + \endcode + + \raw HTML +
+
+ \endraw + + \target basicxmlpoint + \raw HTML +
+
+
+ + +
point
+
+
+ \endraw + + Points are specified in \c "x,y" format. + + Setting a point looks like this: + \code + + \endcode + + \raw HTML +
+
+ \endraw + + \target basicxmlsize + \raw HTML +
+
+
+ + +
size
+
+
+ \endraw + + Sizes are specified in \c "widthxheight" format. + + Setting a size looks like this: + \code + + \endcode + + \raw HTML +
+
+ \endraw + + \target basicxmlrectangle + \raw HTML +
+
+
+ + +
rectangle
+
+
+ \endraw + + Rectangles are specified in \c "x,y,widthxheight" format. + + Setting a rectangle looks like this: + \code + + \endcode + + \raw HTML +
+
+ \endraw + + \target basicxmldate + \raw HTML +
+
+
+ + +
date
+
+
+ \endraw + + Dates are specified in \c "YYYY-MM-DD" format. + + Setting a date looks like this: + \code + + \endcode + + \raw HTML +
+
+ \endraw + + \target basicxmltime + \raw HTML +
+
+
+ + +
time
+
+
+ \endraw + + Times are specified in \c "hh:mm:ss" format. + + Setting a time looks like this: + \code + + \endcode + + \raw HTML +
+
+ \endraw + + \target basicxmlfont + \raw HTML +
+
+
+ + +
font
+
+
+ \endraw + + The font type has components: + \list + \o string font.family + \o bool font.bold + \o bool font.italic + \o real font.size + \endlist + + Setting a font looks like this: + \code + + \endcode + + \raw HTML +
+
+ \endraw + + \target basicxmlaction + \raw HTML +
+
+
+ + +
action
+
+
+ \endraw + + The action type has all the properties of QAction, in particular: + \list + \o slot action.trigger - invoke the action + \o bool action.enabled - true if the action is enabled + \o string action.text - the text associated with the action + \endlist + + Actions are used like this: + + \code + + + + \endcode + + \raw HTML +
+
+ \endraw + + \target basicxmlany + \raw HTML +
+
+
+ + +
any
+
+
+ \endraw + + The any type can accept any basic type, object or list. Generally this + is only used in very special cases. The documentation for elements that + use the any type will explain the constraints in that particular case. + + \raw HTML +
+
+ \endraw + + \target basicxmllist + \raw HTML +
+
+
+ + +
Lists
+
+
+ \endraw + + While not technically a basic type, QML also supports lists of object + types. When used from QML, the engine automatically appends each value to the + list. + + For example, the \l {xmlItem}{Item} class has a children list property + that can be used like this: + \code + + + + + + + + \endcode + \c child1, \c child2 and \c child3 will all be added to the children list + in the order in which they appear. + \raw HTML +
+
+ \endraw +*/ diff --git a/doc/src/declarative/binding.qdoc b/doc/src/declarative/binding.qdoc new file mode 100644 index 0000000..b711a08 --- /dev/null +++ b/doc/src/declarative/binding.qdoc @@ -0,0 +1,110 @@ +/*! +\page binding.html +\title Data Binding +\target binding + +Data binding provides a declarative way of specifying the data associated with objects, as well as the relationship between data of different objects. For example, you could bind the text of a label to the value of a slider: as the value of the slider changed, the label would be automatically updated with the new value. + +Bindings are indicated in Qml through the use of brackets: \c {}. For example, the following produces two Rects of equal size (\c rect2 is bound to the size of \c rect1): +\code + + +\endcode + +There is also a special \c element, which is typically used to bind from the UI to the underlying UI model (see \l {Passing Data Between C++ and Qml} for an example of this). The bindings above could be expressed using the \c element as: + +\code + + +\endcode + +In addition to binding directly to a property, you can also bind to the results of expressions involving properties. For example: +\code + + +\endcode + +Relevant items can also be bound to the contents of a model - see \l ListView for an example of this. + +Data can be bound to C++ objects - see \l {C++ Data Binding}. +*/ + +/*! +\page qtbinding.html +\target qtbinding +\title C++ Data Binding + +The QML mechanisms of \l {Data Binding} can also be used to bind Qt C++ objects. + +The data binding framework is based on Qt's property system (see the Qt documentation for more details on this system). If a binding is meant to be dynamic (where changes in one object are reflected in another object), \c NOTIFY must be specified for the property being tracked. If \c NOTIFY is not specified, any binding to that property will be an 'intialization' binding (the tracking object will be updated only once with the initial value of the tracked object). + +Relevant items can also be bound to the contents of a Qt model. For example, ListView can make use of data from a QListModelInterface-derived model. (QListModelInterface is part of the next generation Model/View architecture being developed for Qt.) + + +\section1 Passing Data Between C++ and Qml + +Data binding provides one method of data transfer between C++ and Qml. + +For example, lets say you want to implement a slider in Qml that changes the screen brightness of the device it is running on. You would start by declaring a brightness property on your QObject-derived class: +\code +class MyScreen : public QObject +{ + Q_OBJECT +public: + MyScreen(QObject *parent=0); + + Q_PROPERTY(int brightness READ brightness WRITE setBrightness NOTIFY brightnessChanged); + int brightness() const; + void setBrightness(int b); + ... + +signals: + void brightnessChanged(); + +private: + int m_brightness; +}; + +int brightness() const +{ + return m_brightness; +} + +void setBrightness(int b) +{ + if (b != m_brightness) { + m_brightness = b; + emit brightnessChanged(); + + //set device brightness + ... + } +} +\endcode + +\note One important thing to keep in mind is that the changed signal should only be emitted when there is a real change ( \c b \c != \c m_brightness ), or you may get an infinite loop. + +Next, make an instance of this class visible to the Qml bind engine: +\code +QFxView *view = new QFxView; +view->setXml("MyUI.qml"); + +MyScreen *screen = new MyScreen; +QmlBindContext *ctxt = view->bindContext(); +ctxt->setProperty("screen", screen); + +view->execute(); +\endcode + +\note Bindings must be made after setXml() but before execute(). + +Finally, in Qml you can make the appropriate bindings, so in \c "MyUI.qml": + +\code + + +\endcode + +The \l QBindableMap class provides a convenient way to make data visible to the bind engine. + +*/ diff --git a/doc/src/declarative/components.qdoc b/doc/src/declarative/components.qdoc new file mode 100644 index 0000000..b5c5ae7 --- /dev/null +++ b/doc/src/declarative/components.qdoc @@ -0,0 +1,74 @@ +/*! +\page components.html +\target components +\title Components + +A \b component is a reusable, encapsulated Qml element with a well-defined interface. + +Writing and using components allows you to: +\list +\o Reuse sections of Qml without copy-and-paste. +\o Have consistent Look and Feel between different parts of your UI. +\o Create new Qml elements without writing a new C++ class. (See \l {cppitem}{Creating Qml elements in C++}) +\endlist + +Components are placed in \e .qml files, allowing \e to then be used as a tag elsewhere. For example, if you have a Slider.qml file, you can then use \c to place a slider. + +Components may be collected into \l {qmlmodules}{modules}. + +\section1 Example: Creating a MyButton Component + +This example describes how to create a component from an existing snippet of Qml. + +Assume you have an existing UI with a single 'Save' button, defined as follows: + +\code + + + + +\endcode + +For the next release, you plan to add 'Cancel' and 'Reset' buttons. Rather than copying and pasting the above markup, you can create a component: + +\list 1 +\o Create a file called MyButton.qml, and copy the relevant Qml snippet into that file. +\o Make some minor changes to define the component's interface: + +\code + + + + + + +\endcode + +The \a label property and \a click signal that were added effectively become part of the 'public API' of the MyButton component. In a similar manner, the Text and MouseRegion elements become invisible to anyone using the component. Note that the Text element now binds in its data from \a label, and the MouseRegion emits a generic signal. + +\o The component can now be used elsewhere as MyButton: + +\code + +... + +... + +\endcode + +\endlist + +\section1 Placing .qml Files + +Component files should be placed in specific locations in order to be found by the Qml engine: + +\list +\o the run directory +\o the run directory + "/qml" +\o the directory of the Qml you are running +\o the directory of the Qml you are running + "/qml" +\endlist + +In the future library-like directories will be defined (in the meantime the first two options above effectively serve this purpose). + +*/ diff --git a/doc/src/declarative/cppitem.qdoc b/doc/src/declarative/cppitem.qdoc new file mode 100644 index 0000000..959bc6d --- /dev/null +++ b/doc/src/declarative/cppitem.qdoc @@ -0,0 +1,127 @@ +/*! +\page cppitem.html +\target cppitem +\title C++ Components + +\section1 Making a C++ object available in QML + +In QML, XML tags and attributes correspond to Qt objects and properties. Thus, any Qt object +can potentially be used as an element in QML. More specifically, to make an object available in QML, +it should: +\list +\o Be a subclass of QObject. +\o Provide a default constructor. +\o Declare Q_PROPERTYs. +\o Be registered via the QML_DECLARE_TYPE and QML_DEFINE_TYPE macros. +\endlist + +\section2 Declaring Q_PROPERTYs +\target properties + +Properties of QObject subclasses are available as properties in QML. +Like any QObject, these properties are defined by the Q_PROPERTY +macro in the header file. + +Properties should have a NOTIFY function if they can change dynamically and +if any useful response could be made to them changing in another object. Almost +all properties will thus need a NOTIFY function. + +\code + Q_PROPERTY(qreal scale READ scale WRITE setScale NOTIFY scaleChanged); + qreal scale() const; + void setScale(qreal); + ... + signals: void scaleChanged(); +\endcode + +The property types currently supported by QML are: +\list +\o int +\o qreal +\o QString +\o QColor +\o QDate, QTime, and QDateTime +\o QSize and QSizeF +\o QPoint and QPointF +\o QRect and QRectF +\o QPixmap +\o QIcon +\o enums registered with Q_ENUMS +\o flags registered with Q_FLAGS +\o QVariant +\o QObject* (or subclass) +\endlist + +Custom property types that provide string-to-type conversion can be used as well, by: +\list +\o Registering them as a metatype (Q_DECLARE_METATYPE() and qRegisterMetaType()) +\o Registering a string-to-type convertor function (QML::addCustomStringConvertor()). +\endlist + +\section2 Registering your type +\target register + +In order for your type to be usable in QML, you must register it: + +\code +QML_DECLARE_TYPE(TypeName); +QML_DEFINE_TYPE(TypeName,QmlName); +\endcode + +These macros make the C++ \e TypeName available from the declarative markup language under the name \e QmlName. +Of course there's nothing stopping you using the same name for both the C++ and the QML name! + +For example: +\code +QML_DECLARE_TYPE(MyCircle); +QML_DEFINE_TYPE(MyCircle,Circle); +\endcode +would make the \e MyCircle class accessable though the \c tag in QML. + + +\section1 Creating a new 'Fx' item in C++ + +You can create a new type of 'Fx' item by: +\list 1 +\o Creating a subclass of QFxItem, +\o Adding Q_PROPERTYs appropriate for your item (see \l {properties}{Properties}), +\o Reimplementing the relevant paint functions, +\o Registering the type with the QML_DECLARE_TYPE and QML_DEFINE_TYPE macros (see \l {register}{Register}). +\endlist + +\section2 Creating a subclass of QFxItem + +To add a new type, you first must add a new C++ class derived from QFxItem. +You may of course extend existing QFxItem subclasses. + +One existing subclass is QFxPainted, which provides +a simple cached-image painting model. + +\section2 Reimplementing paint functions + +Two alternative painters are available, offering +different levels of performance and functionality: +QPainter, GLPainter. + +You can choose to subclass QFxPainted rather than QFxItem, +and then implement the virtual method: + +\code + void paint(QPainter *painter); +\endcode + +This paints into an offscreen pixmap which is then painted to the display (transformed, +etc. as needed). The cost of this offscreen pixmap should be carefully considered, as +should the specific performance of the painting done in the paint function. + +If you require more control, subclass QFxItem instead. +QFxItem subclasses must implement both simple software canvas painting +and GL painting: +\list +\o \c QFxItem::paintContents(QPainter &) for the simple software canvas, +\o \c QFxItem::paintGLContents(GLPainter &) for OpenGL. +\endlist + +See the documentation of those functions for detailed subclassing notes. + +*/ diff --git a/doc/src/declarative/effects.qdoc b/doc/src/declarative/effects.qdoc new file mode 100644 index 0000000..c7cd2f6 --- /dev/null +++ b/doc/src/declarative/effects.qdoc @@ -0,0 +1,31 @@ +/*! +\page effects.html +\target effects +\title Visual Effects + + +\section1 Basic Effects + +These effects are currently supported by all canvas backends. + +\list +\o Scaling (\l Item \bold scale property) +\o Opacity (\l Item \bold opacity property) +\o Z-Axis Rotation (\l Item \bold rotation property) +\endlist + +\section1 Advanced Effects + +These effects are currently only supported by the OpenGL canvas backend. Support for other +backends may be added if the performance can be made acceptable. + +\list +\o X/Y-Axis Rotation (see \l Transform) +\o \l Shadow +\o \l Blur +\o \l Reflection +\o \l Highlights +\o \l Particles +\endlist + +*/ diff --git a/doc/src/declarative/elements.qdoc b/doc/src/declarative/elements.qdoc new file mode 100644 index 0000000..076ef13 --- /dev/null +++ b/doc/src/declarative/elements.qdoc @@ -0,0 +1,128 @@ +/*! +\page elements.html +\target elements +\title Qml Elements + +The following table lists the Qml elements provided by the Qt Declarative module. + +\bold {Standard Qt Declarative Elements} + +\table +\header +\o \bold {States} +\o \bold {Animation and Transitions} +\o \bold {Utility} +\row + +\o +\list +\o \l StateGroup +\o \l SetProperty +\o \l SetProperties +\o \l ParentChange +\o \l RunScript +\endlist + +\o +\list +\o \l NumericAnimation +\o \l ColorAnimation +\o \l VariantAnimation +\o \l PauseAnimation +\o \l SequentialAnimation +\o \l ParallelAnimation +\o \l SetPropertyAction +\o \l Transition +\o \l Behaviour +\o \l Follow +\endlist + +\o +\list +\o \l Script +\o \l Bind +\o \l Connection +\o \l ListModel +\o \l DateTimeFormatter +\endlist +\endtable + +\bold {Fluid UI Primitives} + +\table +\header +\o \bold {Basic Items} +\o \bold {Utility} +\o \bold {Widgets} + +\row +\o +\list +\o \l Item +\o \l Image +\o \l Text +\o \l TextEdit +\o \l Rect +\o \l MouseRegion +\o \l KeyActions +\o \l AnimatedImage +\endlist + +\o +\list +\o \l Repeater +\o \l Content +\o \l FocusPanel +\o \l FocusRealm +\o \l KeyProxy +\o \l ComponentInstance +\endlist + +\o +\list +\o \l Flickable +\o \l Flipable +\o \l WebView +\endlist + +\header +\o \bold {Views} +\o \bold {Layouts} +\o \bold {Effects} + +\row +\o + +\target xmlViews +\list +\o \l ListView +\o \l GridView +\o \l PathView + \list + \o \l Path + \endlist +\endlist + +\o +\list +\o \l VerticalLayout +\o \l HorizontalLayout +\o \l GridLayout +\endlist + +\o +\list +\o \l Shadow +\o \l Reflection +\o \l Blur +\o \l Highlight +\o \l Particles + \list + \o \l ParticleMotionLinear + \o \l ParticleMotionGravity + \o \l ParticleMotionWander + \endlist +\endlist +\endtable + +*/ diff --git a/doc/src/declarative/examples.qdoc b/doc/src/declarative/examples.qdoc new file mode 100644 index 0000000..17fda4d --- /dev/null +++ b/doc/src/declarative/examples.qdoc @@ -0,0 +1,32 @@ +/*! +\page qmlexamples.html +\target qmlexamples +\title QML Examples + +A viewer application is included that allows you to quickly explore many of the +examples. It has some useful options, revealed by: + +\code + bin/duiviewer -help +\endcode + +There are several illustrative XML examples available. From your build +directory, + +\code + bin/duiviewer $QT_SOURCE_DIR/examples/declarative/mediabrowser/mediabrowser.qml +\endcode + +Many other simple demos can be found under the \c examples/declarative sub +directory. Some can be run directly using the viewer like those above, and +others require you to build and run an executable. + +Finally, check out the \l {tutorial} to learn a little more about writing your +own QML-based applications. + +\note When running applications that only use the Fluid UI atoms under the +software rasterizer, a simple canvas backend is used by default. To use +Graphics View instead, set \c QML_USE_GRAPHICSVIEW=1. + + +*/ diff --git a/doc/src/declarative/focus.qdoc b/doc/src/declarative/focus.qdoc new file mode 100644 index 0000000..e0d4ca3 --- /dev/null +++ b/doc/src/declarative/focus.qdoc @@ -0,0 +1,248 @@ +/*! +\target qmlfocus +\page qmlfocus.html +\title Fluid UI Keyboard Focus + +When a key is pressed or released, a key event is generated and delivered to the +focused fluid UI \l Item. To facilitate the construction of reusable components +and to address some of the cases unique to fluid UIs, the fluid UI atoms add a +"realm" based extension to Qt's traditional keyboard focus model. + +\section1 Key Handling Overview + +When the user presses or releases a key, the following occurs: +\list 1 +\o Qt receives the key action and generates a key event. +\o If the Qt widget containing the fluid UI scene has focus, the key event is delivered to the fluid UI scene. Otherwise, regular Qt key handling continues. +\o The key event is delivered by the scene to the fluid UI \l Item with \e {active focus}. If no fluid UI \l Item has \e {active focus}, the key event is \l {QEvent::ignore()}{ignored} and regular Qt key handling continues. +\o If the fluid UI \l Item with \e {active focus} accepts the key event, propagation stops. Otherwise the event is "bubbled up", by recursively passing it to each \l Item's parent until either the event is accepted, or the root \l Item is reached. + +If the \c {} element in the following example has active focus and the \e A key is pressed, it will bubble up to the \c {}. However, pressing the \e B key will bubble up to the root item and thus subsequently be \l {QEvent::ignore()}{ignored}. + +\code + + + + + +\endcode + +\o If the root \l Item is reached, the key event is \l {QEvent::ignore()}{ignored} and regular Qt key handling continues. + +\endlist + +\section1 Querying the Active Focus Item + +Whether or not an \l Item has \e {active focus} can be queried through the +read-only property \c {Item::activeFocus}. For example, here we have a \l Text +element whose text is determined by whether or not it has \e {active focus}. + +\code + + {activeFocus?"I have active focus!":"I do not have active focus"} + +\endcode + +\section1 Acquiring Focus and Focus Realms + +An \l Item requests focus by setting the \c {Item::focus} property to true. + +For very simple cases simply setting the \c {Item::focus} property is sometimes +sufficient. If we run the following example in the \c duiviewer, we see that +the \c {} element has \e {active focus} and pressing the +\e A, \e B, or \e C keys modifies the text appropriately. + +\table +\row +\o \code + + + + MyText.text = "Key A was pressed" + MyText.text = "Key B was pressed" + MyText.text = "Key C was pressed" + + +\endcode +\o \image declarative-qmlfocus1.png +\endtable + +However, were the above example to be used as a self-contained component, this +simple use of the \c {Item::focus} property is no longer sufficient. The left +hand side of the following table shows what we would like to be able to write. +Here we create two instances of our previously defined component, and set the +second one to have focus. The intention is that when the \e A, \e B, or \e C +keys are pressed, the second of the two components receives the event and +reponds accordingly. + +\table +\row +\o \code + + + + +\endcode +\o \code + + + + + MyText.text = "Key A was pressed" + MyText.text = "Key B was pressed" + MyText.text = "Key C was pressed" + + + + + + MyText.text = "Key A was pressed" + MyText.text = "Key B was pressed" + MyText.text = "Key C was pressed" + + +\endcode +\endtable + +The right hand side of the example shows the expanded code - the equivalent QML +without the use of the component \c {}. From this, the problem is +evident - there are no less than three elements that have the \c {Item::focus} +property set to true. Ultimately only one element can have focus, and the +system has to decide which on. In this case the first appearance of the +\c {Item::focus} property being set to true on line 4 is selected, and the value +of \c {Item::focus} in the other two instances is reverted back to false. This +is exactly the opposite of what was wanted! + +This problem is fundamentally one of visibility. The \c {} +components each set their \c {} as focused as that is all they can +do - they don't know how they are going to be used, but they do know that when +they're in use their \c {} element is what needs focus. Likewise +the code that uses the \c {}'s sets the second \c {} as +focused because, while it doesn't know exactly how the \c {} is +implemented, it knows that it wants the second one to be focused. No one piece +of code knows everything about the other, which is exactly how it should be. + +To solve this problem - allowing components to care about what they know about +and ignore everything else - the fluid UI atoms introduce a concept known as a +\e {focus realm}. For existing Qt users, a \e {focus realm} is like an +automatic focus proxy. A \e {focus realm} is created using the \l FocusRealm +element. + +In the next example, a \l FocusRealm is added to the component, and the visual +result shown. + +\table +\row +\o \code + + + + + MyText.text = "Key A was pressed" + MyText.text = "Key B was pressed" + MyText.text = "Key C was pressed" + + + +\endcode +\o \image declarative-qmlfocus2.png +\endtable + +Conceptually \e {focus realms} are quite simple. +\list +\o Within each \e {focus realm} one element may have \c {Item::focus} set to true. If more than one \l Item has the \c {Item::focus} property set, the first is selected and the others are unset, just like when there are no \e {focus realms}. +\o When a \e {focus realm} receives \e {active focus}, the contained element with \c {Item::focus} set (if any) also gets \e {active focus}. If this element is +also a \l FocusRealm, the proxying behaviour continues. Both the +\e {focus realm} and the sub-focused item will have \c {Item::activeFocus} set. +\endlist + +So far the example has the second component statically selected. It is trivial +now to extend this component to make it clickable, and add it to the original +application. We still set a one of the widgets as focused by default, but from +then on clicking the either one gives it focus. + +\table +\row +\o \code + + + + +\endcode +\o \code + + + + +\endcode +\endtable + +\image declarative-qmlfocus3.png + +When a fluid UI atom explicitly relinquishes focus (by setting its +\c {Item::focus} property to false while it has \e {active focus}), the system +does not automatically select another element to receive focus. That is, it +is possible for there to be no currently \e {active focus}. + +\section1 Advanced uses of Focus Realms + +Focus realms allow focus to allocation to be easily partitioned. Several +fluid UI atoms use it to this effect. + +\l ListView, for example, is itself a focus realm. Generally this isn't +noticable as \l ListView doesn't usually have manually added visual children. +By being a focus realm, \l ListView can focus the current list item without +worrying about how that will effect the rest of the application. This allows +the current item delegate to react to key presses. + +This contrived example shows how this works. Pressing the \c Return key will +print the name of the current list item. + +\table +\row +\o \code + + + + + + Bob + John + Michael + + + + + + + + + + + +\endcode +\o \image declarative-qmlfocus4.png +\endtable + +While the example is simple, there's a lot going on behind the scenes. Whenever +the current item changes, the \l ListView sets the delegate's \c {Item::focus} +property. As the \l ListView is a \e {focus realm}, this doesn't effect the +rest of the application. However, if the \l ListView itself has +\e {active focus} this causes the delegate itself to receive \e {active focus}. +In this example, the root element of the delegate is also a \e {focus realm}, +which in turn gives \e {active focus} to the \c {} element that +actually performs the work of handling the \e {Return} key. + +All of the fluid UI view classes, such as \l PathView and \l GridView, behave +in a similar mannor to allow key handling in their respective delegates. + +\section1 Focus Panels + +Traditional UIs are composed of many top-level windows. Windows actually +perform two tasks - they act as the visual bounds for a widget, and they segment +focus. Each window has a separate focused widget, that becomes (to mix +terminologies) the \e {active focus} widget when the window is the active +window. + +### Focus panels do basically the same thing. +*/ diff --git a/doc/src/declarative/index.qdoc b/doc/src/declarative/index.qdoc new file mode 100644 index 0000000..22195ba --- /dev/null +++ b/doc/src/declarative/index.qdoc @@ -0,0 +1,51 @@ +/*! +\page qml.html +\title 'Qt Declarative' Documentation + +\target qtdeclarativemainpage + +The Qt Declarative module provides a user interface framework for building +highly dynamic and fluid applications. It is targetted at the sorts of user +interface and the sorts of hardware in embedded devices such as phones, media +players, and set-top boxes. It is also appropriate for highly custom desktop +user-interfaces, or special elements in more traditional desktop +user-interfaces. + +Building fluid applications is done declaratively, rather than procedurally. +That is, you specify \e what the UI should look like and how it should behave +in an XML-based format called QML instead of specifying step-by-step \e how to +build it in a language like C++ or JavaScript. Specifying a UI declaratively +does not just include the layout of the interface items, but also the way each +individual item looks and behaves and the overall flow of the application. + +Getting Started: +\list +\o \l {qmlexamples}{Examples} +\o \l {tutorial}{Tutorial} +\o \l {qmlforcpp}{Qt Declarative Markup Language For C++ Programmers} +\endlist + +Core Features: +\list +\o \l {binding}{Data Binding} +\o \l {anchor-layout}{Layout Anchors} +\o \l {animation}{Animation} +\o \l {effects}{Visual Effects} +\o \l {components}{Components} +\o \l {qmlmodules}{Modules} +\o \l {qmlfocus}{Keyboard Focus} +\endlist + +QML Reference: +\list +\o \l {elements}{Qml Elements} +\endlist + +C++ Reference: +\list +\o \l {qtprogrammers}{QML for Qt programmers} +\o \l {qtbinding}{C++ Data Binding} +\o \l {cppitem}{C++ Components} +\endlist + +*/ diff --git a/doc/src/declarative/measuring-performance.qdoc b/doc/src/declarative/measuring-performance.qdoc new file mode 100644 index 0000000..2387335 --- /dev/null +++ b/doc/src/declarative/measuring-performance.qdoc @@ -0,0 +1,81 @@ +/*! +\page optimizing-performance.html +\target optimizing-performance +\title Optimizing Performance + +The Qt Declarative module includes several tools to help measure performance. + +\section1 Performance Logging + +The declarative module uses the functionality provided by QPerformanceLog to log performance information. To see this information you can add the following to src.pro: + +\code +DEFINES += Q_ENABLE_PERFORMANCE_LOG +\endcode + +The performance information will be printed to screen on a QML application startup, or when running the viewer can be forced at anytime by pressing 'F3' on the keyboard. + +Additional logging can be enabled by adding the relevant categories to qfxperf.h and qfxperf.cpp. + +For example, to measure the cost of calculating the size of a text item, you would first define a TextSize category by adding the following: + +\code +//in qfxperf.h +Q_DECLARE_PERFORMANCE_METRIC(TextSize); + +//in qfxperf.cpp +Q_DEFINE_PERFORMANCE_METRIC(TextSize, "Text Size Calculation"); +\endcode + +You could then use this category in the code: + +\code +void QFxText::updateSize() +{ + QFxPerfTimer perf; + ... +} +\endcode + +Because there is no cost for a QFxPerfTimer when Q_ENABLE_PERFORMANCE_LOG is not defined, this line can persist in the code and be used to help detect performance bottlenecks and regressions. See the QPerformanceLog documentation for more information on this performance framework. + +\section1 FPS Measurements + +When running the viewer, pressing 'F2' on the keyboard while a QML program is running will cause information on cost-per-frame and frames-per-second (FPS) to be printed to the console. + +The information printed includes: +\list +\o \e repaint(): the total time spent painting. +\o \e paint(): the time spent by Qt painting. +\o \e timeBetweenFrames: the total time spent per frame. This number minus repaint() gives a good idea of how much time is spent on things besides painting. A high number here with a low number for repaint() indicates expensive calculations happening each frame. +\endlist + +\section1 Improving Performance + +The following tips can help decrease startup time for QML-based appications. + +\section2 Images + +\list +\o Use jpg instead of png for photo-like images. On the N810, this can save 150ms for a large (320x480) image. + +\o If you are configuring Qt, configure out any image plugins you don't plan to support (mng and svg are the most expensive). On the N810, this can save 75-100ms startup time. For example: + +\code +configure -no-libmng -no-svg -no-libtiff +\endcode + +\o In some cases running pngcrush, optipng, gifsicle or other similar tools can give some improvement. + +We are also investigating support for the loading of uncompressed images. This will provide opportunites to decrease startup time at the cost of increased storage space. +\endlist + +\section2 Fonts + +\list +\o Use qpf instead of ttf. When using multiple font sizes and weights on the N810, this can save 125ms startup time compared to a ttf 'clean' run, and 40-50ms on subsequent runs (ttfs are shared by open applications). +\endlist + +*/ + +*/ diff --git a/doc/src/declarative/modules.qdoc b/doc/src/declarative/modules.qdoc new file mode 100644 index 0000000..a97b5d7 --- /dev/null +++ b/doc/src/declarative/modules.qdoc @@ -0,0 +1,135 @@ +/*! +\page qmlmodules.html +\target qmlmodules +\title Modules of Components + +A \bold module is a collection of \l Components, in an XML namespace. + +Named component in QML may include a namespace qualification, +and standard XML namespace scoping is allowed. This allows +components to be provided by different modules (even if they otherwise +have the same name). + +To use a module: + +\code + + + ... + + +\endcode + +To create a modules: + +Create the components, with appropriate exported properties, signals, and slots (slots not currently supported), +in a single directory: + +\c Clock/Face.qml: ... + +\c Clock/Hand.qml: ... + +\c Clock/AnalogClock.qml: +\code + + + + + + ... + +\endcode + +Associate the directory with the namespace: + +\code + Qml::addNameSpacePath("http://nokia.com/qml/Clock", "/usr/lib/qml/Clock"); +\endcode + +Whole blocks of directories can be set: + +\code + Qml::addNameSpacePath("http://nokia.com/qml", "/usr/lib/qml"); +\endcode + +Associations can also be declared in the QML itself as a processing directive: + +\code + +\endcode + +*/ + +/* + +A kludgey way to do unexported components: + +Clock/AnalogClock.qml: + + + + + + ... + + + + + + +Another kludgey way (if _ handled specially)): + +Clock/_Hand.qml: ... + +A non-XML extension to improve syntax (XMLNS blows): + + + + + ... + + +*/ + +/* + IMPLEMENTATION + + Fully Qualifying names. CHOICE + IF QmlXmlParser qualifies names: + QmlXmlParser processes and tags to create a list of QmlModuleDependency. + It uses talks with the same creators as QmlCompiler::compileTypes to qualify the names. + Each of QmlMetaType, QmlCustomParser, and the QmlCompiledComponent::classFactory(ies) + must know fully-qualified names. + Pro: simpler + Con: may be harder to regenerate original XML if unqualified name is lost + Con: should QmlXmlParser "know" about the type creators? + ELSE + QmlXmlParser processes and tags to create a list of QmlModuleDependency, + which get stored in the QCompiledComponent. + When QmlCompiler::compileTypes creates components, module dependencies are used + to find the correct component - turning a name into a fully-qualified name + at "ref.className = type" before passing it to the creators. QmlMetaType::typeFunc must allow + qualified names even for builtin types, for example, QFxText might be + declared with the name Qt:Text. The QML::customParser must also understand + the concept, for example ListModel might be declared with the name Qt:ListModel. + QmlXmlParser::Object::typeName should be removed (used by DOM?), as redundant. + QmlXmlParser::Object::type will not define a fully qualified typename, just a name, + so types that are actually the same may have different type id because they + were named differently ("Qt:Text" vs "Text"). Need to check if this is a problem, + or whether QmlCompiler::output->types should be compressed. + + XML Namespaces. CHOICE CHOSEN + The advantage is that the namespaces could be fixed (per version), allowing proper DTDs, etc. + + Attached properties. PROBLEM + Type references in JavaScript can be either unqualified, in which case QmlMetaProperty + would have to FQ the type, which seems impossible, or qualified, the syntax + of which would be odd, like Qt.GridLayout.row or property["Qt:GridLayout.row"]. + + Access restrictions. PROBLEM + All use of the bind context must prevent direct access between objects that + are in different modules (i.e. between types with different module prefixes). + Maybe this is accomplishable just from having the right context tree.