From 12a5ddf456ba8549645a8cb28a8b4ed6197a14da Mon Sep 17 00:00:00 2001 From: Matthew Vogt Date: Mon, 30 Jan 2012 14:16:15 +1000 Subject: Import relevant source from Qt 4.8 Change-Id: I5078db4081d95290c54f39d3c0efc2fc2f62e6a6 --- demos/declarative/calculator/calculator.desktop | 11 + demos/declarative/calculator/calculator.pro | 39 + demos/declarative/calculator/calculator.qmlproject | 16 + demos/declarative/calculator/calculator.svg | 93 + demos/declarative/calculator/calculator64.png | Bin 0 -> 3400 bytes demos/declarative/calculator/calculator80.png | Bin 0 -> 4945 bytes .../calculator/calculator_harmattan.desktop | 11 + demos/declarative/calculator/main.cpp | 60 + .../qml/calculator/CalculatorCore/Button.qml | 80 + .../qml/calculator/CalculatorCore/Display.qml | 68 + .../qml/calculator/CalculatorCore/calculator.js | 91 + .../calculator/CalculatorCore/images/button-.png | Bin 0 -> 1288 bytes .../CalculatorCore/images/button-blue.png | Bin 0 -> 1565 bytes .../CalculatorCore/images/button-green.png | Bin 0 -> 1543 bytes .../CalculatorCore/images/button-purple.png | Bin 0 -> 1566 bytes .../CalculatorCore/images/button-red.png | Bin 0 -> 1586 bytes .../calculator/CalculatorCore/images/display.png | Bin 0 -> 998 bytes .../qml/calculator/CalculatorCore/qmldir | 2 + .../calculator/qml/calculator/calculator.qml | 162 + demos/declarative/declarative.pro | 15 + demos/declarative/demos.qmlproject | 16 + demos/declarative/flickr/flickr.desktop | 11 + demos/declarative/flickr/flickr.pro | 39 + demos/declarative/flickr/flickr.qmlproject | 16 + demos/declarative/flickr/flickr.svg | 93 + demos/declarative/flickr/flickr64.png | Bin 0 -> 3400 bytes demos/declarative/flickr/flickr80.png | Bin 0 -> 4945 bytes demos/declarative/flickr/flickr_harmattan.desktop | 11 + demos/declarative/flickr/main.cpp | 54 + .../flickr/qml/flickr/common/Progress.qml | 73 + .../flickr/qml/flickr/common/RssModel.qml | 66 + .../flickr/qml/flickr/common/ScrollBar.qml | 81 + .../flickr/qml/flickr/common/Slider.qml | 91 + demos/declarative/flickr/qml/flickr/common/qmldir | 10 + demos/declarative/flickr/qml/flickr/flickr-90.qml | 52 + demos/declarative/flickr/qml/flickr/flickr.qml | 125 + .../flickr/qml/flickr/mobile/Button.qml | 79 + .../flickr/qml/flickr/mobile/GridDelegate.qml | 111 + .../flickr/qml/flickr/mobile/ImageDetails.qml | 186 + .../flickr/qml/flickr/mobile/ListDelegate.qml | 64 + .../flickr/qml/flickr/mobile/TitleBar.qml | 128 + .../flickr/qml/flickr/mobile/ToolBar.qml | 69 + .../flickr/qml/flickr/mobile/images/gloss.png | Bin 0 -> 1236 bytes .../flickr/qml/flickr/mobile/images/lineedit.png | Bin 0 -> 1415 bytes .../flickr/qml/flickr/mobile/images/lineedit.sci | 5 + .../flickr/qml/flickr/mobile/images/quit.png | Bin 0 -> 2369 bytes .../flickr/qml/flickr/mobile/images/stripes.png | Bin 0 -> 257 bytes .../flickr/qml/flickr/mobile/images/titlebar.png | Bin 0 -> 1436 bytes .../flickr/qml/flickr/mobile/images/titlebar.sci | 5 + .../flickr/qml/flickr/mobile/images/toolbutton.png | Bin 0 -> 2550 bytes .../flickr/qml/flickr/mobile/images/toolbutton.sci | 5 + demos/declarative/minehunt/README | 6 + demos/declarative/minehunt/main.cpp | 62 + demos/declarative/minehunt/minehunt.cpp | 221 + demos/declarative/minehunt/minehunt.h | 129 + demos/declarative/minehunt/minehunt.pro | 48 + demos/declarative/minehunt/minehunt.qmlproject | 16 + demos/declarative/minehunt/minehunt.qrc | 19 + .../qml/minehunt/MinehuntCore/Explosion.qml | 65 + .../minehunt/qml/minehunt/MinehuntCore/Tile.qml | 128 + .../qml/minehunt/MinehuntCore/pics/back.png | Bin 0 -> 558 bytes .../qml/minehunt/MinehuntCore/pics/background.png | Bin 0 -> 313930 bytes .../qml/minehunt/MinehuntCore/pics/bomb-color.png | Bin 0 -> 284 bytes .../qml/minehunt/MinehuntCore/pics/bomb.png | Bin 0 -> 535 bytes .../qml/minehunt/MinehuntCore/pics/face-sad.png | Bin 0 -> 14844 bytes .../minehunt/MinehuntCore/pics/face-smile-big.png | Bin 0 -> 13810 bytes .../qml/minehunt/MinehuntCore/pics/face-smile.png | Bin 0 -> 15408 bytes .../qml/minehunt/MinehuntCore/pics/flag-color.png | Bin 0 -> 219 bytes .../qml/minehunt/MinehuntCore/pics/flag.png | Bin 0 -> 196 bytes .../qml/minehunt/MinehuntCore/pics/front.png | Bin 0 -> 580 bytes .../qml/minehunt/MinehuntCore/pics/quit.png | Bin 0 -> 583 bytes .../qml/minehunt/MinehuntCore/pics/star.png | Bin 0 -> 2677 bytes .../declarative/minehunt/qml/minehunt/minehunt.qml | 112 + demos/declarative/photoviewer/main.cpp | 54 + demos/declarative/photoviewer/photoviewer.desktop | 11 + demos/declarative/photoviewer/photoviewer.pro | 39 + .../declarative/photoviewer/photoviewer.qmlproject | 16 + demos/declarative/photoviewer/photoviewer.svg | 93 + demos/declarative/photoviewer/photoviewer64.png | Bin 0 -> 3400 bytes demos/declarative/photoviewer/photoviewer80.png | Bin 0 -> 4945 bytes .../photoviewer/photoviewer_harmattan.desktop | 11 + .../photoviewer/PhotoViewerCore/AlbumDelegate.qml | 146 + .../photoviewer/PhotoViewerCore/BusyIndicator.qml | 50 + .../qml/photoviewer/PhotoViewerCore/Button.qml | 72 + .../photoviewer/PhotoViewerCore/EditableButton.qml | 86 + .../photoviewer/PhotoViewerCore/PhotoDelegate.qml | 188 + .../photoviewer/PhotoViewerCore/ProgressBar.qml | 57 + .../qml/photoviewer/PhotoViewerCore/RssModel.qml | 54 + .../qml/photoviewer/PhotoViewerCore/Tag.qml | 91 + .../PhotoViewerCore/images/box-shadow.png | Bin 0 -> 588 bytes .../photoviewer/PhotoViewerCore/images/busy.png | Bin 0 -> 2629 bytes .../PhotoViewerCore/images/cardboard.png | Bin 0 -> 8844 bytes .../qml/photoviewer/PhotoViewerCore/qmldir | 8 + .../photoviewer/PhotoViewerCore/script/script.js | 27 + .../photoviewer/qml/photoviewer/i18n/base.ts | 30 + .../photoviewer/qml/photoviewer/i18n/qml_fr.qm | Bin 0 -> 268 bytes .../photoviewer/qml/photoviewer/i18n/qml_fr.ts | 30 + .../photoviewer/qml/photoviewer/photoviewer.qml | 110 + demos/declarative/rssnews/main.cpp | 54 + .../rssnews/qml/rssnews/content/BusyIndicator.qml | 53 + .../qml/rssnews/content/CategoryDelegate.qml | 82 + .../rssnews/qml/rssnews/content/NewsDelegate.qml | 71 + .../rssnews/qml/rssnews/content/RssFeeds.qml | 59 + .../rssnews/qml/rssnews/content/ScrollBar.qml | 107 + .../rssnews/qml/rssnews/content/images/busy.png | Bin 0 -> 2629 bytes .../qml/rssnews/content/images/scrollbar.png | Bin 0 -> 161 bytes demos/declarative/rssnews/qml/rssnews/rssnews.qml | 111 + demos/declarative/rssnews/rssnews.desktop | 11 + demos/declarative/rssnews/rssnews.pro | 39 + demos/declarative/rssnews/rssnews.qmlproject | 16 + demos/declarative/rssnews/rssnews.svg | 93 + demos/declarative/rssnews/rssnews64.png | Bin 0 -> 3400 bytes demos/declarative/rssnews/rssnews80.png | Bin 0 -> 4945 bytes .../declarative/rssnews/rssnews_harmattan.desktop | 11 + demos/declarative/samegame/main.cpp | 54 + .../qml/samegame/SamegameCore/BoomBlock.qml | 109 + .../samegame/qml/samegame/SamegameCore/Button.qml | 75 + .../samegame/qml/samegame/SamegameCore/Dialog.qml | 77 + .../qml/samegame/SamegameCore/pics/background.png | Bin 0 -> 313930 bytes .../qml/samegame/SamegameCore/pics/blueStar.png | Bin 0 -> 278 bytes .../qml/samegame/SamegameCore/pics/blueStone.png | Bin 0 -> 3054 bytes .../qml/samegame/SamegameCore/pics/greenStar.png | Bin 0 -> 273 bytes .../qml/samegame/SamegameCore/pics/greenStone.png | Bin 0 -> 2932 bytes .../qml/samegame/SamegameCore/pics/redStar.png | Bin 0 -> 274 bytes .../qml/samegame/SamegameCore/pics/redStone.png | Bin 0 -> 2902 bytes .../qml/samegame/SamegameCore/pics/star.png | Bin 0 -> 262 bytes .../qml/samegame/SamegameCore/pics/yellowStone.png | Bin 0 -> 3056 bytes .../samegame/qml/samegame/SamegameCore/qmldir | 3 + .../samegame/qml/samegame/SamegameCore/samegame.js | 288 + .../samegame/qml/samegame/highscores/README | 1 + .../qml/samegame/highscores/score_data.xml | 2 + .../qml/samegame/highscores/score_style.xsl | 28 + .../samegame/qml/samegame/highscores/scores.php | 34 + .../declarative/samegame/qml/samegame/samegame.qml | 161 + demos/declarative/samegame/samegame.desktop | 11 + demos/declarative/samegame/samegame.pro | 39 + demos/declarative/samegame/samegame.qmlproject | 16 + demos/declarative/samegame/samegame.svg | 93 + demos/declarative/samegame/samegame64.png | Bin 0 -> 3400 bytes demos/declarative/samegame/samegame80.png | Bin 0 -> 4945 bytes .../samegame/samegame_harmattan.desktop | 11 + demos/declarative/snake/main.cpp | 54 + .../declarative/snake/qml/snake/content/Button.qml | 66 + .../declarative/snake/qml/snake/content/Cookie.qml | 93 + .../snake/qml/snake/content/HighScoreModel.qml | 139 + demos/declarative/snake/qml/snake/content/Link.qml | 128 + .../declarative/snake/qml/snake/content/Skull.qml | 62 + .../snake/qml/snake/content/pics/README | 1 + .../snake/qml/snake/content/pics/background.png | Bin 0 -> 144508 bytes .../snake/qml/snake/content/pics/blueStar.png | Bin 0 -> 272 bytes .../snake/qml/snake/content/pics/blueStone.png | Bin 0 -> 3139 bytes .../snake/qml/snake/content/pics/cookie.png | Bin 0 -> 2729 bytes .../snake/qml/snake/content/pics/eyes.svg | 118 + .../snake/qml/snake/content/pics/head.png | Bin 0 -> 3473 bytes .../snake/qml/snake/content/pics/head.svg | 134 + .../snake/qml/snake/content/pics/pause.png | Bin 0 -> 4327 bytes .../snake/qml/snake/content/pics/redStar.png | Bin 0 -> 273 bytes .../snake/qml/snake/content/pics/redStone.png | Bin 0 -> 3456 bytes .../snake/qml/snake/content/pics/skull.png | Bin 0 -> 2543 bytes .../snake/qml/snake/content/pics/snake.jpg | Bin 0 -> 663901 bytes .../snake/qml/snake/content/pics/star.png | Bin 0 -> 262 bytes .../snake/qml/snake/content/pics/stoneShadow.png | Bin 0 -> 1699 bytes .../snake/qml/snake/content/pics/yellowStar.png | Bin 0 -> 276 bytes .../snake/qml/snake/content/pics/yellowStone.png | Bin 0 -> 2667 bytes demos/declarative/snake/qml/snake/content/snake.js | 316 + demos/declarative/snake/qml/snake/snake.qml | 272 + demos/declarative/snake/snake.desktop | 11 + demos/declarative/snake/snake.pro | 39 + demos/declarative/snake/snake.qmlproject | 16 + demos/declarative/snake/snake.svg | 93 + demos/declarative/snake/snake64.png | Bin 0 -> 3400 bytes demos/declarative/snake/snake80.png | Bin 0 -> 4945 bytes demos/declarative/snake/snake_harmattan.desktop | 11 + demos/declarative/twitter/main.cpp | 54 + .../twitter/qml/twitter/TwitterCore/Button.qml | 90 + .../qml/twitter/TwitterCore/FatDelegate.qml | 105 + .../twitter/qml/twitter/TwitterCore/Input.qml | 65 + .../twitter/qml/twitter/TwitterCore/Loading.qml | 49 + .../qml/twitter/TwitterCore/MultiTitleBar.qml | 60 + .../twitter/qml/twitter/TwitterCore/RssModel.qml | 76 + .../twitter/qml/twitter/TwitterCore/SearchView.qml | 124 + .../twitter/qml/twitter/TwitterCore/TitleBar.qml | 130 + .../twitter/qml/twitter/TwitterCore/ToolBar.qml | 64 + .../twitter/qml/twitter/TwitterCore/UserModel.qml | 65 + .../qml/twitter/TwitterCore/images/gloss.png | Bin 0 -> 1236 bytes .../qml/twitter/TwitterCore/images/lineedit.png | Bin 0 -> 1415 bytes .../qml/twitter/TwitterCore/images/lineedit.sci | 5 + .../qml/twitter/TwitterCore/images/loading.png | Bin 0 -> 813 bytes .../qml/twitter/TwitterCore/images/quit.png | Bin 0 -> 2369 bytes .../qml/twitter/TwitterCore/images/stripes.png | Bin 0 -> 257 bytes .../qml/twitter/TwitterCore/images/titlebar.png | Bin 0 -> 1436 bytes .../qml/twitter/TwitterCore/images/titlebar.sci | 5 + .../qml/twitter/TwitterCore/images/toolbutton.png | Bin 0 -> 2550 bytes .../qml/twitter/TwitterCore/images/toolbutton.sci | 5 + .../twitter/qml/twitter/TwitterCore/qmldir | 10 + demos/declarative/twitter/qml/twitter/twitter.qml | 134 + demos/declarative/twitter/twitter.desktop | 11 + demos/declarative/twitter/twitter.pro | 39 + demos/declarative/twitter/twitter.qmlproject | 16 + demos/declarative/twitter/twitter.svg | 93 + demos/declarative/twitter/twitter64.png | Bin 0 -> 3400 bytes demos/declarative/twitter/twitter80.png | Bin 0 -> 4945 bytes .../declarative/twitter/twitter_harmattan.desktop | 11 + demos/declarative/webbrowser/main.cpp | 54 + .../webbrowser/qml/webbrowser/content/Button.qml | 65 + .../qml/webbrowser/content/FlickableWebView.qml | 195 + .../webbrowser/qml/webbrowser/content/Header.qml | 150 + .../qml/webbrowser/content/ScrollBar.qml | 107 + .../webbrowser/qml/webbrowser/content/UrlInput.qml | 96 + .../qml/webbrowser/content/pics/display.png | Bin 0 -> 998 bytes .../qml/webbrowser/content/pics/edit-delete.png | Bin 0 -> 831 bytes .../content/pics/go-jump-locationbar.png | Bin 0 -> 408 bytes .../qml/webbrowser/content/pics/go-next-view.png | Bin 0 -> 1310 bytes .../webbrowser/content/pics/go-previous-view.png | Bin 0 -> 1080 bytes .../qml/webbrowser/content/pics/scrollbar.png | Bin 0 -> 161 bytes .../qml/webbrowser/content/pics/titlebar-bg.png | Bin 0 -> 213 bytes .../qml/webbrowser/content/pics/view-refresh.png | Bin 0 -> 2182 bytes .../webbrowser/qml/webbrowser/webbrowser.qml | 79 + demos/declarative/webbrowser/webbrowser.desktop | 11 + demos/declarative/webbrowser/webbrowser.pro | 39 + demos/declarative/webbrowser/webbrowser.qmlproject | 16 + demos/declarative/webbrowser/webbrowser.svg | 93 + demos/declarative/webbrowser/webbrowser64.png | Bin 0 -> 3400 bytes demos/declarative/webbrowser/webbrowser80.png | Bin 0 -> 4945 bytes .../webbrowser/webbrowser_harmattan.desktop | 11 + demos/helper/helper.pro | 7 + .../qmlapplicationviewer/qmlapplicationviewer.cpp | 226 + .../qmlapplicationviewer/qmlapplicationviewer.h | 77 + .../qmlapplicationviewer/qmlapplicationviewer.pri | 156 + demos/mobile/guitartuner/guitartuner.pro | 89 + demos/mobile/guitartuner/guitartuner.qrc | 43 + demos/mobile/guitartuner/images/guitartab.svg | 174 + .../mobile/guitartuner/images/guitartuner_icon.svg | 247 + demos/mobile/guitartuner/images/inputMode.svg | 161 + demos/mobile/guitartuner/images/note.svg | 101 + demos/mobile/guitartuner/images/noteNo.svg | 105 + demos/mobile/guitartuner/src/application.qml | 328 + demos/mobile/guitartuner/src/constants.h | 54 + .../guitartuner/src/fastfouriertransformer.cpp | 184 + .../guitartuner/src/fastfouriertransformer.h | 67 + demos/mobile/guitartuner/src/fftpack.c | 1406 ++ demos/mobile/guitartuner/src/guitartuner.cpp | 359 + demos/mobile/guitartuner/src/guitartuner.h | 95 + demos/mobile/guitartuner/src/guitartuner.rc | 23 + demos/mobile/guitartuner/src/guitartuner.ui | 178 + demos/mobile/guitartuner/src/guitartunerui.cpp | 341 + demos/mobile/guitartuner/src/guitartunerui.h | 111 + demos/mobile/guitartuner/src/guitartunerui.ui | 178 + demos/mobile/guitartuner/src/main.cpp | 60 + .../guitartuner/src/mycomponents/Adjuster.qml | 131 + .../mobile/guitartuner/src/mycomponents/Meter.qml | 112 + .../src/mycomponents/NoteButtonView.qml | 84 + .../guitartuner/src/mycomponents/NotesModel.qml | 105 + .../guitartuner/src/mycomponents/ToggleButton.qml | 110 + .../guitartuner/src/mycomponents/adjustbars.js | 89 + .../guitartuner/src/mycomponents/images/big_a.png | Bin 0 -> 575 bytes .../guitartuner/src/mycomponents/images/big_b.png | Bin 0 -> 599 bytes .../guitartuner/src/mycomponents/images/big_d.png | Bin 0 -> 465 bytes .../guitartuner/src/mycomponents/images/big_e.png | Bin 0 -> 327 bytes .../guitartuner/src/mycomponents/images/big_g.png | Bin 0 -> 610 bytes .../src/mycomponents/images/glowing_a.png | Bin 0 -> 2978 bytes .../src/mycomponents/images/glowing_b.png | Bin 0 -> 3084 bytes .../src/mycomponents/images/glowing_d.png | Bin 0 -> 2940 bytes .../src/mycomponents/images/glowing_e.png | Bin 0 -> 2696 bytes .../src/mycomponents/images/glowing_g.png | Bin 0 -> 3046 bytes .../src/mycomponents/images/guitartuner_malli.png | Bin 0 -> 143243 bytes .../src/mycomponents/images/guitartuner_skin.png | Bin 0 -> 129068 bytes .../src/mycomponents/images/lcdFrame.png | Bin 0 -> 176107 bytes .../src/mycomponents/images/meterBG.png | Bin 0 -> 8378 bytes .../guitartuner/src/mycomponents/images/mute.png | Bin 0 -> 3630 bytes .../src/mycomponents/images/pointer.png | Bin 0 -> 965 bytes .../src/mycomponents/images/pointerShadow.png | Bin 0 -> 1694 bytes .../guitartuner/src/mycomponents/images/power.png | Bin 0 -> 3190 bytes .../guitartuner/src/mycomponents/images/quit.png | Bin 0 -> 1363 bytes .../src/mycomponents/images/sensitivity.png | Bin 0 -> 835 bytes .../src/mycomponents/images/tuner_a.png | Bin 0 -> 3233 bytes .../src/mycomponents/images/tuner_a_on.png | Bin 0 -> 3068 bytes .../src/mycomponents/images/tuner_auto.png | Bin 0 -> 3619 bytes .../src/mycomponents/images/tuner_auto_on.png | Bin 0 -> 3281 bytes .../src/mycomponents/images/tuner_b.png | Bin 0 -> 3324 bytes .../src/mycomponents/images/tuner_b_on.png | Bin 0 -> 3132 bytes .../src/mycomponents/images/tuner_d.png | Bin 0 -> 3266 bytes .../src/mycomponents/images/tuner_d_on.png | Bin 0 -> 3009 bytes .../src/mycomponents/images/tuner_e.png | Bin 0 -> 3171 bytes .../src/mycomponents/images/tuner_e_on.png | Bin 0 -> 2955 bytes .../src/mycomponents/images/tuner_g.png | Bin 0 -> 3292 bytes .../src/mycomponents/images/tuner_g_on.png | Bin 0 -> 3089 bytes .../src/mycomponents/images/voicemode_off.png | Bin 0 -> 3775 bytes .../src/mycomponents/images/voicemode_on.png | Bin 0 -> 3484 bytes .../guitartuner/src/mycomponents/images/volume.png | Bin 0 -> 351 bytes .../src/mycomponents/images/volume_off.png | Bin 0 -> 2235 bytes demos/mobile/guitartuner/src/voiceanalyzer.cpp | 295 + demos/mobile/guitartuner/src/voiceanalyzer.h | 93 + demos/mobile/guitartuner/src/voicegenerator.cpp | 246 + demos/mobile/guitartuner/src/voicegenerator.h | 86 + demos/mobile/qtbubblelevel/accelerometerfilter.cpp | 85 + demos/mobile/qtbubblelevel/accelerometerfilter.h | 69 + demos/mobile/qtbubblelevel/debian/changelog | 19 + demos/mobile/qtbubblelevel/debian/compat | 1 + demos/mobile/qtbubblelevel/debian/control | 12 + demos/mobile/qtbubblelevel/debian/copyright | 36 + demos/mobile/qtbubblelevel/debian/dirs | 2 + demos/mobile/qtbubblelevel/debian/files | 1 + demos/mobile/qtbubblelevel/debian/postinst | 5 + demos/mobile/qtbubblelevel/debian/rules | 91 + .../qtbubblelevel/icons/26x26/qtbubblelevel.png | Bin 0 -> 1113 bytes .../qtbubblelevel/icons/40x40/qtbubblelevel.png | Bin 0 -> 2048 bytes .../qtbubblelevel/icons/64x64/qtbubblelevel.png | Bin 0 -> 4154 bytes demos/mobile/qtbubblelevel/icons/bubblelevel.svg | 264 + demos/mobile/qtbubblelevel/icons/qtbl_icon.png | Bin 0 -> 11181 bytes .../qtbubblelevel/icons/xpm/qtbubblelevel.xpm | 1783 ++ demos/mobile/qtbubblelevel/main.cpp | 135 + demos/mobile/qtbubblelevel/qml/BubbleLevel.qml | 225 + demos/mobile/qtbubblelevel/qml/Button.qml | 71 + demos/mobile/qtbubblelevel/qml/Tube.qml | 86 + demos/mobile/qtbubblelevel/qml/images/board.png | Bin 0 -> 520721 bytes demos/mobile/qtbubblelevel/qml/images/bubble.png | Bin 0 -> 4951 bytes .../qtbubblelevel/qml/images/calibbutton.png | Bin 0 -> 4881 bytes demos/mobile/qtbubblelevel/qml/images/exit.png | Bin 0 -> 2308 bytes .../mobile/qtbubblelevel/qml/images/reflection.png | Bin 0 -> 1306 bytes demos/mobile/qtbubblelevel/qml/images/scale.png | Bin 0 -> 271 bytes .../mobile/qtbubblelevel/qml/images/signblank.png | Bin 0 -> 41230 bytes .../qtbubblelevel/qml/images/signwithtext.png | Bin 0 -> 47648 bytes .../qtbubblelevel/qml/images/taskswitcher.png | Bin 0 -> 767 bytes demos/mobile/qtbubblelevel/qtbubblelevel.pro | 59 + demos/mobile/qtbubblelevel/resources.qrc | 16 + demos/mobile/qtbubblelevel/settings.h | 66 + demos/mobile/qtbubblelevel/taskswitcher.cpp | 61 + demos/mobile/qtbubblelevel/taskswitcher.h | 54 + demos/mobile/quickhit/Button.qml | 86 + demos/mobile/quickhit/Game.js | 180 + demos/mobile/quickhit/Game.qml | 439 + demos/mobile/quickhit/InvSounds.cpp | 189 + demos/mobile/quickhit/InvSounds.h | 91 + demos/mobile/quickhit/Menu.qml | 163 + demos/mobile/quickhit/MenuItem.qml | 103 + demos/mobile/quickhit/Message.qml | 147 + demos/mobile/quickhit/Missile.qml | 143 + demos/mobile/quickhit/MyShip.qml | 184 + demos/mobile/quickhit/debian/changelog | 11 + demos/mobile/quickhit/debian/compat | 1 + demos/mobile/quickhit/debian/control | 11 + demos/mobile/quickhit/debian/copyright | 8 + demos/mobile/quickhit/debian/dirs | 2 + demos/mobile/quickhit/debian/postinst | 5 + demos/mobile/quickhit/debian/rules | 91 + demos/mobile/quickhit/freesound.org.licence.txt | 24 + demos/mobile/quickhit/ga_src/GEAudioBuffer.cpp | 391 + demos/mobile/quickhit/ga_src/GEAudioBuffer.h | 137 + demos/mobile/quickhit/ga_src/GEAudioOut.cpp | 144 + demos/mobile/quickhit/ga_src/GEAudioOut.h | 89 + demos/mobile/quickhit/ga_src/GEInterfaces.cpp | 177 + demos/mobile/quickhit/ga_src/GEInterfaces.h | 88 + demos/mobile/quickhit/gameengine.cpp | 592 + demos/mobile/quickhit/gameengine.h | 148 + demos/mobile/quickhit/gfx/back.png | Bin 0 -> 2234 bytes demos/mobile/quickhit/gfx/background2.png | Bin 0 -> 113110 bytes demos/mobile/quickhit/gfx/bigship.png | Bin 0 -> 98253 bytes demos/mobile/quickhit/gfx/exit.png | Bin 0 -> 2810 bytes demos/mobile/quickhit/gfx/pause.png | Bin 0 -> 1986 bytes demos/mobile/quickhit/gfx/quickhit_logo.png | Bin 0 -> 8974 bytes demos/mobile/quickhit/gfx/soundOff.png | Bin 0 -> 3122 bytes demos/mobile/quickhit/gfx/soundOn.png | Bin 0 -> 2420 bytes demos/mobile/quickhit/icon.svg | 305 + demos/mobile/quickhit/main.cpp | 101 + demos/mobile/quickhit/mainwindow.cpp | 248 + demos/mobile/quickhit/mainwindow.h | 85 + demos/mobile/quickhit/myeventfilter.cpp | 67 + demos/mobile/quickhit/myeventfilter.h | 63 + demos/mobile/quickhit/plugins/LevelOne/Level.qml | 214 + .../quickhit/plugins/LevelOne/debian/changelog | 11 + .../mobile/quickhit/plugins/LevelOne/debian/compat | 1 + .../quickhit/plugins/LevelOne/debian/control | 11 + .../quickhit/plugins/LevelOne/debian/copyright | 8 + demos/mobile/quickhit/plugins/LevelOne/debian/dirs | 2 + .../quickhit/plugins/LevelOne/debian/postinst | 5 + .../mobile/quickhit/plugins/LevelOne/debian/rules | 91 + .../quickhit/plugins/LevelOne/gfx/background3.png | Bin 0 -> 113110 bytes .../quickhit/plugins/LevelOne/gfx/enemy1.png | Bin 0 -> 4508 bytes .../quickhit/plugins/LevelOne/gfx/enemy2.png | Bin 0 -> 4344 bytes .../plugins/LevelOne/gfx/enemy_missile2.png | Bin 0 -> 452 bytes .../mobile/quickhit/plugins/LevelOne/gfx/fire.png | Bin 0 -> 1036 bytes .../mobile/quickhit/plugins/LevelOne/gfx/fire2.png | Bin 0 -> 2558 bytes .../quickhit/plugins/LevelOne/gfx/missile2.png | Bin 0 -> 392 bytes .../quickhit/plugins/LevelOne/gfx/red_fire.png | Bin 0 -> 4737 bytes .../mobile/quickhit/plugins/LevelOne/gfx/ship.png | Bin 0 -> 5408 bytes .../mobile/quickhit/plugins/LevelOne/gfx/star3.png | Bin 0 -> 409 bytes .../quickhit/plugins/LevelOne/gfx/transparent.png | Bin 0 -> 1000 bytes .../mobile/quickhit/plugins/LevelOne/levelone.cpp | 120 + demos/mobile/quickhit/plugins/LevelOne/levelone.h | 91 + .../mobile/quickhit/plugins/LevelOne/levelone.pro | 97 + .../quickhit/plugins/LevelOne/sound/crash.wav | Bin 0 -> 963020 bytes .../plugins/LevelOne/sound/levelonestart.wav | Bin 0 -> 500528 bytes .../quickhit/plugins/LevelOne/sound/rocket.wav | Bin 0 -> 41336 bytes .../plugins/LevelOne/sound/rocket_explosion.wav | Bin 0 -> 289420 bytes .../plugins/LevelTemplate/debian/changelog | 11 + .../quickhit/plugins/LevelTemplate/debian/compat | 1 + .../quickhit/plugins/LevelTemplate/debian/control | 11 + .../plugins/LevelTemplate/debian/copyright | 8 + .../quickhit/plugins/LevelTemplate/debian/dirs | 2 + .../plugins/LevelTemplate/debian/levelone.tarlist | 41 + .../quickhit/plugins/LevelTemplate/debian/postinst | 5 + .../quickhit/plugins/LevelTemplate/debian/rules | 91 + .../plugins/LevelTemplate/gfx/blue_fire.png | Bin 0 -> 38263 bytes .../quickhit/plugins/LevelTemplate/gfx/enemy1.png | Bin 0 -> 4508 bytes .../quickhit/plugins/LevelTemplate/gfx/enemy2.png | Bin 0 -> 4344 bytes .../plugins/LevelTemplate/gfx/enemy_missile2.png | Bin 0 -> 452 bytes .../plugins/LevelTemplate/gfx/missile2.png | Bin 0 -> 392 bytes .../quickhit/plugins/LevelTemplate/gfx/ship.png | Bin 0 -> 5408 bytes .../plugins/LevelTemplate/gfx/transparent.png | Bin 0 -> 1000 bytes .../plugins/LevelTemplate/leveltemplate.cpp | 126 + .../quickhit/plugins/LevelTemplate/leveltemplate.h | 95 + .../plugins/LevelTemplate/leveltemplate.pro | 100 + .../quickhit/plugins/LevelTemplate/qml/Enemy.qml | 61 + .../quickhit/plugins/LevelTemplate/qml/Level.js | 42 + .../quickhit/plugins/LevelTemplate/qml/Level.qml | 103 + .../quickhit/plugins/LevelTemplate/sound/crash.wav | Bin 0 -> 963020 bytes .../plugins/LevelTemplate/sound/enableship.wav | Bin 0 -> 78380 bytes .../LevelTemplate/sound/enemy_explosion.wav | Bin 0 -> 219642 bytes .../quickhit/plugins/LevelTemplate/sound/laser.wav | Bin 0 -> 46764 bytes .../plugins/LevelTemplate/sound/level2.wav | Bin 0 -> 84034 bytes .../LevelTemplate/sound/myship_explosion.wav | Bin 0 -> 120474 bytes .../plugins/LevelTemplate/sound/rocket.wav | Bin 0 -> 41336 bytes .../LevelTemplate/sound/rocket_explosion.wav | Bin 0 -> 289420 bytes .../quickhit/plugins/LevelTwo/debian/changelog | 11 + .../mobile/quickhit/plugins/LevelTwo/debian/compat | 1 + .../quickhit/plugins/LevelTwo/debian/control | 11 + .../quickhit/plugins/LevelTwo/debian/copyright | 8 + demos/mobile/quickhit/plugins/LevelTwo/debian/dirs | 2 + .../plugins/LevelTwo/debian/levelone.tarlist | 41 + .../quickhit/plugins/LevelTwo/debian/postinst | 5 + .../mobile/quickhit/plugins/LevelTwo/debian/rules | 91 + .../quickhit/plugins/LevelTwo/gfx/background2.png | Bin 0 -> 149307 bytes .../plugins/LevelTwo/gfx/background_loop.png | Bin 0 -> 163319 bytes .../quickhit/plugins/LevelTwo/gfx/blue_fire.png | Bin 0 -> 38263 bytes .../quickhit/plugins/LevelTwo/gfx/enemy1.png | Bin 0 -> 4508 bytes .../plugins/LevelTwo/gfx/enemy_missile2.png | Bin 0 -> 370 bytes .../mobile/quickhit/plugins/LevelTwo/gfx/fire.png | Bin 0 -> 1036 bytes .../mobile/quickhit/plugins/LevelTwo/gfx/fire2.png | Bin 0 -> 2558 bytes .../quickhit/plugins/LevelTwo/gfx/missile.png | Bin 0 -> 289 bytes .../quickhit/plugins/LevelTwo/gfx/missile2.png | Bin 0 -> 392 bytes .../mobile/quickhit/plugins/LevelTwo/gfx/ship.png | Bin 0 -> 5408 bytes .../mobile/quickhit/plugins/LevelTwo/gfx/star3.png | Bin 0 -> 1288 bytes .../quickhit/plugins/LevelTwo/gfx/transparent.png | Bin 0 -> 1000 bytes .../mobile/quickhit/plugins/LevelTwo/leveltwo.cpp | 122 + demos/mobile/quickhit/plugins/LevelTwo/leveltwo.h | 91 + .../mobile/quickhit/plugins/LevelTwo/leveltwo.pro | 105 + .../mobile/quickhit/plugins/LevelTwo/qml/Enemy.qml | 84 + .../mobile/quickhit/plugins/LevelTwo/qml/Level.js | 42 + .../mobile/quickhit/plugins/LevelTwo/qml/Level.qml | 228 + .../quickhit/plugins/LevelTwo/sound/crash.wav | Bin 0 -> 963020 bytes .../quickhit/plugins/LevelTwo/sound/enableship.wav | Bin 0 -> 78380 bytes .../plugins/LevelTwo/sound/enemy_explosion.wav | Bin 0 -> 219642 bytes .../quickhit/plugins/LevelTwo/sound/laser.wav | Bin 0 -> 46764 bytes .../quickhit/plugins/LevelTwo/sound/level2.wav | Bin 0 -> 84034 bytes .../plugins/LevelTwo/sound/myship_explosion.wav | Bin 0 -> 120474 bytes .../quickhit/plugins/LevelTwo/sound/rocket.wav | Bin 0 -> 41336 bytes .../plugins/LevelTwo/sound/rocket_explosion.wav | Bin 0 -> 289420 bytes .../mobile/quickhit/plugins/levelplugininterface.h | 86 + demos/mobile/quickhit/quickhit.png | Bin 0 -> 4511 bytes demos/mobile/quickhit/quickhit.pro | 88 + demos/mobile/quickhit/resources.qrc | 25 + demos/mobile/quickhit/sound/gameover.wav | Bin 0 -> 46868 bytes demos/mobile/quickhit/sound/gamestart.wav | Bin 0 -> 573486 bytes demos/mobile/quickhit/sound/menu1.wav | Bin 0 -> 22444 bytes demos/mobile/quickhit/sound/menu2.wav | Bin 0 -> 25644 bytes demos/mobile/quickhit/sound/youwin.wav | Bin 0 -> 458554 bytes demos/symbianpkgrules.pri | 19 + doc/src/declarative/advtutorial.qdoc | 465 + doc/src/declarative/anchor-layout.qdoc | 147 + doc/src/declarative/animation.qdoc | 240 + doc/src/declarative/basicelements.qdoc | 114 + doc/src/declarative/basictypes.qdoc | 583 + doc/src/declarative/behaviors-and-states.qdoc | 206 + doc/src/declarative/codingconventions.qdoc | 129 + doc/src/declarative/declarativeui.qdoc | 160 + doc/src/declarative/dynamicobjects.qdoc | 215 + doc/src/declarative/elements.qdoc | 337 + doc/src/declarative/example-slideswitch.qdoc | 129 + doc/src/declarative/examples.qdoc | 243 + doc/src/declarative/extending-tutorial.qdoc | 497 + doc/src/declarative/extending.qdoc | 708 + doc/src/declarative/focus.qdoc | 210 + doc/src/declarative/globalobject.qdoc | 207 + doc/src/declarative/integrating.qdoc | 111 + doc/src/declarative/javascriptblocks.qdoc | 324 + doc/src/declarative/modules.qdoc | 487 + doc/src/declarative/mouseevents.qdoc | 120 + doc/src/declarative/network.qdoc | 158 + doc/src/declarative/pics/3d-axis.png | Bin 0 -> 13840 bytes doc/src/declarative/pics/3d-rotation-axis.png | Bin 0 -> 11078 bytes doc/src/declarative/pics/BorderImage.png | Bin 0 -> 8094 bytes doc/src/declarative/pics/ListViewHighlight.png | Bin 0 -> 3582 bytes doc/src/declarative/pics/ListViewHorizontal.png | Bin 0 -> 5802 bytes doc/src/declarative/pics/ListViewVertical.png | Bin 0 -> 2424 bytes doc/src/declarative/pics/anatomy-component.png | Bin 0 -> 4902 bytes doc/src/declarative/pics/anchorchanges.png | Bin 0 -> 566 bytes doc/src/declarative/pics/anchors.svg | 92 + doc/src/declarative/pics/animatedimageitem.gif | Bin 0 -> 9997 bytes doc/src/declarative/pics/axisrotation.png | Bin 0 -> 8891 bytes doc/src/declarative/pics/blur_example.png | Bin 0 -> 64019 bytes doc/src/declarative/pics/content.png | Bin 0 -> 1978 bytes .../declarative/pics/declarative-adv-tutorial1.png | Bin 0 -> 203229 bytes .../declarative/pics/declarative-adv-tutorial2.png | Bin 0 -> 249451 bytes .../declarative/pics/declarative-adv-tutorial3.png | Bin 0 -> 283378 bytes .../declarative/pics/declarative-adv-tutorial4.gif | Bin 0 -> 1687445 bytes doc/src/declarative/pics/declarative-qmlfocus1.png | Bin 0 -> 22047 bytes doc/src/declarative/pics/declarative-qmlfocus2.png | Bin 0 -> 24225 bytes doc/src/declarative/pics/declarative-qmlfocus3.png | Bin 0 -> 26300 bytes doc/src/declarative/pics/declarative-qmlfocus4.png | Bin 0 -> 21401 bytes doc/src/declarative/pics/dial-example.gif | Bin 0 -> 566465 bytes doc/src/declarative/pics/edge1.png | Bin 0 -> 3423 bytes doc/src/declarative/pics/edge2.png | Bin 0 -> 3436 bytes doc/src/declarative/pics/edge3.png | Bin 0 -> 3854 bytes doc/src/declarative/pics/edge4.png | Bin 0 -> 5152 bytes doc/src/declarative/pics/edges.png | Bin 0 -> 15226 bytes doc/src/declarative/pics/edges.svg | 185 + doc/src/declarative/pics/edges_examples.svg | 109 + doc/src/declarative/pics/edges_qml.png | Bin 0 -> 21731 bytes doc/src/declarative/pics/edges_qml.svg | 188 + .../pics/extending-tutorial-chapter1.png | Bin 0 -> 6687 bytes .../pics/extending-tutorial-chapter2.png | Bin 0 -> 7318 bytes .../pics/extending-tutorial-chapter3.png | Bin 0 -> 8145 bytes .../pics/extending-tutorial-chapter5.png | Bin 0 -> 5557 bytes doc/src/declarative/pics/flickable.gif | Bin 0 -> 185221 bytes doc/src/declarative/pics/flipable.gif | Bin 0 -> 131710 bytes doc/src/declarative/pics/gridLayout_example.png | Bin 0 -> 437 bytes doc/src/declarative/pics/gridview-highlight.png | Bin 0 -> 11806 bytes doc/src/declarative/pics/gridview-simple.png | Bin 0 -> 10149 bytes doc/src/declarative/pics/highlight.gif | Bin 0 -> 18259 bytes .../pics/horizontalpositioner_example.png | Bin 0 -> 292 bytes doc/src/declarative/pics/imageprovider.png | Bin 0 -> 420 bytes doc/src/declarative/pics/layoutmirroring.png | Bin 0 -> 2542 bytes doc/src/declarative/pics/listmodel-nested.png | Bin 0 -> 7493 bytes doc/src/declarative/pics/listmodel.png | Bin 0 -> 3407 bytes doc/src/declarative/pics/listview-highlight.png | Bin 0 -> 5918 bytes doc/src/declarative/pics/listview-simple.png | Bin 0 -> 5351 bytes doc/src/declarative/pics/margins_qml.png | Bin 0 -> 18476 bytes doc/src/declarative/pics/margins_qml.svg | 196 + doc/src/declarative/pics/parentchange.png | Bin 0 -> 509 bytes doc/src/declarative/pics/particles.gif | Bin 0 -> 163068 bytes doc/src/declarative/pics/pathview.gif | Bin 0 -> 90512 bytes doc/src/declarative/pics/positioner-add.gif | Bin 0 -> 7821 bytes doc/src/declarative/pics/positioner-move.gif | Bin 0 -> 6154 bytes doc/src/declarative/pics/positioner-remove.gif | Bin 0 -> 5610 bytes doc/src/declarative/pics/propanim.gif | Bin 0 -> 74909 bytes doc/src/declarative/pics/qml-context-object.png | Bin 0 -> 23602 bytes doc/src/declarative/pics/qml-context-tree.png | Bin 0 -> 10337 bytes doc/src/declarative/pics/qml-context.png | Bin 0 -> 61465 bytes doc/src/declarative/pics/qml-extending-types.png | Bin 0 -> 738 bytes doc/src/declarative/pics/qml-gradient.png | Bin 0 -> 364 bytes doc/src/declarative/pics/qml-scope.png | Bin 0 -> 47564 bytes doc/src/declarative/pics/qtlogo.png | Bin 0 -> 2738 bytes doc/src/declarative/pics/rect-border-width.png | Bin 0 -> 374 bytes doc/src/declarative/pics/rect-color.png | Bin 0 -> 570 bytes doc/src/declarative/pics/rect-smooth.png | Bin 0 -> 24241 bytes doc/src/declarative/pics/reflection_example.png | Bin 0 -> 30919 bytes doc/src/declarative/pics/repeater-index.png | Bin 0 -> 3024 bytes doc/src/declarative/pics/repeater-modeldata.png | Bin 0 -> 3394 bytes doc/src/declarative/pics/repeater-simple.png | Bin 0 -> 404 bytes doc/src/declarative/pics/repeater.png | Bin 0 -> 800 bytes doc/src/declarative/pics/scalegrid.svg | 183 + doc/src/declarative/pics/shaderexample.png | Bin 0 -> 3941 bytes doc/src/declarative/pics/shadow_example.png | Bin 0 -> 4775 bytes doc/src/declarative/pics/squish-transform.png | Bin 0 -> 9652 bytes doc/src/declarative/pics/squish.png | Bin 0 -> 8590 bytes doc/src/declarative/pics/switch-example.gif | Bin 0 -> 25270 bytes doc/src/declarative/pics/translate.png | Bin 0 -> 398 bytes .../pics/verticalpositioner_example.png | Bin 0 -> 385 bytes .../pics/verticalpositioner_transition.gif | Bin 0 -> 12641 bytes doc/src/declarative/pics/visualitemmodel.png | Bin 0 -> 347 bytes doc/src/declarative/pics/webview.png | Bin 0 -> 126662 bytes doc/src/declarative/positioners.qdoc | 196 + doc/src/declarative/propertybinding.qdoc | 324 + doc/src/declarative/qdeclarativedebugging.qdoc | 86 + doc/src/declarative/qdeclarativedocument.qdoc | 143 + doc/src/declarative/qdeclarativei18n.qdoc | 87 + doc/src/declarative/qdeclarativeintro.qdoc | 396 + doc/src/declarative/qdeclarativemodels.qdoc | 505 + doc/src/declarative/qdeclarativeperformance.qdoc | 150 + doc/src/declarative/qdeclarativesecurity.qdoc | 80 + doc/src/declarative/qdeclarativestates.qdoc | 158 + doc/src/declarative/qmlevents.qdoc | 127 + doc/src/declarative/qmlinuse.qdoc | 499 + doc/src/declarative/qmlreusablecomponents.qdoc | 143 + doc/src/declarative/qmlruntime.qdoc | 144 + doc/src/declarative/qmlsyntax.qdoc | 155 + doc/src/declarative/qmltexthandling.qdoc | 76 + doc/src/declarative/qmlviewer.qdoc | 237 + doc/src/declarative/qmlviews.qdoc | 114 + doc/src/declarative/qmlwebkit.qdoc | 52 + doc/src/declarative/qtbinding.qdoc | 669 + doc/src/declarative/qtdeclarative.qdoc | 213 + doc/src/declarative/qtprogrammers.qdoc | 155 + doc/src/declarative/qtquick-intro.qdoc | 124 + doc/src/declarative/righttoleft.qdoc | 194 + doc/src/declarative/scope.qdoc | 304 + doc/src/declarative/tutorial.qdoc | 226 + doc/src/declarative/whatsnew.qdoc | 188 + doc/src/demos/qml-qtbubblelevel.qdoc | 111 + doc/src/examples/qml-calculator.qdoc | 36 + doc/src/examples/qml-examples.qdoc | 939 + doc/src/examples/qml-extending.qdoc | 303 + doc/src/examples/qml-flickr.qdoc | 37 + doc/src/examples/qml-folderlistmodel.qdoc | 138 + doc/src/examples/qml-minehunt.qdoc | 37 + doc/src/examples/qml-photoviewer.qdoc | 36 + doc/src/examples/qml-rssnews.qdoc | 36 + doc/src/examples/qml-samegame.qdoc | 37 + doc/src/examples/qml-snake.qdoc | 37 + doc/src/examples/qml-twitter.qdoc | 37 + doc/src/examples/qml-webbrowser.qdoc | 39 + doc/src/getting-started/gettingstartedqml.qdoc | 1023 ++ .../qmlbestpractices/qmlbestpractices-coding.qdoc | 97 + .../qmlbestpractices-datatypes.qdoc | 49 + doc/src/images/declarative-anchors_example.png | Bin 0 -> 3654 bytes doc/src/images/declarative-anchors_example2.png | Bin 0 -> 3819 bytes doc/src/images/declarative-colors.png | Bin 0 -> 4993 bytes doc/src/images/declarative-examples.png | Bin 0 -> 39074 bytes doc/src/images/declarative-folderlistmodel.png | Bin 0 -> 14963 bytes doc/src/images/declarative-image_tile.png | Bin 0 -> 396 bytes doc/src/images/declarative-item_opacity1.png | Bin 0 -> 464 bytes doc/src/images/declarative-item_opacity2.png | Bin 0 -> 464 bytes doc/src/images/declarative-item_stacking1.png | Bin 0 -> 460 bytes doc/src/images/declarative-item_stacking2.png | Bin 0 -> 461 bytes doc/src/images/declarative-item_stacking3.png | Bin 0 -> 464 bytes doc/src/images/declarative-item_stacking4.png | Bin 0 -> 463 bytes doc/src/images/declarative-nopercent.png | Bin 0 -> 553 bytes doc/src/images/declarative-pathattribute.png | Bin 0 -> 7207 bytes doc/src/images/declarative-pathcubic.png | Bin 0 -> 1261 bytes doc/src/images/declarative-pathquad.png | Bin 0 -> 1517 bytes doc/src/images/declarative-percent.png | Bin 0 -> 530 bytes doc/src/images/declarative-qmlfocus1.png | Bin 0 -> 1890 bytes doc/src/images/declarative-qmlfocus2.png | Bin 0 -> 2756 bytes doc/src/images/declarative-qmlfocus3.png | Bin 0 -> 2743 bytes doc/src/images/declarative-qmlfocus4.png | Bin 0 -> 4137 bytes doc/src/images/declarative-qmlfocus5.png | Bin 0 -> 1376 bytes .../declarative-qtlogo-preserveaspectcrop.png | Bin 0 -> 6440 bytes .../declarative-qtlogo-preserveaspectfit.png | Bin 0 -> 4076 bytes doc/src/images/declarative-qtlogo-stretch.png | Bin 0 -> 5584 bytes doc/src/images/declarative-qtlogo-tile.png | Bin 0 -> 3940 bytes .../images/declarative-qtlogo-tilehorizontally.png | Bin 0 -> 5544 bytes .../images/declarative-qtlogo-tilevertically.png | Bin 0 -> 6288 bytes doc/src/images/declarative-qtlogo.png | Bin 0 -> 3436 bytes doc/src/images/declarative-rect.png | Bin 0 -> 674 bytes doc/src/images/declarative-rect_gradient.png | Bin 0 -> 873 bytes doc/src/images/declarative-rect_tint.png | Bin 0 -> 363 bytes doc/src/images/declarative-removebutton-close.png | Bin 0 -> 3973 bytes doc/src/images/declarative-removebutton-open.png | Bin 0 -> 5413 bytes doc/src/images/declarative-removebutton.gif | Bin 0 -> 183008 bytes doc/src/images/declarative-removebutton.png | Bin 0 -> 6725 bytes doc/src/images/declarative-reuse-1.png | Bin 0 -> 3489 bytes doc/src/images/declarative-reuse-2.png | Bin 0 -> 3700 bytes doc/src/images/declarative-reuse-3.png | Bin 0 -> 8829 bytes doc/src/images/declarative-reuse-bluerect.png | Bin 0 -> 1474 bytes doc/src/images/declarative-reuse-focus.png | Bin 0 -> 8026 bytes doc/src/images/declarative-rotation.png | Bin 0 -> 667 bytes doc/src/images/declarative-roundrect.png | Bin 0 -> 3058 bytes doc/src/images/declarative-samegame.png | Bin 0 -> 124904 bytes doc/src/images/declarative-scale.png | Bin 0 -> 336 bytes doc/src/images/declarative-scalegrid.png | Bin 0 -> 4228 bytes doc/src/images/declarative-text.png | Bin 0 -> 3289 bytes doc/src/images/declarative-textedit.gif | Bin 0 -> 15286 bytes doc/src/images/declarative-textformat.png | Bin 0 -> 11498 bytes doc/src/images/declarative-textstyle.png | Bin 0 -> 6825 bytes doc/src/images/declarative-transformorigin.png | Bin 0 -> 8927 bytes .../images/declarative-tutorial-list-closed.png | Bin 0 -> 11854 bytes doc/src/images/declarative-tutorial-list-open.png | Bin 0 -> 14745 bytes doc/src/images/declarative-tutorial-list.png | Bin 0 -> 10723 bytes doc/src/images/declarative-tutorial1.png | Bin 0 -> 3577 bytes doc/src/images/declarative-tutorial2.png | Bin 0 -> 3913 bytes doc/src/images/declarative-tutorial3.gif | Bin 0 -> 3317 bytes doc/src/images/declarative-tutorial3_animation.gif | Bin 0 -> 301974 bytes doc/src/images/qml-abstractitemmodel-example.png | Bin 0 -> 4478 bytes doc/src/images/qml-behaviors-example.png | Bin 0 -> 6367 bytes doc/src/images/qml-borderimage-example.png | Bin 0 -> 25204 bytes doc/src/images/qml-borderimage-normal-image.png | Bin 0 -> 5282 bytes doc/src/images/qml-borderimage-scaled.png | Bin 0 -> 5580 bytes doc/src/images/qml-borderimage-shadows-example.png | Bin 0 -> 2606 bytes doc/src/images/qml-borderimage-tiled.png | Bin 0 -> 5889 bytes doc/src/images/qml-calculator-example-small.png | Bin 0 -> 16575 bytes doc/src/images/qml-calculator-example.png | Bin 0 -> 33892 bytes doc/src/images/qml-clocks-example.png | Bin 0 -> 40742 bytes doc/src/images/qml-coloranim-example.png | Bin 0 -> 6184 bytes doc/src/images/qml-column.png | Bin 0 -> 6264 bytes doc/src/images/qml-corkboards-example.png | Bin 0 -> 179625 bytes doc/src/images/qml-dialcontrol-example.png | Bin 0 -> 33569 bytes doc/src/images/qml-dynamicscene-example.png | Bin 0 -> 71620 bytes doc/src/images/qml-easing-example.png | Bin 0 -> 29397 bytes doc/src/images/qml-flickr-demo-small.png | Bin 0 -> 40934 bytes doc/src/images/qml-flickr-demo.png | Bin 0 -> 280730 bytes doc/src/images/qml-flipable-example.png | Bin 0 -> 13301 bytes doc/src/images/qml-flow-snippet.png | Bin 0 -> 11465 bytes doc/src/images/qml-flow-text1.png | Bin 0 -> 9647 bytes doc/src/images/qml-flow-text2.png | Bin 0 -> 10870 bytes doc/src/images/qml-focus-example.png | Bin 0 -> 31370 bytes .../images/qml-fonts-availableFonts-example.png | Bin 0 -> 33674 bytes doc/src/images/qml-fonts-banner-example.png | Bin 0 -> 8502 bytes doc/src/images/qml-fonts-fonts-example.png | Bin 0 -> 41568 bytes doc/src/images/qml-fonts-hello-example.png | Bin 0 -> 3213 bytes doc/src/images/qml-grid-no-spacing.png | Bin 0 -> 416 bytes doc/src/images/qml-grid-spacing.png | Bin 0 -> 421 bytes doc/src/images/qml-gridview-example.png | Bin 0 -> 24321 bytes doc/src/images/qml-guitartuner-example.png | Bin 0 -> 46135 bytes doc/src/images/qml-i18n-example.png | Bin 0 -> 7683 bytes doc/src/images/qml-image-example.png | Bin 0 -> 49584 bytes doc/src/images/qml-imageprovider-example.png | Bin 0 -> 2259 bytes doc/src/images/qml-layoutitem-example.png | Bin 0 -> 3817 bytes .../images/qml-listview-dynamiclist-example.png | Bin 0 -> 33091 bytes .../qml-listview-expandingdelegates-example.png | Bin 0 -> 46012 bytes doc/src/images/qml-listview-highlight-example.png | Bin 0 -> 14216 bytes .../qml-listview-highlightranges-example.png | Bin 0 -> 44290 bytes doc/src/images/qml-listview-sections-example.png | Bin 0 -> 5491 bytes doc/src/images/qml-listview-snippet.png | Bin 0 -> 2048 bytes doc/src/images/qml-minehunt-demo-small.png | Bin 0 -> 26977 bytes doc/src/images/qml-minehunt-demo.png | Bin 0 -> 170648 bytes doc/src/images/qml-mousearea-example.png | Bin 0 -> 6969 bytes doc/src/images/qml-mousearea-snippet.png | Bin 0 -> 780 bytes doc/src/images/qml-objectlistmodel-example.png | Bin 0 -> 1618 bytes doc/src/images/qml-package-example.png | Bin 0 -> 4597 bytes doc/src/images/qml-parallax-example.png | Bin 0 -> 145854 bytes doc/src/images/qml-pathview-example.png | Bin 0 -> 22077 bytes doc/src/images/qml-photoviewer-demo-small.png | Bin 0 -> 35633 bytes doc/src/images/qml-photoviewer-demo.png | Bin 0 -> 473306 bytes doc/src/images/qml-plugins-example.png | Bin 0 -> 15773 bytes doc/src/images/qml-positioners-example.png | Bin 0 -> 26813 bytes .../qml-positioners-layoutdirection-example.png | Bin 0 -> 13019 bytes doc/src/images/qml-progressbar-example.png | Bin 0 -> 15188 bytes doc/src/images/qml-propertyanim-example.png | Bin 0 -> 5028 bytes doc/src/images/qml-qgraphicsgridlayout-example.png | Bin 0 -> 34384 bytes .../images/qml-qgraphicslinearlayout-example.png | Bin 0 -> 21677 bytes doc/src/images/qml-qtbubblelevel-demo.png | Bin 0 -> 72591 bytes doc/src/images/qml-qwidgets-example.png | Bin 0 -> 13394 bytes doc/src/images/qml-repeater-grid-index.png | Bin 0 -> 17964 bytes .../qml-righttoleft-layoutdirection-example.png | Bin 0 -> 23327 bytes .../qml-righttoleft-layoutmirroring-example.png | Bin 0 -> 38982 bytes doc/src/images/qml-row.png | Bin 0 -> 3090 bytes doc/src/images/qml-rssnews-demo-small.png | Bin 0 -> 19489 bytes doc/src/images/qml-rssnews-demo.png | Bin 0 -> 128307 bytes doc/src/images/qml-samegame-demo-small.png | Bin 0 -> 36596 bytes doc/src/images/qml-samegame-demo.png | Bin 0 -> 213137 bytes doc/src/images/qml-scrollbar-example.png | Bin 0 -> 266986 bytes doc/src/images/qml-searchbox-example.png | Bin 0 -> 8170 bytes doc/src/images/qml-shadereffects-example.png | Bin 0 -> 271264 bytes doc/src/images/qml-slideswitch-example.png | Bin 0 -> 8298 bytes doc/src/images/qml-snake-demo-small.png | Bin 0 -> 17895 bytes doc/src/images/qml-snake-demo.png | Bin 0 -> 105053 bytes doc/src/images/qml-spinner-example.png | Bin 0 -> 5637 bytes doc/src/images/qml-states-example.png | Bin 0 -> 4344 bytes doc/src/images/qml-stringlistmodel-example.png | Bin 0 -> 1612 bytes doc/src/images/qml-tabwidget-example.png | Bin 0 -> 5298 bytes doc/src/images/qml-texteditor1_button.png | Bin 0 -> 1670 bytes doc/src/images/qml-texteditor1_editmenu.png | Bin 0 -> 7358 bytes doc/src/images/qml-texteditor1_filemenu.png | Bin 0 -> 7078 bytes doc/src/images/qml-texteditor1_simplebutton.png | Bin 0 -> 1055 bytes doc/src/images/qml-texteditor2_menubar.png | Bin 0 -> 7975 bytes doc/src/images/qml-texteditor3_textarea.png | Bin 0 -> 10417 bytes doc/src/images/qml-texteditor3_texteditor.png | Bin 0 -> 61353 bytes doc/src/images/qml-texteditor4_texteditor.png | Bin 0 -> 75600 bytes doc/src/images/qml-texteditor5_editmenu.png | Bin 0 -> 31834 bytes doc/src/images/qml-texteditor5_filemenu.png | Bin 0 -> 21688 bytes doc/src/images/qml-texteditor5_newfile.png | Bin 0 -> 92794 bytes doc/src/images/qml-textselection-example.png | Bin 0 -> 21889 bytes doc/src/images/qml-tic-tac-toe-example.png | Bin 0 -> 24275 bytes doc/src/images/qml-transitions-example.png | Bin 0 -> 4377 bytes doc/src/images/qml-tvtennis-example.png | Bin 0 -> 1385 bytes doc/src/images/qml-twitter-demo-small.png | Bin 0 -> 19807 bytes doc/src/images/qml-twitter-demo.png | Bin 0 -> 95812 bytes doc/src/images/qml-visualitemmodel-example.png | Bin 0 -> 2166 bytes doc/src/images/qml-webbrowser-demo-small.png | Bin 0 -> 20924 bytes doc/src/images/qml-webbrowser-demo.png | Bin 0 -> 85107 bytes doc/src/images/qml-webview-alert-example.png | Bin 0 -> 5417 bytes doc/src/images/qml-webview-autosize-example.png | Bin 0 -> 11370 bytes doc/src/images/qml-webview-googlemaps-example.png | Bin 0 -> 133411 bytes doc/src/images/qml-webview-inlinehtml-example.png | Bin 0 -> 3877 bytes doc/src/images/qml-webview-newwindows-example.png | Bin 0 -> 6152 bytes doc/src/images/qml-xmlhttprequest-example.png | Bin 0 -> 20934 bytes doc/src/images/qml-xmllistmodel-example.png | Bin 0 -> 5252 bytes doc/src/images/qml.png | Bin 0 -> 8662 bytes doc/src/images/qmldesigner-visual-editor.png | Bin 0 -> 102238 bytes doc/src/images/quick_screens.png | Bin 0 -> 128730 bytes doc/src/legal/qtquicklicense.qdoc | 40 + doc/src/snippets/declarative/Button.qml | 67 + .../snippets/declarative/SelfDestroyingRect.qml | 60 + doc/src/snippets/declarative/Sprite.qml | 45 + doc/src/snippets/declarative/anchoranimation.qml | 66 + doc/src/snippets/declarative/anchorchanges.qml | 68 + doc/src/snippets/declarative/animatedimage.qml | 61 + doc/src/snippets/declarative/animation.qml | 226 + doc/src/snippets/declarative/application.qml | 53 + doc/src/snippets/declarative/arrow.png | Bin 0 -> 454 bytes doc/src/snippets/declarative/behavior.qml | 58 + .../snippets/declarative/bestpractices/group.qml | 76 + .../borderimage/borderimage-defaults.qml | 55 + .../declarative/borderimage/borderimage-scaled.qml | 81 + .../declarative/borderimage/borderimage-tiled.qml | 81 + .../declarative/borderimage/normal-image.qml | 77 + .../declarative/borderimage/pics/borderframe.png | Bin 0 -> 3411 bytes .../declarative/borderimage/pics/borderframe.svg | 82 + .../codingconventions/dotproperties.qml | 68 + .../codingconventions/javascript-imports.qml | 47 + .../declarative/codingconventions/javascript.qml | 73 + .../declarative/codingconventions/lists.qml | 62 + .../declarative/codingconventions/myscript.js | 9 + .../declarative/codingconventions/photo.qml | 85 + .../declarative/codingconventions/private.qml | 49 + doc/src/snippets/declarative/coloranimation.qml | 51 + doc/src/snippets/declarative/colors.qml | 125 + doc/src/snippets/declarative/column/column.qml | 67 + .../column/vertical-positioner-transition.qml | 61 + .../declarative/column/vertical-positioner.qml | 50 + doc/src/snippets/declarative/comments.qml | 53 + doc/src/snippets/declarative/component.qml | 59 + doc/src/snippets/declarative/componentCreation.js | 45 + .../declarative/createComponent-simple.qml | 57 + doc/src/snippets/declarative/createComponent.qml | 51 + doc/src/snippets/declarative/createQmlObject.qml | 61 + .../declarative/dynamicObjects-destroy.qml | 55 + doc/src/snippets/declarative/events.qml | 141 + doc/src/snippets/declarative/flickable.qml | 50 + .../snippets/declarative/flickableScrollbar.qml | 66 + doc/src/snippets/declarative/flipable/flipable.qml | 78 + doc/src/snippets/declarative/flow-diagram.qml | 75 + doc/src/snippets/declarative/flow.qml | 64 + .../snippets/declarative/focus/advancedFocus.qml | 67 + doc/src/snippets/declarative/focus/basicwidget.qml | 59 + .../snippets/declarative/focus/clickablewidget.qml | 61 + doc/src/snippets/declarative/focus/focusColumn.qml | 64 + .../declarative/focus/focusscopewidget.qml | 63 + .../declarative/focus/myclickablewidget.qml | 69 + .../declarative/focus/myfocusscopewidget.qml | 68 + doc/src/snippets/declarative/focus/mywidget.qml | 58 + doc/src/snippets/declarative/focus/qmldir | 4 + doc/src/snippets/declarative/focus/rectangle.qml | 62 + doc/src/snippets/declarative/focus/widget.qml | 61 + doc/src/snippets/declarative/focusscopes.qml | 67 + doc/src/snippets/declarative/folderlistmodel.qml | 61 + doc/src/snippets/declarative/gradient.qml | 52 + doc/src/snippets/declarative/grid-spacing.qml | 60 + doc/src/snippets/declarative/grid/grid-items.qml | 58 + .../snippets/declarative/grid/grid-no-spacing.qml | 57 + doc/src/snippets/declarative/grid/grid-spacing.qml | 60 + doc/src/snippets/declarative/grid/grid.qml | 53 + .../snippets/declarative/gridview/ContactModel.qml | 63 + doc/src/snippets/declarative/gridview/gridview.qml | 163 + .../declarative/gridview/pics/portrait.png | Bin 0 -> 3126 bytes doc/src/snippets/declarative/image.qml | 47 + .../declarative/imports/best-practices.qml | 49 + doc/src/snippets/declarative/imports/chart.qml | 46 + .../declarative/imports/installed-module.qml | 47 + .../declarative/imports/merged-named-imports.qml | 47 + .../snippets/declarative/imports/named-imports.qml | 61 + .../declarative/imports/network-imports.qml | 47 + .../snippets/declarative/imports/qtquick-1.0.qml | 46 + .../snippets/declarative/imports/timeexample.qml | 46 + .../integrating-javascript/connectjs.qml | 57 + .../integrating-javascript/includejs/app.qml | 56 + .../integrating-javascript/includejs/factorial.js | 49 + .../integrating-javascript/includejs/script.js | 48 + .../declarative/integrating-javascript/script.js | 47 + doc/src/snippets/declarative/keynavigation.qml | 84 + doc/src/snippets/declarative/keys/keys-handler.qml | 60 + doc/src/snippets/declarative/keys/keys-pressed.qml | 65 + doc/src/snippets/declarative/layoutmirroring.qml | 71 + doc/src/snippets/declarative/listmodel-modify.qml | 96 + doc/src/snippets/declarative/listmodel-nested.qml | 102 + doc/src/snippets/declarative/listmodel-simple.qml | 79 + doc/src/snippets/declarative/listmodel.qml | 59 + .../snippets/declarative/listview-decorations.qml | 111 + doc/src/snippets/declarative/listview-sections.qml | 101 + doc/src/snippets/declarative/listview.qml | 87 + .../snippets/declarative/listview/ContactModel.qml | 58 + .../declarative/listview/listview-snippet.qml | 52 + doc/src/snippets/declarative/listview/listview.qml | 149 + doc/src/snippets/declarative/loader/KeyReader.qml | 53 + doc/src/snippets/declarative/loader/MyItem.qml | 55 + .../snippets/declarative/loader/connections.qml | 57 + doc/src/snippets/declarative/loader/focus.qml | 62 + doc/src/snippets/declarative/loader/simple.qml | 54 + doc/src/snippets/declarative/loader/sizeitem.qml | 62 + doc/src/snippets/declarative/loader/sizeloader.qml | 62 + .../declarative/models/views-models-delegates.qml | 78 + .../declarative/models/visual-model-and-view.qml | 57 + .../declarative/mousearea/mousearea-snippet.qml | 100 + .../snippets/declarative/mousearea/mousearea.qml | 117 + .../declarative/mousearea/mouseareadragfilter.qml | 72 + doc/src/snippets/declarative/numberanimation.qml | 51 + doc/src/snippets/declarative/parallelanimation.qml | 56 + doc/src/snippets/declarative/parentanimation.qml | 73 + doc/src/snippets/declarative/parentchange.qml | 67 + .../snippets/declarative/pathview/ContactModel.qml | 58 + .../declarative/pathview/pathattributes.qml | 79 + doc/src/snippets/declarative/pathview/pathview.qml | 80 + .../snippets/declarative/pathview/pics/qtlogo.png | Bin 0 -> 2991 bytes doc/src/snippets/declarative/pics/checker.svg | 17 + doc/src/snippets/declarative/pics/qt.png | Bin 0 -> 2991 bytes doc/src/snippets/declarative/pics/qtlogo.png | Bin 0 -> 2991 bytes doc/src/snippets/declarative/properties.qml | 315 + .../declarative/propertyaction-sequential.qml | 72 + doc/src/snippets/declarative/propertyaction.qml | 83 + doc/src/snippets/declarative/propertyanimation.qml | 100 + doc/src/snippets/declarative/propertychanges.qml | 91 + .../qml-data-models/dynamic-listmodel.qml | 67 + .../declarative/qml-data-models/listelements.qml | 77 + .../qml-data-models/listmodel-listview.qml | 64 + .../declarative/qml-documents/inline-component.qml | 57 + .../qml-documents/inline-text-component.qml | 55 + .../declarative/qml-documents/non-trivial.qml | 62 + .../declarative/qml-documents/qmldocuments.qml | 66 + .../qml-extending-types/components/Button.qml | 53 + .../qml-extending-types/components/application.qml | 49 + .../qml-extending-types/methods/app.qml | 55 + .../qml-extending-types/properties/ImageViewer.qml | 52 + .../properties/alias-override.qml | 48 + .../qml-extending-types/properties/alias.qml | 51 + .../properties/alias/ImageViewer.qml | 52 + .../properties/alias/application.qml | 54 + .../qml-extending-types/properties/application.qml | 50 + .../properties/property-signals.qml | 49 + .../qml-extending-types/signals/Button.qml | 55 + .../qml-extending-types/signals/basic.qml | 55 + .../qml-extending-types/signals/connectdynamic.qml | 61 + .../qml-extending-types/signals/connectslots.qml | 56 + .../qml-extending-types/signals/no-parameters.qml | 49 + .../qml-extending-types/signals/parameters.qml | 50 + .../declarative/qml-intro/images/qt-logo.svg | 104 + .../qtbinding/context-advanced/MyItem.qml | 46 + .../qtbinding/context-advanced/applicationdata.h | 52 + .../qtbinding/context-advanced/connections.qml | 52 + .../context-advanced/context-advanced.pro | 3 + .../qtbinding/context-advanced/main.cpp | 60 + .../declarative/qtbinding/context/MyItem.qml | 45 + .../declarative/qtbinding/context/context.pro | 2 + .../declarative/qtbinding/context/main.cpp | 56 + .../snippets/declarative/qtbinding/enums/enums.pro | 3 + .../declarative/qtbinding/enums/imageviewer.h | 68 + .../snippets/declarative/qtbinding/enums/main.cpp | 73 + .../declarative/qtbinding/enums/standalone.qml | 64 + .../declarative/qtbinding/functions-cpp/MyItem.qml | 55 + .../qtbinding/functions-cpp/functions-qml.pro | 3 + .../declarative/qtbinding/functions-cpp/main.cpp | 59 + .../declarative/qtbinding/functions-cpp/myclass.h | 57 + .../declarative/qtbinding/functions-qml/MyItem.qml | 50 + .../qtbinding/functions-qml/functions-qml.pro | 2 + .../declarative/qtbinding/functions-qml/main.cpp | 63 + .../declarative/qtbinding/loading/MyItem.qml | 56 + .../declarative/qtbinding/loading/loading.pro | 2 + .../declarative/qtbinding/loading/main.cpp | 90 + .../qtbinding/newelements/imageviewer.h | 56 + .../declarative/qtbinding/newelements/main.cpp | 62 + .../qtbinding/newelements/newelements.pro | 3 + .../qtbinding/newelements/standalone.qml | 44 + .../qtbinding/properties-cpp/MyItem.qml | 54 + .../qtbinding/properties-cpp/applicationdata.h | 71 + .../declarative/qtbinding/properties-cpp/main.cpp | 58 + .../qtbinding/properties-cpp/properties-cpp.pro | 3 + .../qtbinding/properties-qml/MyItem.qml | 47 + .../declarative/qtbinding/properties-qml/main.cpp | 61 + .../qtbinding/properties-qml/properties-qml.pro | 2 + .../declarative/qtbinding/resources/example.qrc | 10 + .../qtbinding/resources/images/background.png | 0 .../declarative/qtbinding/resources/main.cpp | 57 + .../declarative/qtbinding/resources/main.qml | 46 + .../declarative/qtbinding/resources/resources.pro | 4 + .../declarative/qtbinding/signals-cpp/MyItem.qml | 50 + .../qtbinding/signals-cpp/imageviewer.h | 64 + .../declarative/qtbinding/signals-cpp/main.cpp | 81 + .../qtbinding/signals-cpp/signals-cpp.pro | 3 + .../qtbinding/signals-cpp/standalone.qml | 48 + .../declarative/qtbinding/signals-qml/MyItem.qml | 55 + .../declarative/qtbinding/signals-qml/main.cpp | 59 + .../declarative/qtbinding/signals-qml/myclass.h | 51 + .../qtbinding/signals-qml/signals-qml.pro | 3 + .../qtbinding/variantlistmap/MyItem.qml | 54 + .../declarative/qtbinding/variantlistmap/main.cpp | 67 + .../qtbinding/variantlistmap/variantlistmap.pro | 2 + doc/src/snippets/declarative/qtobject.qml | 54 + .../declarative/rectangle/rect-border-width.qml | 59 + .../declarative/rectangle/rectangle-colors.qml | 62 + .../declarative/rectangle/rectangle-gradient.qml | 74 + .../declarative/rectangle/rectangle-smooth.qml | 87 + .../snippets/declarative/rectangle/rectangle.qml | 52 + .../declarative/repeaters/repeater-grid-index.qml | 61 + .../snippets/declarative/repeaters/repeater.qml | 89 + .../declarative/reusablecomponents/Button.qml | 84 + .../declarative/reusablecomponents/application.qml | 55 + .../declarative/reusablecomponents/component.qml | 77 + .../declarative/reusablecomponents/focusbutton.qml | 98 + .../snippets/declarative/reusablecomponents/qmldir | 4 + doc/src/snippets/declarative/righttoleft.qml | 149 + doc/src/snippets/declarative/righttoleft/Child.qml | 51 + doc/src/snippets/declarative/rotation.qml | 69 + doc/src/snippets/declarative/rotationanimation.qml | 66 + doc/src/snippets/declarative/row.qml | 62 + doc/src/snippets/declarative/row/row.qml | 50 + doc/src/snippets/declarative/script.js | 4 + .../snippets/declarative/sequentialanimation.qml | 56 + doc/src/snippets/declarative/smoothedanimation.qml | 69 + doc/src/snippets/declarative/springanimation.qml | 65 + doc/src/snippets/declarative/state-when.qml | 54 + doc/src/snippets/declarative/state.qml | 61 + doc/src/snippets/declarative/states.qml | 121 + .../declarative/states/statechangescript.qml | 62 + doc/src/snippets/declarative/systempalette.qml | 54 + .../snippets/declarative/text/onLinkActivated.qml | 54 + doc/src/snippets/declarative/texteditor.qml | 72 + doc/src/snippets/declarative/texthandling.qml | 89 + .../declarative/transition-from-to-modified.qml | 60 + .../snippets/declarative/transition-from-to.qml | 59 + .../snippets/declarative/transition-reversible.qml | 66 + doc/src/snippets/declarative/transition.qml | 63 + doc/src/snippets/declarative/transitions-list.qml | 89 + doc/src/snippets/declarative/visualdatamodel.qml | 64 + .../declarative/visualdatamodel_rootindex/main.cpp | 62 + .../declarative/visualdatamodel_rootindex/view.qml | 65 + .../visualdatamodel_rootindex.pro | 4 + doc/src/snippets/declarative/webview/webview.qml | 53 + doc/src/snippets/declarative/workerscript.qml | 64 + doc/src/snippets/declarative/xmlrole.qml | 80 + doc/src/snippets/declarative/xmlrole.xml | 14 + examples/declarative/README | 41 + examples/declarative/animation/animation.pro | 8 + .../basics/color-animation/basics.qmlproject | 16 + .../basics/color-animation/color-animation.png | Bin 0 -> 3400 bytes .../basics/color-animation/color-animation.pro | 51 + .../basics/color-animation/color-animation.svg | 93 + .../animation/basics/color-animation/main.cpp | 54 + .../qml/color-animation/color-animation.qml | 112 + .../qml/color-animation/images/face-smile.png | Bin 0 -> 15408 bytes .../qml/color-animation/images/moon.png | Bin 0 -> 2433 bytes .../qml/color-animation/images/shadow.png | Bin 0 -> 425 bytes .../qml/color-animation/images/star.png | Bin 0 -> 349 bytes .../qml/color-animation/images/sun.png | Bin 0 -> 8153 bytes .../animation/basics/property-animation/main.cpp | 54 + .../property-animation/property-animation.png | Bin 0 -> 3400 bytes .../property-animation/property-animation.pro | 41 + .../property-animation/property-animation.svg | 93 + .../basics/property-animation/property.qmlproject | 16 + .../qml/property-animation/images/face-smile.png | Bin 0 -> 15408 bytes .../qml/property-animation/images/moon.png | Bin 0 -> 2433 bytes .../qml/property-animation/images/shadow.png | Bin 0 -> 425 bytes .../qml/property-animation/images/star.png | Bin 0 -> 349 bytes .../qml/property-animation/images/sun.png | Bin 0 -> 8153 bytes .../qml/property-animation/property-animation.qml | 105 + .../behavior-example/behavior-example.png | Bin 0 -> 3400 bytes .../behavior-example/behavior-example.pro | 41 + .../behavior-example/behavior-example.svg | 93 + .../behavior-example/behaviors.qmlproject | 16 + .../animation/behaviors/behavior-example/main.cpp | 54 + .../behavior-example/qml/behaviours/SideRect.qml | 62 + .../qml/behaviours/behavior-example.qml | 118 + .../animation/behaviors/wigglytext/main.cpp | 54 + .../wigglytext/qml/wigglytext/wigglytext.qml | 108 + .../animation/behaviors/wigglytext/wigglytext.png | Bin 0 -> 3400 bytes .../animation/behaviors/wigglytext/wigglytext.pro | 41 + .../behaviors/wigglytext/wigglytext.qmlproject | 16 + .../animation/behaviors/wigglytext/wigglytext.svg | 93 + examples/declarative/animation/easing/easing.png | Bin 0 -> 3400 bytes examples/declarative/animation/easing/easing.pro | 41 + examples/declarative/animation/easing/easing.qml | 159 + .../declarative/animation/easing/easing.qmlproject | 16 + examples/declarative/animation/easing/easing.svg | 93 + examples/declarative/animation/easing/main.cpp | 54 + .../easing/qml/easing/content/QuitButton.qml | 52 + .../animation/easing/qml/easing/content/quit.png | Bin 0 -> 583 bytes .../animation/easing/qml/easing/easing.qml | 159 + examples/declarative/animation/states/main.cpp | 57 + .../animation/states/qml/states/qt-logo.png | Bin 0 -> 5149 bytes .../animation/states/qml/states/states.qml | 101 + .../animation/states/qml/states/transitions.qml | 130 + examples/declarative/animation/states/states.png | Bin 0 -> 3400 bytes examples/declarative/animation/states/states.pro | 41 + .../declarative/animation/states/states.qmlproject | 16 + examples/declarative/animation/states/states.svg | 93 + .../declarative/cppextensions/cppextensions.pro | 10 + .../cppextensions/cppextensions.qmlproject | 16 + .../imageprovider/ImageProviderCore/qmldir | 2 + .../imageprovider/imageprovider-example.qml | 49 + .../cppextensions/imageprovider/imageprovider.cpp | 110 + .../cppextensions/imageprovider/imageprovider.pro | 29 + .../imageprovider/imageprovider.qmlproject | 16 + .../networkaccessmanagerfactory/main.cpp | 106 + .../networkaccessmanagerfactory.pro | 41 + .../networkaccessmanagerfactory.qmlproject | 16 + .../networkaccessmanagerfactory.qrc | 5 + .../qml/networkaccessmanagerfactory/view.qml | 47 + examples/declarative/cppextensions/plugins/README | 9 + .../plugins/com/nokia/TimeExample/Clock.qml | 90 + .../plugins/com/nokia/TimeExample/center.png | Bin 0 -> 765 bytes .../plugins/com/nokia/TimeExample/clock.png | Bin 0 -> 20653 bytes .../plugins/com/nokia/TimeExample/hour.png | Bin 0 -> 625 bytes .../plugins/com/nokia/TimeExample/minute.png | Bin 0 -> 625 bytes .../plugins/com/nokia/TimeExample/qmldir | 2 + .../declarative/cppextensions/plugins/plugin.cpp | 157 + .../declarative/cppextensions/plugins/plugins.pro | 30 + .../declarative/cppextensions/plugins/plugins.qml | 52 + .../cppextensions/plugins/plugins.qmlproject | 16 + .../qgraphicslayouts/layoutitem/layoutitem.pro | 8 + .../qgraphicslayouts/layoutitem/layoutitem.qml | 57 + .../layoutitem/layoutitem.qmlproject | 16 + .../qgraphicslayouts/layoutitem/layoutitem.qrc | 5 + .../qgraphicslayouts/layoutitem/main.cpp | 74 + .../qgraphicsgridlayout/gridlayout.cpp | 188 + .../qgraphicsgridlayout/gridlayout.h | 217 + .../qgraphicsgridlayout/gridlayout.qrc | 5 + .../qgraphicslayouts/qgraphicsgridlayout/main.cpp | 63 + .../qgraphicsgridlayout/qgraphicsgridlayout.pro | 49 + .../qgraphicsgridlayout/qgraphicsgridlayout.qml | 100 + .../qgraphicslayouts/qgraphicslayouts.pro | 6 + .../qgraphicslayouts/qgraphicslayouts.qmlproject | 16 + .../qgraphicslinearlayout/linearlayout.cpp | 175 + .../qgraphicslinearlayout/linearlayout.h | 152 + .../qgraphicslinearlayout/linearlayout.qrc | 5 + .../qgraphicslinearlayout/main.cpp | 64 + .../qgraphicslinearlayout.pro | 47 + .../qgraphicslinearlayout.qml | 79 + .../cppextensions/qwidgets/QWidgets/qmldir | 1 + examples/declarative/cppextensions/qwidgets/README | 6 + .../cppextensions/qwidgets/qwidgets.cpp | 96 + .../cppextensions/qwidgets/qwidgets.pro | 25 + .../cppextensions/qwidgets/qwidgets.qml | 110 + .../cppextensions/qwidgets/qwidgets.qmlproject | 16 + .../referenceexamples/adding/adding.pro | 15 + .../referenceexamples/adding/adding.qrc | 5 + .../referenceexamples/adding/example.qml | 48 + .../referenceexamples/adding/main.cpp | 64 + .../referenceexamples/adding/person.cpp | 68 + .../referenceexamples/adding/person.h | 65 + .../referenceexamples/attached/attached.pro | 17 + .../referenceexamples/attached/attached.qrc | 5 + .../referenceexamples/attached/birthdayparty.cpp | 91 + .../referenceexamples/attached/birthdayparty.h | 86 + .../referenceexamples/attached/example.qml | 71 + .../referenceexamples/attached/main.cpp | 90 + .../referenceexamples/attached/person.cpp | 118 + .../referenceexamples/attached/person.h | 105 + .../referenceexamples/binding/binding.pro | 19 + .../referenceexamples/binding/binding.qrc | 5 + .../referenceexamples/binding/birthdayparty.cpp | 113 + .../referenceexamples/binding/birthdayparty.h | 102 + .../referenceexamples/binding/example.qml | 77 + .../binding/happybirthdaysong.cpp | 85 + .../referenceexamples/binding/happybirthdaysong.h | 74 + .../referenceexamples/binding/main.cpp | 92 + .../referenceexamples/binding/person.cpp | 138 + .../referenceexamples/binding/person.h | 113 + .../referenceexamples/coercion/birthdayparty.cpp | 71 + .../referenceexamples/coercion/birthdayparty.h | 69 + .../referenceexamples/coercion/coercion.pro | 17 + .../referenceexamples/coercion/coercion.qrc | 5 + .../referenceexamples/coercion/example.qml | 55 + .../referenceexamples/coercion/main.cpp | 77 + .../referenceexamples/coercion/person.cpp | 79 + .../referenceexamples/coercion/person.h | 82 + .../referenceexamples/default/birthdayparty.cpp | 71 + .../referenceexamples/default/birthdayparty.h | 70 + .../referenceexamples/default/default.pro | 17 + .../referenceexamples/default/default.qrc | 5 + .../referenceexamples/default/example.qml | 54 + .../referenceexamples/default/main.cpp | 75 + .../referenceexamples/default/person.cpp | 78 + .../referenceexamples/default/person.h | 77 + .../referenceexamples/extended/example.qml | 47 + .../referenceexamples/extended/extended.pro | 15 + .../referenceexamples/extended/extended.qrc | 5 + .../referenceexamples/extended/lineedit.cpp | 104 + .../referenceexamples/extended/lineedit.h | 73 + .../referenceexamples/extended/main.cpp | 64 + .../referenceexamples/grouped/birthdayparty.cpp | 71 + .../referenceexamples/grouped/birthdayparty.h | 69 + .../referenceexamples/grouped/example.qml | 73 + .../referenceexamples/grouped/grouped.pro | 17 + .../referenceexamples/grouped/grouped.qrc | 5 + .../referenceexamples/grouped/main.cpp | 85 + .../referenceexamples/grouped/person.cpp | 118 + .../referenceexamples/grouped/person.h | 107 + .../referenceexamples/methods/birthdayparty.cpp | 80 + .../referenceexamples/methods/birthdayparty.h | 71 + .../referenceexamples/methods/example.qml | 58 + .../referenceexamples/methods/main.cpp | 68 + .../referenceexamples/methods/methods.pro | 18 + .../referenceexamples/methods/methods.qrc | 5 + .../referenceexamples/methods/person.cpp | 66 + .../referenceexamples/methods/person.h | 63 + .../referenceexamples/properties/birthdayparty.cpp | 73 + .../referenceexamples/properties/birthdayparty.h | 75 + .../referenceexamples/properties/example.qml | 55 + .../referenceexamples/properties/main.cpp | 68 + .../referenceexamples/properties/person.cpp | 66 + .../referenceexamples/properties/person.h | 63 + .../referenceexamples/properties/properties.pro | 18 + .../referenceexamples/properties/properties.qrc | 5 + .../referenceexamples/referenceexamples.pro | 14 + .../referenceexamples/referenceexamples.qmlproject | 16 + .../referenceexamples/signal/birthdayparty.cpp | 98 + .../referenceexamples/signal/birthdayparty.h | 92 + .../referenceexamples/signal/example.qml | 72 + .../referenceexamples/signal/main.cpp | 91 + .../referenceexamples/signal/person.cpp | 118 + .../referenceexamples/signal/person.h | 105 + .../referenceexamples/signal/signal.pro | 17 + .../referenceexamples/signal/signal.qrc | 5 + .../valuesource/birthdayparty.cpp | 108 + .../referenceexamples/valuesource/birthdayparty.h | 97 + .../referenceexamples/valuesource/example.qml | 76 + .../valuesource/happybirthdaysong.cpp | 80 + .../valuesource/happybirthdaysong.h | 79 + .../referenceexamples/valuesource/main.cpp | 93 + .../referenceexamples/valuesource/person.cpp | 118 + .../referenceexamples/valuesource/person.h | 105 + .../referenceexamples/valuesource/valuesource.pro | 19 + .../referenceexamples/valuesource/valuesource.qrc | 5 + examples/declarative/declarative.pro | 32 + examples/declarative/i18n/i18n.png | Bin 0 -> 3400 bytes examples/declarative/i18n/i18n.pro | 42 + examples/declarative/i18n/i18n.qmlproject | 16 + examples/declarative/i18n/i18n.svg | 93 + examples/declarative/i18n/main.cpp | 54 + examples/declarative/i18n/qml/i18n/base.ts | 12 + examples/declarative/i18n/qml/i18n/i18n.qml | 78 + examples/declarative/i18n/qml/i18n/qml_en_AU.ts | 12 + examples/declarative/i18n/qml/i18n/qml_fr.ts | 12 + .../imageelements/borderimage/borderimage.png | Bin 0 -> 3400 bytes .../imageelements/borderimage/borderimage.pro | 41 + .../borderimage/borderimage.qmlproject | 16 + .../imageelements/borderimage/borderimage.svg | 93 + .../declarative/imageelements/borderimage/main.cpp | 54 + .../borderimage/qml/borderimage/borderimage.qml | 97 + .../qml/borderimage/content/MyBorderImage.qml | 90 + .../qml/borderimage/content/ShadowRectangle.qml | 54 + .../borderimage/qml/borderimage/content/bw.png | Bin 0 -> 1357 bytes .../qml/borderimage/content/colors-round.sci | 7 + .../qml/borderimage/content/colors-stretch.sci | 5 + .../borderimage/qml/borderimage/content/colors.png | Bin 0 -> 1655 bytes .../borderimage/qml/borderimage/content/shadow.png | Bin 0 -> 588 bytes .../borderimage/qml/borderimage/shadows.qml | 64 + examples/declarative/imageelements/image/image.png | Bin 0 -> 3400 bytes examples/declarative/imageelements/image/image.pro | 41 + .../imageelements/image/image.qmlproject | 16 + examples/declarative/imageelements/image/image.svg | 93 + examples/declarative/imageelements/image/main.cpp | 54 + .../imageelements/image/qml/image/ImageCell.qml | 60 + .../imageelements/image/qml/image/image.qml | 66 + .../imageelements/image/qml/image/qt-logo.png | Bin 0 -> 5149 bytes .../declarative/imageelements/imageelements.pro | 6 + .../declarative/imageelements/shadows/main.cpp | 54 + .../shadows/qml/shadows/borderimage.qml | 97 + .../shadows/qml/shadows/content/MyBorderImage.qml | 90 + .../qml/shadows/content/ShadowRectangle.qml | 54 + .../shadows/qml/shadows/content/bw.png | Bin 0 -> 1357 bytes .../shadows/qml/shadows/content/colors-round.sci | 7 + .../shadows/qml/shadows/content/colors-stretch.sci | 5 + .../shadows/qml/shadows/content/colors.png | Bin 0 -> 1655 bytes .../shadows/qml/shadows/content/shadow.png | Bin 0 -> 588 bytes .../imageelements/shadows/qml/shadows/shadows.qml | 64 + .../declarative/imageelements/shadows/shadows.png | Bin 0 -> 3400 bytes .../declarative/imageelements/shadows/shadows.pro | 41 + .../imageelements/shadows/shadows.qmlproject | 16 + .../declarative/imageelements/shadows/shadows.svg | 93 + .../declarative/keyinteraction/focus/focus.png | Bin 0 -> 3400 bytes .../declarative/keyinteraction/focus/focus.pro | 41 + .../keyinteraction/focus/focus.qmlproject | 16 + .../declarative/keyinteraction/focus/focus.svg | 93 + examples/declarative/keyinteraction/focus/main.cpp | 54 + .../focus/qml/focus/FocusCore/ContextMenu.qml | 65 + .../focus/qml/focus/FocusCore/GridMenu.qml | 105 + .../focus/qml/focus/FocusCore/ListMenu.qml | 105 + .../focus/qml/focus/FocusCore/ListViewDelegate.qml | 85 + .../focus/qml/focus/FocusCore/images/arrow.png | Bin 0 -> 583 bytes .../focus/qml/focus/FocusCore/images/qt-logo.png | Bin 0 -> 5149 bytes .../keyinteraction/focus/qml/focus/focus.qml | 111 + .../abstractitemmodel/abstractitemmodel.pro | 40 + .../modelviews/abstractitemmodel/main.cpp | 66 + .../modelviews/abstractitemmodel/model.cpp | 90 + .../modelviews/abstractitemmodel/model.h | 83 + .../qml/abstractitemmodel/view.qml | 51 + .../declarative/modelviews/gridview/gridview.pro | 41 + .../modelviews/gridview/gridview.qmlproject | 16 + .../declarative/modelviews/gridview/gridview.svg | 93 + .../modelviews/gridview/gridviewexample.png | Bin 0 -> 3400 bytes examples/declarative/modelviews/gridview/main.cpp | 54 + .../qml/gridview-example/gridview-example.qml | 89 + .../qml/gridview-example/pics/AddressBook_48.png | Bin 0 -> 3350 bytes .../qml/gridview-example/pics/AudioPlayer_48.png | Bin 0 -> 3806 bytes .../qml/gridview-example/pics/Camera_48.png | Bin 0 -> 3540 bytes .../qml/gridview-example/pics/DateBook_48.png | Bin 0 -> 2610 bytes .../qml/gridview-example/pics/EMail_48.png | Bin 0 -> 3655 bytes .../qml/gridview-example/pics/TodoList_48.png | Bin 0 -> 3429 bytes .../qml/gridview-example/pics/VideoPlayer_48.png | Bin 0 -> 4151 bytes .../listview/dynamiclist/dynamiclist.png | Bin 0 -> 3400 bytes .../listview/dynamiclist/dynamiclist.pro | 41 + .../listview/dynamiclist/dynamiclist.qmlproject | 16 + .../listview/dynamiclist/dynamiclist.svg | 93 + .../modelviews/listview/dynamiclist/main.cpp | 54 + .../dynamiclist/qml/dynamic/content/PetsModel.qml | 98 + .../qml/dynamic/content/PressAndHoldButton.qml | 82 + .../qml/dynamic/content/RecipesModel.qml | 129 + .../dynamiclist/qml/dynamic/content/TextButton.qml | 78 + .../qml/dynamic/content/pics/arrow-down.png | Bin 0 -> 594 bytes .../qml/dynamic/content/pics/arrow-up.png | Bin 0 -> 692 bytes .../qml/dynamic/content/pics/fruit-salad.jpg | Bin 0 -> 17952 bytes .../qml/dynamic/content/pics/hamburger.jpg | Bin 0 -> 8572 bytes .../qml/dynamic/content/pics/lemonade.jpg | Bin 0 -> 6645 bytes .../qml/dynamic/content/pics/list-delete.png | Bin 0 -> 831 bytes .../qml/dynamic/content/pics/minus-sign.png | Bin 0 -> 250 bytes .../qml/dynamic/content/pics/moreDown.png | Bin 0 -> 217 bytes .../qml/dynamic/content/pics/moreUp.png | Bin 0 -> 212 bytes .../qml/dynamic/content/pics/pancakes.jpg | Bin 0 -> 9163 bytes .../qml/dynamic/content/pics/plus-sign.png | Bin 0 -> 462 bytes .../qml/dynamic/content/pics/vegetable-soup.jpg | Bin 0 -> 8639 bytes .../dynamiclist/qml/dynamic/dynamiclist.qml | 203 + .../dynamiclist/qml/dynamic/expandingdelegates.qml | 202 + .../listview/dynamiclist/qml/dynamic/highlight.qml | 99 + .../dynamiclist/qml/dynamic/highlightranges.qml | 122 + .../listview/dynamiclist/qml/dynamic/sections.qml | 87 + .../expandingdelegates/expandingdelegates.png | Bin 0 -> 3400 bytes .../expandingdelegates/expandingdelegates.pro | 41 + .../expandingdelegates.qmlproject | 16 + .../expandingdelegates/expandingdelegates.svg | 93 + .../listview/expandingdelegates/main.cpp | 54 + .../qml/expandingdelegates/content/PetsModel.qml | 98 + .../content/PressAndHoldButton.qml | 82 + .../expandingdelegates/content/RecipesModel.qml | 129 + .../qml/expandingdelegates/content/TextButton.qml | 78 + .../expandingdelegates/content/pics/arrow-down.png | Bin 0 -> 594 bytes .../expandingdelegates/content/pics/arrow-up.png | Bin 0 -> 692 bytes .../content/pics/fruit-salad.jpg | Bin 0 -> 17952 bytes .../expandingdelegates/content/pics/hamburger.jpg | Bin 0 -> 8572 bytes .../expandingdelegates/content/pics/lemonade.jpg | Bin 0 -> 6645 bytes .../content/pics/list-delete.png | Bin 0 -> 831 bytes .../expandingdelegates/content/pics/minus-sign.png | Bin 0 -> 250 bytes .../expandingdelegates/content/pics/moreDown.png | Bin 0 -> 217 bytes .../qml/expandingdelegates/content/pics/moreUp.png | Bin 0 -> 212 bytes .../expandingdelegates/content/pics/pancakes.jpg | Bin 0 -> 9163 bytes .../expandingdelegates/content/pics/plus-sign.png | Bin 0 -> 462 bytes .../content/pics/vegetable-soup.jpg | Bin 0 -> 8639 bytes .../qml/expandingdelegates/dynamiclist.qml | 203 + .../qml/expandingdelegates/expandingdelegates.qml | 202 + .../qml/expandingdelegates/highlight.qml | 99 + .../qml/expandingdelegates/highlightranges.qml | 122 + .../qml/expandingdelegates/sections.qml | 87 + .../modelviews/listview/highlight/highlight.png | Bin 0 -> 3400 bytes .../modelviews/listview/highlight/highlight.pro | 41 + .../listview/highlight/highlight.qmlproject | 16 + .../modelviews/listview/highlight/highlight.svg | 93 + .../modelviews/listview/highlight/main.cpp | 54 + .../highlight/qml/highlight/content/PetsModel.qml | 98 + .../qml/highlight/content/PressAndHoldButton.qml | 82 + .../qml/highlight/content/RecipesModel.qml | 129 + .../highlight/qml/highlight/content/TextButton.qml | 78 + .../qml/highlight/content/pics/arrow-down.png | Bin 0 -> 594 bytes .../qml/highlight/content/pics/arrow-up.png | Bin 0 -> 692 bytes .../qml/highlight/content/pics/fruit-salad.jpg | Bin 0 -> 17952 bytes .../qml/highlight/content/pics/hamburger.jpg | Bin 0 -> 8572 bytes .../qml/highlight/content/pics/lemonade.jpg | Bin 0 -> 6645 bytes .../qml/highlight/content/pics/list-delete.png | Bin 0 -> 831 bytes .../qml/highlight/content/pics/minus-sign.png | Bin 0 -> 250 bytes .../qml/highlight/content/pics/moreDown.png | Bin 0 -> 217 bytes .../qml/highlight/content/pics/moreUp.png | Bin 0 -> 212 bytes .../qml/highlight/content/pics/pancakes.jpg | Bin 0 -> 9163 bytes .../qml/highlight/content/pics/plus-sign.png | Bin 0 -> 462 bytes .../qml/highlight/content/pics/vegetable-soup.jpg | Bin 0 -> 8639 bytes .../highlight/qml/highlight/dynamiclist.qml | 203 + .../highlight/qml/highlight/expandingdelegates.qml | 202 + .../listview/highlight/qml/highlight/highlight.qml | 99 + .../highlight/qml/highlight/highlightranges.qml | 122 + .../listview/highlight/qml/highlight/sections.qml | 87 + .../listview/highlightranges/highlightranges.png | Bin 0 -> 3400 bytes .../listview/highlightranges/highlightranges.pro | 41 + .../highlightranges/highlightranges.qmlproject | 16 + .../listview/highlightranges/highlightranges.svg | 93 + .../modelviews/listview/highlightranges/main.cpp | 54 + .../qml/highlightranges/content/PetsModel.qml | 98 + .../highlightranges/content/PressAndHoldButton.qml | 82 + .../qml/highlightranges/content/RecipesModel.qml | 129 + .../qml/highlightranges/content/TextButton.qml | 78 + .../highlightranges/content/pics/arrow-down.png | Bin 0 -> 594 bytes .../qml/highlightranges/content/pics/arrow-up.png | Bin 0 -> 692 bytes .../highlightranges/content/pics/fruit-salad.jpg | Bin 0 -> 17952 bytes .../qml/highlightranges/content/pics/hamburger.jpg | Bin 0 -> 8572 bytes .../qml/highlightranges/content/pics/lemonade.jpg | Bin 0 -> 6645 bytes .../highlightranges/content/pics/list-delete.png | Bin 0 -> 831 bytes .../highlightranges/content/pics/minus-sign.png | Bin 0 -> 250 bytes .../qml/highlightranges/content/pics/moreDown.png | Bin 0 -> 217 bytes .../qml/highlightranges/content/pics/moreUp.png | Bin 0 -> 212 bytes .../qml/highlightranges/content/pics/pancakes.jpg | Bin 0 -> 9163 bytes .../qml/highlightranges/content/pics/plus-sign.png | Bin 0 -> 462 bytes .../content/pics/vegetable-soup.jpg | Bin 0 -> 8639 bytes .../qml/highlightranges/dynamiclist.qml | 203 + .../qml/highlightranges/expandingdelegates.qml | 202 + .../qml/highlightranges/highlight.qml | 99 + .../qml/highlightranges/highlightranges.qml | 122 + .../qml/highlightranges/sections.qml | 87 + .../declarative/modelviews/listview/listview.pro | 8 + .../modelviews/listview/sections/main.cpp | 54 + .../sections/qml/sections/content/PetsModel.qml | 98 + .../qml/sections/content/PressAndHoldButton.qml | 82 + .../sections/qml/sections/content/RecipesModel.qml | 129 + .../sections/qml/sections/content/TextButton.qml | 78 + .../qml/sections/content/pics/arrow-down.png | Bin 0 -> 594 bytes .../qml/sections/content/pics/arrow-up.png | Bin 0 -> 692 bytes .../qml/sections/content/pics/fruit-salad.jpg | Bin 0 -> 17952 bytes .../qml/sections/content/pics/hamburger.jpg | Bin 0 -> 8572 bytes .../qml/sections/content/pics/lemonade.jpg | Bin 0 -> 6645 bytes .../qml/sections/content/pics/list-delete.png | Bin 0 -> 831 bytes .../qml/sections/content/pics/minus-sign.png | Bin 0 -> 250 bytes .../qml/sections/content/pics/moreDown.png | Bin 0 -> 217 bytes .../sections/qml/sections/content/pics/moreUp.png | Bin 0 -> 212 bytes .../qml/sections/content/pics/pancakes.jpg | Bin 0 -> 9163 bytes .../qml/sections/content/pics/plus-sign.png | Bin 0 -> 462 bytes .../qml/sections/content/pics/vegetable-soup.jpg | Bin 0 -> 8639 bytes .../listview/sections/qml/sections/dynamiclist.qml | 203 + .../sections/qml/sections/expandingdelegates.qml | 202 + .../listview/sections/qml/sections/highlight.qml | 99 + .../sections/qml/sections/highlightranges.qml | 122 + .../listview/sections/qml/sections/sections.qml | 87 + .../modelviews/listview/sections/sections.png | Bin 0 -> 3400 bytes .../modelviews/listview/sections/sections.pro | 41 + .../listview/sections/sections.qmlproject | 16 + .../modelviews/listview/sections/sections.svg | 93 + examples/declarative/modelviews/modelviews.pro | 16 + .../modelviews/objectlistmodel/dataobject.cpp | 78 + .../modelviews/objectlistmodel/dataobject.h | 76 + .../modelviews/objectlistmodel/main.cpp | 73 + .../modelviews/objectlistmodel/objectlistmodel.pro | 41 + .../objectlistmodel/objectlistmodel.qmlproject | 16 + .../objectlistmodel/qml/objectlistmodel/view.qml | 56 + examples/declarative/modelviews/package/main.cpp | 54 + .../declarative/modelviews/package/package.pro | 39 + .../modelviews/package/package.qmlproject | 16 + .../modelviews/package/qml/package/Delegate.qml | 88 + .../modelviews/package/qml/package/view.qml | 76 + examples/declarative/modelviews/parallax/main.cpp | 54 + .../declarative/modelviews/parallax/parallax.pro | 39 + .../modelviews/parallax/parallax.qmlproject | 16 + .../declarative/modelviews/parallax/parallax.svg | 93 + .../declarative/modelviews/parallax/parallax64.png | Bin 0 -> 3400 bytes .../declarative/modelviews/parallax/parallax80.png | Bin 0 -> 4945 bytes .../modelviews/parallax/qml/parallax/Clock.qml | 54 + .../parallax/qml/parallax/ParallaxView.qml | 123 + .../modelviews/parallax/qml/parallax/Smiley.qml | 84 + .../modelviews/parallax/qml/parallax/parallax.qml | 69 + .../parallax/qml/parallax/pics/background.jpg | Bin 0 -> 209814 bytes .../parallax/qml/parallax/pics/face-smile.png | Bin 0 -> 15408 bytes .../parallax/qml/parallax/pics/home-page.svg | 445 + .../parallax/qml/parallax/pics/shadow.png | Bin 0 -> 425 bytes .../parallax/qml/parallax/pics/yast-joystick.png | Bin 0 -> 2723 bytes .../parallax/qml/parallax/pics/yast-wol.png | Bin 0 -> 3769 bytes examples/declarative/modelviews/pathview/main.cpp | 54 + .../declarative/modelviews/pathview/pathview.png | Bin 0 -> 3400 bytes .../declarative/modelviews/pathview/pathview.pro | 41 + .../modelviews/pathview/pathview.qmlproject | 16 + .../declarative/modelviews/pathview/pathview.svg | 93 + .../qml/pathview-example/pathview-example.qml | 109 + .../qml/pathview-example/pics/AddressBook_48.png | Bin 0 -> 3350 bytes .../qml/pathview-example/pics/AudioPlayer_48.png | Bin 0 -> 3806 bytes .../qml/pathview-example/pics/Camera_48.png | Bin 0 -> 3540 bytes .../qml/pathview-example/pics/DateBook_48.png | Bin 0 -> 2610 bytes .../qml/pathview-example/pics/EMail_48.png | Bin 0 -> 3655 bytes .../qml/pathview-example/pics/TodoList_48.png | Bin 0 -> 3429 bytes .../qml/pathview-example/pics/VideoPlayer_48.png | Bin 0 -> 4151 bytes .../modelviews/stringlistmodel/main.cpp | 72 + .../stringlistmodel/qml/stringlistmodel/view.qml | 55 + .../modelviews/stringlistmodel/stringlistmodel.pro | 39 + .../modelviews/visualitemmodel/main.cpp | 54 + .../qml/visualitemmodel/visualitemmodel.qml | 107 + .../modelviews/visualitemmodel/visualitemmodel.png | Bin 0 -> 3400 bytes .../modelviews/visualitemmodel/visualitemmodel.pro | 41 + .../visualitemmodel/visualitemmodel.qmlproject | 16 + .../modelviews/visualitemmodel/visualitemmodel.svg | 93 + .../modelviews/webview/alerts/alerts.png | Bin 0 -> 3400 bytes .../modelviews/webview/alerts/alerts.pro | 41 + .../modelviews/webview/alerts/alerts.qmlproject | 16 + .../modelviews/webview/alerts/alerts.svg | 93 + .../declarative/modelviews/webview/alerts/main.cpp | 54 + .../webview/alerts/qml/alerts/alerts.html | 5 + .../webview/alerts/qml/alerts/alerts.qml | 101 + .../modelviews/webview/autosize/autosize.png | Bin 0 -> 3400 bytes .../modelviews/webview/autosize/autosize.pro | 41 + .../webview/autosize/autosize.qmlproject | 16 + .../modelviews/webview/autosize/autosize.svg | 93 + .../modelviews/webview/autosize/main.cpp | 54 + .../webview/autosize/qml/autosize/autosize.qml | 106 + .../modelviews/webview/googlemaps/googlemaps.png | Bin 0 -> 3400 bytes .../modelviews/webview/googlemaps/googlemaps.pro | 41 + .../webview/googlemaps/googlemaps.qmlproject | 16 + .../modelviews/webview/googlemaps/googlemaps.svg | 93 + .../modelviews/webview/googlemaps/main.cpp | 54 + .../qml/googlemaps/content/Mapping/Map.qml | 73 + .../qml/googlemaps/content/Mapping/map.html | 60 + .../qml/googlemaps/content/pics/cancel.png | Bin 0 -> 1038 bytes .../googlemaps/qml/googlemaps/content/pics/ok.png | Bin 0 -> 655 bytes .../googlemaps/qml/googlemaps/googlemaps.qml | 83 + .../modelviews/webview/inlinehtml/inlinehtml.png | Bin 0 -> 3400 bytes .../modelviews/webview/inlinehtml/inlinehtml.pro | 41 + .../webview/inlinehtml/inlinehtml.qmlproject | 16 + .../modelviews/webview/inlinehtml/inlinehtml.svg | 93 + .../modelviews/webview/inlinehtml/main.cpp | 54 + .../inlinehtml/qml/inlinehtml/inlinehtml.qml | 55 + .../modelviews/webview/newwindows/main.cpp | 54 + .../modelviews/webview/newwindows/newwindows.png | Bin 0 -> 3400 bytes .../modelviews/webview/newwindows/newwindows.pro | 41 + .../webview/newwindows/newwindows.qmlproject | 16 + .../modelviews/webview/newwindows/newwindows.svg | 93 + .../newwindows/qml/newwindows/newwindows.html | 3 + .../newwindows/qml/newwindows/newwindows.qml | 71 + .../declarative/modelviews/webview/webview.pro | 8 + examples/declarative/positioners/main.cpp | 54 + examples/declarative/positioners/positioners.png | Bin 0 -> 3400 bytes examples/declarative/positioners/positioners.pro | 42 + .../declarative/positioners/positioners.qmlproject | 18 + examples/declarative/positioners/positioners.svg | 93 + .../positioners/qml/positioners/Button.qml | 78 + .../positioners/qml/positioners/add.png | Bin 0 -> 810 bytes .../positioners/qml/positioners/del.png | Bin 0 -> 488 bytes .../positioners/qml/positioners/positioners.qml | 253 + .../layoutdirection/layoutdirection.pro | 39 + .../layoutdirection/layoutdirection.qmlproject | 18 + .../layoutdirection/layoutdirection.svg | 93 + .../layoutdirection/layoutdirection64.png | Bin 0 -> 3400 bytes .../layoutdirection/layoutdirection80.png | Bin 0 -> 4945 bytes .../righttoleft/layoutdirection/main.cpp | 54 + .../qml/layoutdirection/layoutdirection.qml | 256 + .../layoutmirroring/layoutmirroring.pro | 39 + .../layoutmirroring/layoutmirroring.qmlproject | 18 + .../layoutmirroring/layoutmirroring.svg | 93 + .../layoutmirroring/layoutmirroring64.png | Bin 0 -> 3400 bytes .../layoutmirroring/layoutmirroring80.png | Bin 0 -> 4945 bytes .../righttoleft/layoutmirroring/main.cpp | 54 + .../qml/layoutmirroring/layoutmirroring.qml | 313 + .../declarative/righttoleft/textalignment/main.cpp | 54 + .../qml/textalignment/textalignment.qml | 426 + .../righttoleft/textalignment/textalignment.pro | 39 + .../textalignment/textalignment.qmlproject | 18 + .../righttoleft/textalignment/textalignment.svg | 93 + .../righttoleft/textalignment/textalignment64.png | Bin 0 -> 3400 bytes .../righttoleft/textalignment/textalignment80.png | Bin 0 -> 4945 bytes .../declarative/screenorientation/Core/Bubble.qml | 90 + .../declarative/screenorientation/Core/Button.qml | 71 + .../screenorientation/Core/screenorientation.js | 94 + .../screenorientation/screenorientation.qml | 201 + .../screenorientation/screenorientation.qmlproject | 16 + examples/declarative/shadereffects/main.cpp | 77 + .../shadereffects/qml/shadereffects/Curtain.qml | 106 + .../qml/shadereffects/CurtainEffect.qml | 97 + .../shadereffects/qml/shadereffects/DropShadow.qml | 117 + .../qml/shadereffects/DropShadowEffect.qml | 174 + .../shadereffects/qml/shadereffects/Grayscale.qml | 77 + .../qml/shadereffects/GrayscaleEffect.qml | 62 + .../shadereffects/qml/shadereffects/ImageMask.qml | 143 + .../qml/shadereffects/ImageMaskEffect.qml | 60 + .../shadereffects/qml/shadereffects/RadialWave.qml | 85 + .../qml/shadereffects/RadialWaveEffect.qml | 81 + .../shadereffects/qml/shadereffects/Water.qml | 60 + .../qml/shadereffects/WaterEffect.qml | 126 + .../qml/shadereffects/images/Curtain.jpg | Bin 0 -> 16112 bytes .../qml/shadereffects/images/DropShadow.jpg | Bin 0 -> 12975 bytes .../qml/shadereffects/images/Grayscale.jpg | Bin 0 -> 19048 bytes .../qml/shadereffects/images/ImageMask.jpg | Bin 0 -> 18751 bytes .../qml/shadereffects/images/RadialWave.jpg | Bin 0 -> 41406 bytes .../qml/shadereffects/images/Water.jpg | Bin 0 -> 17751 bytes .../qml/shadereffects/images/back.png | Bin 0 -> 370 bytes .../shadereffects/qml/shadereffects/images/bg.jpg | Bin 0 -> 10189 bytes .../qml/shadereffects/images/desaturate.jpg | Bin 0 -> 203942 bytes .../qml/shadereffects/images/drop_shadow.png | Bin 0 -> 219220 bytes .../qml/shadereffects/images/fabric.jpg | Bin 0 -> 163431 bytes .../qml/shadereffects/images/flower.png | Bin 0 -> 219220 bytes .../qml/shadereffects/images/image1.jpg | Bin 0 -> 115770 bytes .../qml/shadereffects/images/image2.jpg | Bin 0 -> 45837 bytes .../qml/shadereffects/images/qt-logo.png | Bin 0 -> 22746 bytes .../qml/shadereffects/images/shader_effects.jpg | Bin 0 -> 4906 bytes .../shadereffects/qml/shadereffects/images/sky.jpg | Bin 0 -> 36734 bytes .../qml/shadereffects/images/toolbar.png | Bin 0 -> 342 bytes .../qml/shadereffects/images/wave.jpg | Bin 0 -> 176681 bytes .../shadereffects/qml/shadereffects/main.qml | 160 + .../declarative/shadereffects/shadereffects.pro | 46 + .../shadereffects/shadereffects.qmlproject | 16 + examples/declarative/sqllocalstorage/main.cpp | 54 + .../sqllocalstorage/qml/sqllocalstorage/hello.qml | 77 + .../sqllocalstorage/sqllocalstorage.pro | 41 + .../sqllocalstorage/sqllocalstorage.qmlproject | 16 + .../sqllocalstorage/sqllocalstorage.svg | 93 + .../sqllocalstorage/sqllocalstorage64.png | Bin 0 -> 3400 bytes .../sqllocalstorage/sqllocalstorage80.png | Bin 0 -> 4945 bytes .../text/fonts/availableFonts/availableFonts.png | Bin 0 -> 3400 bytes .../text/fonts/availableFonts/availableFonts.pro | 41 + .../fonts/availableFonts/availableFonts.qmlproject | 16 + .../text/fonts/availableFonts/availableFonts.svg | 93 + .../declarative/text/fonts/availableFonts/main.cpp | 54 + .../qml/availableFonts/availableFonts.qml | 57 + .../availableFonts/qml/availableFonts/banner.qml | 61 + .../availableFonts/qml/availableFonts/fonts.qml | 104 + .../qml/availableFonts/fonts/tarzeau_ocr_a.ttf | Bin 0 -> 24544 bytes .../availableFonts/qml/availableFonts/hello.qml | 79 + examples/declarative/text/fonts/banner/banner.png | Bin 0 -> 3400 bytes examples/declarative/text/fonts/banner/banner.pro | 41 + .../text/fonts/banner/banner.qmlproject | 16 + examples/declarative/text/fonts/banner/banner.svg | 93 + examples/declarative/text/fonts/banner/main.cpp | 54 + .../fonts/banner/qml/banner/availableFonts.qml | 57 + .../text/fonts/banner/qml/banner/banner.qml | 61 + .../text/fonts/banner/qml/banner/fonts.qml | 104 + .../banner/qml/banner/fonts/tarzeau_ocr_a.ttf | Bin 0 -> 24544 bytes .../text/fonts/banner/qml/banner/hello.qml | 79 + examples/declarative/text/fonts/fonts.pro | 7 + examples/declarative/text/fonts/fonts/fonts.png | Bin 0 -> 3400 bytes examples/declarative/text/fonts/fonts/fonts.pro | 41 + .../declarative/text/fonts/fonts/fonts.qmlproject | 16 + examples/declarative/text/fonts/fonts/fonts.svg | 93 + examples/declarative/text/fonts/fonts/main.cpp | 54 + .../fonts/fonts/qml/fonts-qml/availableFonts.qml | 57 + .../text/fonts/fonts/qml/fonts-qml/banner.qml | 61 + .../text/fonts/fonts/qml/fonts-qml/fonts.qml | 104 + .../fonts/qml/fonts-qml/fonts/tarzeau_ocr_a.ttf | Bin 0 -> 24544 bytes .../text/fonts/fonts/qml/fonts-qml/hello.qml | 79 + examples/declarative/text/fonts/hello/hello.png | Bin 0 -> 3400 bytes examples/declarative/text/fonts/hello/hello.pro | 41 + .../declarative/text/fonts/hello/hello.qmlproject | 16 + examples/declarative/text/fonts/hello/hello.svg | 93 + examples/declarative/text/fonts/hello/main.cpp | 54 + .../text/fonts/hello/qml/hello/availableFonts.qml | 57 + .../text/fonts/hello/qml/hello/banner.qml | 61 + .../text/fonts/hello/qml/hello/fonts.qml | 104 + .../fonts/hello/qml/hello/fonts/tarzeau_ocr_a.ttf | Bin 0 -> 24544 bytes .../text/fonts/hello/qml/hello/hello.qml | 79 + examples/declarative/text/text.pro | 5 + examples/declarative/text/textselection/main.cpp | 54 + .../qml/textselection/pics/endHandle.png | Bin 0 -> 185 bytes .../qml/textselection/pics/endHandle.sci | 5 + .../qml/textselection/pics/startHandle.png | Bin 0 -> 178 bytes .../qml/textselection/pics/startHandle.sci | 5 + .../qml/textselection/textselection.qml | 290 + .../text/textselection/textselection.png | Bin 0 -> 3400 bytes .../text/textselection/textselection.pro | 41 + .../text/textselection/textselection.qmlproject | 16 + .../text/textselection/textselection.svg | 93 + .../threading/threadedlistmodel/main.cpp | 54 + .../qml/threadedlistmodel/dataloader.js | 49 + .../qml/threadedlistmodel/timedisplay.qml | 76 + .../threadedlistmodel/threadedlistmodel.pro | 39 + .../threadedlistmodel/threadedlistmodel.qmlproject | 56 + .../threadedlistmodel/threadedlistmodel.svg | 93 + .../threadedlistmodel/threadedlistmodel64.png | Bin 0 -> 3400 bytes .../threadedlistmodel/threadedlistmodel80.png | Bin 0 -> 4945 bytes examples/declarative/threading/threading.pro | 5 + .../declarative/threading/workerscript/main.cpp | 54 + .../workerscript/qml/workerscript/workerscript.js | 15 + .../workerscript/qml/workerscript/workerscript.qml | 83 + .../threading/workerscript/workerscript.pro | 39 + .../threading/workerscript/workerscript.qmlproject | 16 + .../threading/workerscript/workerscript.svg | 93 + .../threading/workerscript/workerscript64.png | Bin 0 -> 3400 bytes .../threading/workerscript/workerscript80.png | Bin 0 -> 4945 bytes .../experimental-gestures/experimentalgestures.png | Bin 0 -> 3400 bytes .../experimental-gestures/experimentalgestures.pro | 41 + .../experimental-gestures/experimentalgestures.svg | 93 + .../experimental-gestures/gestures.qmlproject | 16 + .../gestures/experimental-gestures/main.cpp | 54 + .../experimental-gestures.qml | 76 + .../mousearea/mousearea-example/main.cpp | 54 + .../mousearea-example/mousearea.qmlproject | 16 + .../mousearea-example/mouseareaexample.png | Bin 0 -> 3400 bytes .../mousearea-example/mouseareaexample.pro | 41 + .../mousearea-example/mouseareaexample.svg | 93 + .../qml/mousearea-example/mousearea-example.qml | 112 + .../touchinteraction/pincharea/main.cpp | 54 + .../touchinteraction/pincharea/pincharea.pro | 39 + .../pincharea/pincharea.qmlproject | 18 + .../touchinteraction/pincharea/pincharea.svg | 93 + .../touchinteraction/pincharea/pincharea64.png | Bin 0 -> 3400 bytes .../touchinteraction/pincharea/pincharea80.png | Bin 0 -> 4945 bytes .../pincharea/qml/pincharea/flickresize.qml | 97 + .../pincharea/qml/pincharea/qt-logo.jpg | Bin 0 -> 40886 bytes .../touchinteraction/touchinteraction.pro | 4 + examples/declarative/toys/clocks/clocks.png | Bin 0 -> 3400 bytes examples/declarative/toys/clocks/clocks.pro | 41 + examples/declarative/toys/clocks/clocks.qmlproject | 16 + examples/declarative/toys/clocks/clocks.svg | 93 + examples/declarative/toys/clocks/main.cpp | 54 + .../declarative/toys/clocks/qml/clocks/clocks.qml | 59 + .../toys/clocks/qml/clocks/content/Clock.qml | 124 + .../toys/clocks/qml/clocks/content/QuitButton.qml | 52 + .../toys/clocks/qml/clocks/content/background.png | Bin 0 -> 46895 bytes .../toys/clocks/qml/clocks/content/center.png | Bin 0 -> 765 bytes .../toys/clocks/qml/clocks/content/clock-night.png | Bin 0 -> 23359 bytes .../toys/clocks/qml/clocks/content/clock.png | Bin 0 -> 20653 bytes .../toys/clocks/qml/clocks/content/hour.png | Bin 0 -> 625 bytes .../toys/clocks/qml/clocks/content/minute.png | Bin 0 -> 625 bytes .../toys/clocks/qml/clocks/content/quit.png | Bin 0 -> 583 bytes .../toys/clocks/qml/clocks/content/second.png | Bin 0 -> 303 bytes .../declarative/toys/corkboards/corkboards.png | Bin 0 -> 3400 bytes .../declarative/toys/corkboards/corkboards.pro | 41 + .../toys/corkboards/corkboards.qmlproject | 16 + .../declarative/toys/corkboards/corkboards.svg | 93 + examples/declarative/toys/corkboards/main.cpp | 54 + .../toys/corkboards/qml/corkboards/Day.qml | 153 + .../toys/corkboards/qml/corkboards/cork.jpg | Bin 0 -> 149337 bytes .../toys/corkboards/qml/corkboards/corkboards.qml | 115 + .../toys/corkboards/qml/corkboards/note-yellow.png | Bin 0 -> 54559 bytes .../toys/corkboards/qml/corkboards/tack.png | Bin 0 -> 7282 bytes .../declarative/toys/dynamicscene/dynamicscene.png | Bin 0 -> 3400 bytes .../declarative/toys/dynamicscene/dynamicscene.pro | 41 + .../toys/dynamicscene/dynamicscene.qmlproject | 16 + .../declarative/toys/dynamicscene/dynamicscene.svg | 93 + examples/declarative/toys/dynamicscene/main.cpp | 54 + .../toys/dynamicscene/qml/dynamicscene/Button.qml | 80 + .../qml/dynamicscene/GenericSceneItem.qml | 49 + .../dynamicscene/qml/dynamicscene/PaletteItem.qml | 59 + .../qml/dynamicscene/PerspectiveItem.qml | 65 + .../toys/dynamicscene/qml/dynamicscene/Sun.qml | 78 + .../dynamicscene/qml/dynamicscene/dynamicscene.qml | 222 + .../toys/dynamicscene/qml/dynamicscene/images/NOTE | 1 + .../qml/dynamicscene/images/face-smile.png | Bin 0 -> 15408 bytes .../dynamicscene/qml/dynamicscene/images/moon.png | Bin 0 -> 1757 bytes .../qml/dynamicscene/images/rabbit_brown.png | Bin 0 -> 1245 bytes .../qml/dynamicscene/images/rabbit_bw.png | Bin 0 -> 1759 bytes .../dynamicscene/qml/dynamicscene/images/star.png | Bin 0 -> 349 bytes .../dynamicscene/qml/dynamicscene/images/sun.png | Bin 0 -> 8153 bytes .../qml/dynamicscene/images/tree_s.png | Bin 0 -> 3406 bytes .../dynamicscene/qml/dynamicscene/itemCreation.js | 62 + examples/declarative/toys/tic-tac-toe/main.cpp | 54 + .../tic-tac-toe/qml/tic-tac-toe/content/Button.qml | 79 + .../tic-tac-toe/qml/tic-tac-toe/content/TicTac.qml | 60 + .../qml/tic-tac-toe/content/pics/board.png | Bin 0 -> 12258 bytes .../tic-tac-toe/qml/tic-tac-toe/content/pics/o.png | Bin 0 -> 1470 bytes .../tic-tac-toe/qml/tic-tac-toe/content/pics/x.png | Bin 0 -> 1331 bytes .../qml/tic-tac-toe/content/tic-tac-toe.js | 149 + .../tic-tac-toe/qml/tic-tac-toe/tic-tac-toe.qml | 123 + .../toys/tic-tac-toe/tic-tac-toe.qmlproject | 16 + .../declarative/toys/tic-tac-toe/tictactoe.png | Bin 0 -> 3400 bytes .../declarative/toys/tic-tac-toe/tictactoe.pro | 42 + .../declarative/toys/tic-tac-toe/tictactoe.svg | 93 + examples/declarative/toys/toys.pro | 8 + examples/declarative/toys/tvtennis/main.cpp | 54 + .../toys/tvtennis/qml/tvtennis/tvtennis.qml | 109 + examples/declarative/toys/tvtennis/tvtennis.png | Bin 0 -> 3400 bytes examples/declarative/toys/tvtennis/tvtennis.pro | 41 + .../declarative/toys/tvtennis/tvtennis.qmlproject | 16 + examples/declarative/toys/tvtennis/tvtennis.svg | 93 + .../tutorials/extending/chapter1-basics/app.qml | 60 + .../extending/chapter1-basics/chapter1-basics.pro | 5 + .../tutorials/extending/chapter1-basics/main.cpp | 57 + .../extending/chapter1-basics/piechart.cpp | 81 + .../tutorials/extending/chapter1-basics/piechart.h | 71 + .../tutorials/extending/chapter2-methods/app.qml | 66 + .../chapter2-methods/chapter2-methods.pro | 5 + .../tutorials/extending/chapter2-methods/main.cpp | 57 + .../extending/chapter2-methods/piechart.cpp | 87 + .../extending/chapter2-methods/piechart.h | 84 + .../tutorials/extending/chapter3-bindings/app.qml | 74 + .../chapter3-bindings/chapter3-bindings.pro | 5 + .../tutorials/extending/chapter3-bindings/main.cpp | 57 + .../extending/chapter3-bindings/piechart.cpp | 89 + .../extending/chapter3-bindings/piechart.h | 84 + .../extending/chapter4-customPropertyTypes/app.qml | 60 + .../chapter4-customPropertyTypes.pro | 7 + .../chapter4-customPropertyTypes/main.cpp | 66 + .../chapter4-customPropertyTypes/piechart.cpp | 72 + .../chapter4-customPropertyTypes/piechart.h | 78 + .../chapter4-customPropertyTypes/pieslice.cpp | 68 + .../chapter4-customPropertyTypes/pieslice.h | 66 + .../extending/chapter5-listproperties/app.qml | 70 + .../chapter5-listproperties.pro | 7 + .../extending/chapter5-listproperties/main.cpp | 58 + .../extending/chapter5-listproperties/piechart.cpp | 72 + .../extending/chapter5-listproperties/piechart.h | 75 + .../extending/chapter5-listproperties/pieslice.cpp | 88 + .../extending/chapter5-listproperties/pieslice.h | 76 + .../tutorials/extending/chapter6-plugins/app.qml | 68 + .../chapter6-plugins/chapter6-plugins.pro | 21 + .../extending/chapter6-plugins/chartsplugin.cpp | 54 + .../extending/chapter6-plugins/chartsplugin.h | 55 + .../extending/chapter6-plugins/piechart.cpp | 71 + .../extending/chapter6-plugins/piechart.h | 69 + .../extending/chapter6-plugins/pieslice.cpp | 88 + .../extending/chapter6-plugins/pieslice.h | 74 + .../tutorials/extending/chapter6-plugins/qmldir | 1 + .../declarative/tutorials/extending/extending.pro | 10 + examples/declarative/tutorials/helloworld/Cell.qml | 72 + .../declarative/tutorials/helloworld/tutorial1.qml | 63 + .../declarative/tutorials/helloworld/tutorial2.qml | 72 + .../declarative/tutorials/helloworld/tutorial3.qml | 91 + .../tutorials/samegame/samegame1/Block.qml | 53 + .../tutorials/samegame/samegame1/Button.qml | 83 + .../tutorials/samegame/samegame1/samegame.qml | 82 + .../samegame/samegame1/samegame1.qmlproject | 16 + .../tutorials/samegame/samegame2/Block.qml | 51 + .../tutorials/samegame/samegame2/Button.qml | 81 + .../tutorials/samegame/samegame2/samegame.js | 63 + .../tutorials/samegame/samegame2/samegame.qml | 85 + .../samegame/samegame2/samegame2.qmlproject | 16 + .../tutorials/samegame/samegame3/Block.qml | 63 + .../tutorials/samegame/samegame3/Button.qml | 81 + .../tutorials/samegame/samegame3/Dialog.qml | 71 + .../tutorials/samegame/samegame3/samegame.js | 174 + .../tutorials/samegame/samegame3/samegame.qml | 109 + .../samegame/samegame3/samegame3.qmlproject | 16 + .../samegame/samegame4/content/BoomBlock.qml | 122 + .../samegame/samegame4/content/Button.qml | 81 + .../samegame/samegame4/content/Dialog.qml | 107 + .../samegame/samegame4/content/samegame.js | 225 + .../tutorials/samegame/samegame4/highscores/README | 1 + .../samegame/samegame4/highscores/score_data.xml | 2 + .../samegame/samegame4/highscores/score_style.xsl | 28 + .../samegame/samegame4/highscores/scores.php | 31 + .../tutorials/samegame/samegame4/samegame.qml | 115 + .../samegame/samegame4/samegame4.qmlproject | 16 + .../tutorials/samegame/shared/pics/background.jpg | Bin 0 -> 36473 bytes .../tutorials/samegame/shared/pics/blueStar.png | Bin 0 -> 278 bytes .../tutorials/samegame/shared/pics/blueStone.png | Bin 0 -> 3054 bytes .../tutorials/samegame/shared/pics/greenStar.png | Bin 0 -> 273 bytes .../tutorials/samegame/shared/pics/greenStone.png | Bin 0 -> 2932 bytes .../tutorials/samegame/shared/pics/redStar.png | Bin 0 -> 274 bytes .../tutorials/samegame/shared/pics/redStone.png | Bin 0 -> 2902 bytes .../tutorials/samegame/shared/pics/star.png | Bin 0 -> 262 bytes .../tutorials/samegame/shared/pics/yellowStone.png | Bin 0 -> 3056 bytes examples/declarative/tutorials/tutorials.pro | 5 + .../declarative/tutorials/tutorials.qmlproject | 16 + .../ui-components/dialcontrol/dialcontrol.png | Bin 0 -> 3400 bytes .../ui-components/dialcontrol/dialcontrol.pro | 41 + .../dialcontrol/dialcontrol.qmlproject | 16 + .../ui-components/dialcontrol/dialcontrol.svg | 93 + .../declarative/ui-components/dialcontrol/main.cpp | 54 + .../dialcontrol/qml/dialcontrol/content/Dial.qml | 86 + .../qml/dialcontrol/content/QuitButton.qml | 52 + .../qml/dialcontrol/content/background.png | Bin 0 -> 35876 bytes .../dialcontrol/qml/dialcontrol/content/needle.png | Bin 0 -> 342 bytes .../qml/dialcontrol/content/needle_shadow.png | Bin 0 -> 632 bytes .../qml/dialcontrol/content/overlay.png | Bin 0 -> 3564 bytes .../dialcontrol/qml/dialcontrol/content/quit.png | Bin 0 -> 583 bytes .../dialcontrol/qml/dialcontrol/dialcontrol.qml | 98 + .../ui-components/flipable/flipable.png | Bin 0 -> 3400 bytes .../ui-components/flipable/flipable.pro | 41 + .../ui-components/flipable/flipable.qmlproject | 16 + .../ui-components/flipable/flipable.svg | 93 + .../declarative/ui-components/flipable/main.cpp | 54 + .../flipable/qml/flipable/content/5_heart.png | Bin 0 -> 3872 bytes .../flipable/qml/flipable/content/9_club.png | Bin 0 -> 6135 bytes .../flipable/qml/flipable/content/Card.qml | 80 + .../flipable/qml/flipable/content/back.png | Bin 0 -> 1418 bytes .../flipable/qml/flipable/flipable.qml | 55 + examples/declarative/ui-components/main/main.cpp | 54 + examples/declarative/ui-components/main/main.png | Bin 0 -> 3400 bytes examples/declarative/ui-components/main/main.pro | 41 + .../declarative/ui-components/main/main.qmlproject | 16 + examples/declarative/ui-components/main/main.svg | 93 + .../ui-components/main/qml/main/ScrollBar.qml | 74 + .../ui-components/main/qml/main/SearchBox.qml | 109 + .../ui-components/main/qml/main/TabWidget.qml | 102 + .../main/qml/main/content/ProgressBar.qml | 83 + .../main/qml/main/content/Spinner.qml | 70 + .../main/qml/main/content/background.png | Bin 0 -> 426 bytes .../main/qml/main/content/spinner-bg.png | Bin 0 -> 345 bytes .../main/qml/main/content/spinner-select.png | Bin 0 -> 320 bytes .../ui-components/main/qml/main/images/clear.png | Bin 0 -> 429 bytes .../main/qml/main/images/lineedit-bg-focus.png | Bin 0 -> 526 bytes .../main/qml/main/images/lineedit-bg.png | Bin 0 -> 426 bytes .../ui-components/main/qml/main/main.qml | 99 + .../main/qml/main/pics/niagara_falls.jpg | Bin 0 -> 100161 bytes .../ui-components/main/qml/main/tab.png | Bin 0 -> 507 bytes .../declarative/ui-components/progressbar/main.cpp | 54 + .../ui-components/progressbar/progressbar.png | Bin 0 -> 3400 bytes .../ui-components/progressbar/progressbar.pro | 41 + .../progressbar/progressbar.qmlproject | 16 + .../ui-components/progressbar/progressbar.svg | 93 + .../qml/progressbar/content/ProgressBar.qml | 83 + .../qml/progressbar/content/background.png | Bin 0 -> 426 bytes .../progressbar/qml/progressbar/main.qml | 73 + .../declarative/ui-components/scrollbar/main.cpp | 54 + .../scrollbar/qml/scrollbar/ScrollBar.qml | 74 + .../ui-components/scrollbar/qml/scrollbar/main.qml | 93 + .../scrollbar/qml/scrollbar/niagara_falls.jpg | Bin 0 -> 100161 bytes .../ui-components/scrollbar/scrollbar.pro | 39 + .../ui-components/scrollbar/scrollbar.qmlproject | 16 + .../ui-components/scrollbar/scrollbar.svg | 93 + .../ui-components/scrollbar/scrollbar64.png | Bin 0 -> 3400 bytes .../ui-components/scrollbar/scrollbar80.png | Bin 0 -> 4945 bytes .../declarative/ui-components/searchbox/main.cpp | 54 + .../searchbox/qml/searchbox/SearchBox.qml | 109 + .../searchbox/qml/searchbox/images/clear.png | Bin 0 -> 429 bytes .../qml/searchbox/images/lineedit-bg-focus.png | Bin 0 -> 526 bytes .../searchbox/qml/searchbox/images/lineedit-bg.png | Bin 0 -> 426 bytes .../ui-components/searchbox/qml/searchbox/main.qml | 60 + .../ui-components/searchbox/searchbox.pro | 39 + .../ui-components/searchbox/searchbox.qmlproject | 16 + .../ui-components/searchbox/searchbox.svg | 93 + .../ui-components/searchbox/searchbox64.png | Bin 0 -> 3400 bytes .../ui-components/searchbox/searchbox80.png | Bin 0 -> 4945 bytes .../declarative/ui-components/slideswitch/main.cpp | 54 + .../slideswitch/qml/slideswitch/content/Switch.qml | 117 + .../qml/slideswitch/content/background.svg | 23 + .../slideswitch/qml/slideswitch/content/knob.svg | 867 + .../slideswitch/qml/slideswitch/slideswitch.qml | 51 + .../ui-components/slideswitch/slideswitch.png | Bin 0 -> 3400 bytes .../ui-components/slideswitch/slideswitch.pro | 41 + .../slideswitch/slideswitch.qmlproject | 16 + .../ui-components/slideswitch/slideswitch.svg | 93 + .../declarative/ui-components/spinner/main.cpp | 54 + .../ui-components/spinner/qml/spinner/main.qml | 61 + .../declarative/ui-components/spinner/spinner.pro | 39 + .../ui-components/spinner/spinner.qmlproject | 16 + .../declarative/ui-components/spinner/spinner.svg | 93 + .../ui-components/spinner/spinner64.png | Bin 0 -> 3400 bytes .../ui-components/spinner/spinner80.png | Bin 0 -> 4945 bytes .../declarative/ui-components/tabwidget/main.cpp | 54 + .../tabwidget/qml/tabwidget/TabWidget.qml | 102 + .../ui-components/tabwidget/qml/tabwidget/main.qml | 99 + .../ui-components/tabwidget/qml/tabwidget/tab.png | Bin 0 -> 507 bytes .../ui-components/tabwidget/tabwidget.pro | 39 + .../ui-components/tabwidget/tabwidget.qmlproject | 16 + .../ui-components/tabwidget/tabwidget.svg | 93 + .../ui-components/tabwidget/tabwidget64.png | Bin 0 -> 3400 bytes .../ui-components/tabwidget/tabwidget80.png | Bin 0 -> 4945 bytes .../declarative/ui-components/ui-components.pro | 11 + .../xml/xmlhttprequest-example/main.cpp | 54 + .../qml/xmlhttprequest-example/data.xml | 5 + .../xmlhttprequest-example.qml | 95 + .../xmlhttprequest.qmlproject | 16 + .../xmlhttprequestexample.png | Bin 0 -> 3400 bytes .../xmlhttprequestexample.pro | 41 + .../xmlhttprequestexample.svg | 93 + .../xml/xmlhttprequest/xmlhttprequest-example.qml | 95 + .../xml/xmlhttprequest/xmlhttprequest.qmlproject | 16 + .../qmlapplicationviewer/qmlapplicationviewer.cpp | 226 + .../qmlapplicationviewer/qmlapplicationviewer.h | 77 + .../qmlapplicationviewer/qmlapplicationviewer.pri | 156 + .../tutorials/gettingStarted/gsQml/core/button.qml | 108 + .../gettingStarted/gsQml/core/editMenu.qml | 105 + .../gettingStarted/gsQml/core/fileDialog.qml | 163 + .../gettingStarted/gsQml/core/fileMenu.qml | 232 + .../gettingStarted/gsQml/core/menuBar.qml | 147 + .../tutorials/gettingStarted/gsQml/core/qmldir | 49 + .../gettingStarted/gsQml/core/textArea.qml | 87 + .../gsQml/filedialog/dialogPlugin.cpp | 54 + .../gettingStarted/gsQml/filedialog/dialogPlugin.h | 57 + .../gettingStarted/gsQml/filedialog/directory.cpp | 224 + .../gettingStarted/gsQml/filedialog/directory.h | 107 + .../gettingStarted/gsQml/filedialog/file.cpp | 57 + .../gettingStarted/gsQml/filedialog/file.h | 67 + .../gettingStarted/gsQml/filedialog/filedialog.pro | 17 + .../gettingStarted/gsQml/filedialog/qmldir | 1 + .../gettingStarted/gsQml/images/arrow.png | Bin 0 -> 583 bytes .../gettingStarted/gsQml/parts/part0/Button.qml | 55 + .../gettingStarted/gsQml/parts/part1/Button.qml | 97 + .../gettingStarted/gsQml/parts/part1/EditMenu.qml | 76 + .../gettingStarted/gsQml/parts/part1/FileMenu.qml | 91 + .../gsQml/parts/part1/SimpleButton.qml | 73 + .../parts/part1/pics/qml-texteditor1_button.png | Bin 0 -> 1670 bytes .../parts/part1/pics/qml-texteditor1_editmenu.png | Bin 0 -> 6177 bytes .../parts/part1/pics/qml-texteditor1_filemenu.png | Bin 0 -> 6062 bytes .../part1/pics/qml-texteditor1_simplebutton.png | Bin 0 -> 1055 bytes .../gsQml/parts/part1/qml-texteditor.qmlproject | 16 + .../gettingStarted/gsQml/parts/part2/Button.qml | 99 + .../gettingStarted/gsQml/parts/part2/EditMenu.qml | 77 + .../gettingStarted/gsQml/parts/part2/FileMenu.qml | 92 + .../gettingStarted/gsQml/parts/part2/MenuBar.qml | 140 + .../parts/part2/pics/qml-texteditor2_menubar.png | Bin 0 -> 6079 bytes .../gsQml/parts/part2/qml-texteditor2.qmlproject | 16 + .../gettingStarted/gsQml/parts/part3/Button.qml | 99 + .../gettingStarted/gsQml/parts/part3/EditMenu.qml | 77 + .../gettingStarted/gsQml/parts/part3/FileMenu.qml | 92 + .../gettingStarted/gsQml/parts/part3/MenuBar.qml | 140 + .../gettingStarted/gsQml/parts/part3/TextArea.qml | 80 + .../gsQml/parts/part3/TextEditor.qml | 68 + .../gsQml/parts/part3/images/arrow.png | Bin 0 -> 583 bytes .../part3/pics/qml-texteditor3_texteditor.png | Bin 0 -> 59345 bytes .../gsQml/parts/part3/qml-texteditor3.qmlproject | 16 + .../gettingStarted/gsQml/parts/part4/Button.qml | 109 + .../gettingStarted/gsQml/parts/part4/EditMenu.qml | 81 + .../gettingStarted/gsQml/parts/part4/FileMenu.qml | 96 + .../gettingStarted/gsQml/parts/part4/MenuBar.qml | 146 + .../gsQml/parts/part4/SimpleButton.qml | 59 + .../gettingStarted/gsQml/parts/part4/TextArea.qml | 80 + .../gsQml/parts/part4/TextEditor.qml | 146 + .../gsQml/parts/part4/images/arrow.png | Bin 0 -> 583 bytes .../part4/pics/qml-texteditor4_texteditor.png | Bin 0 -> 63629 bytes .../gsQml/parts/part4/qml-texteditor4.qmlproject | 16 + .../gsQml/parts/part5/TextEditor.qml | 127 + .../gsQml/parts/part5/core/Button.qml | 109 + .../gsQml/parts/part5/core/EditMenu.qml | 110 + .../gsQml/parts/part5/core/FileDialog.qml | 170 + .../gsQml/parts/part5/core/FileMenu.qml | 232 + .../gsQml/parts/part5/core/MenuBar.qml | 148 + .../gsQml/parts/part5/core/TextArea.qml | 86 + .../gettingStarted/gsQml/parts/part5/core/qmldir | 13 + .../gsQml/parts/part5/filedialog/dialogPlugin.cpp | 57 + .../gsQml/parts/part5/filedialog/dialogPlugin.h | 57 + .../gsQml/parts/part5/filedialog/directory.cpp | 219 + .../gsQml/parts/part5/filedialog/directory.h | 108 + .../gsQml/parts/part5/filedialog/file.cpp | 56 + .../gsQml/parts/part5/filedialog/file.h | 67 + .../gsQml/parts/part5/filedialog/filedialog.pro | 17 + .../gsQml/parts/part5/filedialog/qmldir | 1 + .../gsQml/parts/part5/images/arrow.png | Bin 0 -> 583 bytes .../parts/part5/pics/qml-texteditor5_editmenu.png | Bin 0 -> 65123 bytes .../parts/part5/pics/qml-texteditor5_filemenu.png | Bin 0 -> 21367 bytes .../parts/part5/pics/qml-texteditor5_newfile.png | Bin 0 -> 76693 bytes .../gsQml/parts/part5/qml-texteditor5.qmlproject | 18 + .../gsQml/pics/qml-texteditor5_editmenu.png | Bin 0 -> 65123 bytes .../gsQml/pics/qml-texteditor5_filemenu.png | Bin 0 -> 21367 bytes .../gsQml/pics/qml-texteditor5_newfile.png | Bin 0 -> 76693 bytes .../tutorials/gettingStarted/gsQml/texteditor.pro | 4 + .../tutorials/gettingStarted/gsQml/texteditor.qml | 132 + src/declarative/QmlChanges.txt | 364 + src/declarative/debugger/debugger.pri | 33 + src/declarative/debugger/qdeclarativedebug.h | 67 + .../debugger/qdeclarativedebugclient.cpp | 292 + .../debugger/qdeclarativedebugclient_p.h | 103 + .../debugger/qdeclarativedebuggerstatus.cpp | 54 + .../debugger/qdeclarativedebuggerstatus_p.h | 68 + .../debugger/qdeclarativedebughelper.cpp | 76 + .../debugger/qdeclarativedebughelper_p.h | 73 + .../debugger/qdeclarativedebugserver.cpp | 426 + .../debugger/qdeclarativedebugserver_p.h | 91 + .../debugger/qdeclarativedebugserverconnection_p.h | 74 + .../debugger/qdeclarativedebugservice.cpp | 230 + .../debugger/qdeclarativedebugservice_p.h | 96 + .../debugger/qdeclarativedebugservice_p_p.h | 71 + .../debugger/qdeclarativedebugtrace.cpp | 225 + .../debugger/qdeclarativedebugtrace_p.h | 132 + .../debugger/qdeclarativeenginedebug.cpp | 1068 ++ .../debugger/qdeclarativeenginedebug_p.h | 387 + .../debugger/qdeclarativeenginedebugservice.cpp | 747 + .../debugger/qdeclarativeenginedebugservice_p.h | 134 + .../debugger/qdeclarativeinspectorinterface_p.h | 69 + .../debugger/qdeclarativeinspectorservice.cpp | 147 + .../debugger/qdeclarativeinspectorservice_p.h | 93 + src/declarative/debugger/qjsdebuggeragent.cpp | 614 + src/declarative/debugger/qjsdebuggeragent_p.h | 229 + src/declarative/debugger/qjsdebugservice.cpp | 259 + src/declarative/debugger/qjsdebugservice_p.h | 123 + src/declarative/debugger/qpacketprotocol.cpp | 557 + src/declarative/debugger/qpacketprotocol_p.h | 127 + src/declarative/declarative.pro | 43 + src/declarative/graphicsitems/graphicsitems.pri | 94 + .../graphicsitems/qdeclarativeanchors.cpp | 1165 ++ .../graphicsitems/qdeclarativeanchors_p.h | 204 + .../graphicsitems/qdeclarativeanchors_p_p.h | 170 + .../graphicsitems/qdeclarativeanimatedimage.cpp | 404 + .../graphicsitems/qdeclarativeanimatedimage_p.h | 116 + .../graphicsitems/qdeclarativeanimatedimage_p_p.h | 87 + .../graphicsitems/qdeclarativeborderimage.cpp | 623 + .../graphicsitems/qdeclarativeborderimage_p.h | 109 + .../graphicsitems/qdeclarativeborderimage_p_p.h | 106 + .../graphicsitems/qdeclarativeevents.cpp | 237 + .../graphicsitems/qdeclarativeevents_p_p.h | 141 + .../graphicsitems/qdeclarativeflickable.cpp | 1805 ++ .../graphicsitems/qdeclarativeflickable_p.h | 229 + .../graphicsitems/qdeclarativeflickable_p_p.h | 244 + .../graphicsitems/qdeclarativeflipable.cpp | 254 + .../graphicsitems/qdeclarativeflipable_p.h | 100 + .../graphicsitems/qdeclarativefocuspanel.cpp | 89 + .../graphicsitems/qdeclarativefocuspanel_p.h | 78 + .../graphicsitems/qdeclarativefocusscope.cpp | 73 + .../graphicsitems/qdeclarativefocusscope_p.h | 69 + .../graphicsitems/qdeclarativegraphicswidget.cpp | 125 + .../graphicsitems/qdeclarativegraphicswidget_p.h | 90 + .../graphicsitems/qdeclarativegridview.cpp | 3172 ++++ .../graphicsitems/qdeclarativegridview_p.h | 286 + .../graphicsitems/qdeclarativeimage.cpp | 584 + .../graphicsitems/qdeclarativeimage_p.h | 100 + .../graphicsitems/qdeclarativeimage_p_p.h | 79 + .../graphicsitems/qdeclarativeimagebase.cpp | 284 + .../graphicsitems/qdeclarativeimagebase_p.h | 116 + .../graphicsitems/qdeclarativeimagebase_p_p.h | 93 + .../graphicsitems/qdeclarativeimplicitsizeitem.cpp | 92 + .../graphicsitems/qdeclarativeimplicitsizeitem_p.h | 100 + .../qdeclarativeimplicitsizeitem_p_p.h | 90 + src/declarative/graphicsitems/qdeclarativeitem.cpp | 3759 ++++ src/declarative/graphicsitems/qdeclarativeitem.h | 234 + src/declarative/graphicsitems/qdeclarativeitem_p.h | 624 + .../qdeclarativeitemchangelistener_p.h | 76 + .../graphicsitems/qdeclarativeitemsmodule.cpp | 261 + .../graphicsitems/qdeclarativeitemsmodule_p.h | 63 + .../graphicsitems/qdeclarativelayoutitem.cpp | 112 + .../graphicsitems/qdeclarativelayoutitem_p.h | 94 + .../graphicsitems/qdeclarativelistview.cpp | 3651 ++++ .../graphicsitems/qdeclarativelistview_p.h | 370 + .../graphicsitems/qdeclarativeloader.cpp | 597 + .../graphicsitems/qdeclarativeloader_p.h | 108 + .../graphicsitems/qdeclarativeloader_p_p.h | 91 + .../graphicsitems/qdeclarativemousearea.cpp | 988 + .../graphicsitems/qdeclarativemousearea_p.h | 218 + .../graphicsitems/qdeclarativemousearea_p_p.h | 128 + .../graphicsitems/qdeclarativepainteditem.cpp | 497 + .../graphicsitems/qdeclarativepainteditem_p.h | 118 + .../graphicsitems/qdeclarativepainteditem_p_p.h | 90 + src/declarative/graphicsitems/qdeclarativepath.cpp | 922 + src/declarative/graphicsitems/qdeclarativepath_p.h | 286 + .../graphicsitems/qdeclarativepath_p_p.h | 82 + .../graphicsitems/qdeclarativepathview.cpp | 1729 ++ .../graphicsitems/qdeclarativepathview_p.h | 252 + .../graphicsitems/qdeclarativepathview_p_p.h | 192 + .../graphicsitems/qdeclarativepincharea.cpp | 607 + .../graphicsitems/qdeclarativepincharea_p.h | 313 + .../graphicsitems/qdeclarativepincharea_p_p.h | 115 + .../graphicsitems/qdeclarativepositioners.cpp | 1371 ++ .../graphicsitems/qdeclarativepositioners_p.h | 233 + .../graphicsitems/qdeclarativepositioners_p_p.h | 173 + .../graphicsitems/qdeclarativerectangle.cpp | 587 + .../graphicsitems/qdeclarativerectangle_p.h | 188 + .../graphicsitems/qdeclarativerectangle_p_p.h | 112 + .../graphicsitems/qdeclarativerepeater.cpp | 447 + .../graphicsitems/qdeclarativerepeater_p.h | 110 + .../graphicsitems/qdeclarativerepeater_p_p.h | 82 + .../graphicsitems/qdeclarativescalegrid.cpp | 213 + .../graphicsitems/qdeclarativescalegrid_p_p.h | 134 + src/declarative/graphicsitems/qdeclarativetext.cpp | 1635 ++ src/declarative/graphicsitems/qdeclarativetext_p.h | 211 + .../graphicsitems/qdeclarativetext_p_p.h | 143 + .../graphicsitems/qdeclarativetextedit.cpp | 1895 ++ .../graphicsitems/qdeclarativetextedit_p.h | 305 + .../graphicsitems/qdeclarativetextedit_p_p.h | 138 + .../graphicsitems/qdeclarativetextinput.cpp | 2009 ++ .../graphicsitems/qdeclarativetextinput_p.h | 304 + .../graphicsitems/qdeclarativetextinput_p_p.h | 157 + .../graphicsitems/qdeclarativetextlayout.cpp | 391 + .../graphicsitems/qdeclarativetextlayout_p.h | 75 + .../graphicsitems/qdeclarativetranslate.cpp | 125 + .../graphicsitems/qdeclarativetranslate_p.h | 89 + .../graphicsitems/qdeclarativevisualitemmodel.cpp | 1425 ++ .../graphicsitems/qdeclarativevisualitemmodel_p.h | 257 + src/declarative/qml/parser/parser.pri | 21 + src/declarative/qml/parser/qdeclarativejs.g | 3149 ++++ src/declarative/qml/parser/qdeclarativejsast.cpp | 956 + src/declarative/qml/parser/qdeclarativejsast_p.h | 2546 +++ .../qml/parser/qdeclarativejsastfwd_p.h | 189 + .../qml/parser/qdeclarativejsastvisitor.cpp | 58 + .../qml/parser/qdeclarativejsastvisitor_p.h | 335 + .../qml/parser/qdeclarativejsengine_p.cpp | 212 + .../qml/parser/qdeclarativejsengine_p.h | 167 + .../qml/parser/qdeclarativejsglobal_p.h | 64 + .../qml/parser/qdeclarativejsgrammar.cpp | 989 + .../qml/parser/qdeclarativejsgrammar_p.h | 210 + src/declarative/qml/parser/qdeclarativejslexer.cpp | 1258 ++ src/declarative/qml/parser/qdeclarativejslexer_p.h | 249 + .../qml/parser/qdeclarativejsmemorypool_p.h | 133 + .../qml/parser/qdeclarativejsnodepool_p.h | 139 + .../qml/parser/qdeclarativejsparser.cpp | 1904 ++ .../qml/parser/qdeclarativejsparser_p.h | 246 + src/declarative/qml/qbitfield_p.h | 165 + src/declarative/qml/qdeclarative.h | 415 + src/declarative/qml/qdeclarativebinding.cpp | 573 + src/declarative/qml/qdeclarativebinding_p.h | 193 + src/declarative/qml/qdeclarativebinding_p_p.h | 85 + src/declarative/qml/qdeclarativeboundsignal.cpp | 306 + src/declarative/qml/qdeclarativeboundsignal_p.h | 103 + src/declarative/qml/qdeclarativecleanup.cpp | 87 + src/declarative/qml/qdeclarativecleanup_p.h | 79 + .../qml/qdeclarativecompiledbindings.cpp | 2921 +++ .../qml/qdeclarativecompiledbindings_p.h | 116 + src/declarative/qml/qdeclarativecompileddata.cpp | 255 + src/declarative/qml/qdeclarativecompiler.cpp | 3129 ++++ src/declarative/qml/qdeclarativecompiler_p.h | 351 + src/declarative/qml/qdeclarativecomponent.cpp | 1086 ++ src/declarative/qml/qdeclarativecomponent.h | 132 + src/declarative/qml/qdeclarativecomponent_p.h | 161 + src/declarative/qml/qdeclarativecontext.cpp | 774 + src/declarative/qml/qdeclarativecontext.h | 114 + src/declarative/qml/qdeclarativecontext_p.h | 292 + .../qml/qdeclarativecontextscriptclass.cpp | 335 + .../qml/qdeclarativecontextscriptclass_p.h | 106 + src/declarative/qml/qdeclarativecustomparser.cpp | 317 + src/declarative/qml/qdeclarativecustomparser_p.h | 167 + src/declarative/qml/qdeclarativecustomparser_p_p.h | 89 + src/declarative/qml/qdeclarativedata_p.h | 165 + src/declarative/qml/qdeclarativedirparser.cpp | 285 + src/declarative/qml/qdeclarativedirparser_p.h | 149 + src/declarative/qml/qdeclarativedom.cpp | 1835 ++ src/declarative/qml/qdeclarativedom_p.h | 362 + src/declarative/qml/qdeclarativedom_p_p.h | 157 + src/declarative/qml/qdeclarativeengine.cpp | 2523 +++ src/declarative/qml/qdeclarativeengine.h | 130 + src/declarative/qml/qdeclarativeengine_p.h | 387 + src/declarative/qml/qdeclarativeerror.cpp | 285 + src/declarative/qml/qdeclarativeerror.h | 86 + src/declarative/qml/qdeclarativeexpression.cpp | 875 + src/declarative/qml/qdeclarativeexpression.h | 119 + src/declarative/qml/qdeclarativeexpression_p.h | 233 + .../qml/qdeclarativeextensioninterface.h | 68 + .../qml/qdeclarativeextensionplugin.cpp | 171 + src/declarative/qml/qdeclarativeextensionplugin.h | 76 + src/declarative/qml/qdeclarativefastproperties.cpp | 101 + src/declarative/qml/qdeclarativefastproperties_p.h | 75 + src/declarative/qml/qdeclarativeglobal_p.h | 110 + .../qml/qdeclarativeglobalscriptclass.cpp | 147 + .../qml/qdeclarativeglobalscriptclass_p.h | 86 + src/declarative/qml/qdeclarativeguard_p.h | 214 + src/declarative/qml/qdeclarativeimageprovider.cpp | 259 + src/declarative/qml/qdeclarativeimageprovider.h | 80 + src/declarative/qml/qdeclarativeimport.cpp | 1083 ++ src/declarative/qml/qdeclarativeimport_p.h | 144 + src/declarative/qml/qdeclarativeinclude.cpp | 310 + src/declarative/qml/qdeclarativeinclude_p.h | 115 + src/declarative/qml/qdeclarativeinfo.cpp | 179 + src/declarative/qml/qdeclarativeinfo.h | 105 + src/declarative/qml/qdeclarativeinstruction.cpp | 230 + src/declarative/qml/qdeclarativeinstruction_p.h | 359 + src/declarative/qml/qdeclarativeintegercache.cpp | 96 + src/declarative/qml/qdeclarativeintegercache_p.h | 112 + src/declarative/qml/qdeclarativelist.cpp | 417 + src/declarative/qml/qdeclarativelist.h | 152 + src/declarative/qml/qdeclarativelist_p.h | 85 + .../qml/qdeclarativelistscriptclass.cpp | 149 + .../qml/qdeclarativelistscriptclass_p.h | 87 + src/declarative/qml/qdeclarativemetatype.cpp | 1536 ++ src/declarative/qml/qdeclarativemetatype_p.h | 174 + .../qdeclarativenetworkaccessmanagerfactory.cpp | 103 + .../qml/qdeclarativenetworkaccessmanagerfactory.h | 66 + src/declarative/qml/qdeclarativenotifier.cpp | 126 + src/declarative/qml/qdeclarativenotifier_p.h | 268 + .../qml/qdeclarativeobjectscriptclass.cpp | 1242 ++ .../qml/qdeclarativeobjectscriptclass_p.h | 166 + src/declarative/qml/qdeclarativeparser.cpp | 437 + src/declarative/qml/qdeclarativeparser_p.h | 381 + src/declarative/qml/qdeclarativeparserstatus.cpp | 107 + src/declarative/qml/qdeclarativeparserstatus.h | 75 + src/declarative/qml/qdeclarativeprivate.h | 249 + src/declarative/qml/qdeclarativeproperty.cpp | 1654 ++ src/declarative/qml/qdeclarativeproperty.h | 143 + src/declarative/qml/qdeclarativeproperty_p.h | 147 + src/declarative/qml/qdeclarativepropertycache.cpp | 471 + src/declarative/qml/qdeclarativepropertycache_p.h | 240 + .../qml/qdeclarativepropertyvalueinterceptor.cpp | 79 + .../qml/qdeclarativepropertyvalueinterceptor.h | 68 + .../qml/qdeclarativepropertyvaluesource.cpp | 76 + .../qml/qdeclarativepropertyvaluesource.h | 67 + .../qml/qdeclarativeproxymetaobject.cpp | 124 + .../qml/qdeclarativeproxymetaobject_p.h | 100 + src/declarative/qml/qdeclarativerefcount.cpp | 70 + src/declarative/qml/qdeclarativerefcount_p.h | 80 + src/declarative/qml/qdeclarativerewrite.cpp | 273 + src/declarative/qml/qdeclarativerewrite_p.h | 127 + src/declarative/qml/qdeclarativescriptparser.cpp | 1206 ++ src/declarative/qml/qdeclarativescriptparser_p.h | 148 + src/declarative/qml/qdeclarativescriptstring.cpp | 166 + src/declarative/qml/qdeclarativescriptstring.h | 87 + src/declarative/qml/qdeclarativesqldatabase.cpp | 448 + src/declarative/qml/qdeclarativesqldatabase_p.h | 67 + .../qml/qdeclarativestringconverters.cpp | 278 + .../qml/qdeclarativestringconverters_p.h | 91 + src/declarative/qml/qdeclarativetypeloader.cpp | 1196 ++ src/declarative/qml/qdeclarativetypeloader_p.h | 330 + src/declarative/qml/qdeclarativetypenamecache.cpp | 118 + src/declarative/qml/qdeclarativetypenamecache_p.h | 119 + .../qml/qdeclarativetypenamescriptclass.cpp | 165 + .../qml/qdeclarativetypenamescriptclass_p.h | 92 + .../qml/qdeclarativetypenotavailable.cpp | 53 + .../qml/qdeclarativetypenotavailable_p.h | 65 + src/declarative/qml/qdeclarativevaluetype.cpp | 1011 ++ src/declarative/qml/qdeclarativevaluetype_p.h | 556 + .../qml/qdeclarativevaluetypescriptclass.cpp | 242 + .../qml/qdeclarativevaluetypescriptclass_p.h | 87 + src/declarative/qml/qdeclarativevme.cpp | 1124 ++ src/declarative/qml/qdeclarativevme_p.h | 95 + src/declarative/qml/qdeclarativevmemetaobject.cpp | 903 + src/declarative/qml/qdeclarativevmemetaobject_p.h | 197 + src/declarative/qml/qdeclarativewatcher.cpp | 188 + src/declarative/qml/qdeclarativewatcher_p.h | 94 + src/declarative/qml/qdeclarativeworkerscript.cpp | 753 + src/declarative/qml/qdeclarativeworkerscript_p.h | 129 + src/declarative/qml/qdeclarativexmlhttprequest.cpp | 1740 ++ src/declarative/qml/qdeclarativexmlhttprequest_p.h | 71 + src/declarative/qml/qmetaobjectbuilder.cpp | 2601 +++ src/declarative/qml/qmetaobjectbuilder_p.h | 325 + src/declarative/qml/qml.pri | 139 + src/declarative/qml/qperformancetimer.cpp | 227 + src/declarative/qml/qperformancetimer_p.h | 79 + src/declarative/qml/qpodvector_p.h | 173 + src/declarative/qml/rewriter/rewriter.pri | 4 + src/declarative/qml/rewriter/textwriter.cpp | 217 + src/declarative/qml/rewriter/textwriter_p.h | 101 + src/declarative/util/qdeclarativeanimation.cpp | 2952 +++ src/declarative/util/qdeclarativeanimation_p.h | 528 + src/declarative/util/qdeclarativeanimation_p_p.h | 397 + src/declarative/util/qdeclarativeapplication.cpp | 112 + src/declarative/util/qdeclarativeapplication_p.h | 86 + src/declarative/util/qdeclarativebehavior.cpp | 230 + src/declarative/util/qdeclarativebehavior_p.h | 98 + src/declarative/util/qdeclarativebind.cpp | 214 + src/declarative/util/qdeclarativebind_p.h | 96 + src/declarative/util/qdeclarativeconnections.cpp | 289 + src/declarative/util/qdeclarativeconnections_p.h | 103 + src/declarative/util/qdeclarativefontloader.cpp | 338 + src/declarative/util/qdeclarativefontloader_p.h | 97 + src/declarative/util/qdeclarativelistaccessor.cpp | 138 + src/declarative/util/qdeclarativelistaccessor_p.h | 80 + src/declarative/util/qdeclarativelistmodel.cpp | 1628 ++ src/declarative/util/qdeclarativelistmodel_p.h | 158 + src/declarative/util/qdeclarativelistmodel_p_p.h | 281 + .../util/qdeclarativelistmodelworkeragent.cpp | 278 + .../util/qdeclarativelistmodelworkeragent_p.h | 163 + .../util/qdeclarativenullablevalue_p_p.h | 81 + .../util/qdeclarativeopenmetaobject.cpp | 380 + .../util/qdeclarativeopenmetaobject_p.h | 129 + src/declarative/util/qdeclarativepackage.cpp | 201 + src/declarative/util/qdeclarativepackage_p.h | 98 + src/declarative/util/qdeclarativepixmapcache.cpp | 1119 ++ src/declarative/util/qdeclarativepixmapcache_p.h | 124 + .../util/qdeclarativepropertychanges.cpp | 798 + .../util/qdeclarativepropertychanges_p.h | 112 + src/declarative/util/qdeclarativepropertymap.cpp | 296 + src/declarative/util/qdeclarativepropertymap.h | 90 + .../util/qdeclarativesmoothedanimation.cpp | 493 + .../util/qdeclarativesmoothedanimation_p.h | 103 + .../util/qdeclarativesmoothedanimation_p_p.h | 135 + .../util/qdeclarativespringanimation.cpp | 462 + .../util/qdeclarativespringanimation_p.h | 111 + src/declarative/util/qdeclarativestate.cpp | 742 + src/declarative/util/qdeclarativestate_p.h | 210 + src/declarative/util/qdeclarativestate_p_p.h | 255 + src/declarative/util/qdeclarativestategroup.cpp | 502 + src/declarative/util/qdeclarativestategroup_p.h | 95 + .../util/qdeclarativestateoperations.cpp | 1587 ++ .../util/qdeclarativestateoperations_p.h | 299 + src/declarative/util/qdeclarativestyledtext.cpp | 347 + src/declarative/util/qdeclarativestyledtext_p.h | 69 + src/declarative/util/qdeclarativesystempalette.cpp | 312 + src/declarative/util/qdeclarativesystempalette_p.h | 122 + src/declarative/util/qdeclarativetimeline.cpp | 947 + src/declarative/util/qdeclarativetimeline_p_p.h | 200 + src/declarative/util/qdeclarativetimer.cpp | 324 + src/declarative/util/qdeclarativetimer_p.h | 115 + src/declarative/util/qdeclarativetransition.cpp | 345 + src/declarative/util/qdeclarativetransition_p.h | 106 + .../util/qdeclarativetransitionmanager.cpp | 276 + .../util/qdeclarativetransitionmanager_p_p.h | 85 + src/declarative/util/qdeclarativeutilmodule.cpp | 174 + src/declarative/util/qdeclarativeutilmodule_p.h | 63 + src/declarative/util/qdeclarativeview.cpp | 739 + src/declarative/util/qdeclarativeview.h | 119 + src/declarative/util/qdeclarativexmllistmodel.cpp | 1157 ++ src/declarative/util/qdeclarativexmllistmodel_p.h | 213 + src/declarative/util/qlistmodelinterface.cpp | 105 + src/declarative/util/qlistmodelinterface_p.h | 84 + src/declarative/util/util.pri | 72 + src/imports/folderlistmodel/folderlistmodel.pro | 26 + src/imports/folderlistmodel/plugin.cpp | 70 + .../qdeclarativefolderlistmodel.cpp | 485 + .../folderlistmodel/qdeclarativefolderlistmodel.h | 159 + src/imports/folderlistmodel/qmldir | 1 + src/imports/gestures/gestures.pro | 26 + src/imports/gestures/plugin.cpp | 73 + src/imports/gestures/qdeclarativegesturearea.cpp | 282 + src/imports/gestures/qdeclarativegesturearea_p.h | 104 + src/imports/gestures/qmldir | 1 + src/imports/imports.pro | 5 + src/imports/particles/particles.cpp | 69 + src/imports/particles/particles.pro | 30 + src/imports/particles/qdeclarativeparticles.cpp | 1296 ++ src/imports/particles/qdeclarativeparticles_p.h | 258 + src/imports/particles/qmldir | 1 + src/imports/qimportbase.pri | 36 + src/imports/shaders/glfunctions.h | 75 + src/imports/shaders/qmldir | 2 + src/imports/shaders/qmlshadersplugin_plugin.cpp | 55 + src/imports/shaders/qmlshadersplugin_plugin.h | 56 + src/imports/shaders/scenegraph/qsggeometry.cpp | 194 + src/imports/shaders/scenegraph/qsggeometry.h | 234 + src/imports/shaders/shadereffect.cpp | 196 + src/imports/shaders/shadereffect.h | 81 + src/imports/shaders/shadereffectbuffer.cpp | 52 + src/imports/shaders/shadereffectbuffer.h | 62 + src/imports/shaders/shadereffectitem.cpp | 955 + src/imports/shaders/shadereffectitem.h | 154 + src/imports/shaders/shadereffectsource.cpp | 451 + src/imports/shaders/shadereffectsource.h | 159 + src/imports/shaders/shaders.pro | 38 + .../platforms/uikit/examples/qmltest/main.mm | 78 + .../platforms/uikit/examples/qmltest/qml/main.qml | 112 + .../uikit/examples/qmltest/qmltest-Info.plist | 36 + .../qmltest/qmltest.xcodeproj/project.pbxproj | 494 + .../moc_qmlapplicationviewer.cpp | 122 + .../qmlapplicationviewer/qmlapplicationviewer.cpp | 198 + .../qmlapplicationviewer/qmlapplicationviewer.h | 83 + src/plugins/plugins.pro | 16 + .../qmltooling/qmldbg_inspector/abstracttool.cpp | 54 + .../qmltooling/qmldbg_inspector/abstracttool.h | 85 + .../qmldbg_inspector/abstractviewinspector.cpp | 511 + .../qmldbg_inspector/abstractviewinspector.h | 173 + .../editor/abstractliveedittool.cpp | 196 + .../qmldbg_inspector/editor/abstractliveedittool.h | 104 + .../editor/boundingrecthighlighter.cpp | 240 + .../editor/boundingrecthighlighter.h | 115 + .../qmldbg_inspector/editor/colorpickertool.cpp | 100 + .../qmldbg_inspector/editor/colorpickertool.h | 92 + .../qmldbg_inspector/editor/livelayeritem.cpp | 92 + .../qmldbg_inspector/editor/livelayeritem.h | 67 + .../editor/liverubberbandselectionmanipulator.cpp | 165 + .../editor/liverubberbandselectionmanipulator.h | 96 + .../editor/liveselectionindicator.cpp | 118 + .../editor/liveselectionindicator.h | 80 + .../editor/liveselectionrectangle.cpp | 113 + .../editor/liveselectionrectangle.h | 77 + .../qmldbg_inspector/editor/liveselectiontool.cpp | 425 + .../qmldbg_inspector/editor/liveselectiontool.h | 120 + .../editor/livesingleselectionmanipulator.cpp | 151 + .../editor/livesingleselectionmanipulator.h | 89 + .../qmldbg_inspector/editor/qmltoolbar.cpp | 328 + .../qmldbg_inspector/editor/qmltoolbar.h | 132 + .../editor/subcomponentmasklayeritem.cpp | 130 + .../editor/subcomponentmasklayeritem.h | 71 + .../qmldbg_inspector/editor/toolbarcolorbox.cpp | 134 + .../qmldbg_inspector/editor/toolbarcolorbox.h | 81 + .../qmldbg_inspector/editor/zoomtool.cpp | 330 + .../qmltooling/qmldbg_inspector/editor/zoomtool.h | 107 + .../qdeclarativeinspectorplugin.cpp | 80 + .../qmldbg_inspector/qdeclarativeinspectorplugin.h | 71 + .../qdeclarativeinspectorprotocol.h | 137 + .../qmldbg_inspector/qdeclarativeviewinspector.cpp | 436 + .../qmldbg_inspector/qdeclarativeviewinspector.h | 100 + .../qmldbg_inspector/qdeclarativeviewinspector_p.h | 117 + .../qmldbg_inspector/qmldbg_inspector.pro | 49 + .../qmldbg_inspector/qmlinspectorconstants.h | 77 + src/plugins/qmltooling/qmldbg_ost/qmldbg_ost.pro | 21 + src/plugins/qmltooling/qmldbg_ost/qmlostplugin.cpp | 149 + src/plugins/qmltooling/qmldbg_ost/qmlostplugin.h | 82 + src/plugins/qmltooling/qmldbg_ost/qostdevice.cpp | 220 + src/plugins/qmltooling/qmldbg_ost/qostdevice.h | 77 + src/plugins/qmltooling/qmldbg_ost/usbostcomm.h | 191 + src/plugins/qmltooling/qmldbg_tcp/qmldbg_tcp.pro | 18 + .../qmltooling/qmldbg_tcp/qtcpserverconnection.cpp | 198 + .../qmltooling/qmldbg_tcp/qtcpserverconnection.h | 84 + src/plugins/qmltooling/qmltooling.pro | 4 + src/plugins/qpluginbase.pri | 41 + src/qt_targets.pri | 4 + .../data/QtDeclarative.4.7.0.linux-gcc-ia32.txt | 18158 +++++++++++++++++++ tests/auto/declarative.pro | 4 + tests/auto/declarative/declarative.pro | 85 + tests/auto/declarative/examples/data/dummytest.qml | 6 + .../examples/data/webbrowser/webbrowser.qml | 6 + tests/auto/declarative/examples/examples.pro | 21 + tests/auto/declarative/examples/tst_examples.cpp | 230 + .../declarative/moduleqt47/data/importqt47.qml | 80 + tests/auto/declarative/moduleqt47/moduleqt47.pro | 16 + .../auto/declarative/moduleqt47/tst_moduleqt47.cpp | 136 + .../auto/declarative/parserstress/parserstress.pro | 16 + .../declarative/parserstress/tst_parserstress.cpp | 165 + .../qdeclarativeanchors/data/anchors.qml | 162 + .../data/anchorsqgraphicswidget.qml | 162 + .../qdeclarativeanchors/data/centerin.qml | 12 + .../qdeclarativeanchors/data/crash1.qml | 11 + .../declarative/qdeclarativeanchors/data/fill.qml | 14 + .../qdeclarativeanchors/data/hvCenter.qml | 11 + .../declarative/qdeclarativeanchors/data/loop1.qml | 8 + .../declarative/qdeclarativeanchors/data/loop2.qml | 20 + .../qdeclarativeanchors/data/margins.qml | 13 + .../qdeclarativeanchors/qdeclarativeanchors.pro | 15 + .../tst_qdeclarativeanchors.cpp | 771 + .../qdeclarativeanimatedimage/data/colors.gif | Bin 0 -> 505 bytes .../qdeclarativeanimatedimage/data/colors.qml | 5 + .../qdeclarativeanimatedimage/data/hearts.gif | Bin 0 -> 6524 bytes .../qdeclarativeanimatedimage/data/hearts.qml | 6 + .../qdeclarativeanimatedimage/data/qmldir | 1 + .../qdeclarativeanimatedimage/data/qtbug-16520.qml | 17 + .../qdeclarativeanimatedimage/data/stickman.gif | Bin 0 -> 164923 bytes .../qdeclarativeanimatedimage/data/stickman.qml | 5 + .../data/stickmanerror1.qml | 6 + .../data/stickmanpause.qml | 7 + .../data/stickmanscaled.qml | 7 + .../data/stickmanstopped.qml | 6 + .../qdeclarativeanimatedimage.pro | 16 + .../tst_qdeclarativeanimatedimage.cpp | 387 + .../qdeclarativeanimations/data/Double.qml | 14 + .../qdeclarativeanimations/data/attached.qml | 34 + .../qdeclarativeanimations/data/badproperty1.qml | 21 + .../qdeclarativeanimations/data/badproperty2.qml | 21 + .../qdeclarativeanimations/data/badtype1.qml | 12 + .../qdeclarativeanimations/data/badtype2.qml | 12 + .../qdeclarativeanimations/data/badtype3.qml | 12 + .../qdeclarativeanimations/data/badtype4.qml | 27 + .../qdeclarativeanimations/data/dontAutoStart.qml | 18 + .../qdeclarativeanimations/data/dontStart.qml | 19 + .../qdeclarativeanimations/data/dontStart2.qml | 19 + .../qdeclarativeanimations/data/dotproperty.qml | 24 + .../data/doubleRegistrationBug.qml | 8 + .../qdeclarativeanimations/data/mixedtype1.qml | 25 + .../qdeclarativeanimations/data/mixedtype2.qml | 25 + .../data/nonTransitionBug.qml | 30 + .../qdeclarativeanimations/data/properties.qml | 14 + .../qdeclarativeanimations/data/properties2.qml | 14 + .../qdeclarativeanimations/data/properties3.qml | 14 + .../qdeclarativeanimations/data/properties4.qml | 14 + .../qdeclarativeanimations/data/properties5.qml | 14 + .../data/propertiesTransition.qml | 29 + .../data/propertiesTransition2.qml | 29 + .../data/propertiesTransition3.qml | 29 + .../data/propertiesTransition4.qml | 29 + .../data/propertiesTransition5.qml | 29 + .../data/propertiesTransition6.qml | 29 + .../data/propertiesTransition7.qml | 29 + .../data/registrationBug.qml | 18 + .../qdeclarativeanimations/data/rotation.qml | 48 + .../qdeclarativeanimations/data/runningTrueBug.qml | 30 + .../data/transitionAssignmentBug.qml | 12 + .../qdeclarativeanimations/data/valuesource.qml | 14 + .../qdeclarativeanimations/data/valuesource2.qml | 14 + .../qdeclarativeanimations.pro | 15 + .../tst_qdeclarativeanimations.cpp | 862 + .../qdeclarativeapplication.pro | 5 + .../tst_qdeclarativeapplication.cpp | 123 + .../qdeclarativebehaviors/data/binding.qml | 26 + .../qdeclarativebehaviors/data/color.qml | 24 + .../qdeclarativebehaviors/data/cpptrigger.qml | 11 + .../data/delayedRegistration.qml | 25 + .../qdeclarativebehaviors/data/disabled.qml | 27 + .../qdeclarativebehaviors/data/dontStart.qml | 18 + .../qdeclarativebehaviors/data/empty.qml | 23 + .../qdeclarativebehaviors/data/explicit.qml | 26 + .../qdeclarativebehaviors/data/groupProperty.qml | 23 + .../qdeclarativebehaviors/data/groupProperty2.qml | 23 + .../data/groupedPropertyCrash.qml | 10 + .../qdeclarativebehaviors/data/loop.qml | 19 + .../qdeclarativebehaviors/data/nonSelecting2.qml | 26 + .../qdeclarativebehaviors/data/parent.qml | 28 + .../qdeclarativebehaviors/data/qtbug12295.qml | 17 + .../data/reassignedAnimation.qml | 32 + .../qdeclarativebehaviors/data/runningTrue.qml | 20 + .../qdeclarativebehaviors/data/scripttrigger.qml | 16 + .../qdeclarativebehaviors/data/simple.qml | 26 + .../qdeclarativebehaviors/data/startup.qml | 17 + .../qdeclarativebehaviors/data/startup2.qml | 16 + .../qdeclarativebehaviors.pro | 15 + .../tst_qdeclarativebehaviors.cpp | 435 + .../qdeclarativebinding/data/deletedObject.qml | 24 + .../qdeclarativebinding/data/test-binding.qml | 16 + .../qdeclarativebinding/data/test-binding2.qml | 16 + .../qdeclarativebinding/qdeclarativebinding.pro | 16 + .../tst_qdeclarativebinding.cpp | 135 + .../data/colors-round-remote.sci | 7 + .../qdeclarativeborderimage/data/colors-round.sci | 7 + .../qdeclarativeborderimage/data/colors.png | Bin 0 -> 1655 bytes .../qdeclarativeborderimage/data/heart200.png | Bin 0 -> 7943 bytes .../qdeclarativeborderimage/data/invalid.sci | 7 + .../qdeclarativeborderimage.pro | 18 + .../tst_qdeclarativeborderimage.cpp | 426 + .../qdeclarativecomponent/data/createObject.qml | 16 + .../data/createObjectWithScript.qml | 43 + .../qdeclarativecomponent.pro | 13 + .../tst_qdeclarativecomponent.cpp | 173 + .../data/connection-targetchange.qml | 25 + .../data/connection-unknownsignals-ignored.qml | 8 + .../data/connection-unknownsignals-notarget.qml | 7 + .../data/connection-unknownsignals-parent.qml | 7 + .../data/connection-unknownsignals.qml | 7 + .../qdeclarativeconnection/data/error-object.qml | 7 + .../qdeclarativeconnection/data/error-property.qml | 5 + .../data/error-property2.qml | 5 + .../qdeclarativeconnection/data/error-syntax.qml | 9 + .../data/test-connection.qml | 10 + .../data/test-connection2.qml | 3 + .../data/test-connection3.qml | 3 + .../qdeclarativeconnection/data/trimming.qml | 10 + .../qdeclarativeconnection.pro | 16 + .../tst_qdeclarativeconnection.cpp | 234 + .../qdeclarativecontext/qdeclarativecontext.pro | 11 + .../tst_qdeclarativecontext.cpp | 468 + .../qdeclarativedebug/qdeclarativedebug.pro | 10 + .../qdeclarativedebug/tst_qdeclarativedebug.cpp | 1220 ++ .../qdeclarativedebugclient.pro | 9 + .../tst_qdeclarativedebugclient.cpp | 154 + .../private_headers/qdeclarativedebughelper_p.h | 71 + .../qdeclarativedebughelper.pro | 5 + .../tst_qdeclarativedebughelper.cpp | 122 + .../declarative/qdeclarativedebugjs/app/app.pro | 13 + .../declarative/qdeclarativedebugjs/app/main.cpp | 69 + .../qdeclarativedebugjs/data/backtrace1.js | 28 + .../qdeclarativedebugjs/data/backtrace1.qml | 41 + .../qdeclarativedebugjs/qdeclarativedebugjs.pro | 4 + .../tst_qdeclarativedebugjs.cpp | 1443 ++ .../tst_qdeclarativedebugjs.pro | 26 + .../qdeclarativedebugservice.pro | 10 + .../tst_qdeclarativedebugservice.cpp | 198 + .../qdeclarativedom/data/MyComponent.qml | 4 + .../declarative/qdeclarativedom/data/MyItem.qml | 4 + .../qdeclarativedom/data/import/Bar.qml | 2 + .../qdeclarativedom/data/importlib/sublib/Foo.qml | 2 + .../qdeclarativedom/data/importlib/sublib/qmldir | 2 + .../auto/declarative/qdeclarativedom/data/top.qml | 6 + .../qdeclarativedom/qdeclarativedom.pro | 16 + .../qdeclarativedom/tst_qdeclarativedom.cpp | 1326 ++ .../data/AliasBindingsAssignCorrectlyType.qml | 9 + .../data/AliasBindingsOverrideTargetType.qml | 14 + .../data/AliasBindingsOverrideTargetType3.qml | 9 + .../data/ConstantsOverrideBindings.qml | 12 + .../qdeclarativeecmascript/data/CustomObject.qml | 5 + .../qdeclarativeecmascript/data/MethodsObject.qml | 6 + .../data/NestedTypeTransientErrors.qml | 11 + .../qdeclarativeecmascript/data/ScopeObject.qml | 12 + .../data/SpuriousWarning.qml | 5 + .../data/TypeForDynamicCreation.qml | 2 + .../data/aliasBindingsAssignCorrectly.qml | 59 + .../data/aliasBindingsOverrideTarget.2.qml | 29 + .../data/aliasBindingsOverrideTarget.3.qml | 24 + .../data/aliasBindingsOverrideTarget.qml | 28 + .../data/aliasPropertyAndBinding.qml | 14 + .../data/aliasWritesOverrideBindings.2.qml | 29 + .../data/aliasWritesOverrideBindings.3.qml | 23 + .../data/aliasWritesOverrideBindings.qml | 23 + .../data/assignBasicTypes.2.qml | 26 + .../data/assignBasicTypes.qml | 29 + .../data/attachedProperty.2.qml | 22 + .../data/attachedProperty.qml | 11 + .../data/attachedPropertyScope.qml | 9 + .../qdeclarativeecmascript/data/bindingLoop.qml | 14 + .../qdeclarativeecmascript/data/blank.js | 0 .../data/boolPropertiesEvaluateAsBool.1.qml | 5 + .../data/boolPropertiesEvaluateAsBool.2.qml | 5 + .../qdeclarativeecmascript/data/bug.1.qml | 10 + .../data/canAssignNullToQObject.1.qml | 9 + .../data/canAssignNullToQObject.2.qml | 11 + .../qdeclarativeecmascript/data/compiled.qml | 48 + .../data/compositePropertyType.qml | 8 + .../data/constantsOverrideBindings.1.qml | 8 + .../data/constantsOverrideBindings.2.qml | 11 + .../data/constantsOverrideBindings.3.qml | 7 + .../data/constantsOverrideBindings.4.qml | 11 + .../data/declarativeToString.qml | 11 + .../data/deferredProperties.qml | 10 + .../data/deferredPropertiesErrors.qml | 10 + .../qdeclarativeecmascript/data/deleteLater.qml | 14 + .../qdeclarativeecmascript/data/deletedEngine.qml | 11 + .../qdeclarativeecmascript/data/deletedObject.qml | 25 + .../data/dynamicCreation.helper.qml | 6 + .../data/dynamicCreation.qml | 27 + .../data/dynamicDeletion.qml | 20 + .../qdeclarativeecmascript/data/enums.1.qml | 20 + .../qdeclarativeecmascript/data/enums.2.qml | 8 + .../qdeclarativeecmascript/data/eval.qml | 27 + .../qdeclarativeecmascript/data/exception.js | 1 + .../data/exceptionClearsOnReeval.qml | 6 + .../data/exceptionProducesWarning.qml | 8 + .../data/exceptionProducesWarning2.qml | 7 + .../data/extendedObjectPropertyLookup.qml | 8 + .../data/extensionObjects.qml | 19 + .../data/extensionObjectsPropertyOverride.qml | 7 + .../qdeclarativeecmascript/data/function.qml | 23 + .../data/functionAssignment.1.qml | 5 + .../data/functionAssignment.2.qml | 73 + .../data/functionAssignment.js | 17 + .../qdeclarativeecmascript/data/functionErrors.qml | 10 + .../data/idShortcutInvalidates.1.qml | 13 + .../data/idShortcutInvalidates.qml | 12 + .../declarative/qdeclarativeecmascript/data/in.qml | 7 + .../qdeclarativeecmascript/data/include.js | 8 + .../qdeclarativeecmascript/data/include.qml | 23 + .../data/include_callback.js | 11 + .../data/include_callback.qml | 15 + .../qdeclarativeecmascript/data/include_pragma.qml | 11 + .../data/include_pragma_inner.js | 5 + .../data/include_pragma_outer.js | 6 + .../qdeclarativeecmascript/data/include_remote.js | 26 + .../qdeclarativeecmascript/data/include_remote.qml | 21 + .../data/include_remote_missing.js | 13 + .../data/include_remote_missing.qml | 12 + .../qdeclarativeecmascript/data/include_shared.js | 12 + .../qdeclarativeecmascript/data/include_shared.qml | 22 + .../data/invokableObjectArg.qml | 9 + .../data/invokableObjectRet.qml | 11 + .../qdeclarativeecmascript/data/js/include2.js | 4 + .../qdeclarativeecmascript/data/js/include3.js | 3 + .../qdeclarativeecmascript/data/jsObject.qml | 12 + .../data/libraryScriptAssert.js | 6 + .../data/libraryScriptAssert.qml | 7 + .../qdeclarativeecmascript/data/listProperties.qml | 24 + .../qdeclarativeecmascript/data/listToVariant.qml | 5 + .../data/metaobjectRevision.qml | 7 + .../data/metaobjectRevision2.qml | 9 + .../data/metaobjectRevision3.qml | 8 + .../data/metaobjectRevision4.qml | 14 + .../data/metaobjectRevisionErrors.qml | 14 + .../data/metaobjectRevisionErrors2.qml | 24 + .../data/metaobjectRevisionErrors3.qml | 36 + .../qdeclarativeecmascript/data/methods.1.qml | 6 + .../qdeclarativeecmascript/data/methods.2.qml | 6 + .../qdeclarativeecmascript/data/methods.3.qml | 7 + .../qdeclarativeecmascript/data/methods.4.qml | 11 + .../qdeclarativeecmascript/data/methods.5.qml | 9 + .../data/multiEngineObject.qml | 5 + .../data/noSpuriousWarningsAtShutdown.2.qml | 10 + .../data/noSpuriousWarningsAtShutdown.qml | 9 + .../data/nonExistentAttachedObject.qml | 5 + .../qdeclarativeecmascript/data/nonscriptable.qml | 19 + .../data/nullObjectBinding.qml | 8 + .../data/numberAssignment.qml | 18 + .../qdeclarativeecmascript/data/objectName.qml | 8 + .../data/objectsCompareAsEqual.qml | 15 + .../data/outerBindingOverridesInnerBinding.qml | 15 + .../qdeclarativeecmascript/data/ownership.qml | 5 + .../data/propertyAssignmentErrors.qml | 22 + .../data/propertySplicing.qml | 10 + .../data/qlistqobjectMethods.qml | 6 + .../qdeclarativeecmascript/data/qtbug_10696.qml | 26 + .../qdeclarativeecmascript/data/qtbug_11600.js | 1 + .../qdeclarativeecmascript/data/qtbug_11600.qml | 8 + .../qdeclarativeecmascript/data/qtbug_11606.qml | 12 + .../qdeclarativeecmascript/data/qtbug_20648.qml | 7 + .../qdeclarativeecmascript/data/qtbug_9792.qml | 5 + .../data/qtcreatorbug_1289.qml | 13 + .../qdeclarativeecmascript/data/realToInt.qml | 11 + .../qdeclarativeecmascript/data/regExp.qml | 7 + .../qdeclarativeecmascript/data/remote_file.js | 2 + .../qdeclarativeecmascript/data/scope.2.qml | 40 + .../qdeclarativeecmascript/data/scope.3.qml | 13 + .../qdeclarativeecmascript/data/scope.4.qml | 12 + .../qdeclarativeecmascript/data/scope.qml | 44 + .../qdeclarativeecmascript/data/scriptConnect.1.js | 4 + .../data/scriptConnect.1.qml | 10 + .../qdeclarativeecmascript/data/scriptConnect.2.js | 5 + .../data/scriptConnect.2.qml | 16 + .../data/scriptConnect.3.qml | 15 + .../data/scriptConnect.4.qml | 12 + .../data/scriptConnect.5.qml | 11 + .../qdeclarativeecmascript/data/scriptConnect.6.js | 3 + .../data/scriptConnect.6.qml | 15 + .../data/scriptDisconnect.1.js | 6 + .../data/scriptDisconnect.1.qml | 13 + .../data/scriptDisconnect.2.qml | 14 + .../data/scriptDisconnect.3.qml | 14 + .../data/scriptDisconnect.4.qml | 13 + .../qdeclarativeecmascript/data/scriptErrors.js | 4 + .../qdeclarativeecmascript/data/scriptErrors.qml | 15 + .../data/selfDeletingBinding.2.qml | 17 + .../data/selfDeletingBinding.qml | 18 + .../data/sharedAttachedObject.qml | 16 + .../qdeclarativeecmascript/data/shutdownErrors.qml | 13 + .../data/signalAssignment.1.qml | 5 + .../data/signalAssignment.2.qml | 5 + .../data/signalParameterTypes.qml | 18 + .../data/signalTriggeredBindings.qml | 20 + .../data/signalWithUnknownTypes.qml | 5 + .../qdeclarativeecmascript/data/strictlyEquals.qml | 17 + .../data/transientErrors.2.qml | 14 + .../data/transientErrors.qml | 10 + .../data/undefinedResetsProperty.2.qml | 10 + .../data/undefinedResetsProperty.qml | 7 + .../data/valueTypeFunctions.qml | 6 + .../data/variantsAssignedUndefined.qml | 9 + .../data/writeAttachedProperty.qml | 6 + .../data/writeRemovesBinding.qml | 46 + .../qdeclarativeecmascript.pro | 24 + .../qdeclarativeecmascript/testtypes.cpp | 134 + .../declarative/qdeclarativeecmascript/testtypes.h | 915 + .../tst_qdeclarativeecmascript.cpp | 3105 ++++ .../qdeclarativeengine/qdeclarativeengine.pro | 12 + .../qdeclarativeengine/tst_qdeclarativeengine.cpp | 333 + .../qdeclarativeerror/qdeclarativeerror.pro | 12 + tests/auto/declarative/qdeclarativeerror/test.txt | 3 + .../qdeclarativeerror/tst_qdeclarativeerror.cpp | 247 + .../qdeclarativeflickable/data/disabledcontent.qml | 8 + .../qdeclarativeflickable/data/flickable01.qml | 4 + .../qdeclarativeflickable/data/flickable02.qml | 14 + .../qdeclarativeflickable/data/flickable03.qml | 14 + .../qdeclarativeflickable/data/flickable04.qml | 22 + .../data/flickableqgraphicswidget.qml | 7 + .../data/nestedPressDelay.qml | 33 + .../qdeclarativeflickable/data/resize.qml | 27 + .../qdeclarativeflickable/data/wheel.qml | 21 + .../qdeclarativeflickable.pro | 16 + .../tst_qdeclarativeflickable.cpp | 554 + .../qdeclarativeflipable/data/crash.qml | 9 + .../qdeclarativeflipable/data/flipable-abort.qml | 10 + .../qdeclarativeflipable/data/test-flipable.qml | 9 + .../qdeclarativeflipable/qdeclarativeflipable.pro | 16 + .../tst_qdeclarativeflipable.cpp | 143 + .../qdeclarativefocusscope/data/chain.qml | 28 + .../data/forceActiveFocus.qml | 26 + .../qdeclarativefocusscope/data/forcefocus.qml | 81 + .../qdeclarativefocusscope/data/qtBug13380.qml | 24 + .../qdeclarativefocusscope/data/signalEmission.qml | 33 + .../qdeclarativefocusscope/data/test.qml | 77 + .../qdeclarativefocusscope/data/test2.qml | 39 + .../qdeclarativefocusscope/data/test3.qml | 52 + .../qdeclarativefocusscope/data/test4.qml | 76 + .../qdeclarativefocusscope/data/test5.qml | 84 + .../qdeclarativefocusscope.pro | 13 + .../tst_qdeclarativefocusscope.cpp | 546 + .../qdeclarativefolderlistmodel/data/basic.qml | 5 + .../qdeclarativefolderlistmodel/data/dummy.qml | 1 + .../qdeclarativefolderlistmodel.pro | 15 + .../tst_qdeclarativefolderlistmodel.cpp | 152 + .../qdeclarativefontloader/data/daniel.ttf | Bin 0 -> 51984 bytes .../qdeclarativefontloader/data/dummy.ttf | 0 .../qdeclarativefontloader/data/tarzeau_ocr_a.ttf | Bin 0 -> 24544 bytes .../qdeclarativefontloader.pro | 17 + .../tst_qdeclarativefontloader.cpp | 230 + .../qdeclarativegridview/data/attachedSignals.qml | 27 + .../qdeclarativegridview/data/displaygrid.qml | 39 + .../qdeclarativegridview/data/footer.qml | 40 + .../data/gridview-enforcerange.qml | 58 + .../data/gridview-initCurrent.qml | 52 + .../data/gridview-noCurrent.qml | 52 + .../qdeclarativegridview/data/gridview1.qml | 66 + .../qdeclarativegridview/data/gridview2.qml | 26 + .../qdeclarativegridview/data/gridview3.qml | 6 + .../qdeclarativegridview/data/header.qml | 40 + .../qdeclarativegridview/data/manual-highlight.qml | 48 + .../qdeclarativegridview/data/mirroring.qml | 43 + .../data/propertychangestest.qml | 69 + .../qdeclarativegridview/data/setindex.qml | 29 + .../qdeclarativegridview/qdeclarativegridview.pro | 16 + .../tst_qdeclarativegridview.cpp | 2213 +++ .../qdeclarativeimage/data/aspectratio.qml | 10 + .../declarative/qdeclarativeimage/data/big.jpeg | Bin 0 -> 1700081 bytes .../declarative/qdeclarativeimage/data/big256.png | Bin 0 -> 3566 bytes .../declarative/qdeclarativeimage/data/colors.png | Bin 0 -> 1655 bytes .../declarative/qdeclarativeimage/data/colors1.png | Bin 0 -> 1655 bytes .../declarative/qdeclarativeimage/data/green.png | Bin 0 -> 314 bytes .../qdeclarativeimage/data/heart-win32.png | Bin 0 -> 12621 bytes .../declarative/qdeclarativeimage/data/heart.png | Bin 0 -> 12577 bytes .../declarative/qdeclarativeimage/data/heart.svg | 55 + .../qdeclarativeimage/data/heart200-win32.png | Bin 0 -> 8062 bytes .../qdeclarativeimage/data/heart200.png | Bin 0 -> 8063 bytes .../qdeclarativeimage/data/qtbug_16389.qml | 30 + .../qdeclarativeimage/data/qtbug_22125.qml | 44 + .../declarative/qdeclarativeimage/data/rect.png | Bin 0 -> 171 bytes .../declarative/qdeclarativeimage/data/tiling.qml | 16 + .../qdeclarativeimage/qdeclarativeimage.pro | 18 + .../qdeclarativeimage/tst_qdeclarativeimage.cpp | 839 + .../qdeclarativeimageprovider.pro | 16 + .../tst_qdeclarativeimageprovider.cpp | 432 + .../qdeclarativeinfo/data/NestedObject.qml | 8 + .../qdeclarativeinfo/data/nestedQmlObject.qml | 8 + .../qdeclarativeinfo/data/qmlObject.qml | 8 + .../qdeclarativeinfo/qdeclarativeinfo.pro | 16 + .../qdeclarativeinfo/tst_qdeclarativeinfo.cpp | 208 + .../qdeclarativeinstruction.pro | 11 + .../tst_qdeclarativeinstruction.cpp | 609 + .../qdeclarativeitem/data/childrenProperty.qml | 14 + .../qdeclarativeitem/data/childrenRect.qml | 27 + .../qdeclarativeitem/data/childrenRectBug.qml | 23 + .../qdeclarativeitem/data/childrenRectBug2.qml | 53 + .../qdeclarativeitem/data/childrenRectBug3.qml | 15 + .../qdeclarativeitem/data/implicitsize.qml | 19 + .../qdeclarativeitem/data/keynavigationtest.qml | 87 + .../qdeclarativeitem/data/keyspriority.qml | 9 + .../declarative/qdeclarativeitem/data/keystest.qml | 24 + .../qdeclarativeitem/data/layoutmirroring.qml | 54 + .../qdeclarativeitem/data/mapCoordinates.qml | 43 + .../qdeclarativeitem/data/mouseFocus.qml | 20 + .../qdeclarativeitem/data/propertychanges.qml | 10 + .../qdeclarativeitem/data/qtbug_16871.qml | 5 + .../qdeclarativeitem/data/resourcesProperty.qml | 21 + .../qdeclarativeitem/data/transformCrash.qml | 13 + .../qdeclarativeitem/qdeclarativeitem.pro | 16 + .../qdeclarativeitem/tst_qdeclarativeitem.cpp | 1256 ++ .../qdeclarativelanguage/data/Alias.qml | 8 + .../qdeclarativelanguage/data/Alias2.qml | 9 + .../qdeclarativelanguage/data/Alias3.qml | 12 + .../qdeclarativelanguage/data/Alias4.qml | 5 + .../data/AliasPropertyChangeSignalsType.qml | 20 + .../data/ComponentComposite.qml | 5 + .../qdeclarativelanguage/data/CompositeType.qml | 4 + .../qdeclarativelanguage/data/CompositeType2.qml | 5 + .../qdeclarativelanguage/data/CompositeType3.qml | 5 + .../qdeclarativelanguage/data/CompositeType4.qml | 6 + .../data/DontDoubleCallClassBeginItem.qml | 4 + .../data/DynamicPropertiesNestedType.qml | 6 + .../qdeclarativelanguage/data/HelperAlias.qml | 9 + .../declarative/qdeclarativelanguage/data/I18n.qml | 6 + .../qdeclarativelanguage/data/I18nType30.qml | 5 + .../data/InlineAssignmentsOverrideBindingsType.qml | 7 + .../InlineAssignmentsOverrideBindingsType2.qml | 5 + .../qdeclarativelanguage/data/LocalLast.qml | 2 + .../qdeclarativelanguage/data/MyComponent.qml | 6 + .../data/MyCompositeValueSource.qml | 6 + .../data/MyContainerComponent.qml | 5 + .../qdeclarativelanguage/data/NestedAlias.qml | 14 + .../data/NestedComponentRoot.qml | 6 + .../qdeclarativelanguage/data/NestedErrorsType.qml | 5 + .../qdeclarativelanguage/data/OnCompletedType.qml | 8 + .../data/OnDestructionType.qml | 8 + .../qdeclarativelanguage/data/alias.1.qml | 8 + .../qdeclarativelanguage/data/alias.10.qml | 8 + .../qdeclarativelanguage/data/alias.11.qml | 8 + .../qdeclarativelanguage/data/alias.2.qml | 8 + .../qdeclarativelanguage/data/alias.3.qml | 10 + .../qdeclarativelanguage/data/alias.4.qml | 6 + .../qdeclarativelanguage/data/alias.5.qml | 13 + .../qdeclarativelanguage/data/alias.6.qml | 8 + .../qdeclarativelanguage/data/alias.7.qml | 14 + .../qdeclarativelanguage/data/alias.8.qml | 9 + .../qdeclarativelanguage/data/alias.9.qml | 9 + .../data/aliasPropertiesAndSignals.qml | 14 + .../data/aliasPropertyChangeSignals.2.qml | 10 + .../data/aliasPropertyChangeSignals.qml | 16 + .../data/allowedRevisionOverloads.qml | 6 + .../qdeclarativelanguage/data/assignBasicTypes.qml | 27 + .../data/assignCompositeToType.qml | 18 + .../data/assignLiteralSignalProperty.qml | 4 + .../data/assignLiteralToVariant.qml | 16 + .../data/assignObjectToSignal.qml | 4 + .../data/assignObjectToVariant.qml | 7 + .../data/assignQmlComponent.qml | 4 + .../qdeclarativelanguage/data/assignSignal.qml | 5 + .../data/assignToNamespace.errors.txt | 1 + .../data/assignToNamespace.qml | 5 + .../data/assignTypeExtremes.qml | 5 + .../data/assignValueToSignal.errors.txt | 1 + .../data/assignValueToSignal.qml | 6 + .../data/attachedProperties.qml | 8 + .../data/autoComponentCreation.qml | 4 + .../data/autoNotifyConnection.qml | 6 + .../data/component.1.errors.txt | 1 + .../qdeclarativelanguage/data/component.1.qml | 4 + .../data/component.2.errors.txt | 1 + .../qdeclarativelanguage/data/component.2.qml | 9 + .../data/component.3.errors.txt | 1 + .../qdeclarativelanguage/data/component.3.qml | 9 + .../data/component.4.errors.txt | 1 + .../qdeclarativelanguage/data/component.4.qml | 6 + .../data/component.5.errors.txt | 1 + .../qdeclarativelanguage/data/component.5.qml | 6 + .../data/component.6.errors.txt | 1 + .../qdeclarativelanguage/data/component.6.qml | 6 + .../data/component.7.errors.txt | 1 + .../qdeclarativelanguage/data/component.7.qml | 7 + .../data/component.8.errors.txt | 1 + .../qdeclarativelanguage/data/component.8.qml | 7 + .../data/component.9.errors.txt | 1 + .../qdeclarativelanguage/data/component.9.qml | 7 + .../data/componentCompositeType.qml | 8 + .../qdeclarativelanguage/data/cppnamespace.2.qml | 5 + .../qdeclarativelanguage/data/cppnamespace.qml | 4 + .../qdeclarativelanguage/data/crash2.qml | 5 + .../qdeclarativelanguage/data/customOnProperty.qml | 7 + .../data/customParserIdNotAllowed.errors.txt | 1 + .../data/customParserIdNotAllowed.qml | 5 + .../data/customParserTypes.qml | 5 + .../data/customVariantTypes.qml | 4 + .../data/declaredPropertyValues.qml | 8 + .../data/defaultGrouped.errors.txt | 1 + .../qdeclarativelanguage/data/defaultGrouped.qml | 10 + .../data/defaultPropertyListOrder.qml | 29 + .../data/destroyedSignal.errors.txt | 1 + .../qdeclarativelanguage/data/destroyedSignal.qml | 5 + .../data/disallowedRevisionOverloads.errors.txt | 1 + .../data/disallowedRevisionOverloads.qml | 7 + .../data/dontDoubleCallClassBegin.qml | 5 + .../data/doubleSignal.errors.txt | 1 + .../qdeclarativelanguage/data/doubleSignal.qml | 7 + .../data/duplicateIDs.errors.txt | 1 + .../qdeclarativelanguage/data/duplicateIDs.qml | 6 + .../data/dynamicMeta.1.errors.txt | 1 + .../qdeclarativelanguage/data/dynamicMeta.1.qml | 6 + .../data/dynamicMeta.2.errors.txt | 1 + .../qdeclarativelanguage/data/dynamicMeta.2.qml | 6 + .../data/dynamicMeta.3.errors.txt | 1 + .../qdeclarativelanguage/data/dynamicMeta.3.qml | 6 + .../data/dynamicMeta.4.errors.txt | 1 + .../qdeclarativelanguage/data/dynamicMeta.4.qml | 6 + .../data/dynamicMeta.5.errors.txt | 1 + .../qdeclarativelanguage/data/dynamicMeta.5.qml | 5 + .../qdeclarativelanguage/data/dynamicObject.1.qml | 8 + .../data/dynamicObjectProperties.2.qml | 11 + .../data/dynamicObjectProperties.qml | 13 + .../data/dynamicProperties.qml | 13 + .../data/dynamicPropertiesNested.qml | 9 + .../data/dynamicSignalsAndSlots.qml | 10 + .../qdeclarativelanguage/data/empty.errors.txt | 2 + .../qdeclarativelanguage/data/empty.qml | 0 .../data/emptySignal.errors.txt | 1 + .../qdeclarativelanguage/data/emptySignal.qml | 7 + .../qdeclarativelanguage/data/enumTypes.errors.txt | 1 + .../qdeclarativelanguage/data/enumTypes.qml | 4 + .../data/failingComponent.errors.txt | 1 + .../data/failingComponentTest.qml | 4 + .../data/fakeDotProperty.errors.txt | 1 + .../qdeclarativelanguage/data/fakeDotProperty.qml | 4 + .../data/finalOverride.errors.txt | 1 + .../qdeclarativelanguage/data/finalOverride.qml | 4 + .../data/i18nDeclaredPropertyNames.qml | 6 + .../data/i18nDeclaredPropertyUse.qml | 3 + .../qdeclarativelanguage/data/i18nNameSpace.qml | 5 + .../qdeclarativelanguage/data/i18nScript.qml | 9 + .../qdeclarativelanguage/data/i18nStrings.qml | 5 + .../qdeclarativelanguage/data/i18nType.qml | 1 + .../qdeclarativelanguage/data/idProperty.qml | 8 + .../data/importFile.errors.txt | 1 + .../qdeclarativelanguage/data/importFile.qml | 3 + .../data/importIncorrectCase.qml | 5 + .../data/importNamespaceConflict.errors.txt | 1 + .../data/importNamespaceConflict.qml | 4 + .../data/importNewerVersion.errors.txt | 1 + .../data/importNewerVersion.qml | 3 + .../data/importNonExist.errors.txt | 1 + .../qdeclarativelanguage/data/importNonExist.qml | 5 + .../data/importNonExistOlder.errors.txt | 1 + .../data/importNonExistOlder.qml | 3 + .../data/importVersionMissingBuiltIn.errors.txt | 1 + .../data/importVersionMissingBuiltIn.qml | 7 + .../data/importVersionMissingInstalled.errors.txt | 1 + .../data/importVersionMissingInstalled.qml | 3 + .../data/importscript.1.errors.txt | 1 + .../qdeclarativelanguage/data/importscript.1.qml | 3 + .../data/incorrectCase.errors.insensitive.txt | 2 + .../data/incorrectCase.errors.sensitive.txt | 1 + .../qdeclarativelanguage/data/incorrectCase.qml | 4 + .../data/incorrectCaseType.qml | 4 + .../data/inlineAssignmentsOverrideBindings.qml | 6 + .../data/inlineQmlComponents.qml | 10 + .../data/insertedSemicolon.1.errors.txt | 1 + .../data/insertedSemicolon.1.qml | 10 + .../data/interfaceProperty.qml | 5 + .../qdeclarativelanguage/data/interfaceQList.qml | 7 + .../data/invalidAlias.1.errors.txt | 1 + .../qdeclarativelanguage/data/invalidAlias.1.qml | 5 + .../data/invalidAlias.10.errors.txt | 1 + .../qdeclarativelanguage/data/invalidAlias.10.qml | 6 + .../data/invalidAlias.2.errors.txt | 1 + .../qdeclarativelanguage/data/invalidAlias.2.qml | 6 + .../data/invalidAlias.3.errors.txt | 1 + .../qdeclarativelanguage/data/invalidAlias.3.qml | 6 + .../data/invalidAlias.4.errors.txt | 1 + .../qdeclarativelanguage/data/invalidAlias.4.qml | 7 + .../data/invalidAlias.5.errors.txt | 1 + .../qdeclarativelanguage/data/invalidAlias.5.qml | 7 + .../data/invalidAlias.6.errors.txt | 1 + .../qdeclarativelanguage/data/invalidAlias.6.qml | 7 + .../data/invalidAlias.7.errors.txt | 1 + .../qdeclarativelanguage/data/invalidAlias.7.qml | 6 + .../data/invalidAlias.8.errors.txt | 1 + .../qdeclarativelanguage/data/invalidAlias.8.qml | 7 + .../data/invalidAlias.9.errors.txt | 1 + .../qdeclarativelanguage/data/invalidAlias.9.qml | 6 + .../data/invalidAttachedProperty.1.errors.txt | 1 + .../data/invalidAttachedProperty.1.qml | 7 + .../data/invalidAttachedProperty.10.errors.txt | 1 + .../data/invalidAttachedProperty.10.qml | 6 + .../data/invalidAttachedProperty.11.errors.txt | 1 + .../data/invalidAttachedProperty.11.qml | 7 + .../data/invalidAttachedProperty.12.errors.txt | 1 + .../data/invalidAttachedProperty.12.qml | 6 + .../data/invalidAttachedProperty.13.errors.txt | 1 + .../data/invalidAttachedProperty.13.qml | 8 + .../data/invalidAttachedProperty.2.errors.txt | 1 + .../data/invalidAttachedProperty.2.qml | 6 + .../data/invalidAttachedProperty.3.errors.txt | 1 + .../data/invalidAttachedProperty.3.qml | 8 + .../data/invalidAttachedProperty.4.errors.txt | 1 + .../data/invalidAttachedProperty.4.qml | 7 + .../data/invalidAttachedProperty.5.errors.txt | 1 + .../data/invalidAttachedProperty.5.qml | 7 + .../data/invalidAttachedProperty.6.errors.txt | 1 + .../data/invalidAttachedProperty.6.qml | 7 + .../data/invalidAttachedProperty.7.errors.txt | 1 + .../data/invalidAttachedProperty.7.qml | 6 + .../data/invalidAttachedProperty.8.errors.txt | 1 + .../data/invalidAttachedProperty.8.qml | 6 + .../data/invalidAttachedProperty.9.errors.txt | 1 + .../data/invalidAttachedProperty.9.qml | 7 + .../data/invalidGroupedProperty.1.errors.txt | 1 + .../data/invalidGroupedProperty.1.qml | 6 + .../data/invalidGroupedProperty.10.errors.txt | 1 + .../data/invalidGroupedProperty.10.qml | 7 + .../data/invalidGroupedProperty.2.errors.txt | 1 + .../data/invalidGroupedProperty.2.qml | 7 + .../data/invalidGroupedProperty.3.errors.txt | 1 + .../data/invalidGroupedProperty.3.qml | 5 + .../data/invalidGroupedProperty.4.errors.txt | 1 + .../data/invalidGroupedProperty.4.qml | 5 + .../data/invalidGroupedProperty.5.errors.txt | 1 + .../data/invalidGroupedProperty.5.qml | 5 + .../data/invalidGroupedProperty.6.errors.txt | 1 + .../data/invalidGroupedProperty.6.qml | 6 + .../data/invalidGroupedProperty.7.errors.txt | 1 + .../data/invalidGroupedProperty.7.qml | 5 + .../data/invalidGroupedProperty.8.errors.txt | 1 + .../data/invalidGroupedProperty.8.qml | 6 + .../data/invalidGroupedProperty.9.errors.txt | 1 + .../data/invalidGroupedProperty.9.qml | 6 + .../data/invalidID.2.errors.txt | 2 + .../qdeclarativelanguage/data/invalidID.2.qml | 5 + .../data/invalidID.3.errors.txt | 1 + .../qdeclarativelanguage/data/invalidID.3.qml | 5 + .../data/invalidID.4.errors.txt | 1 + .../qdeclarativelanguage/data/invalidID.4.qml | 6 + .../data/invalidID.5.errors.txt | 1 + .../qdeclarativelanguage/data/invalidID.5.qml | 6 + .../data/invalidID.6.errors.txt | 1 + .../qdeclarativelanguage/data/invalidID.6.qml | 5 + .../data/invalidID.7.errors.txt | 1 + .../qdeclarativelanguage/data/invalidID.7.qml | 5 + .../data/invalidID.8.errors.txt | 1 + .../qdeclarativelanguage/data/invalidID.8.qml | 5 + .../data/invalidID.9.errors.txt | 1 + .../qdeclarativelanguage/data/invalidID.9.qml | 5 + .../qdeclarativelanguage/data/invalidID.errors.txt | 1 + .../qdeclarativelanguage/data/invalidID.qml | 4 + .../data/invalidImportID.errors.txt | 1 + .../qdeclarativelanguage/data/invalidImportID.qml | 4 + .../qdeclarativelanguage/data/invalidOn.errors.txt | 1 + .../qdeclarativelanguage/data/invalidOn.qml | 4 + .../data/invalidProperty.errors.txt | 1 + .../qdeclarativelanguage/data/invalidProperty.qml | 5 + .../data/invalidRoot.errors.txt | 1 + .../qdeclarativelanguage/data/invalidRoot.qml | 2 + .../lib/com/nokia/installedtest/InstalledTest.qml | 2 + .../lib/com/nokia/installedtest/InstalledTest2.qml | 2 + .../data/lib/com/nokia/installedtest/LocalLast.qml | 2 + .../lib/com/nokia/installedtest/PrivateType.qml | 2 + .../data/lib/com/nokia/installedtest/qmldir | 4 + .../lib/com/nokia/installedtest0/InstalledTest.qml | 2 + .../com/nokia/installedtest0/InstalledTest2.qml | 2 + .../data/lib/com/nokia/installedtest0/qmldir | 2 + .../data/listAssignment.1.errors.txt | 1 + .../qdeclarativelanguage/data/listAssignment.1.qml | 6 + .../data/listAssignment.2.errors.txt | 2 + .../qdeclarativelanguage/data/listAssignment.2.qml | 4 + .../data/listAssignment.3.errors.txt | 1 + .../qdeclarativelanguage/data/listAssignment.3.qml | 6 + .../data/listItemDeleteSelf.qml | 38 + .../qdeclarativelanguage/data/listProperties.qml | 9 + .../data/metaobjectRevision.1.errors.txt | 1 + .../data/metaobjectRevision.1.qml | 9 + .../data/metaobjectRevision.2.errors.txt | 1 + .../data/metaobjectRevision.2.qml | 7 + .../data/metaobjectRevision.3.errors.txt | 1 + .../data/metaobjectRevision.3.qml | 10 + .../qdeclarativelanguage/data/method.1.errors.txt | 1 + .../qdeclarativelanguage/data/method.1.qml | 5 + .../data/missingObject.errors.txt | 1 + .../qdeclarativelanguage/data/missingObject.qml | 1 + .../data/missingSignal.errors.txt | 1 + .../qdeclarativelanguage/data/missingSignal.qml | 5 + .../data/missingValueTypeProperty.errors.txt | 1 + .../data/missingValueTypeProperty.qml | 5 + .../data/multiSet.1.errors.txt | 1 + .../qdeclarativelanguage/data/multiSet.1.qml | 7 + .../data/multiSet.10.errors.txt | 1 + .../qdeclarativelanguage/data/multiSet.10.qml | 6 + .../data/multiSet.11.errors.txt | 1 + .../qdeclarativelanguage/data/multiSet.11.qml | 6 + .../data/multiSet.2.errors.txt | 1 + .../qdeclarativelanguage/data/multiSet.2.qml | 7 + .../data/multiSet.3.errors.txt | 1 + .../qdeclarativelanguage/data/multiSet.3.qml | 7 + .../data/multiSet.4.errors.txt | 1 + .../qdeclarativelanguage/data/multiSet.4.qml | 7 + .../data/multiSet.5.errors.txt | 1 + .../qdeclarativelanguage/data/multiSet.5.qml | 6 + .../data/multiSet.6.errors.txt | 1 + .../qdeclarativelanguage/data/multiSet.6.qml | 7 + .../data/multiSet.7.errors.txt | 1 + .../qdeclarativelanguage/data/multiSet.7.qml | 7 + .../data/multiSet.8.errors.txt | 1 + .../qdeclarativelanguage/data/multiSet.8.qml | 8 + .../data/multiSet.9.errors.txt | 1 + .../qdeclarativelanguage/data/multiSet.9.qml | 6 + .../data/nestedComponentRoots.qml | 4 + .../data/nestedErrors.errors.txt | 2 + .../qdeclarativelanguage/data/nestedErrors.qml | 6 + .../data/noCreation.errors.txt | 1 + .../qdeclarativelanguage/data/noCreation.qml | 4 + .../data/nonScriptableProperty.errors.txt | 1 + .../data/nonScriptableProperty.qml | 5 + .../data/nonexistantProperty.1.errors.txt | 1 + .../data/nonexistantProperty.1.qml | 2 + .../data/nonexistantProperty.2.errors.txt | 1 + .../data/nonexistantProperty.2.qml | 4 + .../data/nonexistantProperty.3.errors.txt | 1 + .../data/nonexistantProperty.3.qml | 4 + .../data/nonexistantProperty.4.errors.txt | 1 + .../data/nonexistantProperty.4.qml | 4 + .../data/nonexistantProperty.5.errors.txt | 1 + .../data/nonexistantProperty.5.qml | 4 + .../data/nonexistantProperty.6.errors.txt | 1 + .../data/nonexistantProperty.6.qml | 4 + .../data/notAvailable.errors.txt | 1 + .../qdeclarativelanguage/data/notAvailable.qml | 4 + .../data/nullDotProperty.errors.txt | 1 + .../qdeclarativelanguage/data/nullDotProperty.qml | 4 + .../data/objectValueTypeProperty.errors.txt | 1 + .../data/objectValueTypeProperty.qml | 6 + .../qdeclarativelanguage/data/onCompleted.qml | 17 + .../qdeclarativelanguage/data/onDestruction.qml | 17 + .../data/property.1.errors.txt | 1 + .../qdeclarativelanguage/data/property.1.qml | 5 + .../data/property.2.errors.txt | 1 + .../qdeclarativelanguage/data/property.2.qml | 6 + .../data/property.3.errors.txt | 1 + .../qdeclarativelanguage/data/property.3.qml | 7 + .../data/property.4.errors.txt | 1 + .../qdeclarativelanguage/data/property.4.qml | 5 + .../data/property.5.errors.txt | 1 + .../qdeclarativelanguage/data/property.5.qml | 6 + .../data/property.6.errors.txt | 1 + .../qdeclarativelanguage/data/property.6.qml | 6 + .../data/property.7.errors.txt | 1 + .../qdeclarativelanguage/data/property.7.qml | 5 + .../data/propertyValueSource.2.qml | 5 + .../data/propertyValueSource.qml | 4 + .../data/qmlAttachedPropertiesObjectMethod.1.qml | 5 + .../data/qmlAttachedPropertiesObjectMethod.2.qml | 6 + .../data/readOnly.1.errors.txt | 1 + .../qdeclarativelanguage/data/readOnly.1.qml | 4 + .../data/readOnly.2.errors.txt | 1 + .../qdeclarativelanguage/data/readOnly.2.qml | 4 + .../data/readOnly.3.errors.txt | 1 + .../qdeclarativelanguage/data/readOnly.3.qml | 8 + .../data/readOnly.4.errors.txt | 1 + .../qdeclarativelanguage/data/readOnly.4.qml | 4 + .../data/readOnly.5.errors.txt | 1 + .../qdeclarativelanguage/data/readOnly.5.qml | 4 + .../qdeclarativelanguage/data/revisions11.qml | 10 + .../data/revisionsbasesub11.qml | 16 + .../qdeclarativelanguage/data/revisionssub11.qml | 12 + .../data/rootAsQmlComponent.qml | 6 + .../data/scriptString.1.errors.txt | 1 + .../qdeclarativelanguage/data/scriptString.1.qml | 5 + .../data/scriptString.2.errors.txt | 1 + .../qdeclarativelanguage/data/scriptString.2.qml | 6 + .../qdeclarativelanguage/data/scriptString.qml | 6 + .../qdeclarativelanguage/data/scriptString2.qml | 5 + .../qdeclarativelanguage/data/scriptString3.qml | 5 + .../qdeclarativelanguage/data/scriptString4.qml | 5 + .../qdeclarativelanguage/data/signal.1.errors.txt | 1 + .../qdeclarativelanguage/data/signal.1.qml | 5 + .../qdeclarativelanguage/data/signal.2.errors.txt | 1 + .../qdeclarativelanguage/data/signal.2.qml | 6 + .../qdeclarativelanguage/data/signal.3.errors.txt | 1 + .../qdeclarativelanguage/data/signal.3.qml | 6 + .../qdeclarativelanguage/data/signal.4.errors.txt | 1 + .../qdeclarativelanguage/data/signal.4.qml | 6 + .../qdeclarativelanguage/data/simpleBindings.qml | 18 + .../qdeclarativelanguage/data/simpleContainer.qml | 5 + .../qdeclarativelanguage/data/simpleObject.qml | 2 + .../data/singularProperty.2.errors.txt | 1 + .../data/singularProperty.2.qml | 7 + .../data/singularProperty.errors.txt | 1 + .../qdeclarativelanguage/data/singularProperty.qml | 6 + .../qdeclarativelanguage/data/subdir/Test.qml | 2 + .../data/subdir/subsubdir/SubTest.qml | 2 + .../declarative/qdeclarativelanguage/data/test.js | 0 .../declarative/qdeclarativelanguage/data/test2.js | 0 .../data/unregisteredObject.errors.txt | 1 + .../data/unregisteredObject.qml | 2 + .../data/unsupportedProperty.errors.txt | 1 + .../data/unsupportedProperty.qml | 4 + .../qdeclarativelanguage/data/valueTypes.qml | 13 + .../qdeclarativelanguage/data/variantNotify.qml | 13 + .../qdeclarativelanguage/data/versionedbase.qml | 8 + .../data/wrongType.1.errors.txt | 1 + .../qdeclarativelanguage/data/wrongType.1.qml | 4 + .../data/wrongType.10.errors.txt | 1 + .../qdeclarativelanguage/data/wrongType.10.qml | 5 + .../data/wrongType.11.errors.txt | 1 + .../qdeclarativelanguage/data/wrongType.11.qml | 5 + .../data/wrongType.12.errors.txt | 1 + .../qdeclarativelanguage/data/wrongType.12.qml | 5 + .../data/wrongType.13.errors.txt | 1 + .../qdeclarativelanguage/data/wrongType.13.qml | 4 + .../data/wrongType.14.errors.txt | 1 + .../qdeclarativelanguage/data/wrongType.14.qml | 5 + .../data/wrongType.15.errors.txt | 1 + .../qdeclarativelanguage/data/wrongType.15.qml | 4 + .../data/wrongType.16.errors.txt | 1 + .../qdeclarativelanguage/data/wrongType.16.qml | 5 + .../data/wrongType.2.errors.txt | 1 + .../qdeclarativelanguage/data/wrongType.2.qml | 4 + .../data/wrongType.3.errors.txt | 1 + .../qdeclarativelanguage/data/wrongType.3.qml | 4 + .../data/wrongType.4.errors.txt | 1 + .../qdeclarativelanguage/data/wrongType.4.qml | 4 + .../data/wrongType.5.errors.txt | 1 + .../qdeclarativelanguage/data/wrongType.5.qml | 5 + .../data/wrongType.6.errors.txt | 1 + .../qdeclarativelanguage/data/wrongType.6.qml | 5 + .../data/wrongType.7.errors.txt | 1 + .../qdeclarativelanguage/data/wrongType.7.qml | 5 + .../data/wrongType.8.errors.txt | 1 + .../qdeclarativelanguage/data/wrongType.8.qml | 5 + .../data/wrongType.9.errors.txt | 1 + .../qdeclarativelanguage/data/wrongType.9.qml | 5 + .../qdeclarativelanguage/qdeclarativelanguage.pro | 22 + .../declarative/qmllanguage/LocalInternal.qml | 3 + .../qtest/declarative/qmllanguage/Test.qml | 2 + .../qtest/declarative/qmllanguage/TestLocal.qml | 1 + .../qtest/declarative/qmllanguage/TestNamed.qml | 1 + .../qtest/declarative/qmllanguage/TestSubDir.qml | 2 + .../declarative/qmllanguage/UndeclaredLocal.qml | 3 + .../declarative/qmllanguage/WrongTestLocal.qml | 1 + .../declarative/qmllanguage/noqmldir/Test.qml | 2 + .../qtest/declarative/qmllanguage/pics/blue.png | Bin 0 -> 84 bytes .../qtest/declarative/qmllanguage/qmldir | 5 + .../declarative/qmllanguage/subdir/SubTest.qml | 3 + .../qtest/declarative/qmllanguage/subdir/qmldir | 1 + .../declarative/qdeclarativelanguage/testtypes.cpp | 81 + .../declarative/qdeclarativelanguage/testtypes.h | 807 + .../tst_qdeclarativelanguage.cpp | 2028 +++ .../qdeclarativelayoutitem/data/layoutItem.qml | 9 + .../qdeclarativelayoutitem.pro | 13 + .../tst_qdeclarativelayoutitem.cpp | 125 + .../qdeclarativelistmodel/data/enumerate.qml | 24 + .../qdeclarativelistmodel/data/model.qml | 22 + .../qdeclarativelistmodel/data/multipleroles.qml | 25 + .../qdeclarativelistmodel/data/script.js | 13 + .../data/setmodelcachelist.qml | 20 + .../qdeclarativelistmodel.pro | 17 + .../tst_qdeclarativelistmodel.cpp | 1141 ++ .../qdeclarativelistreference/data/MyType.qml | 5 + .../qdeclarativelistreference/data/engineTypes.qml | 9 + .../data/variantToList.qml | 10 + .../qdeclarativelistreference.pro | 8 + .../tst_qdeclarativelistreference.cpp | 579 + .../qdeclarativelistview/data/attachedSignals.qml | 24 + .../qdeclarativelistview/data/displaylist.qml | 50 + .../qdeclarativelistview/data/footer.qml | 38 + .../qdeclarativelistview/data/header.qml | 38 + .../qdeclarativelistview/data/header1.qml | 33 + .../qdeclarativelistview/data/headerfooter.qml | 26 + .../qdeclarativelistview/data/itemlist.qml | 43 + .../data/listview-enforcerange.qml | 55 + .../data/listview-initCurrent.qml | 51 + .../data/listview-noCurrent.qml | 50 + .../data/listview-sections.qml | 64 + .../data/listview-sections_delegate.qml | 69 + .../qdeclarativelistview/data/listviewtest.qml | 133 + .../qdeclarativelistview/data/manual-highlight.qml | 47 + .../qdeclarativelistview/data/orientchange.qml | 7 + .../data/propertychangestest.qml | 71 + .../qdeclarativelistview/data/qtbug14821.qml | 31 + .../qdeclarativelistview/data/qtbug16037.qml | 37 + .../qdeclarativelistview/data/rightToLeft.qml | 42 + .../qdeclarativelistview/data/sizelessthan1.qml | 26 + .../data/strictlyenforcerange.qml | 29 + .../qdeclarativelistview/incrementalmodel.cpp | 89 + .../qdeclarativelistview/incrementalmodel.h | 68 + .../qdeclarativelistview/qdeclarativelistview.pro | 16 + .../tst_qdeclarativelistview.cpp | 2837 +++ .../qdeclarativeloader/data/AnchoredLoader.qml | 14 + .../qdeclarativeloader/data/BlueRect.qml | 8 + .../data/CreationContextLoader.qml | 15 + .../data/GraphicsWidget250x250.qml | 5 + .../qdeclarativeloader/data/GreenRect.qml | 7 + .../qdeclarativeloader/data/NoResize.qml | 8 + .../data/NoResizeGraphicsWidget.qml | 9 + .../qdeclarativeloader/data/QTBUG_16928.qml | 23 + .../qdeclarativeloader/data/QTBUG_17114.qml | 18 + .../qdeclarativeloader/data/Rect120x60.qml | 6 + .../qdeclarativeloader/data/SetSourceComponent.qml | 9 + .../data/SizeGraphicsWidgetToLoader.qml | 7 + .../data/SizeLoaderToGraphicsWidget.qml | 5 + .../qdeclarativeloader/data/SizeToItem.qml | 5 + .../qdeclarativeloader/data/SizeToLoader.qml | 6 + .../qdeclarativeloader/data/VmeError.qml | 7 + .../declarative/qdeclarativeloader/data/crash.qml | 14 + .../qdeclarativeloader/data/creationContext.qml | 8 + .../qdeclarativeloader/data/differentorigin.qml | 3 + .../qdeclarativeloader/data/implicitSize.qml | 28 + .../qdeclarativeloader/data/nonItem.qml | 5 + .../declarative/qdeclarativeloader/data/qmldir | 1 + .../qdeclarativeloader/data/sameorigin-load.qml | 3 + .../qdeclarativeloader/data/sameorigin.qml | 3 + .../qdeclarativeloader/data/vmeErrors.qml | 6 + .../qdeclarativeloader/qdeclarativeloader.pro | 19 + .../qdeclarativeloader/tst_qdeclarativeloader.cpp | 637 + .../qdeclarativemetatype/qdeclarativemetatype.pro | 11 + .../tst_qdeclarativemetatype.cpp | 387 + .../data/importsMixedQmlCppPlugin.2.qml | 21 + .../data/importsMixedQmlCppPlugin.qml | 13 + .../data/incorrectCase.qml | 4 + .../data/pluginWithQmlFile.qml | 3 + .../data/versionNotInstalled.2.errors.txt | 1 + .../data/versionNotInstalled.2.qml | 5 + .../data/versionNotInstalled.errors.txt | 1 + .../data/versionNotInstalled.qml | 6 + .../qdeclarativemoduleplugin/data/works.qml | 3 + .../qdeclarativemoduleplugin/data/works2.qml | 3 + .../qdeclarativemoduleplugin/data/works21.qml | 3 + .../nokia/AutoTestPluginWithQmlFile/MyQmlFile.qml | 3 + .../com/nokia/AutoTestPluginWithQmlFile/qmldir | 3 + .../com/nokia/AutoTestQmlMixedPluginType/Foo.qml | 5 + .../com/nokia/AutoTestQmlMixedPluginType/qmldir | 2 + .../com/nokia/AutoTestQmlPluginType.2.1/qmldir | 1 + .../com/nokia/AutoTestQmlPluginType.2/qmldir | 1 + .../imports/com/nokia/AutoTestQmlPluginType/qmldir | 1 + .../com/nokia/AutoTestQmlVersionPluginType/qmldir | 1 + .../imports/com/nokia/PureQmlModule/ComponentA.qml | 3 + .../imports/com/nokia/PureQmlModule/ComponentB.qml | 4 + .../imports/com/nokia/PureQmlModule/qmldir | 3 + .../imports/com/nokia/WrongCase/qmldir | 1 + .../plugin.2.1/plugin.2.1.pro | 9 + .../qdeclarativemoduleplugin/plugin.2.1/plugin.cpp | 84 + .../qdeclarativemoduleplugin/plugin.2/plugin.2.pro | 9 + .../qdeclarativemoduleplugin/plugin.2/plugin.cpp | 84 + .../qdeclarativemoduleplugin/plugin/plugin.cpp | 83 + .../qdeclarativemoduleplugin/plugin/plugin.pro | 9 + .../pluginMixed/plugin.cpp | 73 + .../pluginMixed/pluginMixed.pro | 9 + .../pluginVersion/plugin.cpp | 73 + .../pluginVersion/pluginVersion.pro | 9 + .../pluginWithQmlFile/plugin.cpp | 58 + .../pluginWithQmlFile/pluginWithQmlFile.pro | 9 + .../pluginWrongCase/plugin.cpp | 83 + .../pluginWrongCase/pluginWrongCase.pro | 10 + .../qdeclarativemoduleplugin.pro | 8 + .../tst_qdeclarativemoduleplugin.cpp | 338 + .../tst_qdeclarativemoduleplugin.pro | 15 + .../qdeclarativemousearea/data/clickandhold.qml | 13 + .../qdeclarativemousearea/data/clicktwice.qml | 16 + .../qdeclarativemousearea/data/doubleclick.qml | 16 + .../qdeclarativemousearea/data/dragging.qml | 28 + .../qdeclarativemousearea/data/dragproperties.qml | 28 + .../qdeclarativemousearea/data/dragreset.qml | 28 + .../qdeclarativemousearea/data/pressedOrdering.qml | 28 + .../data/preventContextMenu.qml | 22 + .../qdeclarativemousearea/data/preventstealing.qml | 24 + .../qdeclarativemousearea/data/rejectEvent.qml | 28 + .../data/updateMousePosOnClick.qml | 20 + .../data/updateMousePosOnResize.qml | 38 + .../qdeclarativemousearea.pro | 17 + .../tst_qdeclarativemousearea.cpp | 705 + .../qdeclarativeparticles/data/particle.png | Bin 0 -> 262 bytes .../data/particlemotiontest.qml | 35 + .../qdeclarativeparticles/data/particlestest.qml | 17 + .../qdeclarativeparticles.pro | 16 + .../tst_qdeclarativeparticles.cpp | 219 + .../qdeclarativepathview/data/closedPath.qml | 24 + .../qdeclarativepathview/data/datamodel.qml | 38 + .../qdeclarativepathview/data/displaypath.qml | 59 + .../qdeclarativepathview/data/dragpath.qml | 19 + .../qdeclarativepathview/data/emptymodel.qml | 5 + .../qdeclarativepathview/data/openPath.qml | 10 + .../qdeclarativepathview/data/pathUpdate.qml | 18 + .../data/pathUpdateOnStartChanged.qml | 38 + .../qdeclarativepathview/data/pathtest.qml | 14 + .../qdeclarativepathview/data/pathview0.qml | 84 + .../qdeclarativepathview/data/pathview1.qml | 4 + .../qdeclarativepathview/data/pathview2.qml | 57 + .../qdeclarativepathview/data/pathview3.qml | 59 + .../qdeclarativepathview/data/pathview_package.qml | 88 + .../qdeclarativepathview/data/propertychanges.qml | 116 + .../qdeclarativepathview/data/treemodel.qml | 19 + .../qdeclarativepathview/data/undefinedpath.qml | 17 + .../declarative/qdeclarativepathview/data/vdm.qml | 28 + .../qdeclarativepathview/qdeclarativepathview.pro | 16 + .../tst_qdeclarativepathview.cpp | 1065 ++ .../qdeclarativepincharea/data/flickresize.qml | 50 + .../qdeclarativepincharea/data/pinchproperties.qml | 46 + .../qdeclarativepincharea.pro | 16 + .../tst_qdeclarativepincharea.cpp | 388 + .../qdeclarativepixmapcache/data/exists.png | Bin 0 -> 2738 bytes .../qdeclarativepixmapcache/data/exists1.png | Bin 0 -> 2738 bytes .../qdeclarativepixmapcache/data/exists2.png | Bin 0 -> 2738 bytes .../qdeclarativepixmapcache/data/http/exists.png | Bin 0 -> 2738 bytes .../qdeclarativepixmapcache/data/http/exists1.png | Bin 0 -> 2738 bytes .../qdeclarativepixmapcache/data/http/exists2.png | Bin 0 -> 2738 bytes .../qdeclarativepixmapcache/data/http/exists3.png | Bin 0 -> 2738 bytes .../qdeclarativepixmapcache/data/http/exists4.png | Bin 0 -> 2738 bytes .../qdeclarativepixmapcache/data/http/exists5.png | Bin 0 -> 2738 bytes .../qdeclarativepixmapcache/data/massive.png | Bin 0 -> 31834 bytes .../qdeclarativepixmapcache.pro | 24 + .../tst_qdeclarativepixmapcache.cpp | 396 + .../data/flow-testimplicitsize.qml | 19 + .../data/flowtest-toptobottom.qml | 44 + .../qdeclarativepositioners/data/flowtest.qml | 43 + .../qdeclarativepositioners/data/grid-animated.qml | 64 + .../qdeclarativepositioners/data/grid-spacing.qml | 41 + .../data/grid-toptobottom.qml | 41 + .../qdeclarativepositioners/data/gridtest.qml | 42 + .../data/gridzerocolumns.qml | 40 + .../data/horizontal-animated.qml | 44 + .../data/horizontal-spacing.qml | 31 + .../qdeclarativepositioners/data/horizontal.qml | 29 + .../data/propertychangestest.qml | 39 + .../qdeclarativepositioners/data/repeatertest.qml | 38 + .../data/vertical-animated.qml | 41 + .../data/vertical-spacing.qml | 28 + .../qdeclarativepositioners/data/vertical.qml | 27 + .../data/verticalqgraphicswidget.qml | 24 + .../qdeclarativepositioners.pro | 15 + .../tst_qdeclarativepositioners.cpp | 1342 ++ .../qdeclarativeproperty/data/TestType.qml | 6 + .../data/aliasPropertyBindings.qml | 19 + .../data/readSynthesizedObject.qml | 9 + .../qdeclarativeproperty/qdeclarativeproperty.pro | 16 + .../tst_qdeclarativeproperty.cpp | 1494 ++ .../qdeclarativepropertymap.pro | 8 + .../tst_qdeclarativepropertymap.cpp | 223 + .../auto/declarative/qdeclarativeqt/data/atob.qml | 7 + .../auto/declarative/qdeclarativeqt/data/btoa.qml | 6 + .../declarative/qdeclarativeqt/data/consoleLog.qml | 8 + .../qdeclarativeqt/data/createComponent.qml | 20 + .../qdeclarativeqt/data/createComponentData.qml | 5 + .../qdeclarativeqt/data/createComponent_lib.js | 11 + .../qdeclarativeqt/data/createComponent_lib.qml | 12 + .../qdeclarativeqt/data/createQmlObject.qml | 31 + .../declarative/qdeclarativeqt/data/darker.qml | 12 + .../auto/declarative/qdeclarativeqt/data/enums.qml | 9 + .../qdeclarativeqt/data/fontFamilies.qml | 6 + .../declarative/qdeclarativeqt/data/formatting.qml | 44 + .../auto/declarative/qdeclarativeqt/data/hsla.qml | 11 + .../declarative/qdeclarativeqt/data/isQtObject.qml | 14 + .../declarative/qdeclarativeqt/data/lighter.qml | 11 + tests/auto/declarative/qdeclarativeqt/data/md5.qml | 6 + .../qdeclarativeqt/data/openUrlExternally.qml | 8 + .../qdeclarativeqt/data/openUrlExternally_lib.js | 9 + .../qdeclarativeqt/data/openUrlExternally_lib.qml | 9 + .../auto/declarative/qdeclarativeqt/data/point.qml | 9 + .../auto/declarative/qdeclarativeqt/data/quit.qml | 5 + .../auto/declarative/qdeclarativeqt/data/rect.qml | 9 + .../auto/declarative/qdeclarativeqt/data/rgba.qml | 10 + .../auto/declarative/qdeclarativeqt/data/size.qml | 11 + .../auto/declarative/qdeclarativeqt/data/tint.qml | 9 + .../declarative/qdeclarativeqt/data/vector.qml | 8 + .../declarative/qdeclarativeqt/qdeclarativeqt.pro | 18 + .../qdeclarativeqt/tst_qdeclarativeqt.cpp | 608 + .../qdeclarativerepeater/data/intmodel.qml | 29 + .../qdeclarativerepeater/data/itemlist.qml | 68 + .../qdeclarativerepeater/data/modelChanged.qml | 26 + .../qdeclarativerepeater/data/objlist.qml | 21 + .../qdeclarativerepeater/data/properties.qml | 11 + .../qdeclarativerepeater/data/repeater1.qml | 28 + .../qdeclarativerepeater/data/repeater2.qml | 36 + .../qdeclarativerepeater/qdeclarativerepeater.pro | 15 + .../tst_qdeclarativerepeater.cpp | 736 + .../data/smoothedanimation1.qml | 3 + .../data/smoothedanimation2.qml | 5 + .../data/smoothedanimation3.qml | 6 + .../data/smoothedanimationBehavior.qml | 24 + .../data/smoothedanimationValueSource.qml | 13 + .../qdeclarativesmoothedanimation.pro | 16 + .../tst_qdeclarativesmoothedanimation.cpp | 212 + .../data/springanimation1.qml | 4 + .../data/springanimation2.qml | 9 + .../data/springanimation3.qml | 8 + .../qdeclarativespringanimation.pro | 16 + .../tst_qdeclarativespringanimation.cpp | 136 + .../qdeclarativestates/data/ExtendedRectangle.qml | 19 + .../data/Implementation/MyType.qml | 32 + .../data/Implementation/images/qt-logo.png | Bin 0 -> 5149 bytes .../qdeclarativestates/data/QTBUG-14830.qml | 29 + .../qdeclarativestates/data/anchorChanges1.qml | 23 + .../qdeclarativestates/data/anchorChanges2.qml | 21 + .../qdeclarativestates/data/anchorChanges3.qml | 29 + .../qdeclarativestates/data/anchorChanges4.qml | 22 + .../qdeclarativestates/data/anchorChanges5.qml | 22 + .../qdeclarativestates/data/anchorChangesCrash.qml | 14 + .../qdeclarativestates/data/anchorRewindBug.qml | 37 + .../qdeclarativestates/data/anchorRewindBug2.qml | 25 + .../data/attachedPropertyChanges.qml | 20 + .../data/autoStateAtStartupRestoreBug.qml | 18 + .../qdeclarativestates/data/basicBinding.qml | 12 + .../qdeclarativestates/data/basicBinding2.qml | 12 + .../qdeclarativestates/data/basicBinding3.qml | 13 + .../qdeclarativestates/data/basicBinding4.qml | 17 + .../qdeclarativestates/data/basicChanges.qml | 10 + .../qdeclarativestates/data/basicChanges2.qml | 15 + .../qdeclarativestates/data/basicChanges3.qml | 15 + .../qdeclarativestates/data/basicChanges4.qml | 19 + .../qdeclarativestates/data/basicExtension.qml | 16 + .../qdeclarativestates/data/deleting.qml | 11 + .../qdeclarativestates/data/deletingState.qml | 13 + .../qdeclarativestates/data/editProperties.qml | 34 + .../qdeclarativestates/data/explicit.qml | 15 + .../qdeclarativestates/data/extendsBug.qml | 26 + .../qdeclarativestates/data/fakeExtension.qml | 16 + .../qdeclarativestates/data/illegalObj.qml | 12 + .../qdeclarativestates/data/illegalTempState.qml | 21 + .../declarative/qdeclarativestates/data/image.png | Bin 0 -> 173 bytes .../qdeclarativestates/data/legalTempState.qml | 23 + .../qdeclarativestates/data/nonExistantProp.qml | 11 + .../qdeclarativestates/data/parentChange1.qml | 37 + .../qdeclarativestates/data/parentChange2.qml | 31 + .../qdeclarativestates/data/parentChange3.qml | 42 + .../qdeclarativestates/data/parentChange4.qml | 30 + .../qdeclarativestates/data/parentChange5.qml | 30 + .../qdeclarativestates/data/parentChange6.qml | 30 + .../qdeclarativestates/data/propertyErrors.qml | 10 + .../declarative/qdeclarativestates/data/reset.qml | 19 + .../qdeclarativestates/data/restoreEntryValues.qml | 14 + .../qdeclarativestates/data/returnToBase.qml | 21 + .../declarative/qdeclarativestates/data/script.qml | 10 + .../qdeclarativestates/data/signalOverride.qml | 18 + .../qdeclarativestates/data/signalOverride2.qml | 9 + .../data/signalOverrideCrash.qml | 15 + .../data/signalOverrideCrash2.qml | 24 + .../data/signalOverrideCrash3.qml | 27 + .../qdeclarativestates/data/unnamedWhen.qml | 14 + .../qdeclarativestates/data/urlResolution.qml | 12 + .../qdeclarativestates/data/whenOrdering.qml | 11 + .../qdeclarativestates/qdeclarativestates.pro | 15 + .../qdeclarativestates/tst_qdeclarativestates.cpp | 1531 ++ .../qdeclarativestyledtext.pro | 11 + .../tst_qdeclarativestyledtext.cpp | 101 + .../qdeclarativesystempalette.pro | 12 + .../tst_qdeclarativesystempalette.cpp | 192 + .../qdeclarativetext/data/alignments.qml | 41 + .../qdeclarativetext/data/alignments_cb.png | Bin 0 -> 496 bytes .../qdeclarativetext/data/alignments_cc.png | Bin 0 -> 556 bytes .../qdeclarativetext/data/alignments_ct.png | Bin 0 -> 533 bytes .../qdeclarativetext/data/alignments_lb.png | Bin 0 -> 496 bytes .../qdeclarativetext/data/alignments_lc.png | Bin 0 -> 535 bytes .../qdeclarativetext/data/alignments_lt.png | Bin 0 -> 514 bytes .../qdeclarativetext/data/alignments_rb.png | Bin 0 -> 505 bytes .../qdeclarativetext/data/alignments_rc.png | Bin 0 -> 559 bytes .../qdeclarativetext/data/alignments_rt.png | Bin 0 -> 539 bytes .../qdeclarativetext/data/elideimplicitwidth.qml | 7 + .../qdeclarativetext/data/embeddedImagesLocal.qml | 5 + .../data/embeddedImagesLocalError.qml | 5 + .../qdeclarativetext/data/embeddedImagesRemote.qml | 5 + .../data/embeddedImagesRemoteError.qml | 5 + .../data/horizontalAlignment_RightToLeft.qml | 23 + .../qdeclarativetext/data/http/exists.png | Bin 0 -> 2738 bytes .../qdeclarativetext/data/lineCount.qml | 15 + .../qdeclarativetext/data/lineHeight.qml | 15 + .../qdeclarativetext/data/qtbug_14734.qml | 10 + .../declarative/qdeclarativetext/data/rotated.qml | 18 + .../qdeclarativetext/qdeclarativetext.pro | 21 + .../qdeclarativetext/tst_qdeclarativetext.cpp | 1340 ++ .../qdeclarativetextedit/data/CursorRect.qml | 8 + .../qdeclarativetextedit/data/alignments.qml | 41 + .../qdeclarativetextedit/data/alignments_cb.png | Bin 0 -> 496 bytes .../qdeclarativetextedit/data/alignments_cc.png | Bin 0 -> 556 bytes .../qdeclarativetextedit/data/alignments_ct.png | Bin 0 -> 533 bytes .../qdeclarativetextedit/data/alignments_lb.png | Bin 0 -> 496 bytes .../qdeclarativetextedit/data/alignments_lc.png | Bin 0 -> 535 bytes .../qdeclarativetextedit/data/alignments_lt.png | Bin 0 -> 514 bytes .../qdeclarativetextedit/data/alignments_rb.png | Bin 0 -> 505 bytes .../qdeclarativetextedit/data/alignments_rc.png | Bin 0 -> 559 bytes .../qdeclarativetextedit/data/alignments_rt.png | Bin 0 -> 539 bytes .../qdeclarativetextedit/data/cursorTest.qml | 9 + .../qdeclarativetextedit/data/geometrySignals.qml | 12 + .../data/horizontalAlignment_RightToLeft.qml | 24 + .../qdeclarativetextedit/data/http/ErrItem.qml | 7 + .../qdeclarativetextedit/data/http/NormItem.qml | 6 + .../data/http/cursorHttpTest.qml | 22 + .../data/http/cursorHttpTestFail1.qml | 18 + .../data/http/cursorHttpTestFail2.qml | 18 + .../data/http/cursorHttpTestPass.qml | 18 + .../qdeclarativetextedit/data/http/qmldir | 4 + .../data/httpfail/FailItem.qml | 5 + .../data/httpslow/WaitItem.qml | 5 + .../qdeclarativetextedit/data/inputmethodhints.qml | 6 + .../data/mouseselection_default.qml | 7 + .../data/mouseselection_false.qml | 7 + .../data/mouseselection_false_readonly.qml | 8 + .../data/mouseselection_false_words.qml | 8 + .../data/mouseselection_multiline.qml | 8 + .../data/mouseselection_true.qml | 7 + .../data/mouseselection_true_readonly.qml | 8 + .../data/mouseselection_true_words.qml | 8 + .../data/mouseselectionmode_characters.qml | 8 + .../data/mouseselectionmode_default.qml | 7 + .../data/mouseselectionmode_words.qml | 8 + .../qdeclarativetextedit/data/navigation.qml | 24 + .../qdeclarativetextedit/data/positionAt.qml | 9 + .../qdeclarativetextedit/data/readOnly.qml | 12 + .../qdeclarativetextedit/qdeclarativetextedit.pro | 14 + .../tst_qdeclarativetextedit.cpp | 2819 +++ .../qdeclarativetextinput/data/cursorTest.qml | 8 + .../qdeclarativetextinput/data/echoMode.qml | 11 + .../qdeclarativetextinput/data/geometrySignals.qml | 12 + .../qdeclarativetextinput/data/halign_center.png | Bin 0 -> 293 bytes .../qdeclarativetextinput/data/halign_left.png | Bin 0 -> 291 bytes .../qdeclarativetextinput/data/halign_right.png | Bin 0 -> 292 bytes .../data/horizontalAlignment.qml | 22 + .../data/horizontalAlignment_RightToLeft.qml | 24 + .../qdeclarativetextinput/data/inputmethods.qml | 7 + .../qdeclarativetextinput/data/masks.qml | 7 + .../qdeclarativetextinput/data/maxLength.qml | 7 + .../data/mouseselection_default.qml | 7 + .../data/mouseselection_false.qml | 7 + .../data/mouseselection_false_readonly.qml | 8 + .../data/mouseselection_false_words.qml | 7 + .../data/mouseselection_true.qml | 7 + .../data/mouseselection_true_readonly.qml | 8 + .../data/mouseselection_true_words.qml | 7 + .../data/mouseselectionmode_characters.qml | 8 + .../data/mouseselectionmode_default.qml | 7 + .../data/mouseselectionmode_words.qml | 8 + .../qdeclarativetextinput/data/navigation.qml | 24 + .../qdeclarativetextinput/data/positionAt.qml | 8 + .../qdeclarativetextinput/data/readOnly.qml | 12 + .../qdeclarativetextinput/data/validators.qml | 22 + .../qdeclarativetextinput.pro | 14 + .../tst_qdeclarativetextinput.cpp | 2935 +++ .../qdeclarativetimer/qdeclarativetimer.pro | 13 + .../qdeclarativetimer/tst_qdeclarativetimer.cpp | 344 + .../data/BindingsSpliceCorrectlyType.qml | 7 + .../data/BindingsSpliceCorrectlyType4.qml | 7 + .../data/BindingsSpliceCorrectlyType5.qml | 7 + .../data/autoBindingRemoval.2.qml | 9 + .../data/autoBindingRemoval.3.qml | 10 + .../data/autoBindingRemoval.qml | 9 + .../data/bindingAssignment.qml | 7 + .../data/bindingConflict.qml | 8 + .../qdeclarativevaluetypes/data/bindingRead.qml | 5 + .../data/bindingVariantCopy.qml | 13 + .../data/bindingsSpliceCorrectly.1.qml | 29 + .../data/bindingsSpliceCorrectly.2.qml | 31 + .../data/bindingsSpliceCorrectly.3.qml | 36 + .../data/bindingsSpliceCorrectly.4.qml | 27 + .../data/bindingsSpliceCorrectly.5.qml | 27 + .../qdeclarativevaluetypes/data/conflicting.1.qml | 42 + .../qdeclarativevaluetypes/data/conflicting.2.qml | 42 + .../qdeclarativevaluetypes/data/conflicting.3.qml | 42 + .../qdeclarativevaluetypes/data/deletedObject.js | 13 + .../qdeclarativevaluetypes/data/deletedObject.qml | 11 + .../qdeclarativevaluetypes/data/enums.1.qml | 6 + .../qdeclarativevaluetypes/data/enums.2.qml | 6 + .../qdeclarativevaluetypes/data/enums.3.qml | 6 + .../qdeclarativevaluetypes/data/enums.4.qml | 7 + .../qdeclarativevaluetypes/data/enums.5.qml | 10 + .../qdeclarativevaluetypes/data/font_read.qml | 18 + .../qdeclarativevaluetypes/data/font_write.2.qml | 6 + .../qdeclarativevaluetypes/data/font_write.3.qml | 7 + .../qdeclarativevaluetypes/data/font_write.4.qml | 7 + .../qdeclarativevaluetypes/data/font_write.5.qml | 14 + .../qdeclarativevaluetypes/data/font_write.qml | 16 + .../qdeclarativevaluetypes/data/matrix4x4_read.qml | 22 + .../data/matrix4x4_write.qml | 21 + .../qdeclarativevaluetypes/data/point_read.qml | 7 + .../qdeclarativevaluetypes/data/point_write.qml | 6 + .../qdeclarativevaluetypes/data/pointf_read.qml | 8 + .../qdeclarativevaluetypes/data/pointf_write.qml | 6 + .../data/quaternion_read.qml | 10 + .../data/quaternion_write.qml | 9 + .../qdeclarativevaluetypes/data/rect_read.qml | 10 + .../qdeclarativevaluetypes/data/rect_write.qml | 9 + .../qdeclarativevaluetypes/data/rectf_read.qml | 10 + .../qdeclarativevaluetypes/data/rectf_write.qml | 9 + .../qdeclarativevaluetypes/data/returnValues.qml | 17 + .../qdeclarativevaluetypes/data/scriptAccess.qml | 9 + .../data/scriptVariantCopy.qml | 14 + .../qdeclarativevaluetypes/data/size_read.qml | 8 + .../qdeclarativevaluetypes/data/size_write.qml | 7 + .../qdeclarativevaluetypes/data/sizef_read.qml | 9 + .../qdeclarativevaluetypes/data/sizef_write.qml | 6 + .../data/sizereadonly_read.qml | 8 + .../data/sizereadonly_writeerror.qml | 6 + .../data/sizereadonly_writeerror2.qml | 7 + .../data/sizereadonly_writeerror3.qml | 7 + .../data/sizereadonly_writeerror4.qml | 10 + .../data/staticAssignment.qml | 5 + .../data/valueInterceptors.qml | 8 + .../qdeclarativevaluetypes/data/valueSources.qml | 5 + .../qdeclarativevaluetypes/data/varAssignment.qml | 14 + .../qdeclarativevaluetypes/data/variant_read.qml | 9 + .../qdeclarativevaluetypes/data/vector2d_read.qml | 8 + .../qdeclarativevaluetypes/data/vector2d_write.qml | 7 + .../qdeclarativevaluetypes/data/vector3d_read.qml | 9 + .../qdeclarativevaluetypes/data/vector3d_write.qml | 8 + .../qdeclarativevaluetypes/data/vector4d_read.qml | 10 + .../qdeclarativevaluetypes/data/vector4d_write.qml | 9 + .../qdeclarativevaluetypes.pro | 19 + .../qdeclarativevaluetypes/testtypes.cpp | 48 + .../declarative/qdeclarativevaluetypes/testtypes.h | 190 + .../tst_qdeclarativevaluetypes.cpp | 1017 ++ .../declarative/qdeclarativeview/data/error1.qml | 5 + .../data/resizemodedeclarativeitem.qml | 5 + .../data/resizemodegraphicswidget.qml | 5 + .../qdeclarativeview/qdeclarativeview.pro | 13 + .../qdeclarativeview/tst_qdeclarativeview.cpp | 321 + .../qdeclarativeviewer/data/orientation.qml | 19 + .../qdeclarativeviewer/qdeclarativeviewer.pro | 19 + .../qdeclarativeviewer/tst_qdeclarativeviewer.cpp | 373 + .../qdeclarativevisualdatamodel/data/datalist.qml | 19 + .../data/modelproperties.qml | 17 + .../data/modelproperties2.qml | 17 + .../data/objectlist.qml | 19 + .../data/singlerole1.qml | 11 + .../data/singlerole2.qml | 11 + .../data/visualdatamodel.qml | 11 + .../qdeclarativevisualdatamodel.pro | 16 + .../tst_qdeclarativevisualdatamodel.cpp | 606 + .../qdeclarativeworkerscript/data/BaseWorker.qml | 24 + .../qdeclarativeworkerscript/data/Global.js | 1 + .../qdeclarativeworkerscript/data/script.js | 4 + .../data/script_error_onCall.js | 6 + .../data/script_error_onLoad.js | 5 + .../data/script_fixed_return.js | 4 + .../data/script_include.js | 5 + .../qdeclarativeworkerscript/data/script_pragma.js | 6 + .../qdeclarativeworkerscript/data/worker.qml | 5 + .../data/worker_error_onCall.qml | 6 + .../data/worker_error_onLoad.qml | 7 + .../data/worker_include.qml | 5 + .../data/worker_pragma.qml | 6 + .../qdeclarativeworkerscript.pro | 16 + .../tst_qdeclarativeworkerscript.cpp | 292 + .../qdeclarativexmlhttprequest/data/abort.expect | 10 + .../qdeclarativexmlhttprequest/data/abort.qml | 44 + .../qdeclarativexmlhttprequest/data/abort.reply | 3 + .../data/abort_opened.qml | 60 + .../data/abort_unsent.qml | 55 + .../qdeclarativexmlhttprequest/data/attr.qml | 78 + .../qdeclarativexmlhttprequest/data/attr.xml | 1 + .../data/callbackException.qml | 25 + .../qdeclarativexmlhttprequest/data/cdata.qml | 133 + .../qdeclarativexmlhttprequest/data/cdata.xml | 2 + .../data/constructor.qml | 14 + .../data/defaultState.qml | 30 + .../qdeclarativexmlhttprequest/data/document.qml | 56 + .../qdeclarativexmlhttprequest/data/document.xml | 3 + .../data/domExceptionCodes.qml | 60 + .../qdeclarativexmlhttprequest/data/element.qml | 145 + .../qdeclarativexmlhttprequest/data/element.xml | 1 + .../data/getAllResponseHeaders.qml | 66 + .../data/getAllResponseHeaders_args.qml | 23 + .../data/getAllResponseHeaders_sent.qml | 20 + .../data/getAllResponseHeaders_unsent.qml | 16 + .../data/getResponseHeader.expect | 7 + .../data/getResponseHeader.qml | 76 + .../data/getResponseHeader.reply | 8 + .../data/getResponseHeader_args.qml | 23 + .../data/getResponseHeader_sent.qml | 20 + .../data/getResponseHeader_unsent.qml | 16 + .../data/instanceStateValues.qml | 33 + .../data/invalidMethodUsage.qml | 160 + .../qdeclarativexmlhttprequest/data/open.qml | 54 + .../data/open_arg_count.1.qml | 18 + .../data/open_arg_count.2.qml | 18 + .../data/open_invalid_method.qml | 16 + .../data/open_network.expect | 7 + .../data/open_network.reply | 3 + .../data/open_network.wait | 0 .../qdeclarativexmlhttprequest/data/open_sync.qml | 17 + .../qdeclarativexmlhttprequest/data/open_user.qml | 54 + .../data/open_username.qml | 54 + .../data/redirectError.qml | 23 + .../data/redirectRecur.qml | 23 + .../qdeclarativexmlhttprequest/data/redirects.qml | 22 + .../data/redirecttarget.html | 1 + .../data/responseText.qml | 54 + .../data/responseXML_invalid.qml | 24 + .../data/seconddocument.html | 1 + .../data/send_alreadySent.qml | 28 + .../data/send_data.1.expect | 10 + .../data/send_data.1.qml | 22 + .../data/send_data.2.qml | 24 + .../data/send_data.3.qml | 24 + .../data/send_data.4.expect | 10 + .../data/send_data.4.qml | 24 + .../data/send_data.5.qml | 24 + .../data/send_data.6.expect | 10 + .../data/send_data.6.qml | 22 + .../data/send_data.7.qml | 24 + .../data/send_data.reply | 3 + .../data/send_ignoreData.qml | 27 + .../data/send_ignoreData.reply | 3 + .../data/send_ignoreData_GET.expect | 7 + .../data/send_ignoreData_PUT.expect | 7 + .../data/send_unsent.qml | 16 + .../data/setRequestHeader.expect | 9 + .../data/setRequestHeader.qml | 29 + .../data/setRequestHeader.reply | 3 + .../data/setRequestHeader_args.qml | 18 + .../data/setRequestHeader_illegalName.qml | 58 + .../data/setRequestHeader_sent.qml | 32 + .../data/setRequestHeader_unsent.qml | 17 + .../data/staticStateValues.qml | 24 + .../data/status.200.reply | 3 + .../data/status.404.reply | 3 + .../qdeclarativexmlhttprequest/data/status.expect | 7 + .../qdeclarativexmlhttprequest/data/status.qml | 79 + .../qdeclarativexmlhttprequest/data/statusText.qml | 79 + .../data/testdocument.html | 1 + .../qdeclarativexmlhttprequest/data/text.qml | 129 + .../qdeclarativexmlhttprequest/data/text.xml | 1 + .../qdeclarativexmlhttprequest/data/utf16.html | 1 + .../qdeclarativexmlhttprequest/data/utf16.qml | 29 + .../qdeclarativexmlhttprequest/data/utf16.xml | Bin 0 -> 154 bytes .../qdeclarativexmlhttprequest.pro | 21 + .../tst_qdeclarativexmlhttprequest.cpp | 1129 ++ .../qdeclarativexmllistmodel/data/model.qml | 10 + .../qdeclarativexmllistmodel/data/model.xml | 54 + .../qdeclarativexmllistmodel/data/model2.xml | 14 + .../data/propertychanges.qml | 10 + .../qdeclarativexmllistmodel/data/recipes.qml | 10 + .../qdeclarativexmllistmodel/data/recipes.xml | 90 + .../qdeclarativexmllistmodel/data/roleCrash.qml | 7 + .../qdeclarativexmllistmodel/data/roleErrors.qml | 10 + .../qdeclarativexmllistmodel/data/roleKeys.qml | 13 + .../qdeclarativexmllistmodel/data/testtypes.qml | 8 + .../qdeclarativexmllistmodel/data/unique.qml | 8 + .../qdeclarativexmllistmodel.pro | 20 + .../tst_qdeclarativexmllistmodel.cpp | 988 + .../qmetaobjectbuilder/qmetaobjectbuilder.pro | 8 + .../qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp | 1268 ++ tests/auto/declarative/qmlshadersplugin/main.qml | 80 + .../qmlshadersplugin/qmlshadersplugin.pro | 18 + .../qmlshadersplugin/tst_qmlshadersplugin.cpp | 205 + .../auto/declarative/qmlvisual/ListView/basic1.qml | 30 + .../auto/declarative/qmlvisual/ListView/basic2.qml | 34 + .../auto/declarative/qmlvisual/ListView/basic3.qml | 32 + .../auto/declarative/qmlvisual/ListView/basic4.qml | 36 + .../qmlvisual/ListView/data/basic1.0.png | Bin 0 -> 948 bytes .../declarative/qmlvisual/ListView/data/basic1.qml | 11 + .../qmlvisual/ListView/data/basic2.0.png | Bin 0 -> 948 bytes .../declarative/qmlvisual/ListView/data/basic2.qml | 11 + .../qmlvisual/ListView/data/basic3.0.png | Bin 0 -> 948 bytes .../declarative/qmlvisual/ListView/data/basic3.qml | 11 + .../qmlvisual/ListView/data/basic4.0.png | Bin 0 -> 948 bytes .../declarative/qmlvisual/ListView/data/basic4.qml | 11 + .../qmlvisual/ListView/data/enforcerange.0.png | Bin 0 -> 680 bytes .../qmlvisual/ListView/data/enforcerange.1.png | Bin 0 -> 680 bytes .../qmlvisual/ListView/data/enforcerange.2.png | Bin 0 -> 704 bytes .../qmlvisual/ListView/data/enforcerange.3.png | Bin 0 -> 695 bytes .../qmlvisual/ListView/data/enforcerange.4.png | Bin 0 -> 680 bytes .../qmlvisual/ListView/data/enforcerange.5.png | Bin 0 -> 710 bytes .../qmlvisual/ListView/data/enforcerange.6.png | Bin 0 -> 705 bytes .../qmlvisual/ListView/data/enforcerange.qml | 2119 +++ .../qmlvisual/ListView/data/itemlist.0.png | Bin 0 -> 976 bytes .../qmlvisual/ListView/data/itemlist.1.png | Bin 0 -> 976 bytes .../qmlvisual/ListView/data/itemlist.2.png | Bin 0 -> 986 bytes .../qmlvisual/ListView/data/itemlist.3.png | Bin 0 -> 977 bytes .../qmlvisual/ListView/data/itemlist.4.png | Bin 0 -> 977 bytes .../qmlvisual/ListView/data/itemlist.5.png | Bin 0 -> 977 bytes .../qmlvisual/ListView/data/itemlist.6.png | Bin 0 -> 990 bytes .../qmlvisual/ListView/data/itemlist.7.png | Bin 0 -> 976 bytes .../qmlvisual/ListView/data/itemlist.qml | 2203 +++ .../qmlvisual/ListView/data/listview.0.png | Bin 0 -> 1525 bytes .../qmlvisual/ListView/data/listview.1.png | Bin 0 -> 1647 bytes .../qmlvisual/ListView/data/listview.2.png | Bin 0 -> 1584 bytes .../qmlvisual/ListView/data/listview.3.png | Bin 0 -> 1648 bytes .../qmlvisual/ListView/data/listview.4.png | Bin 0 -> 1613 bytes .../qmlvisual/ListView/data/listview.5.png | Bin 0 -> 1663 bytes .../qmlvisual/ListView/data/listview.6.png | Bin 0 -> 1666 bytes .../qmlvisual/ListView/data/listview.7.png | Bin 0 -> 1579 bytes .../qmlvisual/ListView/data/listview.8.png | Bin 0 -> 1579 bytes .../qmlvisual/ListView/data/listview.qml | 2227 +++ .../qmlvisual/ListView/enforcerange.qml | 31 + .../declarative/qmlvisual/ListView/itemlist.qml | 40 + .../declarative/qmlvisual/ListView/listview.qml | 86 + .../Package_Views/data/packageviews.0.png | Bin 0 -> 766 bytes .../Package_Views/data/packageviews.1.png | Bin 0 -> 797 bytes .../Package_Views/data/packageviews.2.png | Bin 0 -> 794 bytes .../Package_Views/data/packageviews.3.png | Bin 0 -> 822 bytes .../Package_Views/data/packageviews.4.png | Bin 0 -> 801 bytes .../Package_Views/data/packageviews.5.png | Bin 0 -> 803 bytes .../Package_Views/data/packageviews.6.png | Bin 0 -> 774 bytes .../qmlvisual/Package_Views/data/packageviews.qml | 1767 ++ .../qmlvisual/Package_Views/packageviews.qml | 82 + tests/auto/declarative/qmlvisual/TEST_GUIDELINES | 7 + .../bindinganimation/bindinganimation.qml | 36 + .../bindinganimation/data/bindinganimation.0.png | Bin 0 -> 832 bytes .../bindinganimation/data/bindinganimation.1.png | Bin 0 -> 830 bytes .../bindinganimation/data/bindinganimation.2.png | Bin 0 -> 829 bytes .../bindinganimation/data/bindinganimation.3.png | Bin 0 -> 830 bytes .../bindinganimation/data/bindinganimation.4.png | Bin 0 -> 830 bytes .../bindinganimation/data/bindinganimation.5.png | Bin 0 -> 832 bytes .../bindinganimation/data/bindinganimation.qml | 1055 ++ .../colorAnimation/colorAnimation-visual.qml | 41 + .../data-X11/colorAnimation-visual.0.png | Bin 0 -> 622 bytes .../data-X11/colorAnimation-visual.1.png | Bin 0 -> 627 bytes .../data-X11/colorAnimation-visual.2.png | Bin 0 -> 626 bytes .../data-X11/colorAnimation-visual.3.png | Bin 0 -> 625 bytes .../data-X11/colorAnimation-visual.qml | 951 + .../data/colorAnimation-visual.0.png | Bin 0 -> 622 bytes .../data/colorAnimation-visual.1.png | Bin 0 -> 627 bytes .../data/colorAnimation-visual.2.png | Bin 0 -> 626 bytes .../data/colorAnimation-visual.3.png | Bin 0 -> 625 bytes .../colorAnimation/data/colorAnimation-visual.qml | 951 + .../qmlvisual/animation/easing/data/easing.0.png | Bin 0 -> 1267 bytes .../qmlvisual/animation/easing/data/easing.1.png | Bin 0 -> 1648 bytes .../qmlvisual/animation/easing/data/easing.2.png | Bin 0 -> 1617 bytes .../qmlvisual/animation/easing/data/easing.3.png | Bin 0 -> 1267 bytes .../qmlvisual/animation/easing/data/easing.qml | 863 + .../qmlvisual/animation/easing/easing.qml | 194 + .../qmlvisual/animation/loop/data/loop.0.png | Bin 0 -> 502 bytes .../qmlvisual/animation/loop/data/loop.1.png | Bin 0 -> 508 bytes .../qmlvisual/animation/loop/data/loop.2.png | Bin 0 -> 507 bytes .../qmlvisual/animation/loop/data/loop.3.png | Bin 0 -> 508 bytes .../qmlvisual/animation/loop/data/loop.4.png | Bin 0 -> 508 bytes .../qmlvisual/animation/loop/data/loop.5.png | Bin 0 -> 507 bytes .../qmlvisual/animation/loop/data/loop.6.png | Bin 0 -> 508 bytes .../qmlvisual/animation/loop/data/loop.qml | 1471 ++ .../declarative/qmlvisual/animation/loop/loop.qml | 24 + .../data/parallelAnimation-visual.0.png | Bin 0 -> 379 bytes .../data/parallelAnimation-visual.qml | 243 + .../parallelAnimation/parallelAnimation-visual.qml | 52 + .../data/parentAnimation-visual.0.png | Bin 0 -> 1635 bytes .../data/parentAnimation-visual.1.png | Bin 0 -> 1619 bytes .../data/parentAnimation-visual.2.png | Bin 0 -> 1586 bytes .../data/parentAnimation-visual.3.png | Bin 0 -> 1635 bytes .../data/parentAnimation-visual.4.png | Bin 0 -> 1653 bytes .../data/parentAnimation-visual.qml | 1223 ++ .../parentAnimation/parentAnimation-visual.qml | 68 + .../parentAnimation2/data/parentAnimation2.0.png | Bin 0 -> 2011 bytes .../parentAnimation2/data/parentAnimation2.1.png | Bin 0 -> 2047 bytes .../parentAnimation2/data/parentAnimation2.2.png | Bin 0 -> 2058 bytes .../parentAnimation2/data/parentAnimation2.3.png | Bin 0 -> 2052 bytes .../parentAnimation2/data/parentAnimation2.qml | 1023 ++ .../parentAnimation2/parentAnimation2.qml | 64 + .../data/pauseAnimation-visual.0.png | Bin 0 -> 3224 bytes .../data/pauseAnimation-visual.1.png | Bin 0 -> 3226 bytes .../data/pauseAnimation-visual.2.png | Bin 0 -> 3229 bytes .../data/pauseAnimation-visual.3.png | Bin 0 -> 3224 bytes .../data/pauseAnimation-visual.4.png | Bin 0 -> 3226 bytes .../data/pauseAnimation-visual.5.png | Bin 0 -> 3229 bytes .../data/pauseAnimation-visual.6.png | Bin 0 -> 3229 bytes .../pauseAnimation/data/pauseAnimation-visual.qml | 1619 ++ .../pauseAnimation/data/pauseAnimation.0.png | Bin 0 -> 3211 bytes .../pauseAnimation/data/pauseAnimation.1.png | Bin 0 -> 3214 bytes .../pauseAnimation/data/pauseAnimation.2.png | Bin 0 -> 3209 bytes .../pauseAnimation/data/pauseAnimation.3.png | Bin 0 -> 3211 bytes .../pauseAnimation/data/pauseAnimation.4.png | Bin 0 -> 3214 bytes .../pauseAnimation/data/pauseAnimation.5.png | Bin 0 -> 3214 bytes .../pauseAnimation/pauseAnimation-visual.qml | 36 + .../animation/pauseAnimation/pics/qtlogo.png | Bin 0 -> 2738 bytes .../data/propertyAction-visual.0.png | Bin 0 -> 336 bytes .../data/propertyAction-visual.1.png | Bin 0 -> 335 bytes .../data/propertyAction-visual.2.png | Bin 0 -> 344 bytes .../data/propertyAction-visual.3.png | Bin 0 -> 336 bytes .../propertyAction/data/propertyAction-visual.qml | 815 + .../propertyAction/propertyAction-visual.qml | 40 + .../animation/qtbug10586/data/qtbug10586.0.png | Bin 0 -> 1131 bytes .../animation/qtbug10586/data/qtbug10586.1.png | Bin 0 -> 1135 bytes .../animation/qtbug10586/data/qtbug10586.2.png | Bin 0 -> 1141 bytes .../animation/qtbug10586/data/qtbug10586.3.png | Bin 0 -> 1147 bytes .../animation/qtbug10586/data/qtbug10586.4.png | Bin 0 -> 1132 bytes .../animation/qtbug10586/data/qtbug10586.qml | 1107 ++ .../qmlvisual/animation/qtbug10586/qtbug10586.qml | 23 + .../animation/qtbug13398/data/qtbug13398.0.png | Bin 0 -> 1281 bytes .../animation/qtbug13398/data/qtbug13398.1.png | Bin 0 -> 1265 bytes .../animation/qtbug13398/data/qtbug13398.qml | 447 + .../qmlvisual/animation/qtbug13398/qtbug13398.qml | 68 + .../animation/reanchor/data/reanchor.0.png | Bin 0 -> 637 bytes .../animation/reanchor/data/reanchor.1.png | Bin 0 -> 637 bytes .../animation/reanchor/data/reanchor.2.png | Bin 0 -> 642 bytes .../animation/reanchor/data/reanchor.3.png | Bin 0 -> 647 bytes .../animation/reanchor/data/reanchor.4.png | Bin 0 -> 637 bytes .../animation/reanchor/data/reanchor.5.png | Bin 0 -> 646 bytes .../animation/reanchor/data/reanchor.6.png | Bin 0 -> 637 bytes .../animation/reanchor/data/reanchor.7.png | Bin 0 -> 637 bytes .../animation/reanchor/data/reanchor.8.png | Bin 0 -> 647 bytes .../animation/reanchor/data/reanchor.9.png | Bin 0 -> 642 bytes .../qmlvisual/animation/reanchor/data/reanchor.qml | 2471 +++ .../qmlvisual/animation/reanchor/reanchor.qml | 69 + .../animation/reanchorRTL/data/reanchor.0.png | Bin 0 -> 637 bytes .../animation/reanchorRTL/data/reanchor.1.png | Bin 0 -> 637 bytes .../animation/reanchorRTL/data/reanchor.10.png | Bin 0 -> 647 bytes .../animation/reanchorRTL/data/reanchor.11.png | Bin 0 -> 637 bytes .../animation/reanchorRTL/data/reanchor.12.png | Bin 0 -> 636 bytes .../animation/reanchorRTL/data/reanchor.2.png | Bin 0 -> 636 bytes .../animation/reanchorRTL/data/reanchor.3.png | Bin 0 -> 647 bytes .../animation/reanchorRTL/data/reanchor.4.png | Bin 0 -> 641 bytes .../animation/reanchorRTL/data/reanchor.5.png | Bin 0 -> 637 bytes .../animation/reanchorRTL/data/reanchor.6.png | Bin 0 -> 637 bytes .../animation/reanchorRTL/data/reanchor.7.png | Bin 0 -> 636 bytes .../animation/reanchorRTL/data/reanchor.8.png | Bin 0 -> 637 bytes .../animation/reanchorRTL/data/reanchor.9.png | Bin 0 -> 637 bytes .../animation/reanchorRTL/data/reanchor.qml | 1499 ++ .../qmlvisual/animation/reanchorRTL/reanchor.qml | 69 + .../scriptAction/data/scriptAction-visual.0.png | Bin 0 -> 334 bytes .../scriptAction/data/scriptAction-visual.1.png | Bin 0 -> 335 bytes .../scriptAction/data/scriptAction-visual.2.png | Bin 0 -> 335 bytes .../scriptAction/data/scriptAction-visual.qml | 515 + .../animation/scriptAction/scriptAction-visual.qml | 40 + .../qmlvisual/fillmode/data/fillmode.0.png | Bin 0 -> 16855 bytes .../qmlvisual/fillmode/data/fillmode.qml | 11 + tests/auto/declarative/qmlvisual/fillmode/face.png | Bin 0 -> 1011 bytes .../declarative/qmlvisual/fillmode/fillmode.qml | 21 + .../qmlvisual/focusscope/data/test.0.png | Bin 0 -> 1974 bytes .../qmlvisual/focusscope/data/test.1.png | Bin 0 -> 1968 bytes .../qmlvisual/focusscope/data/test.2.png | Bin 0 -> 1968 bytes .../qmlvisual/focusscope/data/test.3.png | Bin 0 -> 1974 bytes .../declarative/qmlvisual/focusscope/data/test.qml | 923 + .../qmlvisual/focusscope/data/test2.0.png | Bin 0 -> 439 bytes .../qmlvisual/focusscope/data/test2.1.png | Bin 0 -> 439 bytes .../qmlvisual/focusscope/data/test2.qml | 323 + .../qmlvisual/focusscope/data/test3.0.png | Bin 0 -> 487 bytes .../qmlvisual/focusscope/data/test3.1.png | Bin 0 -> 509 bytes .../qmlvisual/focusscope/data/test3.2.png | Bin 0 -> 491 bytes .../qmlvisual/focusscope/data/test3.3.png | Bin 0 -> 499 bytes .../qmlvisual/focusscope/data/test3.4.png | Bin 0 -> 487 bytes .../qmlvisual/focusscope/data/test3.qml | 1327 ++ .../auto/declarative/qmlvisual/focusscope/test.qml | 81 + .../declarative/qmlvisual/focusscope/test2.qml | 38 + .../declarative/qmlvisual/focusscope/test3.qml | 52 + .../qdeclarativeborderimage/animated-smooth.qml | 66 + .../qmlvisual/qdeclarativeborderimage/animated.qml | 58 + .../qmlvisual/qdeclarativeborderimage/borders.qml | 18 + .../content/MyBorderImage.qml | 38 + .../qdeclarativeborderimage/content/bw.png | Bin 0 -> 1357 bytes .../content/colors-round.sci | 7 + .../content/colors-stretch.sci | 5 + .../qdeclarativeborderimage/content/colors.png | Bin 0 -> 713 bytes .../qdeclarativeborderimage/content/qmldir | 1 + .../data/animated-smooth.0.png | Bin 0 -> 4686 bytes .../data/animated-smooth.1.png | Bin 0 -> 25454 bytes .../data/animated-smooth.qml | 319 + .../qdeclarativeborderimage/data/animated.0.png | Bin 0 -> 4686 bytes .../qdeclarativeborderimage/data/animated.1.png | Bin 0 -> 9642 bytes .../qdeclarativeborderimage/data/animated.qml | 343 + .../qdeclarativeborderimage/data/borders.0.png | Bin 0 -> 28741 bytes .../qdeclarativeborderimage/data/borders.qml | 11 + .../data-MAC/flickable-horizontal.0.png | Bin 0 -> 1439 bytes .../data-MAC/flickable-horizontal.1.png | Bin 0 -> 1424 bytes .../data-MAC/flickable-horizontal.2.png | Bin 0 -> 1428 bytes .../data-MAC/flickable-horizontal.3.png | Bin 0 -> 1396 bytes .../data-MAC/flickable-horizontal.4.png | Bin 0 -> 1454 bytes .../data-MAC/flickable-horizontal.qml | 1575 ++ .../data/flickable-horizontal.0.png | Bin 0 -> 1436 bytes .../data/flickable-horizontal.1.png | Bin 0 -> 1426 bytes .../data/flickable-horizontal.2.png | Bin 0 -> 1429 bytes .../data/flickable-horizontal.3.png | Bin 0 -> 1395 bytes .../data/flickable-horizontal.4.png | Bin 0 -> 1454 bytes .../data/flickable-horizontal.qml | 1575 ++ .../data/flickable-nested.0.png | Bin 0 -> 1710 bytes .../data/flickable-nested.1.png | Bin 0 -> 1710 bytes .../data/flickable-nested.2.png | Bin 0 -> 1727 bytes .../data/flickable-nested.3.png | Bin 0 -> 1727 bytes .../data/flickable-nested.4.png | Bin 0 -> 1727 bytes .../data/flickable-nested.5.png | Bin 0 -> 1731 bytes .../data/flickable-nested.qml | 2159 +++ .../data/flickable-vertical.0.png | Bin 0 -> 1070 bytes .../data/flickable-vertical.1.png | Bin 0 -> 1064 bytes .../data/flickable-vertical.2.png | Bin 0 -> 1079 bytes .../data/flickable-vertical.3.png | Bin 0 -> 1079 bytes .../data/flickable-vertical.4.png | Bin 0 -> 1057 bytes .../data/flickable-vertical.5.png | Bin 0 -> 1080 bytes .../data/flickable-vertical.6.png | Bin 0 -> 1030 bytes .../data/flickable-vertical.7.png | Bin 0 -> 1070 bytes .../data/flickable-vertical.8.png | Bin 0 -> 1055 bytes .../data/flickable-vertical.qml | 3647 ++++ .../qdeclarativeflickable/flickable-horizontal.qml | 37 + .../qdeclarativeflickable/flickable-nested.qml | 50 + .../qdeclarativeflickable/flickable-vertical.qml | 90 + .../qdeclarativeflipable/data/test-flipable.0.png | Bin 0 -> 942 bytes .../qdeclarativeflipable/data/test-flipable.1.png | Bin 0 -> 1111 bytes .../qdeclarativeflipable/data/test-flipable.2.png | Bin 0 -> 1152 bytes .../qdeclarativeflipable/data/test-flipable.3.png | Bin 0 -> 976 bytes .../qdeclarativeflipable/data/test-flipable.4.png | Bin 0 -> 1096 bytes .../qdeclarativeflipable/data/test-flipable.5.png | Bin 0 -> 1154 bytes .../qdeclarativeflipable/data/test-flipable.6.png | Bin 0 -> 984 bytes .../qdeclarativeflipable/data/test-flipable.qml | 1623 ++ .../data/test_flipable_resize.0.png | Bin 0 -> 1649 bytes .../data/test_flipable_resize.qml | 207 + .../qdeclarativeflipable/test-flipable.qml | 79 + .../qdeclarativeflipable/test_flipable_resize.qml | 62 + .../qdeclarativegridview/data/gridview.0.png | Bin 0 -> 1318 bytes .../qdeclarativegridview/data/gridview.1.png | Bin 0 -> 1318 bytes .../qdeclarativegridview/data/gridview.10.png | Bin 0 -> 1318 bytes .../qdeclarativegridview/data/gridview.2.png | Bin 0 -> 1332 bytes .../qdeclarativegridview/data/gridview.3.png | Bin 0 -> 1331 bytes .../qdeclarativegridview/data/gridview.4.png | Bin 0 -> 1321 bytes .../qdeclarativegridview/data/gridview.5.png | Bin 0 -> 1325 bytes .../qdeclarativegridview/data/gridview.6.png | Bin 0 -> 1321 bytes .../qdeclarativegridview/data/gridview.7.png | Bin 0 -> 1341 bytes .../qdeclarativegridview/data/gridview.8.png | Bin 0 -> 1341 bytes .../qdeclarativegridview/data/gridview.9.png | Bin 0 -> 1359 bytes .../qdeclarativegridview/data/gridview.qml | 2859 +++ .../qdeclarativegridview/data/gridview2.0.png | Bin 0 -> 1325 bytes .../qdeclarativegridview/data/gridview2.1.png | Bin 0 -> 1325 bytes .../qdeclarativegridview/data/gridview2.10.png | Bin 0 -> 1313 bytes .../qdeclarativegridview/data/gridview2.2.png | Bin 0 -> 1337 bytes .../qdeclarativegridview/data/gridview2.3.png | Bin 0 -> 1360 bytes .../qdeclarativegridview/data/gridview2.4.png | Bin 0 -> 1406 bytes .../qdeclarativegridview/data/gridview2.5.png | Bin 0 -> 1337 bytes .../qdeclarativegridview/data/gridview2.6.png | Bin 0 -> 1340 bytes .../qdeclarativegridview/data/gridview2.7.png | Bin 0 -> 1327 bytes .../qdeclarativegridview/data/gridview2.8.png | Bin 0 -> 1353 bytes .../qdeclarativegridview/data/gridview2.9.png | Bin 0 -> 1325 bytes .../qdeclarativegridview/data/gridview2.qml | 2479 +++ .../qmlvisual/qdeclarativegridview/gridview.qml | 51 + .../qmlvisual/qdeclarativegridview/gridview2.qml | 62 + .../qdeclarativemousearea/data/drag.0.png | Bin 0 -> 1578 bytes .../qdeclarativemousearea/data/drag.1.png | Bin 0 -> 1578 bytes .../qdeclarativemousearea/data/drag.2.png | Bin 0 -> 1585 bytes .../qdeclarativemousearea/data/drag.3.png | Bin 0 -> 1568 bytes .../qdeclarativemousearea/data/drag.4.png | Bin 0 -> 1578 bytes .../qdeclarativemousearea/data/drag.5.png | Bin 0 -> 1583 bytes .../qdeclarativemousearea/data/drag.6.png | Bin 0 -> 1581 bytes .../qdeclarativemousearea/data/drag.7.png | Bin 0 -> 1582 bytes .../qdeclarativemousearea/data/drag.8.png | Bin 0 -> 1581 bytes .../qmlvisual/qdeclarativemousearea/data/drag.qml | 5207 ++++++ .../data/mousearea-flickable.0.png | Bin 0 -> 1701 bytes .../data/mousearea-flickable.1.png | Bin 0 -> 1701 bytes .../data/mousearea-flickable.10.png | Bin 0 -> 1701 bytes .../data/mousearea-flickable.11.png | Bin 0 -> 1721 bytes .../data/mousearea-flickable.12.png | Bin 0 -> 1705 bytes .../data/mousearea-flickable.13.png | Bin 0 -> 1705 bytes .../data/mousearea-flickable.14.png | Bin 0 -> 1701 bytes .../data/mousearea-flickable.2.png | Bin 0 -> 1701 bytes .../data/mousearea-flickable.3.png | Bin 0 -> 1704 bytes .../data/mousearea-flickable.4.png | Bin 0 -> 1704 bytes .../data/mousearea-flickable.5.png | Bin 0 -> 1705 bytes .../data/mousearea-flickable.6.png | Bin 0 -> 1705 bytes .../data/mousearea-flickable.7.png | Bin 0 -> 1701 bytes .../data/mousearea-flickable.8.png | Bin 0 -> 1701 bytes .../data/mousearea-flickable.9.png | Bin 0 -> 1705 bytes .../data/mousearea-flickable.qml | 5127 ++++++ .../data/mousearea-visual.0.png | Bin 0 -> 486 bytes .../data/mousearea-visual.1.png | Bin 0 -> 486 bytes .../data/mousearea-visual.10.png | Bin 0 -> 494 bytes .../data/mousearea-visual.11.png | Bin 0 -> 494 bytes .../data/mousearea-visual.12.png | Bin 0 -> 494 bytes .../data/mousearea-visual.13.png | Bin 0 -> 494 bytes .../data/mousearea-visual.14.png | Bin 0 -> 494 bytes .../data/mousearea-visual.15.png | Bin 0 -> 494 bytes .../data/mousearea-visual.2.png | Bin 0 -> 489 bytes .../data/mousearea-visual.3.png | Bin 0 -> 489 bytes .../data/mousearea-visual.4.png | Bin 0 -> 489 bytes .../data/mousearea-visual.5.png | Bin 0 -> 496 bytes .../data/mousearea-visual.6.png | Bin 0 -> 496 bytes .../data/mousearea-visual.7.png | Bin 0 -> 496 bytes .../data/mousearea-visual.8.png | Bin 0 -> 496 bytes .../data/mousearea-visual.9.png | Bin 0 -> 494 bytes .../data/mousearea-visual.qml | 5867 ++++++ .../qdeclarativemousearea/data/mouseregion.0.png | Bin 0 -> 471 bytes .../qdeclarativemousearea/data/mouseregion.1.png | Bin 0 -> 474 bytes .../qdeclarativemousearea/data/mouseregion.10.png | Bin 0 -> 479 bytes .../qdeclarativemousearea/data/mouseregion.11.png | Bin 0 -> 479 bytes .../qdeclarativemousearea/data/mouseregion.12.png | Bin 0 -> 479 bytes .../qdeclarativemousearea/data/mouseregion.13.png | Bin 0 -> 479 bytes .../qdeclarativemousearea/data/mouseregion.14.png | Bin 0 -> 479 bytes .../qdeclarativemousearea/data/mouseregion.15.png | Bin 0 -> 479 bytes .../qdeclarativemousearea/data/mouseregion.16.png | Bin 0 -> 1454 bytes .../qdeclarativemousearea/data/mouseregion.17.png | Bin 0 -> 1454 bytes .../qdeclarativemousearea/data/mouseregion.18.png | Bin 0 -> 1454 bytes .../qdeclarativemousearea/data/mouseregion.19.png | Bin 0 -> 1454 bytes .../qdeclarativemousearea/data/mouseregion.2.png | Bin 0 -> 474 bytes .../qdeclarativemousearea/data/mouseregion.20.png | Bin 0 -> 1454 bytes .../qdeclarativemousearea/data/mouseregion.21.png | Bin 0 -> 1454 bytes .../qdeclarativemousearea/data/mouseregion.22.png | Bin 0 -> 1454 bytes .../qdeclarativemousearea/data/mouseregion.3.png | Bin 0 -> 474 bytes .../qdeclarativemousearea/data/mouseregion.4.png | Bin 0 -> 481 bytes .../qdeclarativemousearea/data/mouseregion.5.png | Bin 0 -> 481 bytes .../qdeclarativemousearea/data/mouseregion.6.png | Bin 0 -> 481 bytes .../qdeclarativemousearea/data/mouseregion.7.png | Bin 0 -> 481 bytes .../qdeclarativemousearea/data/mouseregion.8.png | Bin 0 -> 479 bytes .../qdeclarativemousearea/data/mouseregion.9.png | Bin 0 -> 479 bytes .../qdeclarativemousearea/data/nested.0.png | Bin 0 -> 1360 bytes .../qdeclarativemousearea/data/nested.1.png | Bin 0 -> 1367 bytes .../qdeclarativemousearea/data/nested.2.png | Bin 0 -> 1367 bytes .../qdeclarativemousearea/data/nested.3.png | Bin 0 -> 1372 bytes .../qdeclarativemousearea/data/nested.4.png | Bin 0 -> 1382 bytes .../qdeclarativemousearea/data/nested.5.png | Bin 0 -> 1379 bytes .../qdeclarativemousearea/data/nested.6.png | Bin 0 -> 1390 bytes .../qdeclarativemousearea/data/nested.7.png | Bin 0 -> 1379 bytes .../qdeclarativemousearea/data/nested.8.png | Bin 0 -> 1380 bytes .../qdeclarativemousearea/data/nested.9.png | Bin 0 -> 1379 bytes .../qdeclarativemousearea/data/nested.qml | 5039 +++++ .../qmlvisual/qdeclarativemousearea/drag.qml | 26 + .../qdeclarativemousearea/mousearea-flickable.qml | 52 + .../qdeclarativemousearea/mousearea-visual.qml | 135 + .../qmlvisual/qdeclarativemousearea/nested.qml | 62 + .../qdeclarativeparticles/data/particles.0.png | Bin 0 -> 1055 bytes .../qdeclarativeparticles/data/particles.1.png | Bin 0 -> 10086 bytes .../qdeclarativeparticles/data/particles.2.png | Bin 0 -> 14829 bytes .../qdeclarativeparticles/data/particles.3.png | Bin 0 -> 14095 bytes .../qdeclarativeparticles/data/particles.qml | 775 + .../qmlvisual/qdeclarativeparticles/particles.qml | 56 + .../qmlvisual/qdeclarativeparticles/star.png | Bin 0 -> 262 bytes .../data/test-pathview-2.0.png | Bin 0 -> 1114 bytes .../data/test-pathview-2.1.png | Bin 0 -> 1119 bytes .../data/test-pathview-2.2.png | Bin 0 -> 1102 bytes .../data/test-pathview-2.3.png | Bin 0 -> 1092 bytes .../data/test-pathview-2.4.png | Bin 0 -> 1140 bytes .../data/test-pathview-2.5.png | Bin 0 -> 1140 bytes .../qdeclarativepathview/data/test-pathview-2.qml | 1855 ++ .../qdeclarativepathview/data/test-pathview.0.png | Bin 0 -> 1169 bytes .../qdeclarativepathview/data/test-pathview.1.png | Bin 0 -> 1172 bytes .../qdeclarativepathview/data/test-pathview.2.png | Bin 0 -> 1201 bytes .../qdeclarativepathview/data/test-pathview.3.png | Bin 0 -> 1164 bytes .../qdeclarativepathview/data/test-pathview.4.png | Bin 0 -> 1227 bytes .../qdeclarativepathview/data/test-pathview.5.png | Bin 0 -> 1184 bytes .../qdeclarativepathview/data/test-pathview.6.png | Bin 0 -> 1189 bytes .../qdeclarativepathview/data/test-pathview.qml | 2567 +++ .../qdeclarativepathview/test-pathview-2.qml | 70 + .../qdeclarativepathview/test-pathview.qml | 70 + .../qdeclarativepositioners/data/dynamic.0.png | Bin 0 -> 263 bytes .../qdeclarativepositioners/data/dynamic.1.png | Bin 0 -> 280 bytes .../qdeclarativepositioners/data/dynamic.2.png | Bin 0 -> 270 bytes .../qdeclarativepositioners/data/dynamic.3.png | Bin 0 -> 280 bytes .../qdeclarativepositioners/data/dynamic.4.png | Bin 0 -> 280 bytes .../qdeclarativepositioners/data/dynamic.5.png | Bin 0 -> 283 bytes .../qdeclarativepositioners/data/dynamic.6.png | Bin 0 -> 281 bytes .../qdeclarativepositioners/data/dynamic.qml | 1603 ++ .../data/usingRepeater.0.png | Bin 0 -> 1199 bytes .../qdeclarativepositioners/data/usingRepeater.qml | 135 + .../qmlvisual/qdeclarativepositioners/dynamic.qml | 70 + .../qdeclarativepositioners/usingRepeater.qml | 16 + .../data/smoothedfollow.0.png | Bin 0 -> 1513 bytes .../data/smoothedfollow.1.png | Bin 0 -> 1537 bytes .../data/smoothedfollow.2.png | Bin 0 -> 1537 bytes .../data/smoothedfollow.3.png | Bin 0 -> 1537 bytes .../data/smoothedfollow.qml | 795 + .../smoothedfollow.qml | 128 + .../qdeclarativespringanimation/clock.qml | 64 + .../content/background.png | Bin 0 -> 46895 bytes .../qdeclarativespringanimation/content/center.png | Bin 0 -> 765 bytes .../qdeclarativespringanimation/content/clock.png | Bin 0 -> 20653 bytes .../qdeclarativespringanimation/content/hour.png | Bin 0 -> 625 bytes .../qdeclarativespringanimation/content/minute.png | Bin 0 -> 625 bytes .../qdeclarativespringanimation/content/second.png | Bin 0 -> 303 bytes .../data-MAC/follow.0.png | Bin 0 -> 941 bytes .../data-MAC/follow.1.png | Bin 0 -> 975 bytes .../data-MAC/follow.2.png | Bin 0 -> 1235 bytes .../data-MAC/follow.3.png | Bin 0 -> 1225 bytes .../data-MAC/follow.4.png | Bin 0 -> 1247 bytes .../data-MAC/follow.5.png | Bin 0 -> 1243 bytes .../data-MAC/follow.6.png | Bin 0 -> 1234 bytes .../data-MAC/follow.7.png | Bin 0 -> 1242 bytes .../data-MAC/follow.qml | 1763 ++ .../data-X11/follow.0.png | Bin 0 -> 950 bytes .../data-X11/follow.1.png | Bin 0 -> 983 bytes .../data-X11/follow.2.png | Bin 0 -> 1243 bytes .../data-X11/follow.3.png | Bin 0 -> 1235 bytes .../data-X11/follow.4.png | Bin 0 -> 1253 bytes .../data-X11/follow.5.png | Bin 0 -> 1249 bytes .../data-X11/follow.6.png | Bin 0 -> 1241 bytes .../data-X11/follow.7.png | Bin 0 -> 1251 bytes .../data-X11/follow.qml | 1763 ++ .../qdeclarativespringanimation/data/clock.0.png | Bin 0 -> 16333 bytes .../qdeclarativespringanimation/data/clock.1.png | Bin 0 -> 16437 bytes .../qdeclarativespringanimation/data/clock.2.png | Bin 0 -> 16543 bytes .../qdeclarativespringanimation/data/clock.qml | 615 + .../qdeclarativespringanimation/data/follow.0.png | Bin 0 -> 941 bytes .../qdeclarativespringanimation/data/follow.1.png | Bin 0 -> 975 bytes .../qdeclarativespringanimation/data/follow.2.png | Bin 0 -> 1235 bytes .../qdeclarativespringanimation/data/follow.3.png | Bin 0 -> 1225 bytes .../qdeclarativespringanimation/data/follow.4.png | Bin 0 -> 1247 bytes .../qdeclarativespringanimation/data/follow.5.png | Bin 0 -> 1243 bytes .../qdeclarativespringanimation/data/follow.6.png | Bin 0 -> 1234 bytes .../qdeclarativespringanimation/data/follow.7.png | Bin 0 -> 1242 bytes .../qdeclarativespringanimation/data/follow.qml | 1763 ++ .../qdeclarativespringanimation/follow.qml | 79 + .../qdeclarativetext/align/data-MAC/justify.0.png | Bin 0 -> 7233 bytes .../qdeclarativetext/align/data-MAC/justify.qml | 11 + .../align/data-MAC/multilineAlign.0.png | Bin 0 -> 2388 bytes .../align/data-MAC/multilineAlign.qml | 247 + .../align/data-X11/multilineAlign.0.png | Bin 0 -> 762 bytes .../align/data-X11/multilineAlign.qml | 247 + .../align/data/multilineAlign.0.png | Bin 0 -> 1895 bytes .../qdeclarativetext/align/data/multilineAlign.qml | 247 + .../qmlvisual/qdeclarativetext/align/justify.qml | 22 + .../qdeclarativetext/align/multilineAlign.qml | 25 + .../baseline/data-MAC/parentanchor.0.png | Bin 0 -> 1392 bytes .../baseline/data-MAC/parentanchor.qml | 131 + .../baseline/data-X11/parentanchor.0.png | Bin 0 -> 1313 bytes .../baseline/data-X11/parentanchor.qml | 131 + .../baseline/data/parentanchor.qml | 131 + .../qdeclarativetext/baseline/parentanchor.qml | 15 + .../qdeclarativetext/bugs/QTBUG-14469.qml | 23 + .../bugs/data-MAC/QTBUG-14469.0.png | Bin 0 -> 210 bytes .../bugs/data-MAC/QTBUG-14469.1.png | Bin 0 -> 270 bytes .../qdeclarativetext/bugs/data-MAC/QTBUG-14469.qml | 475 + .../bugs/data-X11/QTBUG-14469.0.png | Bin 0 -> 210 bytes .../qdeclarativetext/bugs/data-X11/QTBUG-14469.qml | 475 + .../qdeclarativetext/bugs/data/QTBUG-14469.0.png | Bin 0 -> 422 bytes .../qdeclarativetext/bugs/data/QTBUG-14469.qml | 475 + .../qdeclarativetext/data-MAC/qtbug_14865.0.png | Bin 0 -> 1640 bytes .../qdeclarativetext/data-MAC/qtbug_14865.1.png | Bin 0 -> 625 bytes .../qdeclarativetext/data-MAC/qtbug_14865.qml | 447 + .../qdeclarativetext/data-X11/qtbug_14865.0.png | Bin 0 -> 303 bytes .../qdeclarativetext/data-X11/qtbug_14865.1.png | Bin 0 -> 303 bytes .../qdeclarativetext/data-X11/qtbug_14865.qml | 447 + .../qdeclarativetext/data/qtbug_14865.0.png | Bin 0 -> 1400 bytes .../qdeclarativetext/data/qtbug_14865.qml | 447 + .../qdeclarativetext/elide/data-MAC/elide.0.png | Bin 0 -> 491 bytes .../qdeclarativetext/elide/data-MAC/elide.1.png | Bin 0 -> 491 bytes .../qdeclarativetext/elide/data-MAC/elide.qml | 279 + .../qdeclarativetext/elide/data-MAC/elide2.0.png | Bin 0 -> 1240 bytes .../qdeclarativetext/elide/data-MAC/elide2.1.png | Bin 0 -> 1106 bytes .../qdeclarativetext/elide/data-MAC/elide2.2.png | Bin 0 -> 999 bytes .../qdeclarativetext/elide/data-MAC/elide2.3.png | Bin 0 -> 864 bytes .../qdeclarativetext/elide/data-MAC/elide2.4.png | Bin 0 -> 703 bytes .../qdeclarativetext/elide/data-MAC/elide2.qml | 991 + .../elide/data-MAC/multilength.0.png | Bin 0 -> 791 bytes .../elide/data-MAC/multilength.1.png | Bin 0 -> 854 bytes .../elide/data-MAC/multilength.qml | 303 + .../qdeclarativetext/elide/data-X11/elide.0.png | Bin 0 -> 581 bytes .../qdeclarativetext/elide/data-X11/elide.1.png | Bin 0 -> 483 bytes .../qdeclarativetext/elide/data-X11/elide.qml | 279 + .../qdeclarativetext/elide/data-X11/elide2.0.png | Bin 0 -> 1189 bytes .../qdeclarativetext/elide/data-X11/elide2.1.png | Bin 0 -> 1068 bytes .../qdeclarativetext/elide/data-X11/elide2.2.png | Bin 0 -> 948 bytes .../qdeclarativetext/elide/data-X11/elide2.3.png | Bin 0 -> 819 bytes .../qdeclarativetext/elide/data-X11/elide2.4.png | Bin 0 -> 682 bytes .../qdeclarativetext/elide/data-X11/elide2.qml | 991 + .../elide/data-X11/multilength.0.png | Bin 0 -> 903 bytes .../elide/data-X11/multilength.1.png | Bin 0 -> 814 bytes .../elide/data-X11/multilength.2.png | Bin 0 -> 809 bytes .../elide/data-X11/multilength.3.png | Bin 0 -> 527 bytes .../elide/data-X11/multilength.4.png | Bin 0 -> 526 bytes .../elide/data-X11/multilength.5.png | Bin 0 -> 399 bytes .../elide/data-X11/multilength.qml | 1323 ++ .../qmlvisual/qdeclarativetext/elide/elide.qml | 32 + .../qmlvisual/qdeclarativetext/elide/elide2.qml | 13 + .../qdeclarativetext/elide/multilength.qml | 20 + .../qdeclarativetext/font/BorderedText.qml | 9 + .../qdeclarativetext/font/data-MAC/plaintext.0.png | Bin 0 -> 14238 bytes .../qdeclarativetext/font/data-MAC/plaintext.qml | 11 + .../font/data-MAC/plaintext2.0.png | Bin 0 -> 3481 bytes .../qdeclarativetext/font/data-MAC/plaintext2.qml | 11 + .../font/data-MAC/plaintext3.0.png | Bin 0 -> 53503 bytes .../qdeclarativetext/font/data-MAC/plaintext3.qml | 11 + .../qdeclarativetext/font/data-MAC/richtext.0.png | Bin 0 -> 9321 bytes .../qdeclarativetext/font/data-MAC/richtext.qml | 11 + .../qdeclarativetext/font/data-MAC/richtext2.0.png | Bin 0 -> 10663 bytes .../qdeclarativetext/font/data-MAC/richtext2.qml | 11 + .../qdeclarativetext/font/data-X11/plaintext.0.png | Bin 0 -> 13140 bytes .../qdeclarativetext/font/data-X11/plaintext.qml | 11 + .../font/data-X11/plaintext2.0.png | Bin 0 -> 1503 bytes .../qdeclarativetext/font/data-X11/plaintext2.qml | 11 + .../font/data-X11/plaintext3.0.png | Bin 0 -> 6368 bytes .../qdeclarativetext/font/data-X11/plaintext3.qml | 11 + .../qdeclarativetext/font/data-X11/richtext.0.png | Bin 0 -> 9297 bytes .../qdeclarativetext/font/data-X11/richtext.qml | 11 + .../qdeclarativetext/font/data-X11/richtext2.0.png | Bin 0 -> 10626 bytes .../qdeclarativetext/font/data-X11/richtext2.qml | 11 + .../qdeclarativetext/font/data/plaintext.0.png | Bin 0 -> 77181 bytes .../qdeclarativetext/font/data/plaintext.qml | 11 + .../qdeclarativetext/font/data/plaintext2.0.png | Bin 0 -> 2778 bytes .../qdeclarativetext/font/data/plaintext2.qml | 11 + .../qdeclarativetext/font/data/plaintext3.0.png | Bin 0 -> 53503 bytes .../qdeclarativetext/font/data/plaintext3.qml | 11 + .../qdeclarativetext/font/data/richtext.0.png | Bin 0 -> 103375 bytes .../qdeclarativetext/font/data/richtext.qml | 11 + .../qdeclarativetext/font/data/richtext2.0.png | Bin 0 -> 10671 bytes .../qdeclarativetext/font/data/richtext2.qml | 11 + .../qmlvisual/qdeclarativetext/font/plaintext.qml | 101 + .../qmlvisual/qdeclarativetext/font/plaintext2.qml | 23 + .../qmlvisual/qdeclarativetext/font/plaintext3.qml | 62 + .../qmlvisual/qdeclarativetext/font/richtext.qml | 47 + .../qmlvisual/qdeclarativetext/font/richtext2.qml | 43 + .../maximumLineCount/data-X11/newLines.0.png | Bin 0 -> 343 bytes .../maximumLineCount/data-X11/newLines.qml | 11 + .../maximumLineCount/data-X11/newLines_wrap.0.png | Bin 0 -> 465 bytes .../maximumLineCount/data-X11/newLines_wrap.qml | 11 + .../data-X11/newLines_wrap_elide.0.png | Bin 0 -> 469 bytes .../data-X11/newLines_wrap_elide.qml | 11 + .../maximumLineCount/data-X11/wrap.0.png | Bin 0 -> 557 bytes .../maximumLineCount/data-X11/wrap.qml | 11 + .../maximumLineCount/data-X11/wrap_elide.0.png | Bin 0 -> 537 bytes .../maximumLineCount/data-X11/wrap_elide.qml | 11 + .../maximumLineCount/data/newLines.0.png | Bin 0 -> 343 bytes .../maximumLineCount/data/newLines.qml | 11 + .../maximumLineCount/data/newLines_wrap.0.png | Bin 0 -> 465 bytes .../maximumLineCount/data/newLines_wrap.qml | 11 + .../data/newLines_wrap_elide.0.png | Bin 0 -> 469 bytes .../maximumLineCount/data/newLines_wrap_elide.qml | 11 + .../maximumLineCount/data/wrap.0.png | Bin 0 -> 557 bytes .../maximumLineCount/data/wrap.qml | 11 + .../maximumLineCount/data/wrap_elide.0.png | Bin 0 -> 537 bytes .../maximumLineCount/data/wrap_elide.qml | 11 + .../qdeclarativetext/maximumLineCount/newLines.qml | 13 + .../maximumLineCount/newLines_wrap.qml | 14 + .../maximumLineCount/newLines_wrap_elide.qml | 15 + .../qdeclarativetext/maximumLineCount/wrap.qml | 14 + .../maximumLineCount/wrap_elide.qml | 15 + .../qmlvisual/qdeclarativetext/qtbug_14865.qml | 18 + .../qdeclarativetextedit/MultilineEdit.qml | 76 + .../qdeclarativetextedit/cursorDelegate.qml | 36 + .../data-MAC/cursorDelegate.0.png | Bin 0 -> 1177 bytes .../data-MAC/cursorDelegate.1.png | Bin 0 -> 1254 bytes .../data-MAC/cursorDelegate.2.png | Bin 0 -> 1199 bytes .../data-MAC/cursorDelegate.3.png | Bin 0 -> 1198 bytes .../data-MAC/cursorDelegate.4.png | Bin 0 -> 1195 bytes .../data-MAC/cursorDelegate.5.png | Bin 0 -> 1197 bytes .../data-MAC/cursorDelegate.6.png | Bin 0 -> 3145 bytes .../data-MAC/cursorDelegate.7.png | Bin 0 -> 3146 bytes .../data-MAC/cursorDelegate.8.png | Bin 0 -> 3144 bytes .../data-MAC/cursorDelegate.9.png | Bin 0 -> 3135 bytes .../data-MAC/cursorDelegate.qml | 1499 ++ .../qdeclarativetextedit/data-MAC/justify.0.png | Bin 0 -> 7233 bytes .../qdeclarativetextedit/data-MAC/justify.qml | 11 + .../qdeclarativetextedit/data-MAC/qt-669.0.png | Bin 0 -> 737 bytes .../qdeclarativetextedit/data-MAC/qt-669.1.png | Bin 0 -> 740 bytes .../qdeclarativetextedit/data-MAC/qt-669.2.png | Bin 0 -> 746 bytes .../qdeclarativetextedit/data-MAC/qt-669.3.png | Bin 0 -> 739 bytes .../qdeclarativetextedit/data-MAC/qt-669.4.png | Bin 0 -> 737 bytes .../qdeclarativetextedit/data-MAC/qt-669.qml | 1371 ++ .../data-MAC/usingMultilineEdit.0.png | Bin 0 -> 5123 bytes .../data-MAC/usingMultilineEdit.1.png | Bin 0 -> 5500 bytes .../data-MAC/usingMultilineEdit.10.png | Bin 0 -> 8641 bytes .../data-MAC/usingMultilineEdit.11.png | Bin 0 -> 8641 bytes .../data-MAC/usingMultilineEdit.12.png | Bin 0 -> 2037 bytes .../data-MAC/usingMultilineEdit.2.png | Bin 0 -> 6163 bytes .../data-MAC/usingMultilineEdit.3.png | Bin 0 -> 6785 bytes .../data-MAC/usingMultilineEdit.4.png | Bin 0 -> 6943 bytes .../data-MAC/usingMultilineEdit.5.png | Bin 0 -> 7043 bytes .../data-MAC/usingMultilineEdit.6.png | Bin 0 -> 7428 bytes .../data-MAC/usingMultilineEdit.7.png | Bin 0 -> 6860 bytes .../data-MAC/usingMultilineEdit.8.png | Bin 0 -> 8659 bytes .../data-MAC/usingMultilineEdit.9.png | Bin 0 -> 8641 bytes .../data-MAC/usingMultilineEdit.qml | 4687 +++++ .../qdeclarativetextedit/data-MAC/wrap.0.png | Bin 0 -> 11626 bytes .../qdeclarativetextedit/data-MAC/wrap.1.png | Bin 0 -> 11869 bytes .../qdeclarativetextedit/data-MAC/wrap.2.png | Bin 0 -> 12264 bytes .../qdeclarativetextedit/data-MAC/wrap.3.png | Bin 0 -> 12607 bytes .../qdeclarativetextedit/data-MAC/wrap.4.png | Bin 0 -> 13243 bytes .../qdeclarativetextedit/data-MAC/wrap.5.png | Bin 0 -> 13260 bytes .../qdeclarativetextedit/data-MAC/wrap.6.png | Bin 0 -> 13260 bytes .../qdeclarativetextedit/data-MAC/wrap.7.png | Bin 0 -> 4238 bytes .../qdeclarativetextedit/data-MAC/wrap.qml | 2467 +++ .../data-X11/cursorDelegate.0.png | Bin 0 -> 1173 bytes .../data-X11/cursorDelegate.1.png | Bin 0 -> 1249 bytes .../data-X11/cursorDelegate.2.png | Bin 0 -> 1331 bytes .../data-X11/cursorDelegate.3.png | Bin 0 -> 1212 bytes .../data-X11/cursorDelegate.4.png | Bin 0 -> 1208 bytes .../data-X11/cursorDelegate.5.png | Bin 0 -> 1213 bytes .../data-X11/cursorDelegate.6.png | Bin 0 -> 3145 bytes .../data-X11/cursorDelegate.7.png | Bin 0 -> 3146 bytes .../data-X11/cursorDelegate.8.png | Bin 0 -> 3144 bytes .../data-X11/cursorDelegate.9.png | Bin 0 -> 3135 bytes .../data-X11/cursorDelegate.qml | 1499 ++ .../data-X11/linkActivated.0.png | Bin 0 -> 609 bytes .../data-X11/linkActivated.1.png | Bin 0 -> 677 bytes .../data-X11/linkActivated.qml | 191 + .../qdeclarativetextedit/data-X11/qt-669.0.png | Bin 0 -> 688 bytes .../qdeclarativetextedit/data-X11/qt-669.1.png | Bin 0 -> 693 bytes .../qdeclarativetextedit/data-X11/qt-669.2.png | Bin 0 -> 695 bytes .../qdeclarativetextedit/data-X11/qt-669.3.png | Bin 0 -> 694 bytes .../qdeclarativetextedit/data-X11/qt-669.4.png | Bin 0 -> 688 bytes .../qdeclarativetextedit/data-X11/qt-669.qml | 1371 ++ .../data-X11/usingMultilineEdit.0.png | Bin 0 -> 1357 bytes .../data-X11/usingMultilineEdit.1.png | Bin 0 -> 1371 bytes .../data-X11/usingMultilineEdit.10.png | Bin 0 -> 2020 bytes .../data-X11/usingMultilineEdit.11.png | Bin 0 -> 2020 bytes .../data-X11/usingMultilineEdit.12.png | Bin 0 -> 2020 bytes .../data-X11/usingMultilineEdit.2.png | Bin 0 -> 1451 bytes .../data-X11/usingMultilineEdit.3.png | Bin 0 -> 1565 bytes .../data-X11/usingMultilineEdit.4.png | Bin 0 -> 1691 bytes .../data-X11/usingMultilineEdit.5.png | Bin 0 -> 1763 bytes .../data-X11/usingMultilineEdit.6.png | Bin 0 -> 1779 bytes .../data-X11/usingMultilineEdit.7.png | Bin 0 -> 1836 bytes .../data-X11/usingMultilineEdit.8.png | Bin 0 -> 1825 bytes .../data-X11/usingMultilineEdit.9.png | Bin 0 -> 2008 bytes .../data-X11/usingMultilineEdit.qml | 4687 +++++ .../qdeclarativetextedit/data-X11/wrap.0.png | Bin 0 -> 3481 bytes .../qdeclarativetextedit/data-X11/wrap.1.png | Bin 0 -> 3606 bytes .../qdeclarativetextedit/data-X11/wrap.2.png | Bin 0 -> 3676 bytes .../qdeclarativetextedit/data-X11/wrap.3.png | Bin 0 -> 3754 bytes .../qdeclarativetextedit/data-X11/wrap.4.png | Bin 0 -> 3828 bytes .../qdeclarativetextedit/data-X11/wrap.5.png | Bin 0 -> 3927 bytes .../qdeclarativetextedit/data-X11/wrap.6.png | Bin 0 -> 3930 bytes .../qdeclarativetextedit/data-X11/wrap.7.png | Bin 0 -> 3943 bytes .../qdeclarativetextedit/data-X11/wrap.qml | 2467 +++ .../qdeclarativetextedit/data/cursorDelegate.0.png | Bin 0 -> 3171 bytes .../qdeclarativetextedit/data/cursorDelegate.1.png | Bin 0 -> 3603 bytes .../qdeclarativetextedit/data/cursorDelegate.2.png | Bin 0 -> 3152 bytes .../qdeclarativetextedit/data/cursorDelegate.3.png | Bin 0 -> 3147 bytes .../qdeclarativetextedit/data/cursorDelegate.4.png | Bin 0 -> 3145 bytes .../qdeclarativetextedit/data/cursorDelegate.5.png | Bin 0 -> 3147 bytes .../qdeclarativetextedit/data/cursorDelegate.6.png | Bin 0 -> 3145 bytes .../qdeclarativetextedit/data/cursorDelegate.7.png | Bin 0 -> 3146 bytes .../qdeclarativetextedit/data/cursorDelegate.8.png | Bin 0 -> 3144 bytes .../qdeclarativetextedit/data/cursorDelegate.9.png | Bin 0 -> 3135 bytes .../qdeclarativetextedit/data/cursorDelegate.qml | 1499 ++ .../qdeclarativetextedit/data/flickableEdit.0.png | Bin 0 -> 850 bytes .../qdeclarativetextedit/data/flickableEdit.1.png | Bin 0 -> 859 bytes .../qdeclarativetextedit/data/flickableEdit.2.png | Bin 0 -> 1049 bytes .../qdeclarativetextedit/data/flickableEdit.3.png | Bin 0 -> 1051 bytes .../qdeclarativetextedit/data/flickableEdit.4.png | Bin 0 -> 698 bytes .../qdeclarativetextedit/data/flickableEdit.5.png | Bin 0 -> 698 bytes .../qdeclarativetextedit/data/flickableEdit.6.png | Bin 0 -> 1063 bytes .../qdeclarativetextedit/data/flickableEdit.qml | 3551 ++++ .../qdeclarativetextedit/data/linkActivated.0.png | Bin 0 -> 609 bytes .../qdeclarativetextedit/data/linkActivated.1.png | Bin 0 -> 677 bytes .../qdeclarativetextedit/data/linkActivated.qml | 191 + .../qdeclarativetextedit/data/qt-669.0.png | Bin 0 -> 4802 bytes .../qdeclarativetextedit/data/qt-669.1.png | Bin 0 -> 4804 bytes .../qdeclarativetextedit/data/qt-669.2.png | Bin 0 -> 4801 bytes .../qdeclarativetextedit/data/qt-669.3.png | Bin 0 -> 4791 bytes .../qmlvisual/qdeclarativetextedit/data/qt-669.qml | 1371 ++ .../data/usingMultilineEdit.0.png | Bin 0 -> 4006 bytes .../data/usingMultilineEdit.1.png | Bin 0 -> 4293 bytes .../data/usingMultilineEdit.10.png | Bin 0 -> 6074 bytes .../data/usingMultilineEdit.11.png | Bin 0 -> 6074 bytes .../data/usingMultilineEdit.2.png | Bin 0 -> 4683 bytes .../data/usingMultilineEdit.3.png | Bin 0 -> 5114 bytes .../data/usingMultilineEdit.4.png | Bin 0 -> 5270 bytes .../data/usingMultilineEdit.5.png | Bin 0 -> 5401 bytes .../data/usingMultilineEdit.6.png | Bin 0 -> 5591 bytes .../data/usingMultilineEdit.7.png | Bin 0 -> 5261 bytes .../data/usingMultilineEdit.8.png | Bin 0 -> 6072 bytes .../data/usingMultilineEdit.9.png | Bin 0 -> 6074 bytes .../data/usingMultilineEdit.qml | 4687 +++++ .../qmlvisual/qdeclarativetextedit/data/wrap.0.png | Bin 0 -> 1110 bytes .../qmlvisual/qdeclarativetextedit/data/wrap.1.png | Bin 0 -> 1110 bytes .../qmlvisual/qdeclarativetextedit/data/wrap.2.png | Bin 0 -> 1110 bytes .../qmlvisual/qdeclarativetextedit/data/wrap.3.png | Bin 0 -> 1110 bytes .../qmlvisual/qdeclarativetextedit/data/wrap.4.png | Bin 0 -> 1110 bytes .../qmlvisual/qdeclarativetextedit/data/wrap.5.png | Bin 0 -> 1110 bytes .../qmlvisual/qdeclarativetextedit/data/wrap.6.png | Bin 0 -> 1110 bytes .../qmlvisual/qdeclarativetextedit/data/wrap.qml | 2467 +++ .../qdeclarativetextedit/flickableEdit.qml | 20 + .../qmlvisual/qdeclarativetextedit/justify.qml | 22 + .../qdeclarativetextedit/linkActivated.qml | 15 + .../qmlvisual/qdeclarativetextedit/qt-669.qml | 19 + .../qdeclarativetextedit/usingMultilineEdit.qml | 14 + .../qmlvisual/qdeclarativetextedit/wrap.qml | 35 + .../qmlvisual/qdeclarativetextinput/LineEdit.qml | 69 + .../qdeclarativetextinput/cursorDelegate.qml | 37 + .../data-MAC/cursorDelegate.0.png | Bin 0 -> 1177 bytes .../data-MAC/cursorDelegate.1.png | Bin 0 -> 1148 bytes .../data-MAC/cursorDelegate.2.png | Bin 0 -> 1312 bytes .../data-MAC/cursorDelegate.3.png | Bin 0 -> 1256 bytes .../data-MAC/cursorDelegate.4.png | Bin 0 -> 1197 bytes .../data-MAC/cursorDelegate.5.png | Bin 0 -> 1197 bytes .../data-MAC/cursorDelegate.6.png | Bin 0 -> 801 bytes .../data-MAC/cursorDelegate.7.png | Bin 0 -> 802 bytes .../data-MAC/cursorDelegate.8.png | Bin 0 -> 802 bytes .../data-MAC/cursorDelegate.qml | 1551 ++ .../qdeclarativetextinput/data-MAC/echoMode.0.png | Bin 0 -> 703 bytes .../qdeclarativetextinput/data-MAC/echoMode.1.png | Bin 0 -> 1360 bytes .../qdeclarativetextinput/data-MAC/echoMode.2.png | Bin 0 -> 2031 bytes .../qdeclarativetextinput/data-MAC/echoMode.3.png | Bin 0 -> 539 bytes .../qdeclarativetextinput/data-MAC/echoMode.qml | 1043 ++ .../qdeclarativetextinput/data-MAC/hAlign.0.png | Bin 0 -> 3987 bytes .../qdeclarativetextinput/data-MAC/hAlign.qml | 107 + .../data-MAC/usingLineEdit.0.png | Bin 0 -> 1254 bytes .../data-MAC/usingLineEdit.1.png | Bin 0 -> 1328 bytes .../data-MAC/usingLineEdit.10.png | Bin 0 -> 1345 bytes .../data-MAC/usingLineEdit.11.png | Bin 0 -> 1433 bytes .../data-MAC/usingLineEdit.2.png | Bin 0 -> 1328 bytes .../data-MAC/usingLineEdit.3.png | Bin 0 -> 1328 bytes .../data-MAC/usingLineEdit.4.png | Bin 0 -> 1316 bytes .../data-MAC/usingLineEdit.5.png | Bin 0 -> 1318 bytes .../data-MAC/usingLineEdit.6.png | Bin 0 -> 1321 bytes .../data-MAC/usingLineEdit.7.png | Bin 0 -> 1316 bytes .../data-MAC/usingLineEdit.8.png | Bin 0 -> 1362 bytes .../data-MAC/usingLineEdit.9.png | Bin 0 -> 1423 bytes .../data-MAC/usingLineEdit.qml | 4335 +++++ .../data-X11/cursorDelegate.0.png | Bin 0 -> 1173 bytes .../data-X11/cursorDelegate.1.png | Bin 0 -> 1143 bytes .../data-X11/cursorDelegate.2.png | Bin 0 -> 1312 bytes .../data-X11/cursorDelegate.3.png | Bin 0 -> 1250 bytes .../data-X11/cursorDelegate.4.png | Bin 0 -> 1193 bytes .../data-X11/cursorDelegate.5.png | Bin 0 -> 1193 bytes .../data-X11/cursorDelegate.qml | 1551 ++ .../qdeclarativetextinput/data-X11/echoMode.0.png | Bin 0 -> 358 bytes .../qdeclarativetextinput/data-X11/echoMode.1.png | Bin 0 -> 446 bytes .../qdeclarativetextinput/data-X11/echoMode.2.png | Bin 0 -> 553 bytes .../qdeclarativetextinput/data-X11/echoMode.3.png | Bin 0 -> 622 bytes .../qdeclarativetextinput/data-X11/echoMode.qml | 1043 ++ .../qdeclarativetextinput/data-X11/hAlign.0.png | Bin 0 -> 3685 bytes .../qdeclarativetextinput/data-X11/hAlign.qml | 107 + .../data-X11/qtbug-15818.0.png | Bin 0 -> 573 bytes .../data-X11/qtbug-15818.1.png | Bin 0 -> 573 bytes .../data-X11/qtbug-15818.2.png | Bin 0 -> 573 bytes .../data-X11/qtbug-15818.3.png | Bin 0 -> 647 bytes .../data-X11/qtbug-15818.4.png | Bin 0 -> 647 bytes .../data-X11/qtbug-15818.5.png | Bin 0 -> 625 bytes .../qdeclarativetextinput/data-X11/qtbug-15818.qml | 1039 ++ .../data-X11/usingLineEdit.0.png | Bin 0 -> 1265 bytes .../data-X11/usingLineEdit.1.png | Bin 0 -> 1337 bytes .../data-X11/usingLineEdit.10.png | Bin 0 -> 1389 bytes .../data-X11/usingLineEdit.11.png | Bin 0 -> 1455 bytes .../data-X11/usingLineEdit.2.png | Bin 0 -> 1337 bytes .../data-X11/usingLineEdit.3.png | Bin 0 -> 1279 bytes .../data-X11/usingLineEdit.4.png | Bin 0 -> 1368 bytes .../data-X11/usingLineEdit.5.png | Bin 0 -> 1367 bytes .../data-X11/usingLineEdit.6.png | Bin 0 -> 1377 bytes .../data-X11/usingLineEdit.7.png | Bin 0 -> 1368 bytes .../data-X11/usingLineEdit.8.png | Bin 0 -> 1384 bytes .../data-X11/usingLineEdit.9.png | Bin 0 -> 1471 bytes .../data-X11/usingLineEdit.qml | 4335 +++++ .../qdeclarativetextinput/data/cursorDelegate.qml | 1551 ++ .../qdeclarativetextinput/data/echoMode.qml | 1043 ++ .../data/flickableInput.0.png | Bin 0 -> 850 bytes .../data/flickableInput.1.png | Bin 0 -> 1037 bytes .../data/flickableInput.2.png | Bin 0 -> 1042 bytes .../data/flickableInput.3.png | Bin 0 -> 850 bytes .../data/flickableInput.4.png | Bin 0 -> 850 bytes .../data/flickableInput.5.png | Bin 0 -> 632 bytes .../data/flickableInput.6.png | Bin 0 -> 830 bytes .../data/flickableInput.7.png | Bin 0 -> 849 bytes .../qdeclarativetextinput/data/flickableInput.qml | 3279 ++++ .../qdeclarativetextinput/data/hAlign.qml | 107 + .../qmlvisual/qdeclarativetextinput/echoMode.qml | 11 + .../qdeclarativetextinput/flickableInput.qml | 21 + .../qmlvisual/qdeclarativetextinput/hAlign.qml | 41 + .../qdeclarativetextinput/qtbug-15818.qml | 13 + .../qdeclarativetextinput/usingLineEdit.qml | 10 + tests/auto/declarative/qmlvisual/qmlvisual.pro | 37 + .../declarative/qmlvisual/rect/GradientRect.qml | 25 + tests/auto/declarative/qmlvisual/rect/MyRect.qml | 21 + .../qmlvisual/rect/data/GradientRect.0.png | Bin 0 -> 248 bytes .../qmlvisual/rect/data/GradientRect.qml | 11 + .../declarative/qmlvisual/rect/data/MyRect.0.png | Bin 0 -> 135 bytes .../declarative/qmlvisual/rect/data/MyRect.qml | 11 + .../qmlvisual/rect/data/rect-painting.0.png | Bin 0 -> 15366 bytes .../qmlvisual/rect/data/rect-painting.qml | 11 + .../declarative/qmlvisual/rect/rect-painting.qml | 55 + .../auto/declarative/qmlvisual/repeater/basic1.qml | 31 + .../auto/declarative/qmlvisual/repeater/basic2.qml | 35 + .../auto/declarative/qmlvisual/repeater/basic3.qml | 33 + .../auto/declarative/qmlvisual/repeater/basic4.qml | 37 + .../qmlvisual/repeater/data/basic1.0.png | Bin 0 -> 707 bytes .../declarative/qmlvisual/repeater/data/basic1.qml | 11 + .../qmlvisual/repeater/data/basic2.0.png | Bin 0 -> 707 bytes .../declarative/qmlvisual/repeater/data/basic2.qml | 11 + .../qmlvisual/repeater/data/basic3.0.png | Bin 0 -> 707 bytes .../declarative/qmlvisual/repeater/data/basic3.qml | 11 + .../qmlvisual/repeater/data/basic4.0.png | Bin 0 -> 707 bytes .../declarative/qmlvisual/repeater/data/basic4.qml | 11 + .../selftest_noimages/data/selftest_noimages.qml | 356 + .../selftest_noimages/selftest_noimages.qml | 9 + .../qmlvisual/shared/DejaVuSansMono.ttf | Bin 0 -> 237788 bytes tests/auto/declarative/qmlvisual/shared/README | 7 + .../auto/declarative/qmlvisual/shared/TestText.qml | 8 + .../declarative/qmlvisual/shared/TestTextEdit.qml | 14 + .../declarative/qmlvisual/shared/TestTextInput.qml | 14 + tests/auto/declarative/qmlvisual/shared/qmldir | 3 + tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp | 422 + .../qmlvisual/webview/autosize/autosize.qml | 62 + .../webview/autosize/data-X11/autosize.0.png | Bin 0 -> 10185 bytes .../webview/autosize/data-X11/autosize.1.png | Bin 0 -> 10185 bytes .../webview/autosize/data-X11/autosize.2.png | Bin 0 -> 10185 bytes .../webview/autosize/data-X11/autosize.3.png | Bin 0 -> 10185 bytes .../webview/autosize/data-X11/autosize.4.png | Bin 0 -> 10185 bytes .../qmlvisual/webview/autosize/data/autosize.0.png | Bin 0 -> 10185 bytes .../qmlvisual/webview/autosize/data/autosize.1.png | Bin 0 -> 10185 bytes .../qmlvisual/webview/autosize/data/autosize.2.png | Bin 0 -> 10185 bytes .../qmlvisual/webview/autosize/data/autosize.3.png | Bin 0 -> 10185 bytes .../qmlvisual/webview/autosize/data/autosize.4.png | Bin 0 -> 10185 bytes .../qmlvisual/webview/autosize/data/autosize.qml | 115 + .../webview/flickable/data/flickweb.0.png | Bin 0 -> 2812 bytes .../webview/flickable/data/flickweb.1.png | Bin 0 -> 2812 bytes .../webview/flickable/data/flickweb.10.png | Bin 0 -> 2829 bytes .../webview/flickable/data/flickweb.2.png | Bin 0 -> 3466 bytes .../webview/flickable/data/flickweb.3.png | Bin 0 -> 2812 bytes .../webview/flickable/data/flickweb.4.png | Bin 0 -> 2829 bytes .../webview/flickable/data/flickweb.5.png | Bin 0 -> 2829 bytes .../webview/flickable/data/flickweb.6.png | Bin 0 -> 2768 bytes .../webview/flickable/data/flickweb.7.png | Bin 0 -> 2829 bytes .../webview/flickable/data/flickweb.8.png | Bin 0 -> 2829 bytes .../webview/flickable/data/flickweb.9.png | Bin 0 -> 2829 bytes .../qmlvisual/webview/flickable/data/flickweb.qml | 6083 +++++++ .../qmlvisual/webview/flickable/flickweb.qml | 35 + .../qmlvisual/webview/flickable/qtlogo.png | Bin 0 -> 2738 bytes .../qmlvisual/webview/flickable/test.html | 3 + .../javascript/data/evaluateJavaScript.0.png | Bin 0 -> 7999 bytes .../javascript/data/evaluateJavaScript.1.png | Bin 0 -> 8020 bytes .../javascript/data/evaluateJavaScript.2.png | Bin 0 -> 8143 bytes .../javascript/data/evaluateJavaScript.3.png | Bin 0 -> 8158 bytes .../javascript/data/evaluateJavaScript.4.png | Bin 0 -> 8284 bytes .../javascript/data/evaluateJavaScript.5.png | Bin 0 -> 8284 bytes .../javascript/data/evaluateJavaScript.6.png | Bin 0 -> 8284 bytes .../javascript/data/evaluateJavaScript.7.png | Bin 0 -> 8284 bytes .../javascript/data/evaluateJavaScript.8.png | Bin 0 -> 8284 bytes .../webview/javascript/data/evaluateJavaScript.qml | 3759 ++++ .../webview/javascript/data/windowObjects.0.png | Bin 0 -> 7991 bytes .../webview/javascript/data/windowObjects.1.png | Bin 0 -> 7991 bytes .../webview/javascript/data/windowObjects.2.png | Bin 0 -> 7643 bytes .../webview/javascript/data/windowObjects.3.png | Bin 0 -> 7733 bytes .../webview/javascript/data/windowObjects.4.png | Bin 0 -> 8116 bytes .../webview/javascript/data/windowObjects.qml | 2643 +++ .../webview/javascript/evaluateJavaScript.qml | 33 + .../qmlvisual/webview/javascript/test-objects.html | 12 + .../qmlvisual/webview/javascript/windowObjects.qml | 28 + .../webview/settings/data/fontFamily.0.png | Bin 0 -> 3774 bytes .../qmlvisual/webview/settings/data/fontFamily.qml | 395 + .../qmlvisual/webview/settings/data/fontSize.0.png | Bin 0 -> 32180 bytes .../qmlvisual/webview/settings/data/fontSize.qml | 339 + .../webview/settings/data/noAutoLoadImages.0.png | Bin 0 -> 6609 bytes .../webview/settings/data/noAutoLoadImages.1.png | Bin 0 -> 6609 bytes .../webview/settings/data/noAutoLoadImages.qml | 595 + .../webview/settings/data/setFontFamily.0.png | Bin 0 -> 12132 bytes .../webview/settings/data/setFontFamily.qml | 351 + .../qmlvisual/webview/settings/fontFamily.qml | 18 + .../qmlvisual/webview/settings/fontSize.qml | 72 + .../webview/settings/noAutoLoadImages.qml | 22 + .../qmlvisual/webview/settings/qtlogo.png | Bin 0 -> 2738 bytes .../qmlvisual/webview/settings/setFontFamily.qml | 12 + .../qmlvisual/webview/settings/tarzeau_ocr_a.ttf | Bin 0 -> 24544 bytes .../qmlvisual/webview/settings/test-img.html | 6 + .../qmlvisual/webview/settings/test.html | 9 + .../qmlvisual/webview/zooming/data/pageWidth.qml | 227 + .../webview/zooming/data/renderControl.0.png | Bin 0 -> 7589 bytes .../webview/zooming/data/renderControl.qml | 415 + .../webview/zooming/data/resolution.0.png | Bin 0 -> 6275 bytes .../webview/zooming/data/resolution.1.png | Bin 0 -> 3553 bytes .../webview/zooming/data/resolution.2.png | Bin 0 -> 5838 bytes .../webview/zooming/data/resolution.3.png | Bin 0 -> 8005 bytes .../webview/zooming/data/resolution.4.png | Bin 0 -> 6087 bytes .../qmlvisual/webview/zooming/data/resolution.qml | 1319 ++ .../webview/zooming/data/zoomTextOnly.0.png | Bin 0 -> 5589 bytes .../webview/zooming/data/zoomTextOnly.1.png | Bin 0 -> 6848 bytes .../webview/zooming/data/zoomTextOnly.qml | 655 + .../qmlvisual/webview/zooming/data/zooming.0.png | Bin 0 -> 735 bytes .../qmlvisual/webview/zooming/data/zooming.1.png | Bin 0 -> 735 bytes .../qmlvisual/webview/zooming/data/zooming.2.png | Bin 0 -> 735 bytes .../qmlvisual/webview/zooming/data/zooming.3.png | Bin 0 -> 735 bytes .../qmlvisual/webview/zooming/data/zooming.qml | 2115 +++ .../qmlvisual/webview/zooming/pageWidth.qml | 11 + .../qmlvisual/webview/zooming/qtlogo.png | Bin 0 -> 2738 bytes .../qmlvisual/webview/zooming/renderControl.html | 7 + .../qmlvisual/webview/zooming/renderControl.qml | 22 + .../qmlvisual/webview/zooming/resolution.html | 6 + .../qmlvisual/webview/zooming/resolution.qml | 19 + .../qmlvisual/webview/zooming/zoomTextOnly.html | 7 + .../qmlvisual/webview/zooming/zoomTextOnly.qml | 17 + .../qmlvisual/webview/zooming/zooming.html | 6 + .../qmlvisual/webview/zooming/zooming.qml | 19 + .../qpacketprotocol/qpacketprotocol.pro | 9 + .../qpacketprotocol/tst_qpacketprotocol.cpp | 263 + .../qperformancetimer/qperformancetimer.pro | 7 + .../qperformancetimer/tst_qperformancetimer.cpp | 68 + tests/auto/declarative/runall.sh | 100 + tests/auto/declarative/shared/debugutil.cpp | 104 + tests/auto/declarative/shared/debugutil_p.h | 94 + tests/auto/declarative/shared/testhttpserver.cpp | 324 + tests/auto/declarative/shared/testhttpserver.h | 93 + tests/auto/declarative/symbianlibs.pri | 9 + tests/manual/declarative/declarative.pro | 3 + tests/manual/declarative/qmlshadersplugin/main.cpp | 67 + .../qml/qmlshadersplugintest/TestActive.qml | 83 + .../qml/qmlshadersplugintest/TestBasic.qml | 57 + .../qml/qmlshadersplugintest/TestBlending.qml | 82 + .../qml/qmlshadersplugintest/TestBlendingModes.qml | 267 + .../qmlshadersplugintest/TestEffectHierarchy.qml | 133 + .../TestEffectInsideAnotherEffect.qml | 119 + .../qml/qmlshadersplugintest/TestFormat.qml | 89 + .../qmlshadersplugintest/TestFragmentShader.qml | 91 + .../qml/qmlshadersplugintest/TestGrab.qml | 89 + .../qml/qmlshadersplugintest/TestHideOriginal.qml | 97 + .../qmlshadersplugintest/TestHorizontalWrap.qml | 93 + .../qmlshadersplugintest/TestImageFiltering.qml | 84 + .../qml/qmlshadersplugintest/TestImageMargins.qml | 98 + .../TestImageMarginsWithTextureSize.qml | 96 + .../qml/qmlshadersplugintest/TestImageMipmap.qml | 95 + .../qml/qmlshadersplugintest/TestItemMargins.qml | 102 + .../TestItemMarginsWithTextureSize.qml | 101 + .../qml/qmlshadersplugintest/TestLive.qml | 104 + .../qmlshadersplugintest/TestMeshResolution.qml | 108 + .../qml/qmlshadersplugintest/TestOneSource.qml | 74 + .../qml/qmlshadersplugintest/TestOpacity.qml | 98 + .../qml/qmlshadersplugintest/TestRotation.qml | 95 + .../qml/qmlshadersplugintest/TestScale.qml | 95 + .../qml/qmlshadersplugintest/TestTextureSize.qml | 85 + .../qmlshadersplugintest/TestTwiceOnSameSource.qml | 92 + .../qml/qmlshadersplugintest/TestTwoSources.qml | 95 + .../qml/qmlshadersplugintest/TestVertexShader.qml | 109 + .../qml/qmlshadersplugintest/TestVerticalWrap.qml | 92 + .../qml/qmlshadersplugintest/TestWrapRepeat.qml | 92 + .../qml/qmlshadersplugintest/back.svg | 11 + .../green_image_transparent.png | Bin 0 -> 1153 bytes .../qml/qmlshadersplugintest/image.png | Bin 0 -> 219220 bytes .../qml/qmlshadersplugintest/image_opaque.png | Bin 0 -> 293803 bytes .../qml/qmlshadersplugintest/image_small.png | Bin 0 -> 40220 bytes .../qml/qmlshadersplugintest/main.qml | 236 + .../qml/qmlshadersplugintest/wallpaper.jpg | Bin 0 -> 337569 bytes .../qmlapplicationviewer/qmlapplicationviewer.cpp | 168 + .../qmlapplicationviewer/qmlapplicationviewer.h | 69 + .../qmlapplicationviewer/qmlapplicationviewer.pri | 148 + .../qmlshadersplugin/qmlshadersplugin.pro | 29 + .../declarative/sys_calculator/sys_calculator.pro | 2 + .../declarative/sys_calculator/sys_calculator.qtt | 136 + tests/system/declarative/sys_dial/sys_dial.pro | 2 + tests/system/declarative/sys_dial/sys_dial.qtt | 53 + tests/system/declarative/sys_flickr/sys_flickr.pro | 2 + tests/system/declarative/sys_flickr/sys_flickr.qtt | 69 + .../declarative/sys_parallax/sys_parallax.pro | 2 + .../declarative/sys_parallax/sys_parallax.qtt | 59 + .../declarative/sys_pincharea/sys_pincharea.pro | 2 + .../declarative/sys_pincharea/sys_pincharea.qtt | 78 + tests/system/declarative/sys_rtl/sys_rtl.pro | 2 + tests/system/declarative/sys_rtl/sys_rtl.qtt | 100 + .../declarative/sys_samegame/sys_samegame.pro | 2 + .../declarative/sys_samegame/sys_samegame.qtt | 60 + .../declarative/sys_textedit/sys_textedit.pro | 2 + .../declarative/sys_textedit/sys_textedit.qtt | 116 + .../declarative/sys_textinput/sys_textinput.pro | 2 + .../declarative/sys_textinput/sys_textinput.qtt | 137 + .../system/declarative/sys_twitter/sys_twitter.pro | 2 + .../system/declarative/sys_twitter/sys_twitter.qtt | 59 + .../declarative/sys_webbrowser/sys_webbrowser.pro | 2 + .../declarative/sys_webbrowser/sys_webbrowser.qtt | 60 + tools/designer/src/plugins/plugins.pri | 8 + tools/designer/src/plugins/plugins.pro | 10 + .../plugins/qdeclarativeview/qdeclarativeview.pro | 13 + .../qdeclarativeview/qdeclarativeview_plugin.cpp | 132 + .../qdeclarativeview/qdeclarativeview_plugin.h | 74 + tools/qml/Info_mac.plist | 49 + tools/qml/browser/Browser.qml | 318 + tools/qml/browser/browser.qrc | 9 + tools/qml/browser/images/folder.png | Bin 0 -> 1841 bytes tools/qml/browser/images/titlebar.png | Bin 0 -> 1436 bytes tools/qml/browser/images/titlebar.sci | 5 + tools/qml/browser/images/up.png | Bin 0 -> 662 bytes tools/qml/deviceorientation.cpp | 80 + tools/qml/deviceorientation.h | 84 + tools/qml/deviceorientation_harmattan.cpp | 161 + tools/qml/deviceorientation_maemo5.cpp | 148 + tools/qml/deviceorientation_symbian.cpp | 192 + tools/qml/loggerwidget.cpp | 230 + tools/qml/loggerwidget.h | 101 + tools/qml/main.cpp | 606 + tools/qml/proxysettings.cpp | 113 + tools/qml/proxysettings.h | 75 + tools/qml/proxysettings.ui | 115 + tools/qml/proxysettings_maemo5.ui | 177 + tools/qml/qdeclarativetester.cpp | 453 + tools/qml/qdeclarativetester.h | 290 + tools/qml/qml.icns | Bin 0 -> 196156 bytes tools/qml/qml.pri | 50 + tools/qml/qml.pro | 54 + tools/qml/qmlruntime.cpp | 1554 ++ tools/qml/qmlruntime.h | 204 + tools/qml/recopts.ui | 513 + tools/qml/recopts_maemo5.ui | 254 + tools/qml/startup/Logo.qml | 179 + tools/qml/startup/qt-back.png | Bin 0 -> 3549 bytes tools/qml/startup/qt-blue.jpg | Bin 0 -> 20900 bytes tools/qml/startup/qt-front.png | Bin 0 -> 3318 bytes tools/qml/startup/qt-sketch.jpg | Bin 0 -> 17048 bytes tools/qml/startup/qt-text.png | Bin 0 -> 14565 bytes tools/qml/startup/quick-blur.png | Bin 0 -> 2826 bytes tools/qml/startup/quick-regular.png | Bin 0 -> 1399 bytes tools/qml/startup/shadow.png | Bin 0 -> 1592 bytes tools/qml/startup/startup.qml | 173 + tools/qml/startup/startup.qrc | 16 + tools/qml/startup/white-star.png | Bin 0 -> 2651 bytes tools/qml/texteditautoresizer_maemo5.h | 113 + 4911 files changed, 521662 insertions(+) create mode 100644 demos/declarative/calculator/calculator.desktop create mode 100644 demos/declarative/calculator/calculator.pro create mode 100644 demos/declarative/calculator/calculator.qmlproject create mode 100644 demos/declarative/calculator/calculator.svg create mode 100644 demos/declarative/calculator/calculator64.png create mode 100644 demos/declarative/calculator/calculator80.png create mode 100644 demos/declarative/calculator/calculator_harmattan.desktop create mode 100644 demos/declarative/calculator/main.cpp create mode 100644 demos/declarative/calculator/qml/calculator/CalculatorCore/Button.qml create mode 100644 demos/declarative/calculator/qml/calculator/CalculatorCore/Display.qml create mode 100644 demos/declarative/calculator/qml/calculator/CalculatorCore/calculator.js create mode 100644 demos/declarative/calculator/qml/calculator/CalculatorCore/images/button-.png create mode 100644 demos/declarative/calculator/qml/calculator/CalculatorCore/images/button-blue.png create mode 100644 demos/declarative/calculator/qml/calculator/CalculatorCore/images/button-green.png create mode 100644 demos/declarative/calculator/qml/calculator/CalculatorCore/images/button-purple.png create mode 100644 demos/declarative/calculator/qml/calculator/CalculatorCore/images/button-red.png create mode 100644 demos/declarative/calculator/qml/calculator/CalculatorCore/images/display.png create mode 100644 demos/declarative/calculator/qml/calculator/CalculatorCore/qmldir create mode 100644 demos/declarative/calculator/qml/calculator/calculator.qml create mode 100644 demos/declarative/declarative.pro create mode 100644 demos/declarative/demos.qmlproject create mode 100644 demos/declarative/flickr/flickr.desktop create mode 100644 demos/declarative/flickr/flickr.pro create mode 100644 demos/declarative/flickr/flickr.qmlproject create mode 100644 demos/declarative/flickr/flickr.svg create mode 100644 demos/declarative/flickr/flickr64.png create mode 100644 demos/declarative/flickr/flickr80.png create mode 100644 demos/declarative/flickr/flickr_harmattan.desktop create mode 100644 demos/declarative/flickr/main.cpp create mode 100644 demos/declarative/flickr/qml/flickr/common/Progress.qml create mode 100644 demos/declarative/flickr/qml/flickr/common/RssModel.qml create mode 100644 demos/declarative/flickr/qml/flickr/common/ScrollBar.qml create mode 100644 demos/declarative/flickr/qml/flickr/common/Slider.qml create mode 100644 demos/declarative/flickr/qml/flickr/common/qmldir create mode 100644 demos/declarative/flickr/qml/flickr/flickr-90.qml create mode 100644 demos/declarative/flickr/qml/flickr/flickr.qml create mode 100644 demos/declarative/flickr/qml/flickr/mobile/Button.qml create mode 100644 demos/declarative/flickr/qml/flickr/mobile/GridDelegate.qml create mode 100644 demos/declarative/flickr/qml/flickr/mobile/ImageDetails.qml create mode 100644 demos/declarative/flickr/qml/flickr/mobile/ListDelegate.qml create mode 100644 demos/declarative/flickr/qml/flickr/mobile/TitleBar.qml create mode 100644 demos/declarative/flickr/qml/flickr/mobile/ToolBar.qml create mode 100644 demos/declarative/flickr/qml/flickr/mobile/images/gloss.png create mode 100644 demos/declarative/flickr/qml/flickr/mobile/images/lineedit.png create mode 100644 demos/declarative/flickr/qml/flickr/mobile/images/lineedit.sci create mode 100644 demos/declarative/flickr/qml/flickr/mobile/images/quit.png create mode 100644 demos/declarative/flickr/qml/flickr/mobile/images/stripes.png create mode 100644 demos/declarative/flickr/qml/flickr/mobile/images/titlebar.png create mode 100644 demos/declarative/flickr/qml/flickr/mobile/images/titlebar.sci create mode 100644 demos/declarative/flickr/qml/flickr/mobile/images/toolbutton.png create mode 100644 demos/declarative/flickr/qml/flickr/mobile/images/toolbutton.sci create mode 100644 demos/declarative/minehunt/README create mode 100644 demos/declarative/minehunt/main.cpp create mode 100644 demos/declarative/minehunt/minehunt.cpp create mode 100644 demos/declarative/minehunt/minehunt.h create mode 100644 demos/declarative/minehunt/minehunt.pro create mode 100644 demos/declarative/minehunt/minehunt.qmlproject create mode 100644 demos/declarative/minehunt/minehunt.qrc create mode 100644 demos/declarative/minehunt/qml/minehunt/MinehuntCore/Explosion.qml create mode 100644 demos/declarative/minehunt/qml/minehunt/MinehuntCore/Tile.qml create mode 100644 demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/back.png create mode 100644 demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/background.png create mode 100644 demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/bomb-color.png create mode 100644 demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/bomb.png create mode 100644 demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/face-sad.png create mode 100644 demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/face-smile-big.png create mode 100644 demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/face-smile.png create mode 100644 demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/flag-color.png create mode 100644 demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/flag.png create mode 100644 demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/front.png create mode 100644 demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/quit.png create mode 100644 demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/star.png create mode 100644 demos/declarative/minehunt/qml/minehunt/minehunt.qml create mode 100644 demos/declarative/photoviewer/main.cpp create mode 100644 demos/declarative/photoviewer/photoviewer.desktop create mode 100644 demos/declarative/photoviewer/photoviewer.pro create mode 100644 demos/declarative/photoviewer/photoviewer.qmlproject create mode 100644 demos/declarative/photoviewer/photoviewer.svg create mode 100644 demos/declarative/photoviewer/photoviewer64.png create mode 100644 demos/declarative/photoviewer/photoviewer80.png create mode 100644 demos/declarative/photoviewer/photoviewer_harmattan.desktop create mode 100644 demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/AlbumDelegate.qml create mode 100644 demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/BusyIndicator.qml create mode 100644 demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/Button.qml create mode 100644 demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/EditableButton.qml create mode 100644 demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/PhotoDelegate.qml create mode 100644 demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/ProgressBar.qml create mode 100644 demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/RssModel.qml create mode 100644 demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/Tag.qml create mode 100644 demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/images/box-shadow.png create mode 100644 demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/images/busy.png create mode 100644 demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/images/cardboard.png create mode 100644 demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/qmldir create mode 100644 demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/script/script.js create mode 100644 demos/declarative/photoviewer/qml/photoviewer/i18n/base.ts create mode 100644 demos/declarative/photoviewer/qml/photoviewer/i18n/qml_fr.qm create mode 100644 demos/declarative/photoviewer/qml/photoviewer/i18n/qml_fr.ts create mode 100644 demos/declarative/photoviewer/qml/photoviewer/photoviewer.qml create mode 100644 demos/declarative/rssnews/main.cpp create mode 100644 demos/declarative/rssnews/qml/rssnews/content/BusyIndicator.qml create mode 100644 demos/declarative/rssnews/qml/rssnews/content/CategoryDelegate.qml create mode 100644 demos/declarative/rssnews/qml/rssnews/content/NewsDelegate.qml create mode 100644 demos/declarative/rssnews/qml/rssnews/content/RssFeeds.qml create mode 100644 demos/declarative/rssnews/qml/rssnews/content/ScrollBar.qml create mode 100644 demos/declarative/rssnews/qml/rssnews/content/images/busy.png create mode 100644 demos/declarative/rssnews/qml/rssnews/content/images/scrollbar.png create mode 100644 demos/declarative/rssnews/qml/rssnews/rssnews.qml create mode 100644 demos/declarative/rssnews/rssnews.desktop create mode 100644 demos/declarative/rssnews/rssnews.pro create mode 100644 demos/declarative/rssnews/rssnews.qmlproject create mode 100644 demos/declarative/rssnews/rssnews.svg create mode 100644 demos/declarative/rssnews/rssnews64.png create mode 100644 demos/declarative/rssnews/rssnews80.png create mode 100644 demos/declarative/rssnews/rssnews_harmattan.desktop create mode 100644 demos/declarative/samegame/main.cpp create mode 100644 demos/declarative/samegame/qml/samegame/SamegameCore/BoomBlock.qml create mode 100644 demos/declarative/samegame/qml/samegame/SamegameCore/Button.qml create mode 100644 demos/declarative/samegame/qml/samegame/SamegameCore/Dialog.qml create mode 100644 demos/declarative/samegame/qml/samegame/SamegameCore/pics/background.png create mode 100644 demos/declarative/samegame/qml/samegame/SamegameCore/pics/blueStar.png create mode 100644 demos/declarative/samegame/qml/samegame/SamegameCore/pics/blueStone.png create mode 100644 demos/declarative/samegame/qml/samegame/SamegameCore/pics/greenStar.png create mode 100644 demos/declarative/samegame/qml/samegame/SamegameCore/pics/greenStone.png create mode 100644 demos/declarative/samegame/qml/samegame/SamegameCore/pics/redStar.png create mode 100644 demos/declarative/samegame/qml/samegame/SamegameCore/pics/redStone.png create mode 100644 demos/declarative/samegame/qml/samegame/SamegameCore/pics/star.png create mode 100644 demos/declarative/samegame/qml/samegame/SamegameCore/pics/yellowStone.png create mode 100644 demos/declarative/samegame/qml/samegame/SamegameCore/qmldir create mode 100644 demos/declarative/samegame/qml/samegame/SamegameCore/samegame.js create mode 100644 demos/declarative/samegame/qml/samegame/highscores/README create mode 100644 demos/declarative/samegame/qml/samegame/highscores/score_data.xml create mode 100644 demos/declarative/samegame/qml/samegame/highscores/score_style.xsl create mode 100644 demos/declarative/samegame/qml/samegame/highscores/scores.php create mode 100644 demos/declarative/samegame/qml/samegame/samegame.qml create mode 100644 demos/declarative/samegame/samegame.desktop create mode 100644 demos/declarative/samegame/samegame.pro create mode 100644 demos/declarative/samegame/samegame.qmlproject create mode 100644 demos/declarative/samegame/samegame.svg create mode 100644 demos/declarative/samegame/samegame64.png create mode 100644 demos/declarative/samegame/samegame80.png create mode 100644 demos/declarative/samegame/samegame_harmattan.desktop create mode 100644 demos/declarative/snake/main.cpp create mode 100644 demos/declarative/snake/qml/snake/content/Button.qml create mode 100644 demos/declarative/snake/qml/snake/content/Cookie.qml create mode 100644 demos/declarative/snake/qml/snake/content/HighScoreModel.qml create mode 100644 demos/declarative/snake/qml/snake/content/Link.qml create mode 100644 demos/declarative/snake/qml/snake/content/Skull.qml create mode 100644 demos/declarative/snake/qml/snake/content/pics/README create mode 100644 demos/declarative/snake/qml/snake/content/pics/background.png create mode 100644 demos/declarative/snake/qml/snake/content/pics/blueStar.png create mode 100644 demos/declarative/snake/qml/snake/content/pics/blueStone.png create mode 100644 demos/declarative/snake/qml/snake/content/pics/cookie.png create mode 100644 demos/declarative/snake/qml/snake/content/pics/eyes.svg create mode 100644 demos/declarative/snake/qml/snake/content/pics/head.png create mode 100644 demos/declarative/snake/qml/snake/content/pics/head.svg create mode 100644 demos/declarative/snake/qml/snake/content/pics/pause.png create mode 100644 demos/declarative/snake/qml/snake/content/pics/redStar.png create mode 100644 demos/declarative/snake/qml/snake/content/pics/redStone.png create mode 100644 demos/declarative/snake/qml/snake/content/pics/skull.png create mode 100644 demos/declarative/snake/qml/snake/content/pics/snake.jpg create mode 100644 demos/declarative/snake/qml/snake/content/pics/star.png create mode 100644 demos/declarative/snake/qml/snake/content/pics/stoneShadow.png create mode 100644 demos/declarative/snake/qml/snake/content/pics/yellowStar.png create mode 100644 demos/declarative/snake/qml/snake/content/pics/yellowStone.png create mode 100644 demos/declarative/snake/qml/snake/content/snake.js create mode 100644 demos/declarative/snake/qml/snake/snake.qml create mode 100644 demos/declarative/snake/snake.desktop create mode 100644 demos/declarative/snake/snake.pro create mode 100644 demos/declarative/snake/snake.qmlproject create mode 100644 demos/declarative/snake/snake.svg create mode 100644 demos/declarative/snake/snake64.png create mode 100644 demos/declarative/snake/snake80.png create mode 100644 demos/declarative/snake/snake_harmattan.desktop create mode 100644 demos/declarative/twitter/main.cpp create mode 100644 demos/declarative/twitter/qml/twitter/TwitterCore/Button.qml create mode 100644 demos/declarative/twitter/qml/twitter/TwitterCore/FatDelegate.qml create mode 100644 demos/declarative/twitter/qml/twitter/TwitterCore/Input.qml create mode 100644 demos/declarative/twitter/qml/twitter/TwitterCore/Loading.qml create mode 100644 demos/declarative/twitter/qml/twitter/TwitterCore/MultiTitleBar.qml create mode 100644 demos/declarative/twitter/qml/twitter/TwitterCore/RssModel.qml create mode 100644 demos/declarative/twitter/qml/twitter/TwitterCore/SearchView.qml create mode 100644 demos/declarative/twitter/qml/twitter/TwitterCore/TitleBar.qml create mode 100644 demos/declarative/twitter/qml/twitter/TwitterCore/ToolBar.qml create mode 100644 demos/declarative/twitter/qml/twitter/TwitterCore/UserModel.qml create mode 100644 demos/declarative/twitter/qml/twitter/TwitterCore/images/gloss.png create mode 100644 demos/declarative/twitter/qml/twitter/TwitterCore/images/lineedit.png create mode 100644 demos/declarative/twitter/qml/twitter/TwitterCore/images/lineedit.sci create mode 100644 demos/declarative/twitter/qml/twitter/TwitterCore/images/loading.png create mode 100644 demos/declarative/twitter/qml/twitter/TwitterCore/images/quit.png create mode 100644 demos/declarative/twitter/qml/twitter/TwitterCore/images/stripes.png create mode 100644 demos/declarative/twitter/qml/twitter/TwitterCore/images/titlebar.png create mode 100644 demos/declarative/twitter/qml/twitter/TwitterCore/images/titlebar.sci create mode 100644 demos/declarative/twitter/qml/twitter/TwitterCore/images/toolbutton.png create mode 100644 demos/declarative/twitter/qml/twitter/TwitterCore/images/toolbutton.sci create mode 100644 demos/declarative/twitter/qml/twitter/TwitterCore/qmldir create mode 100644 demos/declarative/twitter/qml/twitter/twitter.qml create mode 100644 demos/declarative/twitter/twitter.desktop create mode 100644 demos/declarative/twitter/twitter.pro create mode 100644 demos/declarative/twitter/twitter.qmlproject create mode 100644 demos/declarative/twitter/twitter.svg create mode 100644 demos/declarative/twitter/twitter64.png create mode 100644 demos/declarative/twitter/twitter80.png create mode 100644 demos/declarative/twitter/twitter_harmattan.desktop create mode 100644 demos/declarative/webbrowser/main.cpp create mode 100644 demos/declarative/webbrowser/qml/webbrowser/content/Button.qml create mode 100644 demos/declarative/webbrowser/qml/webbrowser/content/FlickableWebView.qml create mode 100644 demos/declarative/webbrowser/qml/webbrowser/content/Header.qml create mode 100644 demos/declarative/webbrowser/qml/webbrowser/content/ScrollBar.qml create mode 100644 demos/declarative/webbrowser/qml/webbrowser/content/UrlInput.qml create mode 100644 demos/declarative/webbrowser/qml/webbrowser/content/pics/display.png create mode 100644 demos/declarative/webbrowser/qml/webbrowser/content/pics/edit-delete.png create mode 100644 demos/declarative/webbrowser/qml/webbrowser/content/pics/go-jump-locationbar.png create mode 100644 demos/declarative/webbrowser/qml/webbrowser/content/pics/go-next-view.png create mode 100644 demos/declarative/webbrowser/qml/webbrowser/content/pics/go-previous-view.png create mode 100644 demos/declarative/webbrowser/qml/webbrowser/content/pics/scrollbar.png create mode 100644 demos/declarative/webbrowser/qml/webbrowser/content/pics/titlebar-bg.png create mode 100644 demos/declarative/webbrowser/qml/webbrowser/content/pics/view-refresh.png create mode 100644 demos/declarative/webbrowser/qml/webbrowser/webbrowser.qml create mode 100644 demos/declarative/webbrowser/webbrowser.desktop create mode 100644 demos/declarative/webbrowser/webbrowser.pro create mode 100644 demos/declarative/webbrowser/webbrowser.qmlproject create mode 100644 demos/declarative/webbrowser/webbrowser.svg create mode 100644 demos/declarative/webbrowser/webbrowser64.png create mode 100644 demos/declarative/webbrowser/webbrowser80.png create mode 100644 demos/declarative/webbrowser/webbrowser_harmattan.desktop create mode 100644 demos/helper/helper.pro create mode 100644 demos/helper/qmlapplicationviewer/qmlapplicationviewer.cpp create mode 100644 demos/helper/qmlapplicationviewer/qmlapplicationviewer.h create mode 100644 demos/helper/qmlapplicationviewer/qmlapplicationviewer.pri create mode 100644 demos/mobile/guitartuner/guitartuner.pro create mode 100644 demos/mobile/guitartuner/guitartuner.qrc create mode 100644 demos/mobile/guitartuner/images/guitartab.svg create mode 100644 demos/mobile/guitartuner/images/guitartuner_icon.svg create mode 100644 demos/mobile/guitartuner/images/inputMode.svg create mode 100644 demos/mobile/guitartuner/images/note.svg create mode 100644 demos/mobile/guitartuner/images/noteNo.svg create mode 100644 demos/mobile/guitartuner/src/application.qml create mode 100644 demos/mobile/guitartuner/src/constants.h create mode 100644 demos/mobile/guitartuner/src/fastfouriertransformer.cpp create mode 100644 demos/mobile/guitartuner/src/fastfouriertransformer.h create mode 100644 demos/mobile/guitartuner/src/fftpack.c create mode 100644 demos/mobile/guitartuner/src/guitartuner.cpp create mode 100644 demos/mobile/guitartuner/src/guitartuner.h create mode 100644 demos/mobile/guitartuner/src/guitartuner.rc create mode 100644 demos/mobile/guitartuner/src/guitartuner.ui create mode 100644 demos/mobile/guitartuner/src/guitartunerui.cpp create mode 100644 demos/mobile/guitartuner/src/guitartunerui.h create mode 100644 demos/mobile/guitartuner/src/guitartunerui.ui create mode 100644 demos/mobile/guitartuner/src/main.cpp create mode 100644 demos/mobile/guitartuner/src/mycomponents/Adjuster.qml create mode 100644 demos/mobile/guitartuner/src/mycomponents/Meter.qml create mode 100644 demos/mobile/guitartuner/src/mycomponents/NoteButtonView.qml create mode 100644 demos/mobile/guitartuner/src/mycomponents/NotesModel.qml create mode 100644 demos/mobile/guitartuner/src/mycomponents/ToggleButton.qml create mode 100644 demos/mobile/guitartuner/src/mycomponents/adjustbars.js create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/big_a.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/big_b.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/big_d.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/big_e.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/big_g.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/glowing_a.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/glowing_b.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/glowing_d.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/glowing_e.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/glowing_g.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/guitartuner_malli.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/guitartuner_skin.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/lcdFrame.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/meterBG.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/mute.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/pointer.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/pointerShadow.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/power.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/quit.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/sensitivity.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/tuner_a.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/tuner_a_on.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/tuner_auto.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/tuner_auto_on.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/tuner_b.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/tuner_b_on.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/tuner_d.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/tuner_d_on.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/tuner_e.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/tuner_e_on.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/tuner_g.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/tuner_g_on.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/voicemode_off.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/voicemode_on.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/volume.png create mode 100644 demos/mobile/guitartuner/src/mycomponents/images/volume_off.png create mode 100644 demos/mobile/guitartuner/src/voiceanalyzer.cpp create mode 100644 demos/mobile/guitartuner/src/voiceanalyzer.h create mode 100644 demos/mobile/guitartuner/src/voicegenerator.cpp create mode 100644 demos/mobile/guitartuner/src/voicegenerator.h create mode 100644 demos/mobile/qtbubblelevel/accelerometerfilter.cpp create mode 100644 demos/mobile/qtbubblelevel/accelerometerfilter.h create mode 100644 demos/mobile/qtbubblelevel/debian/changelog create mode 100644 demos/mobile/qtbubblelevel/debian/compat create mode 100644 demos/mobile/qtbubblelevel/debian/control create mode 100644 demos/mobile/qtbubblelevel/debian/copyright create mode 100644 demos/mobile/qtbubblelevel/debian/dirs create mode 100644 demos/mobile/qtbubblelevel/debian/files create mode 100644 demos/mobile/qtbubblelevel/debian/postinst create mode 100644 demos/mobile/qtbubblelevel/debian/rules create mode 100644 demos/mobile/qtbubblelevel/icons/26x26/qtbubblelevel.png create mode 100644 demos/mobile/qtbubblelevel/icons/40x40/qtbubblelevel.png create mode 100644 demos/mobile/qtbubblelevel/icons/64x64/qtbubblelevel.png create mode 100644 demos/mobile/qtbubblelevel/icons/bubblelevel.svg create mode 100644 demos/mobile/qtbubblelevel/icons/qtbl_icon.png create mode 100644 demos/mobile/qtbubblelevel/icons/xpm/qtbubblelevel.xpm create mode 100644 demos/mobile/qtbubblelevel/main.cpp create mode 100644 demos/mobile/qtbubblelevel/qml/BubbleLevel.qml create mode 100644 demos/mobile/qtbubblelevel/qml/Button.qml create mode 100644 demos/mobile/qtbubblelevel/qml/Tube.qml create mode 100644 demos/mobile/qtbubblelevel/qml/images/board.png create mode 100644 demos/mobile/qtbubblelevel/qml/images/bubble.png create mode 100644 demos/mobile/qtbubblelevel/qml/images/calibbutton.png create mode 100644 demos/mobile/qtbubblelevel/qml/images/exit.png create mode 100644 demos/mobile/qtbubblelevel/qml/images/reflection.png create mode 100644 demos/mobile/qtbubblelevel/qml/images/scale.png create mode 100644 demos/mobile/qtbubblelevel/qml/images/signblank.png create mode 100644 demos/mobile/qtbubblelevel/qml/images/signwithtext.png create mode 100644 demos/mobile/qtbubblelevel/qml/images/taskswitcher.png create mode 100644 demos/mobile/qtbubblelevel/qtbubblelevel.pro create mode 100644 demos/mobile/qtbubblelevel/resources.qrc create mode 100644 demos/mobile/qtbubblelevel/settings.h create mode 100644 demos/mobile/qtbubblelevel/taskswitcher.cpp create mode 100644 demos/mobile/qtbubblelevel/taskswitcher.h create mode 100644 demos/mobile/quickhit/Button.qml create mode 100644 demos/mobile/quickhit/Game.js create mode 100644 demos/mobile/quickhit/Game.qml create mode 100644 demos/mobile/quickhit/InvSounds.cpp create mode 100644 demos/mobile/quickhit/InvSounds.h create mode 100644 demos/mobile/quickhit/Menu.qml create mode 100644 demos/mobile/quickhit/MenuItem.qml create mode 100644 demos/mobile/quickhit/Message.qml create mode 100644 demos/mobile/quickhit/Missile.qml create mode 100644 demos/mobile/quickhit/MyShip.qml create mode 100644 demos/mobile/quickhit/debian/changelog create mode 100644 demos/mobile/quickhit/debian/compat create mode 100644 demos/mobile/quickhit/debian/control create mode 100644 demos/mobile/quickhit/debian/copyright create mode 100644 demos/mobile/quickhit/debian/dirs create mode 100644 demos/mobile/quickhit/debian/postinst create mode 100644 demos/mobile/quickhit/debian/rules create mode 100644 demos/mobile/quickhit/freesound.org.licence.txt create mode 100644 demos/mobile/quickhit/ga_src/GEAudioBuffer.cpp create mode 100644 demos/mobile/quickhit/ga_src/GEAudioBuffer.h create mode 100644 demos/mobile/quickhit/ga_src/GEAudioOut.cpp create mode 100644 demos/mobile/quickhit/ga_src/GEAudioOut.h create mode 100644 demos/mobile/quickhit/ga_src/GEInterfaces.cpp create mode 100644 demos/mobile/quickhit/ga_src/GEInterfaces.h create mode 100644 demos/mobile/quickhit/gameengine.cpp create mode 100644 demos/mobile/quickhit/gameengine.h create mode 100644 demos/mobile/quickhit/gfx/back.png create mode 100644 demos/mobile/quickhit/gfx/background2.png create mode 100644 demos/mobile/quickhit/gfx/bigship.png create mode 100644 demos/mobile/quickhit/gfx/exit.png create mode 100644 demos/mobile/quickhit/gfx/pause.png create mode 100644 demos/mobile/quickhit/gfx/quickhit_logo.png create mode 100644 demos/mobile/quickhit/gfx/soundOff.png create mode 100644 demos/mobile/quickhit/gfx/soundOn.png create mode 100644 demos/mobile/quickhit/icon.svg create mode 100644 demos/mobile/quickhit/main.cpp create mode 100644 demos/mobile/quickhit/mainwindow.cpp create mode 100644 demos/mobile/quickhit/mainwindow.h create mode 100644 demos/mobile/quickhit/myeventfilter.cpp create mode 100644 demos/mobile/quickhit/myeventfilter.h create mode 100644 demos/mobile/quickhit/plugins/LevelOne/Level.qml create mode 100644 demos/mobile/quickhit/plugins/LevelOne/debian/changelog create mode 100644 demos/mobile/quickhit/plugins/LevelOne/debian/compat create mode 100644 demos/mobile/quickhit/plugins/LevelOne/debian/control create mode 100644 demos/mobile/quickhit/plugins/LevelOne/debian/copyright create mode 100644 demos/mobile/quickhit/plugins/LevelOne/debian/dirs create mode 100644 demos/mobile/quickhit/plugins/LevelOne/debian/postinst create mode 100644 demos/mobile/quickhit/plugins/LevelOne/debian/rules create mode 100644 demos/mobile/quickhit/plugins/LevelOne/gfx/background3.png create mode 100644 demos/mobile/quickhit/plugins/LevelOne/gfx/enemy1.png create mode 100644 demos/mobile/quickhit/plugins/LevelOne/gfx/enemy2.png create mode 100644 demos/mobile/quickhit/plugins/LevelOne/gfx/enemy_missile2.png create mode 100644 demos/mobile/quickhit/plugins/LevelOne/gfx/fire.png create mode 100644 demos/mobile/quickhit/plugins/LevelOne/gfx/fire2.png create mode 100644 demos/mobile/quickhit/plugins/LevelOne/gfx/missile2.png create mode 100644 demos/mobile/quickhit/plugins/LevelOne/gfx/red_fire.png create mode 100644 demos/mobile/quickhit/plugins/LevelOne/gfx/ship.png create mode 100644 demos/mobile/quickhit/plugins/LevelOne/gfx/star3.png create mode 100644 demos/mobile/quickhit/plugins/LevelOne/gfx/transparent.png create mode 100644 demos/mobile/quickhit/plugins/LevelOne/levelone.cpp create mode 100644 demos/mobile/quickhit/plugins/LevelOne/levelone.h create mode 100644 demos/mobile/quickhit/plugins/LevelOne/levelone.pro create mode 100644 demos/mobile/quickhit/plugins/LevelOne/sound/crash.wav create mode 100644 demos/mobile/quickhit/plugins/LevelOne/sound/levelonestart.wav create mode 100644 demos/mobile/quickhit/plugins/LevelOne/sound/rocket.wav create mode 100644 demos/mobile/quickhit/plugins/LevelOne/sound/rocket_explosion.wav create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/debian/changelog create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/debian/compat create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/debian/control create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/debian/copyright create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/debian/dirs create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/debian/levelone.tarlist create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/debian/postinst create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/debian/rules create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/gfx/blue_fire.png create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/gfx/enemy1.png create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/gfx/enemy2.png create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/gfx/enemy_missile2.png create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/gfx/missile2.png create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/gfx/ship.png create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/gfx/transparent.png create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/leveltemplate.cpp create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/leveltemplate.h create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/leveltemplate.pro create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/qml/Enemy.qml create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/qml/Level.js create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/qml/Level.qml create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/sound/crash.wav create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/sound/enableship.wav create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/sound/enemy_explosion.wav create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/sound/laser.wav create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/sound/level2.wav create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/sound/myship_explosion.wav create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/sound/rocket.wav create mode 100644 demos/mobile/quickhit/plugins/LevelTemplate/sound/rocket_explosion.wav create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/debian/changelog create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/debian/compat create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/debian/control create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/debian/copyright create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/debian/dirs create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/debian/levelone.tarlist create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/debian/postinst create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/debian/rules create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/gfx/background2.png create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/gfx/background_loop.png create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/gfx/blue_fire.png create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/gfx/enemy1.png create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/gfx/enemy_missile2.png create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/gfx/fire.png create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/gfx/fire2.png create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/gfx/missile.png create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/gfx/missile2.png create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/gfx/ship.png create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/gfx/star3.png create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/gfx/transparent.png create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/leveltwo.cpp create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/leveltwo.h create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/leveltwo.pro create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/qml/Enemy.qml create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/qml/Level.js create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/qml/Level.qml create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/sound/crash.wav create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/sound/enableship.wav create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/sound/enemy_explosion.wav create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/sound/laser.wav create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/sound/level2.wav create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/sound/myship_explosion.wav create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/sound/rocket.wav create mode 100644 demos/mobile/quickhit/plugins/LevelTwo/sound/rocket_explosion.wav create mode 100644 demos/mobile/quickhit/plugins/levelplugininterface.h create mode 100644 demos/mobile/quickhit/quickhit.png create mode 100644 demos/mobile/quickhit/quickhit.pro create mode 100644 demos/mobile/quickhit/resources.qrc create mode 100644 demos/mobile/quickhit/sound/gameover.wav create mode 100644 demos/mobile/quickhit/sound/gamestart.wav create mode 100644 demos/mobile/quickhit/sound/menu1.wav create mode 100644 demos/mobile/quickhit/sound/menu2.wav create mode 100644 demos/mobile/quickhit/sound/youwin.wav create mode 100644 demos/symbianpkgrules.pri create mode 100644 doc/src/declarative/advtutorial.qdoc create mode 100644 doc/src/declarative/anchor-layout.qdoc create mode 100644 doc/src/declarative/animation.qdoc create mode 100644 doc/src/declarative/basicelements.qdoc create mode 100644 doc/src/declarative/basictypes.qdoc create mode 100644 doc/src/declarative/behaviors-and-states.qdoc create mode 100644 doc/src/declarative/codingconventions.qdoc create mode 100644 doc/src/declarative/declarativeui.qdoc create mode 100644 doc/src/declarative/dynamicobjects.qdoc create mode 100644 doc/src/declarative/elements.qdoc create mode 100644 doc/src/declarative/example-slideswitch.qdoc create mode 100644 doc/src/declarative/examples.qdoc create mode 100644 doc/src/declarative/extending-tutorial.qdoc create mode 100644 doc/src/declarative/extending.qdoc create mode 100644 doc/src/declarative/focus.qdoc create mode 100644 doc/src/declarative/globalobject.qdoc create mode 100644 doc/src/declarative/integrating.qdoc create mode 100644 doc/src/declarative/javascriptblocks.qdoc create mode 100644 doc/src/declarative/modules.qdoc create mode 100644 doc/src/declarative/mouseevents.qdoc create mode 100644 doc/src/declarative/network.qdoc create mode 100644 doc/src/declarative/pics/3d-axis.png create mode 100644 doc/src/declarative/pics/3d-rotation-axis.png create mode 100644 doc/src/declarative/pics/BorderImage.png create mode 100644 doc/src/declarative/pics/ListViewHighlight.png create mode 100644 doc/src/declarative/pics/ListViewHorizontal.png create mode 100644 doc/src/declarative/pics/ListViewVertical.png create mode 100644 doc/src/declarative/pics/anatomy-component.png create mode 100644 doc/src/declarative/pics/anchorchanges.png create mode 100644 doc/src/declarative/pics/anchors.svg create mode 100644 doc/src/declarative/pics/animatedimageitem.gif create mode 100644 doc/src/declarative/pics/axisrotation.png create mode 100644 doc/src/declarative/pics/blur_example.png create mode 100644 doc/src/declarative/pics/content.png create mode 100644 doc/src/declarative/pics/declarative-adv-tutorial1.png create mode 100644 doc/src/declarative/pics/declarative-adv-tutorial2.png create mode 100644 doc/src/declarative/pics/declarative-adv-tutorial3.png create mode 100644 doc/src/declarative/pics/declarative-adv-tutorial4.gif create mode 100644 doc/src/declarative/pics/declarative-qmlfocus1.png create mode 100644 doc/src/declarative/pics/declarative-qmlfocus2.png create mode 100644 doc/src/declarative/pics/declarative-qmlfocus3.png create mode 100644 doc/src/declarative/pics/declarative-qmlfocus4.png create mode 100644 doc/src/declarative/pics/dial-example.gif create mode 100644 doc/src/declarative/pics/edge1.png create mode 100644 doc/src/declarative/pics/edge2.png create mode 100644 doc/src/declarative/pics/edge3.png create mode 100644 doc/src/declarative/pics/edge4.png create mode 100644 doc/src/declarative/pics/edges.png create mode 100644 doc/src/declarative/pics/edges.svg create mode 100644 doc/src/declarative/pics/edges_examples.svg create mode 100644 doc/src/declarative/pics/edges_qml.png create mode 100644 doc/src/declarative/pics/edges_qml.svg create mode 100644 doc/src/declarative/pics/extending-tutorial-chapter1.png create mode 100644 doc/src/declarative/pics/extending-tutorial-chapter2.png create mode 100644 doc/src/declarative/pics/extending-tutorial-chapter3.png create mode 100644 doc/src/declarative/pics/extending-tutorial-chapter5.png create mode 100644 doc/src/declarative/pics/flickable.gif create mode 100644 doc/src/declarative/pics/flipable.gif create mode 100644 doc/src/declarative/pics/gridLayout_example.png create mode 100644 doc/src/declarative/pics/gridview-highlight.png create mode 100644 doc/src/declarative/pics/gridview-simple.png create mode 100644 doc/src/declarative/pics/highlight.gif create mode 100644 doc/src/declarative/pics/horizontalpositioner_example.png create mode 100644 doc/src/declarative/pics/imageprovider.png create mode 100644 doc/src/declarative/pics/layoutmirroring.png create mode 100644 doc/src/declarative/pics/listmodel-nested.png create mode 100644 doc/src/declarative/pics/listmodel.png create mode 100644 doc/src/declarative/pics/listview-highlight.png create mode 100644 doc/src/declarative/pics/listview-simple.png create mode 100644 doc/src/declarative/pics/margins_qml.png create mode 100644 doc/src/declarative/pics/margins_qml.svg create mode 100644 doc/src/declarative/pics/parentchange.png create mode 100644 doc/src/declarative/pics/particles.gif create mode 100644 doc/src/declarative/pics/pathview.gif create mode 100644 doc/src/declarative/pics/positioner-add.gif create mode 100644 doc/src/declarative/pics/positioner-move.gif create mode 100644 doc/src/declarative/pics/positioner-remove.gif create mode 100644 doc/src/declarative/pics/propanim.gif create mode 100644 doc/src/declarative/pics/qml-context-object.png create mode 100644 doc/src/declarative/pics/qml-context-tree.png create mode 100644 doc/src/declarative/pics/qml-context.png create mode 100644 doc/src/declarative/pics/qml-extending-types.png create mode 100644 doc/src/declarative/pics/qml-gradient.png create mode 100644 doc/src/declarative/pics/qml-scope.png create mode 100644 doc/src/declarative/pics/qtlogo.png create mode 100644 doc/src/declarative/pics/rect-border-width.png create mode 100644 doc/src/declarative/pics/rect-color.png create mode 100644 doc/src/declarative/pics/rect-smooth.png create mode 100644 doc/src/declarative/pics/reflection_example.png create mode 100644 doc/src/declarative/pics/repeater-index.png create mode 100644 doc/src/declarative/pics/repeater-modeldata.png create mode 100644 doc/src/declarative/pics/repeater-simple.png create mode 100644 doc/src/declarative/pics/repeater.png create mode 100644 doc/src/declarative/pics/scalegrid.svg create mode 100644 doc/src/declarative/pics/shaderexample.png create mode 100644 doc/src/declarative/pics/shadow_example.png create mode 100644 doc/src/declarative/pics/squish-transform.png create mode 100644 doc/src/declarative/pics/squish.png create mode 100644 doc/src/declarative/pics/switch-example.gif create mode 100644 doc/src/declarative/pics/translate.png create mode 100644 doc/src/declarative/pics/verticalpositioner_example.png create mode 100644 doc/src/declarative/pics/verticalpositioner_transition.gif create mode 100644 doc/src/declarative/pics/visualitemmodel.png create mode 100644 doc/src/declarative/pics/webview.png create mode 100644 doc/src/declarative/positioners.qdoc create mode 100644 doc/src/declarative/propertybinding.qdoc create mode 100644 doc/src/declarative/qdeclarativedebugging.qdoc create mode 100644 doc/src/declarative/qdeclarativedocument.qdoc create mode 100644 doc/src/declarative/qdeclarativei18n.qdoc create mode 100644 doc/src/declarative/qdeclarativeintro.qdoc create mode 100644 doc/src/declarative/qdeclarativemodels.qdoc create mode 100644 doc/src/declarative/qdeclarativeperformance.qdoc create mode 100644 doc/src/declarative/qdeclarativesecurity.qdoc create mode 100644 doc/src/declarative/qdeclarativestates.qdoc create mode 100644 doc/src/declarative/qmlevents.qdoc create mode 100644 doc/src/declarative/qmlinuse.qdoc create mode 100644 doc/src/declarative/qmlreusablecomponents.qdoc create mode 100644 doc/src/declarative/qmlruntime.qdoc create mode 100644 doc/src/declarative/qmlsyntax.qdoc create mode 100644 doc/src/declarative/qmltexthandling.qdoc create mode 100644 doc/src/declarative/qmlviewer.qdoc create mode 100644 doc/src/declarative/qmlviews.qdoc create mode 100644 doc/src/declarative/qmlwebkit.qdoc create mode 100644 doc/src/declarative/qtbinding.qdoc create mode 100644 doc/src/declarative/qtdeclarative.qdoc create mode 100644 doc/src/declarative/qtprogrammers.qdoc create mode 100644 doc/src/declarative/qtquick-intro.qdoc create mode 100644 doc/src/declarative/righttoleft.qdoc create mode 100644 doc/src/declarative/scope.qdoc create mode 100644 doc/src/declarative/tutorial.qdoc create mode 100644 doc/src/declarative/whatsnew.qdoc create mode 100644 doc/src/demos/qml-qtbubblelevel.qdoc create mode 100644 doc/src/examples/qml-calculator.qdoc create mode 100644 doc/src/examples/qml-examples.qdoc create mode 100644 doc/src/examples/qml-extending.qdoc create mode 100644 doc/src/examples/qml-flickr.qdoc create mode 100644 doc/src/examples/qml-folderlistmodel.qdoc create mode 100644 doc/src/examples/qml-minehunt.qdoc create mode 100644 doc/src/examples/qml-photoviewer.qdoc create mode 100644 doc/src/examples/qml-rssnews.qdoc create mode 100644 doc/src/examples/qml-samegame.qdoc create mode 100644 doc/src/examples/qml-snake.qdoc create mode 100644 doc/src/examples/qml-twitter.qdoc create mode 100644 doc/src/examples/qml-webbrowser.qdoc create mode 100644 doc/src/getting-started/gettingstartedqml.qdoc create mode 100644 doc/src/howtos/qmlbestpractices/qmlbestpractices-coding.qdoc create mode 100644 doc/src/howtos/qmlbestpractices/qmlbestpractices-datatypes.qdoc create mode 100644 doc/src/images/declarative-anchors_example.png create mode 100644 doc/src/images/declarative-anchors_example2.png create mode 100644 doc/src/images/declarative-colors.png create mode 100644 doc/src/images/declarative-examples.png create mode 100644 doc/src/images/declarative-folderlistmodel.png create mode 100644 doc/src/images/declarative-image_tile.png create mode 100644 doc/src/images/declarative-item_opacity1.png create mode 100644 doc/src/images/declarative-item_opacity2.png create mode 100644 doc/src/images/declarative-item_stacking1.png create mode 100644 doc/src/images/declarative-item_stacking2.png create mode 100644 doc/src/images/declarative-item_stacking3.png create mode 100644 doc/src/images/declarative-item_stacking4.png create mode 100644 doc/src/images/declarative-nopercent.png create mode 100644 doc/src/images/declarative-pathattribute.png create mode 100644 doc/src/images/declarative-pathcubic.png create mode 100644 doc/src/images/declarative-pathquad.png create mode 100644 doc/src/images/declarative-percent.png create mode 100644 doc/src/images/declarative-qmlfocus1.png create mode 100644 doc/src/images/declarative-qmlfocus2.png create mode 100644 doc/src/images/declarative-qmlfocus3.png create mode 100644 doc/src/images/declarative-qmlfocus4.png create mode 100644 doc/src/images/declarative-qmlfocus5.png create mode 100644 doc/src/images/declarative-qtlogo-preserveaspectcrop.png create mode 100644 doc/src/images/declarative-qtlogo-preserveaspectfit.png create mode 100644 doc/src/images/declarative-qtlogo-stretch.png create mode 100644 doc/src/images/declarative-qtlogo-tile.png create mode 100644 doc/src/images/declarative-qtlogo-tilehorizontally.png create mode 100644 doc/src/images/declarative-qtlogo-tilevertically.png create mode 100644 doc/src/images/declarative-qtlogo.png create mode 100644 doc/src/images/declarative-rect.png create mode 100644 doc/src/images/declarative-rect_gradient.png create mode 100644 doc/src/images/declarative-rect_tint.png create mode 100644 doc/src/images/declarative-removebutton-close.png create mode 100644 doc/src/images/declarative-removebutton-open.png create mode 100644 doc/src/images/declarative-removebutton.gif create mode 100644 doc/src/images/declarative-removebutton.png create mode 100644 doc/src/images/declarative-reuse-1.png create mode 100644 doc/src/images/declarative-reuse-2.png create mode 100644 doc/src/images/declarative-reuse-3.png create mode 100644 doc/src/images/declarative-reuse-bluerect.png create mode 100644 doc/src/images/declarative-reuse-focus.png create mode 100644 doc/src/images/declarative-rotation.png create mode 100644 doc/src/images/declarative-roundrect.png create mode 100644 doc/src/images/declarative-samegame.png create mode 100644 doc/src/images/declarative-scale.png create mode 100644 doc/src/images/declarative-scalegrid.png create mode 100644 doc/src/images/declarative-text.png create mode 100644 doc/src/images/declarative-textedit.gif create mode 100644 doc/src/images/declarative-textformat.png create mode 100644 doc/src/images/declarative-textstyle.png create mode 100644 doc/src/images/declarative-transformorigin.png create mode 100644 doc/src/images/declarative-tutorial-list-closed.png create mode 100644 doc/src/images/declarative-tutorial-list-open.png create mode 100644 doc/src/images/declarative-tutorial-list.png create mode 100644 doc/src/images/declarative-tutorial1.png create mode 100644 doc/src/images/declarative-tutorial2.png create mode 100644 doc/src/images/declarative-tutorial3.gif create mode 100644 doc/src/images/declarative-tutorial3_animation.gif create mode 100644 doc/src/images/qml-abstractitemmodel-example.png create mode 100644 doc/src/images/qml-behaviors-example.png create mode 100644 doc/src/images/qml-borderimage-example.png create mode 100644 doc/src/images/qml-borderimage-normal-image.png create mode 100644 doc/src/images/qml-borderimage-scaled.png create mode 100644 doc/src/images/qml-borderimage-shadows-example.png create mode 100644 doc/src/images/qml-borderimage-tiled.png create mode 100644 doc/src/images/qml-calculator-example-small.png create mode 100644 doc/src/images/qml-calculator-example.png create mode 100644 doc/src/images/qml-clocks-example.png create mode 100644 doc/src/images/qml-coloranim-example.png create mode 100644 doc/src/images/qml-column.png create mode 100644 doc/src/images/qml-corkboards-example.png create mode 100644 doc/src/images/qml-dialcontrol-example.png create mode 100644 doc/src/images/qml-dynamicscene-example.png create mode 100644 doc/src/images/qml-easing-example.png create mode 100644 doc/src/images/qml-flickr-demo-small.png create mode 100644 doc/src/images/qml-flickr-demo.png create mode 100644 doc/src/images/qml-flipable-example.png create mode 100644 doc/src/images/qml-flow-snippet.png create mode 100644 doc/src/images/qml-flow-text1.png create mode 100644 doc/src/images/qml-flow-text2.png create mode 100644 doc/src/images/qml-focus-example.png create mode 100644 doc/src/images/qml-fonts-availableFonts-example.png create mode 100644 doc/src/images/qml-fonts-banner-example.png create mode 100644 doc/src/images/qml-fonts-fonts-example.png create mode 100644 doc/src/images/qml-fonts-hello-example.png create mode 100644 doc/src/images/qml-grid-no-spacing.png create mode 100644 doc/src/images/qml-grid-spacing.png create mode 100644 doc/src/images/qml-gridview-example.png create mode 100644 doc/src/images/qml-guitartuner-example.png create mode 100644 doc/src/images/qml-i18n-example.png create mode 100644 doc/src/images/qml-image-example.png create mode 100644 doc/src/images/qml-imageprovider-example.png create mode 100644 doc/src/images/qml-layoutitem-example.png create mode 100644 doc/src/images/qml-listview-dynamiclist-example.png create mode 100644 doc/src/images/qml-listview-expandingdelegates-example.png create mode 100644 doc/src/images/qml-listview-highlight-example.png create mode 100644 doc/src/images/qml-listview-highlightranges-example.png create mode 100644 doc/src/images/qml-listview-sections-example.png create mode 100644 doc/src/images/qml-listview-snippet.png create mode 100644 doc/src/images/qml-minehunt-demo-small.png create mode 100644 doc/src/images/qml-minehunt-demo.png create mode 100644 doc/src/images/qml-mousearea-example.png create mode 100644 doc/src/images/qml-mousearea-snippet.png create mode 100644 doc/src/images/qml-objectlistmodel-example.png create mode 100644 doc/src/images/qml-package-example.png create mode 100644 doc/src/images/qml-parallax-example.png create mode 100644 doc/src/images/qml-pathview-example.png create mode 100644 doc/src/images/qml-photoviewer-demo-small.png create mode 100644 doc/src/images/qml-photoviewer-demo.png create mode 100644 doc/src/images/qml-plugins-example.png create mode 100644 doc/src/images/qml-positioners-example.png create mode 100644 doc/src/images/qml-positioners-layoutdirection-example.png create mode 100644 doc/src/images/qml-progressbar-example.png create mode 100644 doc/src/images/qml-propertyanim-example.png create mode 100644 doc/src/images/qml-qgraphicsgridlayout-example.png create mode 100644 doc/src/images/qml-qgraphicslinearlayout-example.png create mode 100644 doc/src/images/qml-qtbubblelevel-demo.png create mode 100644 doc/src/images/qml-qwidgets-example.png create mode 100644 doc/src/images/qml-repeater-grid-index.png create mode 100644 doc/src/images/qml-righttoleft-layoutdirection-example.png create mode 100644 doc/src/images/qml-righttoleft-layoutmirroring-example.png create mode 100644 doc/src/images/qml-row.png create mode 100644 doc/src/images/qml-rssnews-demo-small.png create mode 100644 doc/src/images/qml-rssnews-demo.png create mode 100644 doc/src/images/qml-samegame-demo-small.png create mode 100644 doc/src/images/qml-samegame-demo.png create mode 100644 doc/src/images/qml-scrollbar-example.png create mode 100644 doc/src/images/qml-searchbox-example.png create mode 100644 doc/src/images/qml-shadereffects-example.png create mode 100644 doc/src/images/qml-slideswitch-example.png create mode 100644 doc/src/images/qml-snake-demo-small.png create mode 100644 doc/src/images/qml-snake-demo.png create mode 100644 doc/src/images/qml-spinner-example.png create mode 100644 doc/src/images/qml-states-example.png create mode 100644 doc/src/images/qml-stringlistmodel-example.png create mode 100644 doc/src/images/qml-tabwidget-example.png create mode 100644 doc/src/images/qml-texteditor1_button.png create mode 100644 doc/src/images/qml-texteditor1_editmenu.png create mode 100644 doc/src/images/qml-texteditor1_filemenu.png create mode 100644 doc/src/images/qml-texteditor1_simplebutton.png create mode 100644 doc/src/images/qml-texteditor2_menubar.png create mode 100644 doc/src/images/qml-texteditor3_textarea.png create mode 100644 doc/src/images/qml-texteditor3_texteditor.png create mode 100644 doc/src/images/qml-texteditor4_texteditor.png create mode 100644 doc/src/images/qml-texteditor5_editmenu.png create mode 100644 doc/src/images/qml-texteditor5_filemenu.png create mode 100644 doc/src/images/qml-texteditor5_newfile.png create mode 100644 doc/src/images/qml-textselection-example.png create mode 100644 doc/src/images/qml-tic-tac-toe-example.png create mode 100644 doc/src/images/qml-transitions-example.png create mode 100644 doc/src/images/qml-tvtennis-example.png create mode 100644 doc/src/images/qml-twitter-demo-small.png create mode 100644 doc/src/images/qml-twitter-demo.png create mode 100644 doc/src/images/qml-visualitemmodel-example.png create mode 100644 doc/src/images/qml-webbrowser-demo-small.png create mode 100644 doc/src/images/qml-webbrowser-demo.png create mode 100644 doc/src/images/qml-webview-alert-example.png create mode 100644 doc/src/images/qml-webview-autosize-example.png create mode 100644 doc/src/images/qml-webview-googlemaps-example.png create mode 100644 doc/src/images/qml-webview-inlinehtml-example.png create mode 100644 doc/src/images/qml-webview-newwindows-example.png create mode 100644 doc/src/images/qml-xmlhttprequest-example.png create mode 100644 doc/src/images/qml-xmllistmodel-example.png create mode 100644 doc/src/images/qml.png create mode 100644 doc/src/images/qmldesigner-visual-editor.png create mode 100644 doc/src/images/quick_screens.png create mode 100644 doc/src/legal/qtquicklicense.qdoc create mode 100644 doc/src/snippets/declarative/Button.qml create mode 100644 doc/src/snippets/declarative/SelfDestroyingRect.qml create mode 100644 doc/src/snippets/declarative/Sprite.qml create mode 100644 doc/src/snippets/declarative/anchoranimation.qml create mode 100644 doc/src/snippets/declarative/anchorchanges.qml create mode 100644 doc/src/snippets/declarative/animatedimage.qml create mode 100644 doc/src/snippets/declarative/animation.qml create mode 100644 doc/src/snippets/declarative/application.qml create mode 100644 doc/src/snippets/declarative/arrow.png create mode 100644 doc/src/snippets/declarative/behavior.qml create mode 100644 doc/src/snippets/declarative/bestpractices/group.qml create mode 100644 doc/src/snippets/declarative/borderimage/borderimage-defaults.qml create mode 100644 doc/src/snippets/declarative/borderimage/borderimage-scaled.qml create mode 100644 doc/src/snippets/declarative/borderimage/borderimage-tiled.qml create mode 100644 doc/src/snippets/declarative/borderimage/normal-image.qml create mode 100644 doc/src/snippets/declarative/borderimage/pics/borderframe.png create mode 100644 doc/src/snippets/declarative/borderimage/pics/borderframe.svg create mode 100644 doc/src/snippets/declarative/codingconventions/dotproperties.qml create mode 100644 doc/src/snippets/declarative/codingconventions/javascript-imports.qml create mode 100644 doc/src/snippets/declarative/codingconventions/javascript.qml create mode 100644 doc/src/snippets/declarative/codingconventions/lists.qml create mode 100644 doc/src/snippets/declarative/codingconventions/myscript.js create mode 100644 doc/src/snippets/declarative/codingconventions/photo.qml create mode 100644 doc/src/snippets/declarative/codingconventions/private.qml create mode 100644 doc/src/snippets/declarative/coloranimation.qml create mode 100644 doc/src/snippets/declarative/colors.qml create mode 100644 doc/src/snippets/declarative/column/column.qml create mode 100644 doc/src/snippets/declarative/column/vertical-positioner-transition.qml create mode 100644 doc/src/snippets/declarative/column/vertical-positioner.qml create mode 100644 doc/src/snippets/declarative/comments.qml create mode 100644 doc/src/snippets/declarative/component.qml create mode 100644 doc/src/snippets/declarative/componentCreation.js create mode 100644 doc/src/snippets/declarative/createComponent-simple.qml create mode 100644 doc/src/snippets/declarative/createComponent.qml create mode 100644 doc/src/snippets/declarative/createQmlObject.qml create mode 100644 doc/src/snippets/declarative/dynamicObjects-destroy.qml create mode 100644 doc/src/snippets/declarative/events.qml create mode 100644 doc/src/snippets/declarative/flickable.qml create mode 100644 doc/src/snippets/declarative/flickableScrollbar.qml create mode 100644 doc/src/snippets/declarative/flipable/flipable.qml create mode 100644 doc/src/snippets/declarative/flow-diagram.qml create mode 100644 doc/src/snippets/declarative/flow.qml create mode 100644 doc/src/snippets/declarative/focus/advancedFocus.qml create mode 100644 doc/src/snippets/declarative/focus/basicwidget.qml create mode 100644 doc/src/snippets/declarative/focus/clickablewidget.qml create mode 100644 doc/src/snippets/declarative/focus/focusColumn.qml create mode 100644 doc/src/snippets/declarative/focus/focusscopewidget.qml create mode 100644 doc/src/snippets/declarative/focus/myclickablewidget.qml create mode 100644 doc/src/snippets/declarative/focus/myfocusscopewidget.qml create mode 100644 doc/src/snippets/declarative/focus/mywidget.qml create mode 100644 doc/src/snippets/declarative/focus/qmldir create mode 100644 doc/src/snippets/declarative/focus/rectangle.qml create mode 100644 doc/src/snippets/declarative/focus/widget.qml create mode 100644 doc/src/snippets/declarative/focusscopes.qml create mode 100644 doc/src/snippets/declarative/folderlistmodel.qml create mode 100644 doc/src/snippets/declarative/gradient.qml create mode 100644 doc/src/snippets/declarative/grid-spacing.qml create mode 100644 doc/src/snippets/declarative/grid/grid-items.qml create mode 100644 doc/src/snippets/declarative/grid/grid-no-spacing.qml create mode 100644 doc/src/snippets/declarative/grid/grid-spacing.qml create mode 100644 doc/src/snippets/declarative/grid/grid.qml create mode 100644 doc/src/snippets/declarative/gridview/ContactModel.qml create mode 100644 doc/src/snippets/declarative/gridview/gridview.qml create mode 100644 doc/src/snippets/declarative/gridview/pics/portrait.png create mode 100644 doc/src/snippets/declarative/image.qml create mode 100644 doc/src/snippets/declarative/imports/best-practices.qml create mode 100644 doc/src/snippets/declarative/imports/chart.qml create mode 100644 doc/src/snippets/declarative/imports/installed-module.qml create mode 100644 doc/src/snippets/declarative/imports/merged-named-imports.qml create mode 100644 doc/src/snippets/declarative/imports/named-imports.qml create mode 100644 doc/src/snippets/declarative/imports/network-imports.qml create mode 100644 doc/src/snippets/declarative/imports/qtquick-1.0.qml create mode 100644 doc/src/snippets/declarative/imports/timeexample.qml create mode 100644 doc/src/snippets/declarative/integrating-javascript/connectjs.qml create mode 100644 doc/src/snippets/declarative/integrating-javascript/includejs/app.qml create mode 100644 doc/src/snippets/declarative/integrating-javascript/includejs/factorial.js create mode 100644 doc/src/snippets/declarative/integrating-javascript/includejs/script.js create mode 100644 doc/src/snippets/declarative/integrating-javascript/script.js create mode 100644 doc/src/snippets/declarative/keynavigation.qml create mode 100644 doc/src/snippets/declarative/keys/keys-handler.qml create mode 100644 doc/src/snippets/declarative/keys/keys-pressed.qml create mode 100644 doc/src/snippets/declarative/layoutmirroring.qml create mode 100644 doc/src/snippets/declarative/listmodel-modify.qml create mode 100644 doc/src/snippets/declarative/listmodel-nested.qml create mode 100644 doc/src/snippets/declarative/listmodel-simple.qml create mode 100644 doc/src/snippets/declarative/listmodel.qml create mode 100644 doc/src/snippets/declarative/listview-decorations.qml create mode 100644 doc/src/snippets/declarative/listview-sections.qml create mode 100644 doc/src/snippets/declarative/listview.qml create mode 100644 doc/src/snippets/declarative/listview/ContactModel.qml create mode 100644 doc/src/snippets/declarative/listview/listview-snippet.qml create mode 100644 doc/src/snippets/declarative/listview/listview.qml create mode 100644 doc/src/snippets/declarative/loader/KeyReader.qml create mode 100644 doc/src/snippets/declarative/loader/MyItem.qml create mode 100644 doc/src/snippets/declarative/loader/connections.qml create mode 100644 doc/src/snippets/declarative/loader/focus.qml create mode 100644 doc/src/snippets/declarative/loader/simple.qml create mode 100644 doc/src/snippets/declarative/loader/sizeitem.qml create mode 100644 doc/src/snippets/declarative/loader/sizeloader.qml create mode 100644 doc/src/snippets/declarative/models/views-models-delegates.qml create mode 100644 doc/src/snippets/declarative/models/visual-model-and-view.qml create mode 100644 doc/src/snippets/declarative/mousearea/mousearea-snippet.qml create mode 100644 doc/src/snippets/declarative/mousearea/mousearea.qml create mode 100644 doc/src/snippets/declarative/mousearea/mouseareadragfilter.qml create mode 100644 doc/src/snippets/declarative/numberanimation.qml create mode 100644 doc/src/snippets/declarative/parallelanimation.qml create mode 100644 doc/src/snippets/declarative/parentanimation.qml create mode 100644 doc/src/snippets/declarative/parentchange.qml create mode 100644 doc/src/snippets/declarative/pathview/ContactModel.qml create mode 100644 doc/src/snippets/declarative/pathview/pathattributes.qml create mode 100644 doc/src/snippets/declarative/pathview/pathview.qml create mode 100644 doc/src/snippets/declarative/pathview/pics/qtlogo.png create mode 100644 doc/src/snippets/declarative/pics/checker.svg create mode 100644 doc/src/snippets/declarative/pics/qt.png create mode 100644 doc/src/snippets/declarative/pics/qtlogo.png create mode 100644 doc/src/snippets/declarative/properties.qml create mode 100644 doc/src/snippets/declarative/propertyaction-sequential.qml create mode 100644 doc/src/snippets/declarative/propertyaction.qml create mode 100644 doc/src/snippets/declarative/propertyanimation.qml create mode 100644 doc/src/snippets/declarative/propertychanges.qml create mode 100644 doc/src/snippets/declarative/qml-data-models/dynamic-listmodel.qml create mode 100644 doc/src/snippets/declarative/qml-data-models/listelements.qml create mode 100644 doc/src/snippets/declarative/qml-data-models/listmodel-listview.qml create mode 100644 doc/src/snippets/declarative/qml-documents/inline-component.qml create mode 100644 doc/src/snippets/declarative/qml-documents/inline-text-component.qml create mode 100644 doc/src/snippets/declarative/qml-documents/non-trivial.qml create mode 100644 doc/src/snippets/declarative/qml-documents/qmldocuments.qml create mode 100644 doc/src/snippets/declarative/qml-extending-types/components/Button.qml create mode 100644 doc/src/snippets/declarative/qml-extending-types/components/application.qml create mode 100644 doc/src/snippets/declarative/qml-extending-types/methods/app.qml create mode 100644 doc/src/snippets/declarative/qml-extending-types/properties/ImageViewer.qml create mode 100644 doc/src/snippets/declarative/qml-extending-types/properties/alias-override.qml create mode 100644 doc/src/snippets/declarative/qml-extending-types/properties/alias.qml create mode 100644 doc/src/snippets/declarative/qml-extending-types/properties/alias/ImageViewer.qml create mode 100644 doc/src/snippets/declarative/qml-extending-types/properties/alias/application.qml create mode 100644 doc/src/snippets/declarative/qml-extending-types/properties/application.qml create mode 100644 doc/src/snippets/declarative/qml-extending-types/properties/property-signals.qml create mode 100644 doc/src/snippets/declarative/qml-extending-types/signals/Button.qml create mode 100644 doc/src/snippets/declarative/qml-extending-types/signals/basic.qml create mode 100644 doc/src/snippets/declarative/qml-extending-types/signals/connectdynamic.qml create mode 100644 doc/src/snippets/declarative/qml-extending-types/signals/connectslots.qml create mode 100644 doc/src/snippets/declarative/qml-extending-types/signals/no-parameters.qml create mode 100644 doc/src/snippets/declarative/qml-extending-types/signals/parameters.qml create mode 100644 doc/src/snippets/declarative/qml-intro/images/qt-logo.svg create mode 100644 doc/src/snippets/declarative/qtbinding/context-advanced/MyItem.qml create mode 100644 doc/src/snippets/declarative/qtbinding/context-advanced/applicationdata.h create mode 100644 doc/src/snippets/declarative/qtbinding/context-advanced/connections.qml create mode 100644 doc/src/snippets/declarative/qtbinding/context-advanced/context-advanced.pro create mode 100644 doc/src/snippets/declarative/qtbinding/context-advanced/main.cpp create mode 100644 doc/src/snippets/declarative/qtbinding/context/MyItem.qml create mode 100644 doc/src/snippets/declarative/qtbinding/context/context.pro create mode 100644 doc/src/snippets/declarative/qtbinding/context/main.cpp create mode 100644 doc/src/snippets/declarative/qtbinding/enums/enums.pro create mode 100644 doc/src/snippets/declarative/qtbinding/enums/imageviewer.h create mode 100644 doc/src/snippets/declarative/qtbinding/enums/main.cpp create mode 100644 doc/src/snippets/declarative/qtbinding/enums/standalone.qml create mode 100644 doc/src/snippets/declarative/qtbinding/functions-cpp/MyItem.qml create mode 100644 doc/src/snippets/declarative/qtbinding/functions-cpp/functions-qml.pro create mode 100644 doc/src/snippets/declarative/qtbinding/functions-cpp/main.cpp create mode 100644 doc/src/snippets/declarative/qtbinding/functions-cpp/myclass.h create mode 100644 doc/src/snippets/declarative/qtbinding/functions-qml/MyItem.qml create mode 100644 doc/src/snippets/declarative/qtbinding/functions-qml/functions-qml.pro create mode 100644 doc/src/snippets/declarative/qtbinding/functions-qml/main.cpp create mode 100644 doc/src/snippets/declarative/qtbinding/loading/MyItem.qml create mode 100644 doc/src/snippets/declarative/qtbinding/loading/loading.pro create mode 100644 doc/src/snippets/declarative/qtbinding/loading/main.cpp create mode 100644 doc/src/snippets/declarative/qtbinding/newelements/imageviewer.h create mode 100644 doc/src/snippets/declarative/qtbinding/newelements/main.cpp create mode 100644 doc/src/snippets/declarative/qtbinding/newelements/newelements.pro create mode 100644 doc/src/snippets/declarative/qtbinding/newelements/standalone.qml create mode 100644 doc/src/snippets/declarative/qtbinding/properties-cpp/MyItem.qml create mode 100644 doc/src/snippets/declarative/qtbinding/properties-cpp/applicationdata.h create mode 100644 doc/src/snippets/declarative/qtbinding/properties-cpp/main.cpp create mode 100644 doc/src/snippets/declarative/qtbinding/properties-cpp/properties-cpp.pro create mode 100644 doc/src/snippets/declarative/qtbinding/properties-qml/MyItem.qml create mode 100644 doc/src/snippets/declarative/qtbinding/properties-qml/main.cpp create mode 100644 doc/src/snippets/declarative/qtbinding/properties-qml/properties-qml.pro create mode 100644 doc/src/snippets/declarative/qtbinding/resources/example.qrc create mode 100644 doc/src/snippets/declarative/qtbinding/resources/images/background.png create mode 100644 doc/src/snippets/declarative/qtbinding/resources/main.cpp create mode 100644 doc/src/snippets/declarative/qtbinding/resources/main.qml create mode 100644 doc/src/snippets/declarative/qtbinding/resources/resources.pro create mode 100644 doc/src/snippets/declarative/qtbinding/signals-cpp/MyItem.qml create mode 100644 doc/src/snippets/declarative/qtbinding/signals-cpp/imageviewer.h create mode 100644 doc/src/snippets/declarative/qtbinding/signals-cpp/main.cpp create mode 100644 doc/src/snippets/declarative/qtbinding/signals-cpp/signals-cpp.pro create mode 100644 doc/src/snippets/declarative/qtbinding/signals-cpp/standalone.qml create mode 100644 doc/src/snippets/declarative/qtbinding/signals-qml/MyItem.qml create mode 100644 doc/src/snippets/declarative/qtbinding/signals-qml/main.cpp create mode 100644 doc/src/snippets/declarative/qtbinding/signals-qml/myclass.h create mode 100644 doc/src/snippets/declarative/qtbinding/signals-qml/signals-qml.pro create mode 100644 doc/src/snippets/declarative/qtbinding/variantlistmap/MyItem.qml create mode 100644 doc/src/snippets/declarative/qtbinding/variantlistmap/main.cpp create mode 100644 doc/src/snippets/declarative/qtbinding/variantlistmap/variantlistmap.pro create mode 100644 doc/src/snippets/declarative/qtobject.qml create mode 100644 doc/src/snippets/declarative/rectangle/rect-border-width.qml create mode 100644 doc/src/snippets/declarative/rectangle/rectangle-colors.qml create mode 100644 doc/src/snippets/declarative/rectangle/rectangle-gradient.qml create mode 100644 doc/src/snippets/declarative/rectangle/rectangle-smooth.qml create mode 100644 doc/src/snippets/declarative/rectangle/rectangle.qml create mode 100644 doc/src/snippets/declarative/repeaters/repeater-grid-index.qml create mode 100644 doc/src/snippets/declarative/repeaters/repeater.qml create mode 100644 doc/src/snippets/declarative/reusablecomponents/Button.qml create mode 100644 doc/src/snippets/declarative/reusablecomponents/application.qml create mode 100644 doc/src/snippets/declarative/reusablecomponents/component.qml create mode 100644 doc/src/snippets/declarative/reusablecomponents/focusbutton.qml create mode 100644 doc/src/snippets/declarative/reusablecomponents/qmldir create mode 100644 doc/src/snippets/declarative/righttoleft.qml create mode 100644 doc/src/snippets/declarative/righttoleft/Child.qml create mode 100644 doc/src/snippets/declarative/rotation.qml create mode 100644 doc/src/snippets/declarative/rotationanimation.qml create mode 100644 doc/src/snippets/declarative/row.qml create mode 100644 doc/src/snippets/declarative/row/row.qml create mode 100644 doc/src/snippets/declarative/script.js create mode 100644 doc/src/snippets/declarative/sequentialanimation.qml create mode 100644 doc/src/snippets/declarative/smoothedanimation.qml create mode 100644 doc/src/snippets/declarative/springanimation.qml create mode 100644 doc/src/snippets/declarative/state-when.qml create mode 100644 doc/src/snippets/declarative/state.qml create mode 100644 doc/src/snippets/declarative/states.qml create mode 100644 doc/src/snippets/declarative/states/statechangescript.qml create mode 100644 doc/src/snippets/declarative/systempalette.qml create mode 100644 doc/src/snippets/declarative/text/onLinkActivated.qml create mode 100644 doc/src/snippets/declarative/texteditor.qml create mode 100644 doc/src/snippets/declarative/texthandling.qml create mode 100644 doc/src/snippets/declarative/transition-from-to-modified.qml create mode 100644 doc/src/snippets/declarative/transition-from-to.qml create mode 100644 doc/src/snippets/declarative/transition-reversible.qml create mode 100644 doc/src/snippets/declarative/transition.qml create mode 100644 doc/src/snippets/declarative/transitions-list.qml create mode 100644 doc/src/snippets/declarative/visualdatamodel.qml create mode 100644 doc/src/snippets/declarative/visualdatamodel_rootindex/main.cpp create mode 100644 doc/src/snippets/declarative/visualdatamodel_rootindex/view.qml create mode 100644 doc/src/snippets/declarative/visualdatamodel_rootindex/visualdatamodel_rootindex.pro create mode 100644 doc/src/snippets/declarative/webview/webview.qml create mode 100644 doc/src/snippets/declarative/workerscript.qml create mode 100644 doc/src/snippets/declarative/xmlrole.qml create mode 100644 doc/src/snippets/declarative/xmlrole.xml create mode 100644 examples/declarative/README create mode 100644 examples/declarative/animation/animation.pro create mode 100644 examples/declarative/animation/basics/color-animation/basics.qmlproject create mode 100644 examples/declarative/animation/basics/color-animation/color-animation.png create mode 100644 examples/declarative/animation/basics/color-animation/color-animation.pro create mode 100644 examples/declarative/animation/basics/color-animation/color-animation.svg create mode 100644 examples/declarative/animation/basics/color-animation/main.cpp create mode 100644 examples/declarative/animation/basics/color-animation/qml/color-animation/color-animation.qml create mode 100644 examples/declarative/animation/basics/color-animation/qml/color-animation/images/face-smile.png create mode 100644 examples/declarative/animation/basics/color-animation/qml/color-animation/images/moon.png create mode 100644 examples/declarative/animation/basics/color-animation/qml/color-animation/images/shadow.png create mode 100644 examples/declarative/animation/basics/color-animation/qml/color-animation/images/star.png create mode 100644 examples/declarative/animation/basics/color-animation/qml/color-animation/images/sun.png create mode 100644 examples/declarative/animation/basics/property-animation/main.cpp create mode 100644 examples/declarative/animation/basics/property-animation/property-animation.png create mode 100644 examples/declarative/animation/basics/property-animation/property-animation.pro create mode 100644 examples/declarative/animation/basics/property-animation/property-animation.svg create mode 100644 examples/declarative/animation/basics/property-animation/property.qmlproject create mode 100644 examples/declarative/animation/basics/property-animation/qml/property-animation/images/face-smile.png create mode 100644 examples/declarative/animation/basics/property-animation/qml/property-animation/images/moon.png create mode 100644 examples/declarative/animation/basics/property-animation/qml/property-animation/images/shadow.png create mode 100644 examples/declarative/animation/basics/property-animation/qml/property-animation/images/star.png create mode 100644 examples/declarative/animation/basics/property-animation/qml/property-animation/images/sun.png create mode 100644 examples/declarative/animation/basics/property-animation/qml/property-animation/property-animation.qml create mode 100644 examples/declarative/animation/behaviors/behavior-example/behavior-example.png create mode 100644 examples/declarative/animation/behaviors/behavior-example/behavior-example.pro create mode 100644 examples/declarative/animation/behaviors/behavior-example/behavior-example.svg create mode 100644 examples/declarative/animation/behaviors/behavior-example/behaviors.qmlproject create mode 100644 examples/declarative/animation/behaviors/behavior-example/main.cpp create mode 100644 examples/declarative/animation/behaviors/behavior-example/qml/behaviours/SideRect.qml create mode 100644 examples/declarative/animation/behaviors/behavior-example/qml/behaviours/behavior-example.qml create mode 100644 examples/declarative/animation/behaviors/wigglytext/main.cpp create mode 100644 examples/declarative/animation/behaviors/wigglytext/qml/wigglytext/wigglytext.qml create mode 100644 examples/declarative/animation/behaviors/wigglytext/wigglytext.png create mode 100644 examples/declarative/animation/behaviors/wigglytext/wigglytext.pro create mode 100644 examples/declarative/animation/behaviors/wigglytext/wigglytext.qmlproject create mode 100644 examples/declarative/animation/behaviors/wigglytext/wigglytext.svg create mode 100644 examples/declarative/animation/easing/easing.png create mode 100644 examples/declarative/animation/easing/easing.pro create mode 100644 examples/declarative/animation/easing/easing.qml create mode 100644 examples/declarative/animation/easing/easing.qmlproject create mode 100644 examples/declarative/animation/easing/easing.svg create mode 100644 examples/declarative/animation/easing/main.cpp create mode 100644 examples/declarative/animation/easing/qml/easing/content/QuitButton.qml create mode 100644 examples/declarative/animation/easing/qml/easing/content/quit.png create mode 100644 examples/declarative/animation/easing/qml/easing/easing.qml create mode 100644 examples/declarative/animation/states/main.cpp create mode 100644 examples/declarative/animation/states/qml/states/qt-logo.png create mode 100644 examples/declarative/animation/states/qml/states/states.qml create mode 100644 examples/declarative/animation/states/qml/states/transitions.qml create mode 100644 examples/declarative/animation/states/states.png create mode 100644 examples/declarative/animation/states/states.pro create mode 100644 examples/declarative/animation/states/states.qmlproject create mode 100644 examples/declarative/animation/states/states.svg create mode 100644 examples/declarative/cppextensions/cppextensions.pro create mode 100644 examples/declarative/cppextensions/cppextensions.qmlproject create mode 100644 examples/declarative/cppextensions/imageprovider/ImageProviderCore/qmldir create mode 100644 examples/declarative/cppextensions/imageprovider/imageprovider-example.qml create mode 100644 examples/declarative/cppextensions/imageprovider/imageprovider.cpp create mode 100644 examples/declarative/cppextensions/imageprovider/imageprovider.pro create mode 100644 examples/declarative/cppextensions/imageprovider/imageprovider.qmlproject create mode 100644 examples/declarative/cppextensions/networkaccessmanagerfactory/main.cpp create mode 100644 examples/declarative/cppextensions/networkaccessmanagerfactory/networkaccessmanagerfactory.pro create mode 100644 examples/declarative/cppextensions/networkaccessmanagerfactory/networkaccessmanagerfactory.qmlproject create mode 100644 examples/declarative/cppextensions/networkaccessmanagerfactory/networkaccessmanagerfactory.qrc create mode 100644 examples/declarative/cppextensions/networkaccessmanagerfactory/qml/networkaccessmanagerfactory/view.qml create mode 100644 examples/declarative/cppextensions/plugins/README create mode 100644 examples/declarative/cppextensions/plugins/com/nokia/TimeExample/Clock.qml create mode 100644 examples/declarative/cppextensions/plugins/com/nokia/TimeExample/center.png create mode 100644 examples/declarative/cppextensions/plugins/com/nokia/TimeExample/clock.png create mode 100644 examples/declarative/cppextensions/plugins/com/nokia/TimeExample/hour.png create mode 100644 examples/declarative/cppextensions/plugins/com/nokia/TimeExample/minute.png create mode 100644 examples/declarative/cppextensions/plugins/com/nokia/TimeExample/qmldir create mode 100644 examples/declarative/cppextensions/plugins/plugin.cpp create mode 100644 examples/declarative/cppextensions/plugins/plugins.pro create mode 100644 examples/declarative/cppextensions/plugins/plugins.qml create mode 100644 examples/declarative/cppextensions/plugins/plugins.qmlproject create mode 100644 examples/declarative/cppextensions/qgraphicslayouts/layoutitem/layoutitem.pro create mode 100644 examples/declarative/cppextensions/qgraphicslayouts/layoutitem/layoutitem.qml create mode 100644 examples/declarative/cppextensions/qgraphicslayouts/layoutitem/layoutitem.qmlproject create mode 100644 examples/declarative/cppextensions/qgraphicslayouts/layoutitem/layoutitem.qrc create mode 100644 examples/declarative/cppextensions/qgraphicslayouts/layoutitem/main.cpp create mode 100644 examples/declarative/cppextensions/qgraphicslayouts/qgraphicsgridlayout/gridlayout.cpp create mode 100644 examples/declarative/cppextensions/qgraphicslayouts/qgraphicsgridlayout/gridlayout.h create mode 100644 examples/declarative/cppextensions/qgraphicslayouts/qgraphicsgridlayout/gridlayout.qrc create mode 100644 examples/declarative/cppextensions/qgraphicslayouts/qgraphicsgridlayout/main.cpp create mode 100644 examples/declarative/cppextensions/qgraphicslayouts/qgraphicsgridlayout/qgraphicsgridlayout.pro create mode 100644 examples/declarative/cppextensions/qgraphicslayouts/qgraphicsgridlayout/qml/qgraphicsgridlayout/qgraphicsgridlayout.qml create mode 100644 examples/declarative/cppextensions/qgraphicslayouts/qgraphicslayouts.pro create mode 100644 examples/declarative/cppextensions/qgraphicslayouts/qgraphicslayouts.qmlproject create mode 100644 examples/declarative/cppextensions/qgraphicslayouts/qgraphicslinearlayout/linearlayout.cpp create mode 100644 examples/declarative/cppextensions/qgraphicslayouts/qgraphicslinearlayout/linearlayout.h create mode 100644 examples/declarative/cppextensions/qgraphicslayouts/qgraphicslinearlayout/linearlayout.qrc create mode 100644 examples/declarative/cppextensions/qgraphicslayouts/qgraphicslinearlayout/main.cpp create mode 100644 examples/declarative/cppextensions/qgraphicslayouts/qgraphicslinearlayout/qgraphicslinearlayout.pro create mode 100644 examples/declarative/cppextensions/qgraphicslayouts/qgraphicslinearlayout/qml/qgraphicslinearlayout/qgraphicslinearlayout.qml create mode 100644 examples/declarative/cppextensions/qwidgets/QWidgets/qmldir create mode 100644 examples/declarative/cppextensions/qwidgets/README create mode 100644 examples/declarative/cppextensions/qwidgets/qwidgets.cpp create mode 100644 examples/declarative/cppextensions/qwidgets/qwidgets.pro create mode 100644 examples/declarative/cppextensions/qwidgets/qwidgets.qml create mode 100644 examples/declarative/cppextensions/qwidgets/qwidgets.qmlproject create mode 100644 examples/declarative/cppextensions/referenceexamples/adding/adding.pro create mode 100644 examples/declarative/cppextensions/referenceexamples/adding/adding.qrc create mode 100644 examples/declarative/cppextensions/referenceexamples/adding/example.qml create mode 100644 examples/declarative/cppextensions/referenceexamples/adding/main.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/adding/person.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/adding/person.h create mode 100644 examples/declarative/cppextensions/referenceexamples/attached/attached.pro create mode 100644 examples/declarative/cppextensions/referenceexamples/attached/attached.qrc create mode 100644 examples/declarative/cppextensions/referenceexamples/attached/birthdayparty.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/attached/birthdayparty.h create mode 100644 examples/declarative/cppextensions/referenceexamples/attached/example.qml create mode 100644 examples/declarative/cppextensions/referenceexamples/attached/main.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/attached/person.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/attached/person.h create mode 100644 examples/declarative/cppextensions/referenceexamples/binding/binding.pro create mode 100644 examples/declarative/cppextensions/referenceexamples/binding/binding.qrc create mode 100644 examples/declarative/cppextensions/referenceexamples/binding/birthdayparty.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/binding/birthdayparty.h create mode 100644 examples/declarative/cppextensions/referenceexamples/binding/example.qml create mode 100644 examples/declarative/cppextensions/referenceexamples/binding/happybirthdaysong.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/binding/happybirthdaysong.h create mode 100644 examples/declarative/cppextensions/referenceexamples/binding/main.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/binding/person.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/binding/person.h create mode 100644 examples/declarative/cppextensions/referenceexamples/coercion/birthdayparty.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/coercion/birthdayparty.h create mode 100644 examples/declarative/cppextensions/referenceexamples/coercion/coercion.pro create mode 100644 examples/declarative/cppextensions/referenceexamples/coercion/coercion.qrc create mode 100644 examples/declarative/cppextensions/referenceexamples/coercion/example.qml create mode 100644 examples/declarative/cppextensions/referenceexamples/coercion/main.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/coercion/person.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/coercion/person.h create mode 100644 examples/declarative/cppextensions/referenceexamples/default/birthdayparty.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/default/birthdayparty.h create mode 100644 examples/declarative/cppextensions/referenceexamples/default/default.pro create mode 100644 examples/declarative/cppextensions/referenceexamples/default/default.qrc create mode 100644 examples/declarative/cppextensions/referenceexamples/default/example.qml create mode 100644 examples/declarative/cppextensions/referenceexamples/default/main.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/default/person.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/default/person.h create mode 100644 examples/declarative/cppextensions/referenceexamples/extended/example.qml create mode 100644 examples/declarative/cppextensions/referenceexamples/extended/extended.pro create mode 100644 examples/declarative/cppextensions/referenceexamples/extended/extended.qrc create mode 100644 examples/declarative/cppextensions/referenceexamples/extended/lineedit.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/extended/lineedit.h create mode 100644 examples/declarative/cppextensions/referenceexamples/extended/main.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/grouped/birthdayparty.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/grouped/birthdayparty.h create mode 100644 examples/declarative/cppextensions/referenceexamples/grouped/example.qml create mode 100644 examples/declarative/cppextensions/referenceexamples/grouped/grouped.pro create mode 100644 examples/declarative/cppextensions/referenceexamples/grouped/grouped.qrc create mode 100644 examples/declarative/cppextensions/referenceexamples/grouped/main.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/grouped/person.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/grouped/person.h create mode 100644 examples/declarative/cppextensions/referenceexamples/methods/birthdayparty.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/methods/birthdayparty.h create mode 100644 examples/declarative/cppextensions/referenceexamples/methods/example.qml create mode 100644 examples/declarative/cppextensions/referenceexamples/methods/main.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/methods/methods.pro create mode 100644 examples/declarative/cppextensions/referenceexamples/methods/methods.qrc create mode 100644 examples/declarative/cppextensions/referenceexamples/methods/person.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/methods/person.h create mode 100644 examples/declarative/cppextensions/referenceexamples/properties/birthdayparty.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/properties/birthdayparty.h create mode 100644 examples/declarative/cppextensions/referenceexamples/properties/example.qml create mode 100644 examples/declarative/cppextensions/referenceexamples/properties/main.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/properties/person.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/properties/person.h create mode 100644 examples/declarative/cppextensions/referenceexamples/properties/properties.pro create mode 100644 examples/declarative/cppextensions/referenceexamples/properties/properties.qrc create mode 100644 examples/declarative/cppextensions/referenceexamples/referenceexamples.pro create mode 100644 examples/declarative/cppextensions/referenceexamples/referenceexamples.qmlproject create mode 100644 examples/declarative/cppextensions/referenceexamples/signal/birthdayparty.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/signal/birthdayparty.h create mode 100644 examples/declarative/cppextensions/referenceexamples/signal/example.qml create mode 100644 examples/declarative/cppextensions/referenceexamples/signal/main.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/signal/person.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/signal/person.h create mode 100644 examples/declarative/cppextensions/referenceexamples/signal/signal.pro create mode 100644 examples/declarative/cppextensions/referenceexamples/signal/signal.qrc create mode 100644 examples/declarative/cppextensions/referenceexamples/valuesource/birthdayparty.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/valuesource/birthdayparty.h create mode 100644 examples/declarative/cppextensions/referenceexamples/valuesource/example.qml create mode 100644 examples/declarative/cppextensions/referenceexamples/valuesource/happybirthdaysong.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/valuesource/happybirthdaysong.h create mode 100644 examples/declarative/cppextensions/referenceexamples/valuesource/main.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/valuesource/person.cpp create mode 100644 examples/declarative/cppextensions/referenceexamples/valuesource/person.h create mode 100644 examples/declarative/cppextensions/referenceexamples/valuesource/valuesource.pro create mode 100644 examples/declarative/cppextensions/referenceexamples/valuesource/valuesource.qrc create mode 100644 examples/declarative/declarative.pro create mode 100644 examples/declarative/i18n/i18n.png create mode 100644 examples/declarative/i18n/i18n.pro create mode 100644 examples/declarative/i18n/i18n.qmlproject create mode 100644 examples/declarative/i18n/i18n.svg create mode 100644 examples/declarative/i18n/main.cpp create mode 100644 examples/declarative/i18n/qml/i18n/base.ts create mode 100644 examples/declarative/i18n/qml/i18n/i18n.qml create mode 100644 examples/declarative/i18n/qml/i18n/qml_en_AU.ts create mode 100644 examples/declarative/i18n/qml/i18n/qml_fr.ts create mode 100644 examples/declarative/imageelements/borderimage/borderimage.png create mode 100644 examples/declarative/imageelements/borderimage/borderimage.pro create mode 100644 examples/declarative/imageelements/borderimage/borderimage.qmlproject create mode 100644 examples/declarative/imageelements/borderimage/borderimage.svg create mode 100644 examples/declarative/imageelements/borderimage/main.cpp create mode 100644 examples/declarative/imageelements/borderimage/qml/borderimage/borderimage.qml create mode 100644 examples/declarative/imageelements/borderimage/qml/borderimage/content/MyBorderImage.qml create mode 100644 examples/declarative/imageelements/borderimage/qml/borderimage/content/ShadowRectangle.qml create mode 100644 examples/declarative/imageelements/borderimage/qml/borderimage/content/bw.png create mode 100644 examples/declarative/imageelements/borderimage/qml/borderimage/content/colors-round.sci create mode 100644 examples/declarative/imageelements/borderimage/qml/borderimage/content/colors-stretch.sci create mode 100644 examples/declarative/imageelements/borderimage/qml/borderimage/content/colors.png create mode 100644 examples/declarative/imageelements/borderimage/qml/borderimage/content/shadow.png create mode 100644 examples/declarative/imageelements/borderimage/qml/borderimage/shadows.qml create mode 100644 examples/declarative/imageelements/image/image.png create mode 100644 examples/declarative/imageelements/image/image.pro create mode 100644 examples/declarative/imageelements/image/image.qmlproject create mode 100644 examples/declarative/imageelements/image/image.svg create mode 100644 examples/declarative/imageelements/image/main.cpp create mode 100644 examples/declarative/imageelements/image/qml/image/ImageCell.qml create mode 100644 examples/declarative/imageelements/image/qml/image/image.qml create mode 100644 examples/declarative/imageelements/image/qml/image/qt-logo.png create mode 100644 examples/declarative/imageelements/imageelements.pro create mode 100644 examples/declarative/imageelements/shadows/main.cpp create mode 100644 examples/declarative/imageelements/shadows/qml/shadows/borderimage.qml create mode 100644 examples/declarative/imageelements/shadows/qml/shadows/content/MyBorderImage.qml create mode 100644 examples/declarative/imageelements/shadows/qml/shadows/content/ShadowRectangle.qml create mode 100644 examples/declarative/imageelements/shadows/qml/shadows/content/bw.png create mode 100644 examples/declarative/imageelements/shadows/qml/shadows/content/colors-round.sci create mode 100644 examples/declarative/imageelements/shadows/qml/shadows/content/colors-stretch.sci create mode 100644 examples/declarative/imageelements/shadows/qml/shadows/content/colors.png create mode 100644 examples/declarative/imageelements/shadows/qml/shadows/content/shadow.png create mode 100644 examples/declarative/imageelements/shadows/qml/shadows/shadows.qml create mode 100644 examples/declarative/imageelements/shadows/shadows.png create mode 100644 examples/declarative/imageelements/shadows/shadows.pro create mode 100644 examples/declarative/imageelements/shadows/shadows.qmlproject create mode 100644 examples/declarative/imageelements/shadows/shadows.svg create mode 100644 examples/declarative/keyinteraction/focus/focus.png create mode 100644 examples/declarative/keyinteraction/focus/focus.pro create mode 100644 examples/declarative/keyinteraction/focus/focus.qmlproject create mode 100644 examples/declarative/keyinteraction/focus/focus.svg create mode 100644 examples/declarative/keyinteraction/focus/main.cpp create mode 100644 examples/declarative/keyinteraction/focus/qml/focus/FocusCore/ContextMenu.qml create mode 100644 examples/declarative/keyinteraction/focus/qml/focus/FocusCore/GridMenu.qml create mode 100644 examples/declarative/keyinteraction/focus/qml/focus/FocusCore/ListMenu.qml create mode 100644 examples/declarative/keyinteraction/focus/qml/focus/FocusCore/ListViewDelegate.qml create mode 100644 examples/declarative/keyinteraction/focus/qml/focus/FocusCore/images/arrow.png create mode 100644 examples/declarative/keyinteraction/focus/qml/focus/FocusCore/images/qt-logo.png create mode 100644 examples/declarative/keyinteraction/focus/qml/focus/focus.qml create mode 100644 examples/declarative/modelviews/abstractitemmodel/abstractitemmodel.pro create mode 100644 examples/declarative/modelviews/abstractitemmodel/main.cpp create mode 100644 examples/declarative/modelviews/abstractitemmodel/model.cpp create mode 100644 examples/declarative/modelviews/abstractitemmodel/model.h create mode 100644 examples/declarative/modelviews/abstractitemmodel/qml/abstractitemmodel/view.qml create mode 100644 examples/declarative/modelviews/gridview/gridview.pro create mode 100644 examples/declarative/modelviews/gridview/gridview.qmlproject create mode 100644 examples/declarative/modelviews/gridview/gridview.svg create mode 100644 examples/declarative/modelviews/gridview/gridviewexample.png create mode 100644 examples/declarative/modelviews/gridview/main.cpp create mode 100644 examples/declarative/modelviews/gridview/qml/gridview-example/gridview-example.qml create mode 100644 examples/declarative/modelviews/gridview/qml/gridview-example/pics/AddressBook_48.png create mode 100644 examples/declarative/modelviews/gridview/qml/gridview-example/pics/AudioPlayer_48.png create mode 100644 examples/declarative/modelviews/gridview/qml/gridview-example/pics/Camera_48.png create mode 100644 examples/declarative/modelviews/gridview/qml/gridview-example/pics/DateBook_48.png create mode 100644 examples/declarative/modelviews/gridview/qml/gridview-example/pics/EMail_48.png create mode 100644 examples/declarative/modelviews/gridview/qml/gridview-example/pics/TodoList_48.png create mode 100644 examples/declarative/modelviews/gridview/qml/gridview-example/pics/VideoPlayer_48.png create mode 100644 examples/declarative/modelviews/listview/dynamiclist/dynamiclist.png create mode 100644 examples/declarative/modelviews/listview/dynamiclist/dynamiclist.pro create mode 100644 examples/declarative/modelviews/listview/dynamiclist/dynamiclist.qmlproject create mode 100644 examples/declarative/modelviews/listview/dynamiclist/dynamiclist.svg create mode 100644 examples/declarative/modelviews/listview/dynamiclist/main.cpp create mode 100644 examples/declarative/modelviews/listview/dynamiclist/qml/dynamic/content/PetsModel.qml create mode 100644 examples/declarative/modelviews/listview/dynamiclist/qml/dynamic/content/PressAndHoldButton.qml create mode 100644 examples/declarative/modelviews/listview/dynamiclist/qml/dynamic/content/RecipesModel.qml create mode 100644 examples/declarative/modelviews/listview/dynamiclist/qml/dynamic/content/TextButton.qml create mode 100644 examples/declarative/modelviews/listview/dynamiclist/qml/dynamic/content/pics/arrow-down.png create mode 100644 examples/declarative/modelviews/listview/dynamiclist/qml/dynamic/content/pics/arrow-up.png create mode 100644 examples/declarative/modelviews/listview/dynamiclist/qml/dynamic/content/pics/fruit-salad.jpg create mode 100644 examples/declarative/modelviews/listview/dynamiclist/qml/dynamic/content/pics/hamburger.jpg create mode 100644 examples/declarative/modelviews/listview/dynamiclist/qml/dynamic/content/pics/lemonade.jpg create mode 100644 examples/declarative/modelviews/listview/dynamiclist/qml/dynamic/content/pics/list-delete.png create mode 100644 examples/declarative/modelviews/listview/dynamiclist/qml/dynamic/content/pics/minus-sign.png create mode 100644 examples/declarative/modelviews/listview/dynamiclist/qml/dynamic/content/pics/moreDown.png create mode 100644 examples/declarative/modelviews/listview/dynamiclist/qml/dynamic/content/pics/moreUp.png create mode 100644 examples/declarative/modelviews/listview/dynamiclist/qml/dynamic/content/pics/pancakes.jpg create mode 100644 examples/declarative/modelviews/listview/dynamiclist/qml/dynamic/content/pics/plus-sign.png create mode 100644 examples/declarative/modelviews/listview/dynamiclist/qml/dynamic/content/pics/vegetable-soup.jpg create mode 100644 examples/declarative/modelviews/listview/dynamiclist/qml/dynamic/dynamiclist.qml create mode 100644 examples/declarative/modelviews/listview/dynamiclist/qml/dynamic/expandingdelegates.qml create mode 100644 examples/declarative/modelviews/listview/dynamiclist/qml/dynamic/highlight.qml create mode 100644 examples/declarative/modelviews/listview/dynamiclist/qml/dynamic/highlightranges.qml create mode 100644 examples/declarative/modelviews/listview/dynamiclist/qml/dynamic/sections.qml create mode 100644 examples/declarative/modelviews/listview/expandingdelegates/expandingdelegates.png create mode 100644 examples/declarative/modelviews/listview/expandingdelegates/expandingdelegates.pro create mode 100644 examples/declarative/modelviews/listview/expandingdelegates/expandingdelegates.qmlproject create mode 100644 examples/declarative/modelviews/listview/expandingdelegates/expandingdelegates.svg create mode 100644 examples/declarative/modelviews/listview/expandingdelegates/main.cpp create mode 100644 examples/declarative/modelviews/listview/expandingdelegates/qml/expandingdelegates/content/PetsModel.qml create mode 100644 examples/declarative/modelviews/listview/expandingdelegates/qml/expandingdelegates/content/PressAndHoldButton.qml create mode 100644 examples/declarative/modelviews/listview/expandingdelegates/qml/expandingdelegates/content/RecipesModel.qml create mode 100644 examples/declarative/modelviews/listview/expandingdelegates/qml/expandingdelegates/content/TextButton.qml create mode 100644 examples/declarative/modelviews/listview/expandingdelegates/qml/expandingdelegates/content/pics/arrow-down.png create mode 100644 examples/declarative/modelviews/listview/expandingdelegates/qml/expandingdelegates/content/pics/arrow-up.png create mode 100644 examples/declarative/modelviews/listview/expandingdelegates/qml/expandingdelegates/content/pics/fruit-salad.jpg create mode 100644 examples/declarative/modelviews/listview/expandingdelegates/qml/expandingdelegates/content/pics/hamburger.jpg create mode 100644 examples/declarative/modelviews/listview/expandingdelegates/qml/expandingdelegates/content/pics/lemonade.jpg create mode 100644 examples/declarative/modelviews/listview/expandingdelegates/qml/expandingdelegates/content/pics/list-delete.png create mode 100644 examples/declarative/modelviews/listview/expandingdelegates/qml/expandingdelegates/content/pics/minus-sign.png create mode 100644 examples/declarative/modelviews/listview/expandingdelegates/qml/expandingdelegates/content/pics/moreDown.png create mode 100644 examples/declarative/modelviews/listview/expandingdelegates/qml/expandingdelegates/content/pics/moreUp.png create mode 100644 examples/declarative/modelviews/listview/expandingdelegates/qml/expandingdelegates/content/pics/pancakes.jpg create mode 100644 examples/declarative/modelviews/listview/expandingdelegates/qml/expandingdelegates/content/pics/plus-sign.png create mode 100644 examples/declarative/modelviews/listview/expandingdelegates/qml/expandingdelegates/content/pics/vegetable-soup.jpg create mode 100644 examples/declarative/modelviews/listview/expandingdelegates/qml/expandingdelegates/dynamiclist.qml create mode 100644 examples/declarative/modelviews/listview/expandingdelegates/qml/expandingdelegates/expandingdelegates.qml create mode 100644 examples/declarative/modelviews/listview/expandingdelegates/qml/expandingdelegates/highlight.qml create mode 100644 examples/declarative/modelviews/listview/expandingdelegates/qml/expandingdelegates/highlightranges.qml create mode 100644 examples/declarative/modelviews/listview/expandingdelegates/qml/expandingdelegates/sections.qml create mode 100644 examples/declarative/modelviews/listview/highlight/highlight.png create mode 100644 examples/declarative/modelviews/listview/highlight/highlight.pro create mode 100644 examples/declarative/modelviews/listview/highlight/highlight.qmlproject create mode 100644 examples/declarative/modelviews/listview/highlight/highlight.svg create mode 100644 examples/declarative/modelviews/listview/highlight/main.cpp create mode 100644 examples/declarative/modelviews/listview/highlight/qml/highlight/content/PetsModel.qml create mode 100644 examples/declarative/modelviews/listview/highlight/qml/highlight/content/PressAndHoldButton.qml create mode 100644 examples/declarative/modelviews/listview/highlight/qml/highlight/content/RecipesModel.qml create mode 100644 examples/declarative/modelviews/listview/highlight/qml/highlight/content/TextButton.qml create mode 100644 examples/declarative/modelviews/listview/highlight/qml/highlight/content/pics/arrow-down.png create mode 100644 examples/declarative/modelviews/listview/highlight/qml/highlight/content/pics/arrow-up.png create mode 100644 examples/declarative/modelviews/listview/highlight/qml/highlight/content/pics/fruit-salad.jpg create mode 100644 examples/declarative/modelviews/listview/highlight/qml/highlight/content/pics/hamburger.jpg create mode 100644 examples/declarative/modelviews/listview/highlight/qml/highlight/content/pics/lemonade.jpg create mode 100644 examples/declarative/modelviews/listview/highlight/qml/highlight/content/pics/list-delete.png create mode 100644 examples/declarative/modelviews/listview/highlight/qml/highlight/content/pics/minus-sign.png create mode 100644 examples/declarative/modelviews/listview/highlight/qml/highlight/content/pics/moreDown.png create mode 100644 examples/declarative/modelviews/listview/highlight/qml/highlight/content/pics/moreUp.png create mode 100644 examples/declarative/modelviews/listview/highlight/qml/highlight/content/pics/pancakes.jpg create mode 100644 examples/declarative/modelviews/listview/highlight/qml/highlight/content/pics/plus-sign.png create mode 100644 examples/declarative/modelviews/listview/highlight/qml/highlight/content/pics/vegetable-soup.jpg create mode 100644 examples/declarative/modelviews/listview/highlight/qml/highlight/dynamiclist.qml create mode 100644 examples/declarative/modelviews/listview/highlight/qml/highlight/expandingdelegates.qml create mode 100644 examples/declarative/modelviews/listview/highlight/qml/highlight/highlight.qml create mode 100644 examples/declarative/modelviews/listview/highlight/qml/highlight/highlightranges.qml create mode 100644 examples/declarative/modelviews/listview/highlight/qml/highlight/sections.qml create mode 100644 examples/declarative/modelviews/listview/highlightranges/highlightranges.png create mode 100644 examples/declarative/modelviews/listview/highlightranges/highlightranges.pro create mode 100644 examples/declarative/modelviews/listview/highlightranges/highlightranges.qmlproject create mode 100644 examples/declarative/modelviews/listview/highlightranges/highlightranges.svg create mode 100644 examples/declarative/modelviews/listview/highlightranges/main.cpp create mode 100644 examples/declarative/modelviews/listview/highlightranges/qml/highlightranges/content/PetsModel.qml create mode 100644 examples/declarative/modelviews/listview/highlightranges/qml/highlightranges/content/PressAndHoldButton.qml create mode 100644 examples/declarative/modelviews/listview/highlightranges/qml/highlightranges/content/RecipesModel.qml create mode 100644 examples/declarative/modelviews/listview/highlightranges/qml/highlightranges/content/TextButton.qml create mode 100644 examples/declarative/modelviews/listview/highlightranges/qml/highlightranges/content/pics/arrow-down.png create mode 100644 examples/declarative/modelviews/listview/highlightranges/qml/highlightranges/content/pics/arrow-up.png create mode 100644 examples/declarative/modelviews/listview/highlightranges/qml/highlightranges/content/pics/fruit-salad.jpg create mode 100644 examples/declarative/modelviews/listview/highlightranges/qml/highlightranges/content/pics/hamburger.jpg create mode 100644 examples/declarative/modelviews/listview/highlightranges/qml/highlightranges/content/pics/lemonade.jpg create mode 100644 examples/declarative/modelviews/listview/highlightranges/qml/highlightranges/content/pics/list-delete.png create mode 100644 examples/declarative/modelviews/listview/highlightranges/qml/highlightranges/content/pics/minus-sign.png create mode 100644 examples/declarative/modelviews/listview/highlightranges/qml/highlightranges/content/pics/moreDown.png create mode 100644 examples/declarative/modelviews/listview/highlightranges/qml/highlightranges/content/pics/moreUp.png create mode 100644 examples/declarative/modelviews/listview/highlightranges/qml/highlightranges/content/pics/pancakes.jpg create mode 100644 examples/declarative/modelviews/listview/highlightranges/qml/highlightranges/content/pics/plus-sign.png create mode 100644 examples/declarative/modelviews/listview/highlightranges/qml/highlightranges/content/pics/vegetable-soup.jpg create mode 100644 examples/declarative/modelviews/listview/highlightranges/qml/highlightranges/dynamiclist.qml create mode 100644 examples/declarative/modelviews/listview/highlightranges/qml/highlightranges/expandingdelegates.qml create mode 100644 examples/declarative/modelviews/listview/highlightranges/qml/highlightranges/highlight.qml create mode 100644 examples/declarative/modelviews/listview/highlightranges/qml/highlightranges/highlightranges.qml create mode 100644 examples/declarative/modelviews/listview/highlightranges/qml/highlightranges/sections.qml create mode 100644 examples/declarative/modelviews/listview/listview.pro create mode 100644 examples/declarative/modelviews/listview/sections/main.cpp create mode 100644 examples/declarative/modelviews/listview/sections/qml/sections/content/PetsModel.qml create mode 100644 examples/declarative/modelviews/listview/sections/qml/sections/content/PressAndHoldButton.qml create mode 100644 examples/declarative/modelviews/listview/sections/qml/sections/content/RecipesModel.qml create mode 100644 examples/declarative/modelviews/listview/sections/qml/sections/content/TextButton.qml create mode 100644 examples/declarative/modelviews/listview/sections/qml/sections/content/pics/arrow-down.png create mode 100644 examples/declarative/modelviews/listview/sections/qml/sections/content/pics/arrow-up.png create mode 100644 examples/declarative/modelviews/listview/sections/qml/sections/content/pics/fruit-salad.jpg create mode 100644 examples/declarative/modelviews/listview/sections/qml/sections/content/pics/hamburger.jpg create mode 100644 examples/declarative/modelviews/listview/sections/qml/sections/content/pics/lemonade.jpg create mode 100644 examples/declarative/modelviews/listview/sections/qml/sections/content/pics/list-delete.png create mode 100644 examples/declarative/modelviews/listview/sections/qml/sections/content/pics/minus-sign.png create mode 100644 examples/declarative/modelviews/listview/sections/qml/sections/content/pics/moreDown.png create mode 100644 examples/declarative/modelviews/listview/sections/qml/sections/content/pics/moreUp.png create mode 100644 examples/declarative/modelviews/listview/sections/qml/sections/content/pics/pancakes.jpg create mode 100644 examples/declarative/modelviews/listview/sections/qml/sections/content/pics/plus-sign.png create mode 100644 examples/declarative/modelviews/listview/sections/qml/sections/content/pics/vegetable-soup.jpg create mode 100644 examples/declarative/modelviews/listview/sections/qml/sections/dynamiclist.qml create mode 100644 examples/declarative/modelviews/listview/sections/qml/sections/expandingdelegates.qml create mode 100644 examples/declarative/modelviews/listview/sections/qml/sections/highlight.qml create mode 100644 examples/declarative/modelviews/listview/sections/qml/sections/highlightranges.qml create mode 100644 examples/declarative/modelviews/listview/sections/qml/sections/sections.qml create mode 100644 examples/declarative/modelviews/listview/sections/sections.png create mode 100644 examples/declarative/modelviews/listview/sections/sections.pro create mode 100644 examples/declarative/modelviews/listview/sections/sections.qmlproject create mode 100644 examples/declarative/modelviews/listview/sections/sections.svg create mode 100644 examples/declarative/modelviews/modelviews.pro create mode 100644 examples/declarative/modelviews/objectlistmodel/dataobject.cpp create mode 100644 examples/declarative/modelviews/objectlistmodel/dataobject.h create mode 100644 examples/declarative/modelviews/objectlistmodel/main.cpp create mode 100644 examples/declarative/modelviews/objectlistmodel/objectlistmodel.pro create mode 100644 examples/declarative/modelviews/objectlistmodel/objectlistmodel.qmlproject create mode 100644 examples/declarative/modelviews/objectlistmodel/qml/objectlistmodel/view.qml create mode 100644 examples/declarative/modelviews/package/main.cpp create mode 100644 examples/declarative/modelviews/package/package.pro create mode 100644 examples/declarative/modelviews/package/package.qmlproject create mode 100644 examples/declarative/modelviews/package/qml/package/Delegate.qml create mode 100644 examples/declarative/modelviews/package/qml/package/view.qml create mode 100644 examples/declarative/modelviews/parallax/main.cpp create mode 100644 examples/declarative/modelviews/parallax/parallax.pro create mode 100644 examples/declarative/modelviews/parallax/parallax.qmlproject create mode 100644 examples/declarative/modelviews/parallax/parallax.svg create mode 100644 examples/declarative/modelviews/parallax/parallax64.png create mode 100644 examples/declarative/modelviews/parallax/parallax80.png create mode 100644 examples/declarative/modelviews/parallax/qml/parallax/Clock.qml create mode 100644 examples/declarative/modelviews/parallax/qml/parallax/ParallaxView.qml create mode 100644 examples/declarative/modelviews/parallax/qml/parallax/Smiley.qml create mode 100644 examples/declarative/modelviews/parallax/qml/parallax/parallax.qml create mode 100644 examples/declarative/modelviews/parallax/qml/parallax/pics/background.jpg create mode 100644 examples/declarative/modelviews/parallax/qml/parallax/pics/face-smile.png create mode 100644 examples/declarative/modelviews/parallax/qml/parallax/pics/home-page.svg create mode 100644 examples/declarative/modelviews/parallax/qml/parallax/pics/shadow.png create mode 100644 examples/declarative/modelviews/parallax/qml/parallax/pics/yast-joystick.png create mode 100644 examples/declarative/modelviews/parallax/qml/parallax/pics/yast-wol.png create mode 100644 examples/declarative/modelviews/pathview/main.cpp create mode 100644 examples/declarative/modelviews/pathview/pathview.png create mode 100644 examples/declarative/modelviews/pathview/pathview.pro create mode 100644 examples/declarative/modelviews/pathview/pathview.qmlproject create mode 100644 examples/declarative/modelviews/pathview/pathview.svg create mode 100644 examples/declarative/modelviews/pathview/qml/pathview-example/pathview-example.qml create mode 100644 examples/declarative/modelviews/pathview/qml/pathview-example/pics/AddressBook_48.png create mode 100644 examples/declarative/modelviews/pathview/qml/pathview-example/pics/AudioPlayer_48.png create mode 100644 examples/declarative/modelviews/pathview/qml/pathview-example/pics/Camera_48.png create mode 100644 examples/declarative/modelviews/pathview/qml/pathview-example/pics/DateBook_48.png create mode 100644 examples/declarative/modelviews/pathview/qml/pathview-example/pics/EMail_48.png create mode 100644 examples/declarative/modelviews/pathview/qml/pathview-example/pics/TodoList_48.png create mode 100644 examples/declarative/modelviews/pathview/qml/pathview-example/pics/VideoPlayer_48.png create mode 100644 examples/declarative/modelviews/stringlistmodel/main.cpp create mode 100644 examples/declarative/modelviews/stringlistmodel/qml/stringlistmodel/view.qml create mode 100644 examples/declarative/modelviews/stringlistmodel/stringlistmodel.pro create mode 100644 examples/declarative/modelviews/visualitemmodel/main.cpp create mode 100644 examples/declarative/modelviews/visualitemmodel/qml/visualitemmodel/visualitemmodel.qml create mode 100644 examples/declarative/modelviews/visualitemmodel/visualitemmodel.png create mode 100644 examples/declarative/modelviews/visualitemmodel/visualitemmodel.pro create mode 100644 examples/declarative/modelviews/visualitemmodel/visualitemmodel.qmlproject create mode 100644 examples/declarative/modelviews/visualitemmodel/visualitemmodel.svg create mode 100644 examples/declarative/modelviews/webview/alerts/alerts.png create mode 100644 examples/declarative/modelviews/webview/alerts/alerts.pro create mode 100644 examples/declarative/modelviews/webview/alerts/alerts.qmlproject create mode 100644 examples/declarative/modelviews/webview/alerts/alerts.svg create mode 100644 examples/declarative/modelviews/webview/alerts/main.cpp create mode 100644 examples/declarative/modelviews/webview/alerts/qml/alerts/alerts.html create mode 100644 examples/declarative/modelviews/webview/alerts/qml/alerts/alerts.qml create mode 100644 examples/declarative/modelviews/webview/autosize/autosize.png create mode 100644 examples/declarative/modelviews/webview/autosize/autosize.pro create mode 100644 examples/declarative/modelviews/webview/autosize/autosize.qmlproject create mode 100644 examples/declarative/modelviews/webview/autosize/autosize.svg create mode 100644 examples/declarative/modelviews/webview/autosize/main.cpp create mode 100644 examples/declarative/modelviews/webview/autosize/qml/autosize/autosize.qml create mode 100644 examples/declarative/modelviews/webview/googlemaps/googlemaps.png create mode 100644 examples/declarative/modelviews/webview/googlemaps/googlemaps.pro create mode 100644 examples/declarative/modelviews/webview/googlemaps/googlemaps.qmlproject create mode 100644 examples/declarative/modelviews/webview/googlemaps/googlemaps.svg create mode 100644 examples/declarative/modelviews/webview/googlemaps/main.cpp create mode 100644 examples/declarative/modelviews/webview/googlemaps/qml/googlemaps/content/Mapping/Map.qml create mode 100644 examples/declarative/modelviews/webview/googlemaps/qml/googlemaps/content/Mapping/map.html create mode 100644 examples/declarative/modelviews/webview/googlemaps/qml/googlemaps/content/pics/cancel.png create mode 100644 examples/declarative/modelviews/webview/googlemaps/qml/googlemaps/content/pics/ok.png create mode 100644 examples/declarative/modelviews/webview/googlemaps/qml/googlemaps/googlemaps.qml create mode 100644 examples/declarative/modelviews/webview/inlinehtml/inlinehtml.png create mode 100644 examples/declarative/modelviews/webview/inlinehtml/inlinehtml.pro create mode 100644 examples/declarative/modelviews/webview/inlinehtml/inlinehtml.qmlproject create mode 100644 examples/declarative/modelviews/webview/inlinehtml/inlinehtml.svg create mode 100644 examples/declarative/modelviews/webview/inlinehtml/main.cpp create mode 100644 examples/declarative/modelviews/webview/inlinehtml/qml/inlinehtml/inlinehtml.qml create mode 100644 examples/declarative/modelviews/webview/newwindows/main.cpp create mode 100644 examples/declarative/modelviews/webview/newwindows/newwindows.png create mode 100644 examples/declarative/modelviews/webview/newwindows/newwindows.pro create mode 100644 examples/declarative/modelviews/webview/newwindows/newwindows.qmlproject create mode 100644 examples/declarative/modelviews/webview/newwindows/newwindows.svg create mode 100644 examples/declarative/modelviews/webview/newwindows/qml/newwindows/newwindows.html create mode 100644 examples/declarative/modelviews/webview/newwindows/qml/newwindows/newwindows.qml create mode 100644 examples/declarative/modelviews/webview/webview.pro create mode 100644 examples/declarative/positioners/main.cpp create mode 100644 examples/declarative/positioners/positioners.png create mode 100644 examples/declarative/positioners/positioners.pro create mode 100644 examples/declarative/positioners/positioners.qmlproject create mode 100644 examples/declarative/positioners/positioners.svg create mode 100644 examples/declarative/positioners/qml/positioners/Button.qml create mode 100644 examples/declarative/positioners/qml/positioners/add.png create mode 100644 examples/declarative/positioners/qml/positioners/del.png create mode 100644 examples/declarative/positioners/qml/positioners/positioners.qml create mode 100644 examples/declarative/righttoleft/layoutdirection/layoutdirection.pro create mode 100644 examples/declarative/righttoleft/layoutdirection/layoutdirection.qmlproject create mode 100644 examples/declarative/righttoleft/layoutdirection/layoutdirection.svg create mode 100644 examples/declarative/righttoleft/layoutdirection/layoutdirection64.png create mode 100644 examples/declarative/righttoleft/layoutdirection/layoutdirection80.png create mode 100644 examples/declarative/righttoleft/layoutdirection/main.cpp create mode 100644 examples/declarative/righttoleft/layoutdirection/qml/layoutdirection/layoutdirection.qml create mode 100644 examples/declarative/righttoleft/layoutmirroring/layoutmirroring.pro create mode 100644 examples/declarative/righttoleft/layoutmirroring/layoutmirroring.qmlproject create mode 100644 examples/declarative/righttoleft/layoutmirroring/layoutmirroring.svg create mode 100644 examples/declarative/righttoleft/layoutmirroring/layoutmirroring64.png create mode 100644 examples/declarative/righttoleft/layoutmirroring/layoutmirroring80.png create mode 100644 examples/declarative/righttoleft/layoutmirroring/main.cpp create mode 100644 examples/declarative/righttoleft/layoutmirroring/qml/layoutmirroring/layoutmirroring.qml create mode 100644 examples/declarative/righttoleft/textalignment/main.cpp create mode 100644 examples/declarative/righttoleft/textalignment/qml/textalignment/textalignment.qml create mode 100644 examples/declarative/righttoleft/textalignment/textalignment.pro create mode 100644 examples/declarative/righttoleft/textalignment/textalignment.qmlproject create mode 100644 examples/declarative/righttoleft/textalignment/textalignment.svg create mode 100644 examples/declarative/righttoleft/textalignment/textalignment64.png create mode 100644 examples/declarative/righttoleft/textalignment/textalignment80.png create mode 100644 examples/declarative/screenorientation/Core/Bubble.qml create mode 100644 examples/declarative/screenorientation/Core/Button.qml create mode 100644 examples/declarative/screenorientation/Core/screenorientation.js create mode 100644 examples/declarative/screenorientation/screenorientation.qml create mode 100644 examples/declarative/screenorientation/screenorientation.qmlproject create mode 100644 examples/declarative/shadereffects/main.cpp create mode 100644 examples/declarative/shadereffects/qml/shadereffects/Curtain.qml create mode 100644 examples/declarative/shadereffects/qml/shadereffects/CurtainEffect.qml create mode 100644 examples/declarative/shadereffects/qml/shadereffects/DropShadow.qml create mode 100644 examples/declarative/shadereffects/qml/shadereffects/DropShadowEffect.qml create mode 100644 examples/declarative/shadereffects/qml/shadereffects/Grayscale.qml create mode 100644 examples/declarative/shadereffects/qml/shadereffects/GrayscaleEffect.qml create mode 100644 examples/declarative/shadereffects/qml/shadereffects/ImageMask.qml create mode 100644 examples/declarative/shadereffects/qml/shadereffects/ImageMaskEffect.qml create mode 100644 examples/declarative/shadereffects/qml/shadereffects/RadialWave.qml create mode 100644 examples/declarative/shadereffects/qml/shadereffects/RadialWaveEffect.qml create mode 100644 examples/declarative/shadereffects/qml/shadereffects/Water.qml create mode 100644 examples/declarative/shadereffects/qml/shadereffects/WaterEffect.qml create mode 100644 examples/declarative/shadereffects/qml/shadereffects/images/Curtain.jpg create mode 100644 examples/declarative/shadereffects/qml/shadereffects/images/DropShadow.jpg create mode 100644 examples/declarative/shadereffects/qml/shadereffects/images/Grayscale.jpg create mode 100644 examples/declarative/shadereffects/qml/shadereffects/images/ImageMask.jpg create mode 100644 examples/declarative/shadereffects/qml/shadereffects/images/RadialWave.jpg create mode 100644 examples/declarative/shadereffects/qml/shadereffects/images/Water.jpg create mode 100644 examples/declarative/shadereffects/qml/shadereffects/images/back.png create mode 100644 examples/declarative/shadereffects/qml/shadereffects/images/bg.jpg create mode 100644 examples/declarative/shadereffects/qml/shadereffects/images/desaturate.jpg create mode 100644 examples/declarative/shadereffects/qml/shadereffects/images/drop_shadow.png create mode 100644 examples/declarative/shadereffects/qml/shadereffects/images/fabric.jpg create mode 100644 examples/declarative/shadereffects/qml/shadereffects/images/flower.png create mode 100644 examples/declarative/shadereffects/qml/shadereffects/images/image1.jpg create mode 100644 examples/declarative/shadereffects/qml/shadereffects/images/image2.jpg create mode 100644 examples/declarative/shadereffects/qml/shadereffects/images/qt-logo.png create mode 100644 examples/declarative/shadereffects/qml/shadereffects/images/shader_effects.jpg create mode 100644 examples/declarative/shadereffects/qml/shadereffects/images/sky.jpg create mode 100644 examples/declarative/shadereffects/qml/shadereffects/images/toolbar.png create mode 100644 examples/declarative/shadereffects/qml/shadereffects/images/wave.jpg create mode 100644 examples/declarative/shadereffects/qml/shadereffects/main.qml create mode 100644 examples/declarative/shadereffects/shadereffects.pro create mode 100644 examples/declarative/shadereffects/shadereffects.qmlproject create mode 100644 examples/declarative/sqllocalstorage/main.cpp create mode 100644 examples/declarative/sqllocalstorage/qml/sqllocalstorage/hello.qml create mode 100644 examples/declarative/sqllocalstorage/sqllocalstorage.pro create mode 100644 examples/declarative/sqllocalstorage/sqllocalstorage.qmlproject create mode 100644 examples/declarative/sqllocalstorage/sqllocalstorage.svg create mode 100644 examples/declarative/sqllocalstorage/sqllocalstorage64.png create mode 100644 examples/declarative/sqllocalstorage/sqllocalstorage80.png create mode 100644 examples/declarative/text/fonts/availableFonts/availableFonts.png create mode 100644 examples/declarative/text/fonts/availableFonts/availableFonts.pro create mode 100644 examples/declarative/text/fonts/availableFonts/availableFonts.qmlproject create mode 100644 examples/declarative/text/fonts/availableFonts/availableFonts.svg create mode 100644 examples/declarative/text/fonts/availableFonts/main.cpp create mode 100644 examples/declarative/text/fonts/availableFonts/qml/availableFonts/availableFonts.qml create mode 100644 examples/declarative/text/fonts/availableFonts/qml/availableFonts/banner.qml create mode 100644 examples/declarative/text/fonts/availableFonts/qml/availableFonts/fonts.qml create mode 100644 examples/declarative/text/fonts/availableFonts/qml/availableFonts/fonts/tarzeau_ocr_a.ttf create mode 100644 examples/declarative/text/fonts/availableFonts/qml/availableFonts/hello.qml create mode 100644 examples/declarative/text/fonts/banner/banner.png create mode 100644 examples/declarative/text/fonts/banner/banner.pro create mode 100644 examples/declarative/text/fonts/banner/banner.qmlproject create mode 100644 examples/declarative/text/fonts/banner/banner.svg create mode 100644 examples/declarative/text/fonts/banner/main.cpp create mode 100644 examples/declarative/text/fonts/banner/qml/banner/availableFonts.qml create mode 100644 examples/declarative/text/fonts/banner/qml/banner/banner.qml create mode 100644 examples/declarative/text/fonts/banner/qml/banner/fonts.qml create mode 100644 examples/declarative/text/fonts/banner/qml/banner/fonts/tarzeau_ocr_a.ttf create mode 100644 examples/declarative/text/fonts/banner/qml/banner/hello.qml create mode 100644 examples/declarative/text/fonts/fonts.pro create mode 100644 examples/declarative/text/fonts/fonts/fonts.png create mode 100644 examples/declarative/text/fonts/fonts/fonts.pro create mode 100644 examples/declarative/text/fonts/fonts/fonts.qmlproject create mode 100644 examples/declarative/text/fonts/fonts/fonts.svg create mode 100644 examples/declarative/text/fonts/fonts/main.cpp create mode 100644 examples/declarative/text/fonts/fonts/qml/fonts-qml/availableFonts.qml create mode 100644 examples/declarative/text/fonts/fonts/qml/fonts-qml/banner.qml create mode 100644 examples/declarative/text/fonts/fonts/qml/fonts-qml/fonts.qml create mode 100644 examples/declarative/text/fonts/fonts/qml/fonts-qml/fonts/tarzeau_ocr_a.ttf create mode 100644 examples/declarative/text/fonts/fonts/qml/fonts-qml/hello.qml create mode 100644 examples/declarative/text/fonts/hello/hello.png create mode 100644 examples/declarative/text/fonts/hello/hello.pro create mode 100644 examples/declarative/text/fonts/hello/hello.qmlproject create mode 100644 examples/declarative/text/fonts/hello/hello.svg create mode 100644 examples/declarative/text/fonts/hello/main.cpp create mode 100644 examples/declarative/text/fonts/hello/qml/hello/availableFonts.qml create mode 100644 examples/declarative/text/fonts/hello/qml/hello/banner.qml create mode 100644 examples/declarative/text/fonts/hello/qml/hello/fonts.qml create mode 100644 examples/declarative/text/fonts/hello/qml/hello/fonts/tarzeau_ocr_a.ttf create mode 100644 examples/declarative/text/fonts/hello/qml/hello/hello.qml create mode 100644 examples/declarative/text/text.pro create mode 100644 examples/declarative/text/textselection/main.cpp create mode 100644 examples/declarative/text/textselection/qml/textselection/pics/endHandle.png create mode 100644 examples/declarative/text/textselection/qml/textselection/pics/endHandle.sci create mode 100644 examples/declarative/text/textselection/qml/textselection/pics/startHandle.png create mode 100644 examples/declarative/text/textselection/qml/textselection/pics/startHandle.sci create mode 100644 examples/declarative/text/textselection/qml/textselection/textselection.qml create mode 100644 examples/declarative/text/textselection/textselection.png create mode 100644 examples/declarative/text/textselection/textselection.pro create mode 100644 examples/declarative/text/textselection/textselection.qmlproject create mode 100644 examples/declarative/text/textselection/textselection.svg create mode 100644 examples/declarative/threading/threadedlistmodel/main.cpp create mode 100644 examples/declarative/threading/threadedlistmodel/qml/threadedlistmodel/dataloader.js create mode 100644 examples/declarative/threading/threadedlistmodel/qml/threadedlistmodel/timedisplay.qml create mode 100644 examples/declarative/threading/threadedlistmodel/threadedlistmodel.pro create mode 100644 examples/declarative/threading/threadedlistmodel/threadedlistmodel.qmlproject create mode 100644 examples/declarative/threading/threadedlistmodel/threadedlistmodel.svg create mode 100644 examples/declarative/threading/threadedlistmodel/threadedlistmodel64.png create mode 100644 examples/declarative/threading/threadedlistmodel/threadedlistmodel80.png create mode 100644 examples/declarative/threading/threading.pro create mode 100644 examples/declarative/threading/workerscript/main.cpp create mode 100644 examples/declarative/threading/workerscript/qml/workerscript/workerscript.js create mode 100644 examples/declarative/threading/workerscript/qml/workerscript/workerscript.qml create mode 100644 examples/declarative/threading/workerscript/workerscript.pro create mode 100644 examples/declarative/threading/workerscript/workerscript.qmlproject create mode 100644 examples/declarative/threading/workerscript/workerscript.svg create mode 100644 examples/declarative/threading/workerscript/workerscript64.png create mode 100644 examples/declarative/threading/workerscript/workerscript80.png create mode 100644 examples/declarative/touchinteraction/gestures/experimental-gestures/experimentalgestures.png create mode 100644 examples/declarative/touchinteraction/gestures/experimental-gestures/experimentalgestures.pro create mode 100644 examples/declarative/touchinteraction/gestures/experimental-gestures/experimentalgestures.svg create mode 100644 examples/declarative/touchinteraction/gestures/experimental-gestures/gestures.qmlproject create mode 100644 examples/declarative/touchinteraction/gestures/experimental-gestures/main.cpp create mode 100644 examples/declarative/touchinteraction/gestures/experimental-gestures/qml/experimental-gestures/experimental-gestures.qml create mode 100644 examples/declarative/touchinteraction/mousearea/mousearea-example/main.cpp create mode 100644 examples/declarative/touchinteraction/mousearea/mousearea-example/mousearea.qmlproject create mode 100644 examples/declarative/touchinteraction/mousearea/mousearea-example/mouseareaexample.png create mode 100644 examples/declarative/touchinteraction/mousearea/mousearea-example/mouseareaexample.pro create mode 100644 examples/declarative/touchinteraction/mousearea/mousearea-example/mouseareaexample.svg create mode 100644 examples/declarative/touchinteraction/mousearea/mousearea-example/qml/mousearea-example/mousearea-example.qml create mode 100644 examples/declarative/touchinteraction/pincharea/main.cpp create mode 100644 examples/declarative/touchinteraction/pincharea/pincharea.pro create mode 100644 examples/declarative/touchinteraction/pincharea/pincharea.qmlproject create mode 100644 examples/declarative/touchinteraction/pincharea/pincharea.svg create mode 100644 examples/declarative/touchinteraction/pincharea/pincharea64.png create mode 100644 examples/declarative/touchinteraction/pincharea/pincharea80.png create mode 100644 examples/declarative/touchinteraction/pincharea/qml/pincharea/flickresize.qml create mode 100644 examples/declarative/touchinteraction/pincharea/qml/pincharea/qt-logo.jpg create mode 100644 examples/declarative/touchinteraction/touchinteraction.pro create mode 100644 examples/declarative/toys/clocks/clocks.png create mode 100644 examples/declarative/toys/clocks/clocks.pro create mode 100644 examples/declarative/toys/clocks/clocks.qmlproject create mode 100644 examples/declarative/toys/clocks/clocks.svg create mode 100644 examples/declarative/toys/clocks/main.cpp create mode 100644 examples/declarative/toys/clocks/qml/clocks/clocks.qml create mode 100644 examples/declarative/toys/clocks/qml/clocks/content/Clock.qml create mode 100644 examples/declarative/toys/clocks/qml/clocks/content/QuitButton.qml create mode 100644 examples/declarative/toys/clocks/qml/clocks/content/background.png create mode 100644 examples/declarative/toys/clocks/qml/clocks/content/center.png create mode 100644 examples/declarative/toys/clocks/qml/clocks/content/clock-night.png create mode 100644 examples/declarative/toys/clocks/qml/clocks/content/clock.png create mode 100644 examples/declarative/toys/clocks/qml/clocks/content/hour.png create mode 100644 examples/declarative/toys/clocks/qml/clocks/content/minute.png create mode 100644 examples/declarative/toys/clocks/qml/clocks/content/quit.png create mode 100644 examples/declarative/toys/clocks/qml/clocks/content/second.png create mode 100644 examples/declarative/toys/corkboards/corkboards.png create mode 100644 examples/declarative/toys/corkboards/corkboards.pro create mode 100644 examples/declarative/toys/corkboards/corkboards.qmlproject create mode 100644 examples/declarative/toys/corkboards/corkboards.svg create mode 100644 examples/declarative/toys/corkboards/main.cpp create mode 100644 examples/declarative/toys/corkboards/qml/corkboards/Day.qml create mode 100644 examples/declarative/toys/corkboards/qml/corkboards/cork.jpg create mode 100644 examples/declarative/toys/corkboards/qml/corkboards/corkboards.qml create mode 100644 examples/declarative/toys/corkboards/qml/corkboards/note-yellow.png create mode 100644 examples/declarative/toys/corkboards/qml/corkboards/tack.png create mode 100644 examples/declarative/toys/dynamicscene/dynamicscene.png create mode 100644 examples/declarative/toys/dynamicscene/dynamicscene.pro create mode 100644 examples/declarative/toys/dynamicscene/dynamicscene.qmlproject create mode 100644 examples/declarative/toys/dynamicscene/dynamicscene.svg create mode 100644 examples/declarative/toys/dynamicscene/main.cpp create mode 100644 examples/declarative/toys/dynamicscene/qml/dynamicscene/Button.qml create mode 100644 examples/declarative/toys/dynamicscene/qml/dynamicscene/GenericSceneItem.qml create mode 100644 examples/declarative/toys/dynamicscene/qml/dynamicscene/PaletteItem.qml create mode 100644 examples/declarative/toys/dynamicscene/qml/dynamicscene/PerspectiveItem.qml create mode 100644 examples/declarative/toys/dynamicscene/qml/dynamicscene/Sun.qml create mode 100644 examples/declarative/toys/dynamicscene/qml/dynamicscene/dynamicscene.qml create mode 100644 examples/declarative/toys/dynamicscene/qml/dynamicscene/images/NOTE create mode 100644 examples/declarative/toys/dynamicscene/qml/dynamicscene/images/face-smile.png create mode 100644 examples/declarative/toys/dynamicscene/qml/dynamicscene/images/moon.png create mode 100644 examples/declarative/toys/dynamicscene/qml/dynamicscene/images/rabbit_brown.png create mode 100644 examples/declarative/toys/dynamicscene/qml/dynamicscene/images/rabbit_bw.png create mode 100644 examples/declarative/toys/dynamicscene/qml/dynamicscene/images/star.png create mode 100644 examples/declarative/toys/dynamicscene/qml/dynamicscene/images/sun.png create mode 100644 examples/declarative/toys/dynamicscene/qml/dynamicscene/images/tree_s.png create mode 100644 examples/declarative/toys/dynamicscene/qml/dynamicscene/itemCreation.js create mode 100644 examples/declarative/toys/tic-tac-toe/main.cpp create mode 100644 examples/declarative/toys/tic-tac-toe/qml/tic-tac-toe/content/Button.qml create mode 100644 examples/declarative/toys/tic-tac-toe/qml/tic-tac-toe/content/TicTac.qml create mode 100644 examples/declarative/toys/tic-tac-toe/qml/tic-tac-toe/content/pics/board.png create mode 100644 examples/declarative/toys/tic-tac-toe/qml/tic-tac-toe/content/pics/o.png create mode 100644 examples/declarative/toys/tic-tac-toe/qml/tic-tac-toe/content/pics/x.png create mode 100644 examples/declarative/toys/tic-tac-toe/qml/tic-tac-toe/content/tic-tac-toe.js create mode 100644 examples/declarative/toys/tic-tac-toe/qml/tic-tac-toe/tic-tac-toe.qml create mode 100644 examples/declarative/toys/tic-tac-toe/tic-tac-toe.qmlproject create mode 100644 examples/declarative/toys/tic-tac-toe/tictactoe.png create mode 100644 examples/declarative/toys/tic-tac-toe/tictactoe.pro create mode 100644 examples/declarative/toys/tic-tac-toe/tictactoe.svg create mode 100644 examples/declarative/toys/toys.pro create mode 100644 examples/declarative/toys/tvtennis/main.cpp create mode 100644 examples/declarative/toys/tvtennis/qml/tvtennis/tvtennis.qml create mode 100644 examples/declarative/toys/tvtennis/tvtennis.png create mode 100644 examples/declarative/toys/tvtennis/tvtennis.pro create mode 100644 examples/declarative/toys/tvtennis/tvtennis.qmlproject create mode 100644 examples/declarative/toys/tvtennis/tvtennis.svg create mode 100644 examples/declarative/tutorials/extending/chapter1-basics/app.qml create mode 100644 examples/declarative/tutorials/extending/chapter1-basics/chapter1-basics.pro create mode 100644 examples/declarative/tutorials/extending/chapter1-basics/main.cpp create mode 100644 examples/declarative/tutorials/extending/chapter1-basics/piechart.cpp create mode 100644 examples/declarative/tutorials/extending/chapter1-basics/piechart.h create mode 100644 examples/declarative/tutorials/extending/chapter2-methods/app.qml create mode 100644 examples/declarative/tutorials/extending/chapter2-methods/chapter2-methods.pro create mode 100644 examples/declarative/tutorials/extending/chapter2-methods/main.cpp create mode 100644 examples/declarative/tutorials/extending/chapter2-methods/piechart.cpp create mode 100644 examples/declarative/tutorials/extending/chapter2-methods/piechart.h create mode 100644 examples/declarative/tutorials/extending/chapter3-bindings/app.qml create mode 100644 examples/declarative/tutorials/extending/chapter3-bindings/chapter3-bindings.pro create mode 100644 examples/declarative/tutorials/extending/chapter3-bindings/main.cpp create mode 100644 examples/declarative/tutorials/extending/chapter3-bindings/piechart.cpp create mode 100644 examples/declarative/tutorials/extending/chapter3-bindings/piechart.h create mode 100644 examples/declarative/tutorials/extending/chapter4-customPropertyTypes/app.qml create mode 100644 examples/declarative/tutorials/extending/chapter4-customPropertyTypes/chapter4-customPropertyTypes.pro create mode 100644 examples/declarative/tutorials/extending/chapter4-customPropertyTypes/main.cpp create mode 100644 examples/declarative/tutorials/extending/chapter4-customPropertyTypes/piechart.cpp create mode 100644 examples/declarative/tutorials/extending/chapter4-customPropertyTypes/piechart.h create mode 100644 examples/declarative/tutorials/extending/chapter4-customPropertyTypes/pieslice.cpp create mode 100644 examples/declarative/tutorials/extending/chapter4-customPropertyTypes/pieslice.h create mode 100644 examples/declarative/tutorials/extending/chapter5-listproperties/app.qml create mode 100644 examples/declarative/tutorials/extending/chapter5-listproperties/chapter5-listproperties.pro create mode 100644 examples/declarative/tutorials/extending/chapter5-listproperties/main.cpp create mode 100644 examples/declarative/tutorials/extending/chapter5-listproperties/piechart.cpp create mode 100644 examples/declarative/tutorials/extending/chapter5-listproperties/piechart.h create mode 100644 examples/declarative/tutorials/extending/chapter5-listproperties/pieslice.cpp create mode 100644 examples/declarative/tutorials/extending/chapter5-listproperties/pieslice.h create mode 100644 examples/declarative/tutorials/extending/chapter6-plugins/app.qml create mode 100644 examples/declarative/tutorials/extending/chapter6-plugins/chapter6-plugins.pro create mode 100644 examples/declarative/tutorials/extending/chapter6-plugins/chartsplugin.cpp create mode 100644 examples/declarative/tutorials/extending/chapter6-plugins/chartsplugin.h create mode 100644 examples/declarative/tutorials/extending/chapter6-plugins/piechart.cpp create mode 100644 examples/declarative/tutorials/extending/chapter6-plugins/piechart.h create mode 100644 examples/declarative/tutorials/extending/chapter6-plugins/pieslice.cpp create mode 100644 examples/declarative/tutorials/extending/chapter6-plugins/pieslice.h create mode 100644 examples/declarative/tutorials/extending/chapter6-plugins/qmldir create mode 100644 examples/declarative/tutorials/extending/extending.pro create mode 100644 examples/declarative/tutorials/helloworld/Cell.qml create mode 100644 examples/declarative/tutorials/helloworld/tutorial1.qml create mode 100644 examples/declarative/tutorials/helloworld/tutorial2.qml create mode 100644 examples/declarative/tutorials/helloworld/tutorial3.qml create mode 100644 examples/declarative/tutorials/samegame/samegame1/Block.qml create mode 100644 examples/declarative/tutorials/samegame/samegame1/Button.qml create mode 100644 examples/declarative/tutorials/samegame/samegame1/samegame.qml create mode 100644 examples/declarative/tutorials/samegame/samegame1/samegame1.qmlproject create mode 100644 examples/declarative/tutorials/samegame/samegame2/Block.qml create mode 100644 examples/declarative/tutorials/samegame/samegame2/Button.qml create mode 100644 examples/declarative/tutorials/samegame/samegame2/samegame.js create mode 100644 examples/declarative/tutorials/samegame/samegame2/samegame.qml create mode 100644 examples/declarative/tutorials/samegame/samegame2/samegame2.qmlproject create mode 100644 examples/declarative/tutorials/samegame/samegame3/Block.qml create mode 100644 examples/declarative/tutorials/samegame/samegame3/Button.qml create mode 100644 examples/declarative/tutorials/samegame/samegame3/Dialog.qml create mode 100644 examples/declarative/tutorials/samegame/samegame3/samegame.js create mode 100644 examples/declarative/tutorials/samegame/samegame3/samegame.qml create mode 100644 examples/declarative/tutorials/samegame/samegame3/samegame3.qmlproject create mode 100644 examples/declarative/tutorials/samegame/samegame4/content/BoomBlock.qml create mode 100644 examples/declarative/tutorials/samegame/samegame4/content/Button.qml create mode 100644 examples/declarative/tutorials/samegame/samegame4/content/Dialog.qml create mode 100644 examples/declarative/tutorials/samegame/samegame4/content/samegame.js create mode 100644 examples/declarative/tutorials/samegame/samegame4/highscores/README create mode 100644 examples/declarative/tutorials/samegame/samegame4/highscores/score_data.xml create mode 100644 examples/declarative/tutorials/samegame/samegame4/highscores/score_style.xsl create mode 100644 examples/declarative/tutorials/samegame/samegame4/highscores/scores.php create mode 100644 examples/declarative/tutorials/samegame/samegame4/samegame.qml create mode 100644 examples/declarative/tutorials/samegame/samegame4/samegame4.qmlproject create mode 100644 examples/declarative/tutorials/samegame/shared/pics/background.jpg create mode 100644 examples/declarative/tutorials/samegame/shared/pics/blueStar.png create mode 100644 examples/declarative/tutorials/samegame/shared/pics/blueStone.png create mode 100644 examples/declarative/tutorials/samegame/shared/pics/greenStar.png create mode 100644 examples/declarative/tutorials/samegame/shared/pics/greenStone.png create mode 100644 examples/declarative/tutorials/samegame/shared/pics/redStar.png create mode 100644 examples/declarative/tutorials/samegame/shared/pics/redStone.png create mode 100644 examples/declarative/tutorials/samegame/shared/pics/star.png create mode 100644 examples/declarative/tutorials/samegame/shared/pics/yellowStone.png create mode 100644 examples/declarative/tutorials/tutorials.pro create mode 100644 examples/declarative/tutorials/tutorials.qmlproject create mode 100644 examples/declarative/ui-components/dialcontrol/dialcontrol.png create mode 100644 examples/declarative/ui-components/dialcontrol/dialcontrol.pro create mode 100644 examples/declarative/ui-components/dialcontrol/dialcontrol.qmlproject create mode 100644 examples/declarative/ui-components/dialcontrol/dialcontrol.svg create mode 100644 examples/declarative/ui-components/dialcontrol/main.cpp create mode 100644 examples/declarative/ui-components/dialcontrol/qml/dialcontrol/content/Dial.qml create mode 100644 examples/declarative/ui-components/dialcontrol/qml/dialcontrol/content/QuitButton.qml create mode 100644 examples/declarative/ui-components/dialcontrol/qml/dialcontrol/content/background.png create mode 100644 examples/declarative/ui-components/dialcontrol/qml/dialcontrol/content/needle.png create mode 100644 examples/declarative/ui-components/dialcontrol/qml/dialcontrol/content/needle_shadow.png create mode 100644 examples/declarative/ui-components/dialcontrol/qml/dialcontrol/content/overlay.png create mode 100644 examples/declarative/ui-components/dialcontrol/qml/dialcontrol/content/quit.png create mode 100644 examples/declarative/ui-components/dialcontrol/qml/dialcontrol/dialcontrol.qml create mode 100644 examples/declarative/ui-components/flipable/flipable.png create mode 100644 examples/declarative/ui-components/flipable/flipable.pro create mode 100644 examples/declarative/ui-components/flipable/flipable.qmlproject create mode 100644 examples/declarative/ui-components/flipable/flipable.svg create mode 100644 examples/declarative/ui-components/flipable/main.cpp create mode 100644 examples/declarative/ui-components/flipable/qml/flipable/content/5_heart.png create mode 100644 examples/declarative/ui-components/flipable/qml/flipable/content/9_club.png create mode 100644 examples/declarative/ui-components/flipable/qml/flipable/content/Card.qml create mode 100644 examples/declarative/ui-components/flipable/qml/flipable/content/back.png create mode 100644 examples/declarative/ui-components/flipable/qml/flipable/flipable.qml create mode 100644 examples/declarative/ui-components/main/main.cpp create mode 100644 examples/declarative/ui-components/main/main.png create mode 100644 examples/declarative/ui-components/main/main.pro create mode 100644 examples/declarative/ui-components/main/main.qmlproject create mode 100644 examples/declarative/ui-components/main/main.svg create mode 100644 examples/declarative/ui-components/main/qml/main/ScrollBar.qml create mode 100644 examples/declarative/ui-components/main/qml/main/SearchBox.qml create mode 100644 examples/declarative/ui-components/main/qml/main/TabWidget.qml create mode 100644 examples/declarative/ui-components/main/qml/main/content/ProgressBar.qml create mode 100644 examples/declarative/ui-components/main/qml/main/content/Spinner.qml create mode 100644 examples/declarative/ui-components/main/qml/main/content/background.png create mode 100644 examples/declarative/ui-components/main/qml/main/content/spinner-bg.png create mode 100644 examples/declarative/ui-components/main/qml/main/content/spinner-select.png create mode 100644 examples/declarative/ui-components/main/qml/main/images/clear.png create mode 100644 examples/declarative/ui-components/main/qml/main/images/lineedit-bg-focus.png create mode 100644 examples/declarative/ui-components/main/qml/main/images/lineedit-bg.png create mode 100644 examples/declarative/ui-components/main/qml/main/main.qml create mode 100644 examples/declarative/ui-components/main/qml/main/pics/niagara_falls.jpg create mode 100644 examples/declarative/ui-components/main/qml/main/tab.png create mode 100644 examples/declarative/ui-components/progressbar/main.cpp create mode 100644 examples/declarative/ui-components/progressbar/progressbar.png create mode 100644 examples/declarative/ui-components/progressbar/progressbar.pro create mode 100644 examples/declarative/ui-components/progressbar/progressbar.qmlproject create mode 100644 examples/declarative/ui-components/progressbar/progressbar.svg create mode 100644 examples/declarative/ui-components/progressbar/qml/progressbar/content/ProgressBar.qml create mode 100644 examples/declarative/ui-components/progressbar/qml/progressbar/content/background.png create mode 100644 examples/declarative/ui-components/progressbar/qml/progressbar/main.qml create mode 100644 examples/declarative/ui-components/scrollbar/main.cpp create mode 100644 examples/declarative/ui-components/scrollbar/qml/scrollbar/ScrollBar.qml create mode 100644 examples/declarative/ui-components/scrollbar/qml/scrollbar/main.qml create mode 100644 examples/declarative/ui-components/scrollbar/qml/scrollbar/niagara_falls.jpg create mode 100644 examples/declarative/ui-components/scrollbar/scrollbar.pro create mode 100644 examples/declarative/ui-components/scrollbar/scrollbar.qmlproject create mode 100644 examples/declarative/ui-components/scrollbar/scrollbar.svg create mode 100644 examples/declarative/ui-components/scrollbar/scrollbar64.png create mode 100644 examples/declarative/ui-components/scrollbar/scrollbar80.png create mode 100644 examples/declarative/ui-components/searchbox/main.cpp create mode 100644 examples/declarative/ui-components/searchbox/qml/searchbox/SearchBox.qml create mode 100644 examples/declarative/ui-components/searchbox/qml/searchbox/images/clear.png create mode 100644 examples/declarative/ui-components/searchbox/qml/searchbox/images/lineedit-bg-focus.png create mode 100644 examples/declarative/ui-components/searchbox/qml/searchbox/images/lineedit-bg.png create mode 100644 examples/declarative/ui-components/searchbox/qml/searchbox/main.qml create mode 100644 examples/declarative/ui-components/searchbox/searchbox.pro create mode 100644 examples/declarative/ui-components/searchbox/searchbox.qmlproject create mode 100644 examples/declarative/ui-components/searchbox/searchbox.svg create mode 100644 examples/declarative/ui-components/searchbox/searchbox64.png create mode 100644 examples/declarative/ui-components/searchbox/searchbox80.png create mode 100644 examples/declarative/ui-components/slideswitch/main.cpp create mode 100644 examples/declarative/ui-components/slideswitch/qml/slideswitch/content/Switch.qml create mode 100644 examples/declarative/ui-components/slideswitch/qml/slideswitch/content/background.svg create mode 100644 examples/declarative/ui-components/slideswitch/qml/slideswitch/content/knob.svg create mode 100644 examples/declarative/ui-components/slideswitch/qml/slideswitch/slideswitch.qml create mode 100644 examples/declarative/ui-components/slideswitch/slideswitch.png create mode 100644 examples/declarative/ui-components/slideswitch/slideswitch.pro create mode 100644 examples/declarative/ui-components/slideswitch/slideswitch.qmlproject create mode 100644 examples/declarative/ui-components/slideswitch/slideswitch.svg create mode 100644 examples/declarative/ui-components/spinner/main.cpp create mode 100644 examples/declarative/ui-components/spinner/qml/spinner/main.qml create mode 100644 examples/declarative/ui-components/spinner/spinner.pro create mode 100644 examples/declarative/ui-components/spinner/spinner.qmlproject create mode 100644 examples/declarative/ui-components/spinner/spinner.svg create mode 100644 examples/declarative/ui-components/spinner/spinner64.png create mode 100644 examples/declarative/ui-components/spinner/spinner80.png create mode 100644 examples/declarative/ui-components/tabwidget/main.cpp create mode 100644 examples/declarative/ui-components/tabwidget/qml/tabwidget/TabWidget.qml create mode 100644 examples/declarative/ui-components/tabwidget/qml/tabwidget/main.qml create mode 100644 examples/declarative/ui-components/tabwidget/qml/tabwidget/tab.png create mode 100644 examples/declarative/ui-components/tabwidget/tabwidget.pro create mode 100644 examples/declarative/ui-components/tabwidget/tabwidget.qmlproject create mode 100644 examples/declarative/ui-components/tabwidget/tabwidget.svg create mode 100644 examples/declarative/ui-components/tabwidget/tabwidget64.png create mode 100644 examples/declarative/ui-components/tabwidget/tabwidget80.png create mode 100644 examples/declarative/ui-components/ui-components.pro create mode 100644 examples/declarative/xml/xmlhttprequest-example/main.cpp create mode 100644 examples/declarative/xml/xmlhttprequest-example/qml/xmlhttprequest-example/data.xml create mode 100644 examples/declarative/xml/xmlhttprequest-example/qml/xmlhttprequest-example/xmlhttprequest-example.qml create mode 100644 examples/declarative/xml/xmlhttprequest-example/xmlhttprequest.qmlproject create mode 100644 examples/declarative/xml/xmlhttprequest-example/xmlhttprequestexample.png create mode 100644 examples/declarative/xml/xmlhttprequest-example/xmlhttprequestexample.pro create mode 100644 examples/declarative/xml/xmlhttprequest-example/xmlhttprequestexample.svg create mode 100644 examples/declarative/xml/xmlhttprequest/xmlhttprequest-example.qml create mode 100644 examples/declarative/xml/xmlhttprequest/xmlhttprequest.qmlproject create mode 100644 examples/helper/qmlapplicationviewer/qmlapplicationviewer.cpp create mode 100644 examples/helper/qmlapplicationviewer/qmlapplicationviewer.h create mode 100644 examples/helper/qmlapplicationviewer/qmlapplicationviewer.pri create mode 100644 examples/tutorials/gettingStarted/gsQml/core/button.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/core/editMenu.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/core/fileDialog.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/core/fileMenu.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/core/menuBar.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/core/qmldir create mode 100644 examples/tutorials/gettingStarted/gsQml/core/textArea.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.cpp create mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/dialogPlugin.h create mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/directory.cpp create mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/directory.h create mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/file.cpp create mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/file.h create mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/filedialog.pro create mode 100644 examples/tutorials/gettingStarted/gsQml/filedialog/qmldir create mode 100644 examples/tutorials/gettingStarted/gsQml/images/arrow.png create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part0/Button.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part1/Button.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part1/EditMenu.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part1/FileMenu.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part1/SimpleButton.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part1/pics/qml-texteditor1_button.png create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part1/pics/qml-texteditor1_editmenu.png create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part1/pics/qml-texteditor1_filemenu.png create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part1/pics/qml-texteditor1_simplebutton.png create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part1/qml-texteditor.qmlproject create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part2/Button.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part2/EditMenu.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part2/FileMenu.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part2/MenuBar.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part2/pics/qml-texteditor2_menubar.png create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part2/qml-texteditor2.qmlproject create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part3/Button.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part3/EditMenu.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part3/FileMenu.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part3/MenuBar.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part3/TextArea.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part3/TextEditor.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part3/images/arrow.png create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part3/pics/qml-texteditor3_texteditor.png create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part3/qml-texteditor3.qmlproject create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part4/Button.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part4/EditMenu.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part4/FileMenu.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part4/MenuBar.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part4/SimpleButton.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part4/TextArea.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part4/TextEditor.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part4/images/arrow.png create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part4/pics/qml-texteditor4_texteditor.png create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part4/qml-texteditor4.qmlproject create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/TextEditor.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/core/Button.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/core/EditMenu.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/core/FileDialog.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/core/FileMenu.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/core/MenuBar.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/core/TextArea.qml create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/core/qmldir create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/dialogPlugin.cpp create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/dialogPlugin.h create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/directory.cpp create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/directory.h create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/file.cpp create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/file.h create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/filedialog.pro create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/filedialog/qmldir create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/images/arrow.png create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/pics/qml-texteditor5_editmenu.png create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/pics/qml-texteditor5_filemenu.png create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/pics/qml-texteditor5_newfile.png create mode 100644 examples/tutorials/gettingStarted/gsQml/parts/part5/qml-texteditor5.qmlproject create mode 100644 examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_editmenu.png create mode 100644 examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_filemenu.png create mode 100644 examples/tutorials/gettingStarted/gsQml/pics/qml-texteditor5_newfile.png create mode 100644 examples/tutorials/gettingStarted/gsQml/texteditor.pro create mode 100644 examples/tutorials/gettingStarted/gsQml/texteditor.qml create mode 100644 src/declarative/QmlChanges.txt create mode 100644 src/declarative/debugger/debugger.pri create mode 100644 src/declarative/debugger/qdeclarativedebug.h create mode 100644 src/declarative/debugger/qdeclarativedebugclient.cpp create mode 100644 src/declarative/debugger/qdeclarativedebugclient_p.h create mode 100644 src/declarative/debugger/qdeclarativedebuggerstatus.cpp create mode 100644 src/declarative/debugger/qdeclarativedebuggerstatus_p.h create mode 100644 src/declarative/debugger/qdeclarativedebughelper.cpp create mode 100644 src/declarative/debugger/qdeclarativedebughelper_p.h create mode 100644 src/declarative/debugger/qdeclarativedebugserver.cpp create mode 100644 src/declarative/debugger/qdeclarativedebugserver_p.h create mode 100644 src/declarative/debugger/qdeclarativedebugserverconnection_p.h create mode 100644 src/declarative/debugger/qdeclarativedebugservice.cpp create mode 100644 src/declarative/debugger/qdeclarativedebugservice_p.h create mode 100644 src/declarative/debugger/qdeclarativedebugservice_p_p.h create mode 100644 src/declarative/debugger/qdeclarativedebugtrace.cpp create mode 100644 src/declarative/debugger/qdeclarativedebugtrace_p.h create mode 100644 src/declarative/debugger/qdeclarativeenginedebug.cpp create mode 100644 src/declarative/debugger/qdeclarativeenginedebug_p.h create mode 100644 src/declarative/debugger/qdeclarativeenginedebugservice.cpp create mode 100644 src/declarative/debugger/qdeclarativeenginedebugservice_p.h create mode 100644 src/declarative/debugger/qdeclarativeinspectorinterface_p.h create mode 100644 src/declarative/debugger/qdeclarativeinspectorservice.cpp create mode 100644 src/declarative/debugger/qdeclarativeinspectorservice_p.h create mode 100644 src/declarative/debugger/qjsdebuggeragent.cpp create mode 100644 src/declarative/debugger/qjsdebuggeragent_p.h create mode 100644 src/declarative/debugger/qjsdebugservice.cpp create mode 100644 src/declarative/debugger/qjsdebugservice_p.h create mode 100644 src/declarative/debugger/qpacketprotocol.cpp create mode 100644 src/declarative/debugger/qpacketprotocol_p.h create mode 100644 src/declarative/declarative.pro create mode 100644 src/declarative/graphicsitems/graphicsitems.pri create mode 100644 src/declarative/graphicsitems/qdeclarativeanchors.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativeanchors_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativeanchors_p_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativeanimatedimage_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativeanimatedimage_p_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativeborderimage.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativeborderimage_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativeborderimage_p_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativeevents.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativeevents_p_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativeflickable.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativeflickable_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativeflickable_p_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativeflipable.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativeflipable_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativefocuspanel.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativefocuspanel_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativefocusscope.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativefocusscope_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativegraphicswidget.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativegraphicswidget_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativegridview.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativegridview_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativeimage.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativeimage_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativeimage_p_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativeimagebase.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativeimagebase_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativeimagebase_p_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativeimplicitsizeitem.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativeimplicitsizeitem_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativeimplicitsizeitem_p_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativeitem.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativeitem.h create mode 100644 src/declarative/graphicsitems/qdeclarativeitem_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativeitemchangelistener_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativeitemsmodule.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativeitemsmodule_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativelayoutitem.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativelayoutitem_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativelistview.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativelistview_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativeloader.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativeloader_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativeloader_p_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativemousearea.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativemousearea_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativemousearea_p_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativepainteditem.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativepainteditem_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativepainteditem_p_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativepath.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativepath_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativepath_p_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativepathview.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativepathview_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativepathview_p_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativepincharea.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativepincharea_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativepincharea_p_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativepositioners.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativepositioners_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativepositioners_p_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativerectangle.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativerectangle_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativerectangle_p_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativerepeater.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativerepeater_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativerepeater_p_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativescalegrid.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativescalegrid_p_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativetext.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativetext_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativetext_p_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativetextedit.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativetextedit_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativetextedit_p_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativetextinput.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativetextinput_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativetextinput_p_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativetextlayout.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativetextlayout_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativetranslate.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativetranslate_p.h create mode 100644 src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp create mode 100644 src/declarative/graphicsitems/qdeclarativevisualitemmodel_p.h create mode 100644 src/declarative/qml/parser/parser.pri create mode 100644 src/declarative/qml/parser/qdeclarativejs.g create mode 100644 src/declarative/qml/parser/qdeclarativejsast.cpp create mode 100644 src/declarative/qml/parser/qdeclarativejsast_p.h create mode 100644 src/declarative/qml/parser/qdeclarativejsastfwd_p.h create mode 100644 src/declarative/qml/parser/qdeclarativejsastvisitor.cpp create mode 100644 src/declarative/qml/parser/qdeclarativejsastvisitor_p.h create mode 100644 src/declarative/qml/parser/qdeclarativejsengine_p.cpp create mode 100644 src/declarative/qml/parser/qdeclarativejsengine_p.h create mode 100644 src/declarative/qml/parser/qdeclarativejsglobal_p.h create mode 100644 src/declarative/qml/parser/qdeclarativejsgrammar.cpp create mode 100644 src/declarative/qml/parser/qdeclarativejsgrammar_p.h create mode 100644 src/declarative/qml/parser/qdeclarativejslexer.cpp create mode 100644 src/declarative/qml/parser/qdeclarativejslexer_p.h create mode 100644 src/declarative/qml/parser/qdeclarativejsmemorypool_p.h create mode 100644 src/declarative/qml/parser/qdeclarativejsnodepool_p.h create mode 100644 src/declarative/qml/parser/qdeclarativejsparser.cpp create mode 100644 src/declarative/qml/parser/qdeclarativejsparser_p.h create mode 100644 src/declarative/qml/qbitfield_p.h create mode 100644 src/declarative/qml/qdeclarative.h create mode 100644 src/declarative/qml/qdeclarativebinding.cpp create mode 100644 src/declarative/qml/qdeclarativebinding_p.h create mode 100644 src/declarative/qml/qdeclarativebinding_p_p.h create mode 100644 src/declarative/qml/qdeclarativeboundsignal.cpp create mode 100644 src/declarative/qml/qdeclarativeboundsignal_p.h create mode 100644 src/declarative/qml/qdeclarativecleanup.cpp create mode 100644 src/declarative/qml/qdeclarativecleanup_p.h create mode 100644 src/declarative/qml/qdeclarativecompiledbindings.cpp create mode 100644 src/declarative/qml/qdeclarativecompiledbindings_p.h create mode 100644 src/declarative/qml/qdeclarativecompileddata.cpp create mode 100644 src/declarative/qml/qdeclarativecompiler.cpp create mode 100644 src/declarative/qml/qdeclarativecompiler_p.h create mode 100644 src/declarative/qml/qdeclarativecomponent.cpp create mode 100644 src/declarative/qml/qdeclarativecomponent.h create mode 100644 src/declarative/qml/qdeclarativecomponent_p.h create mode 100644 src/declarative/qml/qdeclarativecontext.cpp create mode 100644 src/declarative/qml/qdeclarativecontext.h create mode 100644 src/declarative/qml/qdeclarativecontext_p.h create mode 100644 src/declarative/qml/qdeclarativecontextscriptclass.cpp create mode 100644 src/declarative/qml/qdeclarativecontextscriptclass_p.h create mode 100644 src/declarative/qml/qdeclarativecustomparser.cpp create mode 100644 src/declarative/qml/qdeclarativecustomparser_p.h create mode 100644 src/declarative/qml/qdeclarativecustomparser_p_p.h create mode 100644 src/declarative/qml/qdeclarativedata_p.h create mode 100644 src/declarative/qml/qdeclarativedirparser.cpp create mode 100644 src/declarative/qml/qdeclarativedirparser_p.h create mode 100644 src/declarative/qml/qdeclarativedom.cpp create mode 100644 src/declarative/qml/qdeclarativedom_p.h create mode 100644 src/declarative/qml/qdeclarativedom_p_p.h create mode 100644 src/declarative/qml/qdeclarativeengine.cpp create mode 100644 src/declarative/qml/qdeclarativeengine.h create mode 100644 src/declarative/qml/qdeclarativeengine_p.h create mode 100644 src/declarative/qml/qdeclarativeerror.cpp create mode 100644 src/declarative/qml/qdeclarativeerror.h create mode 100644 src/declarative/qml/qdeclarativeexpression.cpp create mode 100644 src/declarative/qml/qdeclarativeexpression.h create mode 100644 src/declarative/qml/qdeclarativeexpression_p.h create mode 100644 src/declarative/qml/qdeclarativeextensioninterface.h create mode 100644 src/declarative/qml/qdeclarativeextensionplugin.cpp create mode 100644 src/declarative/qml/qdeclarativeextensionplugin.h create mode 100644 src/declarative/qml/qdeclarativefastproperties.cpp create mode 100644 src/declarative/qml/qdeclarativefastproperties_p.h create mode 100644 src/declarative/qml/qdeclarativeglobal_p.h create mode 100644 src/declarative/qml/qdeclarativeglobalscriptclass.cpp create mode 100644 src/declarative/qml/qdeclarativeglobalscriptclass_p.h create mode 100644 src/declarative/qml/qdeclarativeguard_p.h create mode 100644 src/declarative/qml/qdeclarativeimageprovider.cpp create mode 100644 src/declarative/qml/qdeclarativeimageprovider.h create mode 100644 src/declarative/qml/qdeclarativeimport.cpp create mode 100644 src/declarative/qml/qdeclarativeimport_p.h create mode 100644 src/declarative/qml/qdeclarativeinclude.cpp create mode 100644 src/declarative/qml/qdeclarativeinclude_p.h create mode 100644 src/declarative/qml/qdeclarativeinfo.cpp create mode 100644 src/declarative/qml/qdeclarativeinfo.h create mode 100644 src/declarative/qml/qdeclarativeinstruction.cpp create mode 100644 src/declarative/qml/qdeclarativeinstruction_p.h create mode 100644 src/declarative/qml/qdeclarativeintegercache.cpp create mode 100644 src/declarative/qml/qdeclarativeintegercache_p.h create mode 100644 src/declarative/qml/qdeclarativelist.cpp create mode 100644 src/declarative/qml/qdeclarativelist.h create mode 100644 src/declarative/qml/qdeclarativelist_p.h create mode 100644 src/declarative/qml/qdeclarativelistscriptclass.cpp create mode 100644 src/declarative/qml/qdeclarativelistscriptclass_p.h create mode 100644 src/declarative/qml/qdeclarativemetatype.cpp create mode 100644 src/declarative/qml/qdeclarativemetatype_p.h create mode 100644 src/declarative/qml/qdeclarativenetworkaccessmanagerfactory.cpp create mode 100644 src/declarative/qml/qdeclarativenetworkaccessmanagerfactory.h create mode 100644 src/declarative/qml/qdeclarativenotifier.cpp create mode 100644 src/declarative/qml/qdeclarativenotifier_p.h create mode 100644 src/declarative/qml/qdeclarativeobjectscriptclass.cpp create mode 100644 src/declarative/qml/qdeclarativeobjectscriptclass_p.h create mode 100644 src/declarative/qml/qdeclarativeparser.cpp create mode 100644 src/declarative/qml/qdeclarativeparser_p.h create mode 100644 src/declarative/qml/qdeclarativeparserstatus.cpp create mode 100644 src/declarative/qml/qdeclarativeparserstatus.h create mode 100644 src/declarative/qml/qdeclarativeprivate.h create mode 100644 src/declarative/qml/qdeclarativeproperty.cpp create mode 100644 src/declarative/qml/qdeclarativeproperty.h create mode 100644 src/declarative/qml/qdeclarativeproperty_p.h create mode 100644 src/declarative/qml/qdeclarativepropertycache.cpp create mode 100644 src/declarative/qml/qdeclarativepropertycache_p.h create mode 100644 src/declarative/qml/qdeclarativepropertyvalueinterceptor.cpp create mode 100644 src/declarative/qml/qdeclarativepropertyvalueinterceptor.h create mode 100644 src/declarative/qml/qdeclarativepropertyvaluesource.cpp create mode 100644 src/declarative/qml/qdeclarativepropertyvaluesource.h create mode 100644 src/declarative/qml/qdeclarativeproxymetaobject.cpp create mode 100644 src/declarative/qml/qdeclarativeproxymetaobject_p.h create mode 100644 src/declarative/qml/qdeclarativerefcount.cpp create mode 100644 src/declarative/qml/qdeclarativerefcount_p.h create mode 100644 src/declarative/qml/qdeclarativerewrite.cpp create mode 100644 src/declarative/qml/qdeclarativerewrite_p.h create mode 100644 src/declarative/qml/qdeclarativescriptparser.cpp create mode 100644 src/declarative/qml/qdeclarativescriptparser_p.h create mode 100644 src/declarative/qml/qdeclarativescriptstring.cpp create mode 100644 src/declarative/qml/qdeclarativescriptstring.h create mode 100644 src/declarative/qml/qdeclarativesqldatabase.cpp create mode 100644 src/declarative/qml/qdeclarativesqldatabase_p.h create mode 100644 src/declarative/qml/qdeclarativestringconverters.cpp create mode 100644 src/declarative/qml/qdeclarativestringconverters_p.h create mode 100644 src/declarative/qml/qdeclarativetypeloader.cpp create mode 100644 src/declarative/qml/qdeclarativetypeloader_p.h create mode 100644 src/declarative/qml/qdeclarativetypenamecache.cpp create mode 100644 src/declarative/qml/qdeclarativetypenamecache_p.h create mode 100644 src/declarative/qml/qdeclarativetypenamescriptclass.cpp create mode 100644 src/declarative/qml/qdeclarativetypenamescriptclass_p.h create mode 100644 src/declarative/qml/qdeclarativetypenotavailable.cpp create mode 100644 src/declarative/qml/qdeclarativetypenotavailable_p.h create mode 100644 src/declarative/qml/qdeclarativevaluetype.cpp create mode 100644 src/declarative/qml/qdeclarativevaluetype_p.h create mode 100644 src/declarative/qml/qdeclarativevaluetypescriptclass.cpp create mode 100644 src/declarative/qml/qdeclarativevaluetypescriptclass_p.h create mode 100644 src/declarative/qml/qdeclarativevme.cpp create mode 100644 src/declarative/qml/qdeclarativevme_p.h create mode 100644 src/declarative/qml/qdeclarativevmemetaobject.cpp create mode 100644 src/declarative/qml/qdeclarativevmemetaobject_p.h create mode 100644 src/declarative/qml/qdeclarativewatcher.cpp create mode 100644 src/declarative/qml/qdeclarativewatcher_p.h create mode 100644 src/declarative/qml/qdeclarativeworkerscript.cpp create mode 100644 src/declarative/qml/qdeclarativeworkerscript_p.h create mode 100644 src/declarative/qml/qdeclarativexmlhttprequest.cpp create mode 100644 src/declarative/qml/qdeclarativexmlhttprequest_p.h create mode 100644 src/declarative/qml/qmetaobjectbuilder.cpp create mode 100644 src/declarative/qml/qmetaobjectbuilder_p.h create mode 100644 src/declarative/qml/qml.pri create mode 100644 src/declarative/qml/qperformancetimer.cpp create mode 100644 src/declarative/qml/qperformancetimer_p.h create mode 100644 src/declarative/qml/qpodvector_p.h create mode 100644 src/declarative/qml/rewriter/rewriter.pri create mode 100644 src/declarative/qml/rewriter/textwriter.cpp create mode 100644 src/declarative/qml/rewriter/textwriter_p.h create mode 100644 src/declarative/util/qdeclarativeanimation.cpp create mode 100644 src/declarative/util/qdeclarativeanimation_p.h create mode 100644 src/declarative/util/qdeclarativeanimation_p_p.h create mode 100644 src/declarative/util/qdeclarativeapplication.cpp create mode 100644 src/declarative/util/qdeclarativeapplication_p.h create mode 100644 src/declarative/util/qdeclarativebehavior.cpp create mode 100644 src/declarative/util/qdeclarativebehavior_p.h create mode 100644 src/declarative/util/qdeclarativebind.cpp create mode 100644 src/declarative/util/qdeclarativebind_p.h create mode 100644 src/declarative/util/qdeclarativeconnections.cpp create mode 100644 src/declarative/util/qdeclarativeconnections_p.h create mode 100644 src/declarative/util/qdeclarativefontloader.cpp create mode 100644 src/declarative/util/qdeclarativefontloader_p.h create mode 100644 src/declarative/util/qdeclarativelistaccessor.cpp create mode 100644 src/declarative/util/qdeclarativelistaccessor_p.h create mode 100644 src/declarative/util/qdeclarativelistmodel.cpp create mode 100644 src/declarative/util/qdeclarativelistmodel_p.h create mode 100644 src/declarative/util/qdeclarativelistmodel_p_p.h create mode 100644 src/declarative/util/qdeclarativelistmodelworkeragent.cpp create mode 100644 src/declarative/util/qdeclarativelistmodelworkeragent_p.h create mode 100644 src/declarative/util/qdeclarativenullablevalue_p_p.h create mode 100644 src/declarative/util/qdeclarativeopenmetaobject.cpp create mode 100644 src/declarative/util/qdeclarativeopenmetaobject_p.h create mode 100644 src/declarative/util/qdeclarativepackage.cpp create mode 100644 src/declarative/util/qdeclarativepackage_p.h create mode 100644 src/declarative/util/qdeclarativepixmapcache.cpp create mode 100644 src/declarative/util/qdeclarativepixmapcache_p.h create mode 100644 src/declarative/util/qdeclarativepropertychanges.cpp create mode 100644 src/declarative/util/qdeclarativepropertychanges_p.h create mode 100644 src/declarative/util/qdeclarativepropertymap.cpp create mode 100644 src/declarative/util/qdeclarativepropertymap.h create mode 100644 src/declarative/util/qdeclarativesmoothedanimation.cpp create mode 100644 src/declarative/util/qdeclarativesmoothedanimation_p.h create mode 100644 src/declarative/util/qdeclarativesmoothedanimation_p_p.h create mode 100644 src/declarative/util/qdeclarativespringanimation.cpp create mode 100644 src/declarative/util/qdeclarativespringanimation_p.h create mode 100644 src/declarative/util/qdeclarativestate.cpp create mode 100644 src/declarative/util/qdeclarativestate_p.h create mode 100644 src/declarative/util/qdeclarativestate_p_p.h create mode 100644 src/declarative/util/qdeclarativestategroup.cpp create mode 100644 src/declarative/util/qdeclarativestategroup_p.h create mode 100644 src/declarative/util/qdeclarativestateoperations.cpp create mode 100644 src/declarative/util/qdeclarativestateoperations_p.h create mode 100644 src/declarative/util/qdeclarativestyledtext.cpp create mode 100644 src/declarative/util/qdeclarativestyledtext_p.h create mode 100644 src/declarative/util/qdeclarativesystempalette.cpp create mode 100644 src/declarative/util/qdeclarativesystempalette_p.h create mode 100644 src/declarative/util/qdeclarativetimeline.cpp create mode 100644 src/declarative/util/qdeclarativetimeline_p_p.h create mode 100644 src/declarative/util/qdeclarativetimer.cpp create mode 100644 src/declarative/util/qdeclarativetimer_p.h create mode 100644 src/declarative/util/qdeclarativetransition.cpp create mode 100644 src/declarative/util/qdeclarativetransition_p.h create mode 100644 src/declarative/util/qdeclarativetransitionmanager.cpp create mode 100644 src/declarative/util/qdeclarativetransitionmanager_p_p.h create mode 100644 src/declarative/util/qdeclarativeutilmodule.cpp create mode 100644 src/declarative/util/qdeclarativeutilmodule_p.h create mode 100644 src/declarative/util/qdeclarativeview.cpp create mode 100644 src/declarative/util/qdeclarativeview.h create mode 100644 src/declarative/util/qdeclarativexmllistmodel.cpp create mode 100644 src/declarative/util/qdeclarativexmllistmodel_p.h create mode 100644 src/declarative/util/qlistmodelinterface.cpp create mode 100644 src/declarative/util/qlistmodelinterface_p.h create mode 100644 src/declarative/util/util.pri create mode 100644 src/imports/folderlistmodel/folderlistmodel.pro create mode 100644 src/imports/folderlistmodel/plugin.cpp create mode 100644 src/imports/folderlistmodel/qdeclarativefolderlistmodel.cpp create mode 100644 src/imports/folderlistmodel/qdeclarativefolderlistmodel.h create mode 100644 src/imports/folderlistmodel/qmldir create mode 100644 src/imports/gestures/gestures.pro create mode 100644 src/imports/gestures/plugin.cpp create mode 100644 src/imports/gestures/qdeclarativegesturearea.cpp create mode 100644 src/imports/gestures/qdeclarativegesturearea_p.h create mode 100644 src/imports/gestures/qmldir create mode 100644 src/imports/imports.pro create mode 100644 src/imports/particles/particles.cpp create mode 100644 src/imports/particles/particles.pro create mode 100644 src/imports/particles/qdeclarativeparticles.cpp create mode 100644 src/imports/particles/qdeclarativeparticles_p.h create mode 100644 src/imports/particles/qmldir create mode 100644 src/imports/qimportbase.pri create mode 100644 src/imports/shaders/glfunctions.h create mode 100644 src/imports/shaders/qmldir create mode 100644 src/imports/shaders/qmlshadersplugin_plugin.cpp create mode 100644 src/imports/shaders/qmlshadersplugin_plugin.h create mode 100644 src/imports/shaders/scenegraph/qsggeometry.cpp create mode 100644 src/imports/shaders/scenegraph/qsggeometry.h create mode 100644 src/imports/shaders/shadereffect.cpp create mode 100644 src/imports/shaders/shadereffect.h create mode 100644 src/imports/shaders/shadereffectbuffer.cpp create mode 100644 src/imports/shaders/shadereffectbuffer.h create mode 100644 src/imports/shaders/shadereffectitem.cpp create mode 100644 src/imports/shaders/shadereffectitem.h create mode 100644 src/imports/shaders/shadereffectsource.cpp create mode 100644 src/imports/shaders/shadereffectsource.h create mode 100644 src/imports/shaders/shaders.pro create mode 100644 src/plugins/platforms/uikit/examples/qmltest/main.mm create mode 100644 src/plugins/platforms/uikit/examples/qmltest/qml/main.qml create mode 100644 src/plugins/platforms/uikit/examples/qmltest/qmltest-Info.plist create mode 100644 src/plugins/platforms/uikit/examples/qmltest/qmltest.xcodeproj/project.pbxproj create mode 100644 src/plugins/platforms/uikit/examples/share/qmlapplicationviewer/moc_qmlapplicationviewer.cpp create mode 100644 src/plugins/platforms/uikit/examples/share/qmlapplicationviewer/qmlapplicationviewer.cpp create mode 100644 src/plugins/platforms/uikit/examples/share/qmlapplicationviewer/qmlapplicationviewer.h create mode 100644 src/plugins/plugins.pro create mode 100644 src/plugins/qmltooling/qmldbg_inspector/abstracttool.cpp create mode 100644 src/plugins/qmltooling/qmldbg_inspector/abstracttool.h create mode 100644 src/plugins/qmltooling/qmldbg_inspector/abstractviewinspector.cpp create mode 100644 src/plugins/qmltooling/qmldbg_inspector/abstractviewinspector.h create mode 100644 src/plugins/qmltooling/qmldbg_inspector/editor/abstractliveedittool.cpp create mode 100644 src/plugins/qmltooling/qmldbg_inspector/editor/abstractliveedittool.h create mode 100644 src/plugins/qmltooling/qmldbg_inspector/editor/boundingrecthighlighter.cpp create mode 100644 src/plugins/qmltooling/qmldbg_inspector/editor/boundingrecthighlighter.h create mode 100644 src/plugins/qmltooling/qmldbg_inspector/editor/colorpickertool.cpp create mode 100644 src/plugins/qmltooling/qmldbg_inspector/editor/colorpickertool.h create mode 100644 src/plugins/qmltooling/qmldbg_inspector/editor/livelayeritem.cpp create mode 100644 src/plugins/qmltooling/qmldbg_inspector/editor/livelayeritem.h create mode 100644 src/plugins/qmltooling/qmldbg_inspector/editor/liverubberbandselectionmanipulator.cpp create mode 100644 src/plugins/qmltooling/qmldbg_inspector/editor/liverubberbandselectionmanipulator.h create mode 100644 src/plugins/qmltooling/qmldbg_inspector/editor/liveselectionindicator.cpp create mode 100644 src/plugins/qmltooling/qmldbg_inspector/editor/liveselectionindicator.h create mode 100644 src/plugins/qmltooling/qmldbg_inspector/editor/liveselectionrectangle.cpp create mode 100644 src/plugins/qmltooling/qmldbg_inspector/editor/liveselectionrectangle.h create mode 100644 src/plugins/qmltooling/qmldbg_inspector/editor/liveselectiontool.cpp create mode 100644 src/plugins/qmltooling/qmldbg_inspector/editor/liveselectiontool.h create mode 100644 src/plugins/qmltooling/qmldbg_inspector/editor/livesingleselectionmanipulator.cpp create mode 100644 src/plugins/qmltooling/qmldbg_inspector/editor/livesingleselectionmanipulator.h create mode 100644 src/plugins/qmltooling/qmldbg_inspector/editor/qmltoolbar.cpp create mode 100644 src/plugins/qmltooling/qmldbg_inspector/editor/qmltoolbar.h create mode 100644 src/plugins/qmltooling/qmldbg_inspector/editor/subcomponentmasklayeritem.cpp create mode 100644 src/plugins/qmltooling/qmldbg_inspector/editor/subcomponentmasklayeritem.h create mode 100644 src/plugins/qmltooling/qmldbg_inspector/editor/toolbarcolorbox.cpp create mode 100644 src/plugins/qmltooling/qmldbg_inspector/editor/toolbarcolorbox.h create mode 100644 src/plugins/qmltooling/qmldbg_inspector/editor/zoomtool.cpp create mode 100644 src/plugins/qmltooling/qmldbg_inspector/editor/zoomtool.h create mode 100644 src/plugins/qmltooling/qmldbg_inspector/qdeclarativeinspectorplugin.cpp create mode 100644 src/plugins/qmltooling/qmldbg_inspector/qdeclarativeinspectorplugin.h create mode 100644 src/plugins/qmltooling/qmldbg_inspector/qdeclarativeinspectorprotocol.h create mode 100644 src/plugins/qmltooling/qmldbg_inspector/qdeclarativeviewinspector.cpp create mode 100644 src/plugins/qmltooling/qmldbg_inspector/qdeclarativeviewinspector.h create mode 100644 src/plugins/qmltooling/qmldbg_inspector/qdeclarativeviewinspector_p.h create mode 100644 src/plugins/qmltooling/qmldbg_inspector/qmldbg_inspector.pro create mode 100644 src/plugins/qmltooling/qmldbg_inspector/qmlinspectorconstants.h create mode 100644 src/plugins/qmltooling/qmldbg_ost/qmldbg_ost.pro create mode 100644 src/plugins/qmltooling/qmldbg_ost/qmlostplugin.cpp create mode 100644 src/plugins/qmltooling/qmldbg_ost/qmlostplugin.h create mode 100644 src/plugins/qmltooling/qmldbg_ost/qostdevice.cpp create mode 100644 src/plugins/qmltooling/qmldbg_ost/qostdevice.h create mode 100644 src/plugins/qmltooling/qmldbg_ost/usbostcomm.h create mode 100644 src/plugins/qmltooling/qmldbg_tcp/qmldbg_tcp.pro create mode 100644 src/plugins/qmltooling/qmldbg_tcp/qtcpserverconnection.cpp create mode 100644 src/plugins/qmltooling/qmldbg_tcp/qtcpserverconnection.h create mode 100644 src/plugins/qmltooling/qmltooling.pro create mode 100644 src/plugins/qpluginbase.pri create mode 100644 src/qt_targets.pri create mode 100644 tests/auto/bic/data/QtDeclarative.4.7.0.linux-gcc-ia32.txt create mode 100644 tests/auto/declarative.pro create mode 100644 tests/auto/declarative/declarative.pro create mode 100644 tests/auto/declarative/examples/data/dummytest.qml create mode 100644 tests/auto/declarative/examples/data/webbrowser/webbrowser.qml create mode 100644 tests/auto/declarative/examples/examples.pro create mode 100644 tests/auto/declarative/examples/tst_examples.cpp create mode 100644 tests/auto/declarative/moduleqt47/data/importqt47.qml create mode 100644 tests/auto/declarative/moduleqt47/moduleqt47.pro create mode 100644 tests/auto/declarative/moduleqt47/tst_moduleqt47.cpp create mode 100644 tests/auto/declarative/parserstress/parserstress.pro create mode 100644 tests/auto/declarative/parserstress/tst_parserstress.cpp create mode 100644 tests/auto/declarative/qdeclarativeanchors/data/anchors.qml create mode 100644 tests/auto/declarative/qdeclarativeanchors/data/anchorsqgraphicswidget.qml create mode 100644 tests/auto/declarative/qdeclarativeanchors/data/centerin.qml create mode 100644 tests/auto/declarative/qdeclarativeanchors/data/crash1.qml create mode 100644 tests/auto/declarative/qdeclarativeanchors/data/fill.qml create mode 100644 tests/auto/declarative/qdeclarativeanchors/data/hvCenter.qml create mode 100644 tests/auto/declarative/qdeclarativeanchors/data/loop1.qml create mode 100644 tests/auto/declarative/qdeclarativeanchors/data/loop2.qml create mode 100644 tests/auto/declarative/qdeclarativeanchors/data/margins.qml create mode 100644 tests/auto/declarative/qdeclarativeanchors/qdeclarativeanchors.pro create mode 100644 tests/auto/declarative/qdeclarativeanchors/tst_qdeclarativeanchors.cpp create mode 100644 tests/auto/declarative/qdeclarativeanimatedimage/data/colors.gif create mode 100644 tests/auto/declarative/qdeclarativeanimatedimage/data/colors.qml create mode 100644 tests/auto/declarative/qdeclarativeanimatedimage/data/hearts.gif create mode 100644 tests/auto/declarative/qdeclarativeanimatedimage/data/hearts.qml create mode 100644 tests/auto/declarative/qdeclarativeanimatedimage/data/qmldir create mode 100644 tests/auto/declarative/qdeclarativeanimatedimage/data/qtbug-16520.qml create mode 100644 tests/auto/declarative/qdeclarativeanimatedimage/data/stickman.gif create mode 100644 tests/auto/declarative/qdeclarativeanimatedimage/data/stickman.qml create mode 100644 tests/auto/declarative/qdeclarativeanimatedimage/data/stickmanerror1.qml create mode 100644 tests/auto/declarative/qdeclarativeanimatedimage/data/stickmanpause.qml create mode 100644 tests/auto/declarative/qdeclarativeanimatedimage/data/stickmanscaled.qml create mode 100644 tests/auto/declarative/qdeclarativeanimatedimage/data/stickmanstopped.qml create mode 100644 tests/auto/declarative/qdeclarativeanimatedimage/qdeclarativeanimatedimage.pro create mode 100644 tests/auto/declarative/qdeclarativeanimatedimage/tst_qdeclarativeanimatedimage.cpp create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/Double.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/attached.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/badproperty1.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/badproperty2.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/badtype1.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/badtype2.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/badtype3.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/badtype4.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/dontAutoStart.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/dontStart.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/dontStart2.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/dotproperty.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/doubleRegistrationBug.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/mixedtype1.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/mixedtype2.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/nonTransitionBug.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/properties.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/properties2.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/properties3.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/properties4.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/properties5.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/propertiesTransition.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/propertiesTransition2.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/propertiesTransition3.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/propertiesTransition4.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/propertiesTransition5.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/propertiesTransition6.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/propertiesTransition7.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/registrationBug.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/rotation.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/runningTrueBug.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/transitionAssignmentBug.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/valuesource.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/data/valuesource2.qml create mode 100644 tests/auto/declarative/qdeclarativeanimations/qdeclarativeanimations.pro create mode 100644 tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp create mode 100644 tests/auto/declarative/qdeclarativeapplication/qdeclarativeapplication.pro create mode 100644 tests/auto/declarative/qdeclarativeapplication/tst_qdeclarativeapplication.cpp create mode 100644 tests/auto/declarative/qdeclarativebehaviors/data/binding.qml create mode 100644 tests/auto/declarative/qdeclarativebehaviors/data/color.qml create mode 100644 tests/auto/declarative/qdeclarativebehaviors/data/cpptrigger.qml create mode 100644 tests/auto/declarative/qdeclarativebehaviors/data/delayedRegistration.qml create mode 100644 tests/auto/declarative/qdeclarativebehaviors/data/disabled.qml create mode 100644 tests/auto/declarative/qdeclarativebehaviors/data/dontStart.qml create mode 100644 tests/auto/declarative/qdeclarativebehaviors/data/empty.qml create mode 100644 tests/auto/declarative/qdeclarativebehaviors/data/explicit.qml create mode 100644 tests/auto/declarative/qdeclarativebehaviors/data/groupProperty.qml create mode 100644 tests/auto/declarative/qdeclarativebehaviors/data/groupProperty2.qml create mode 100644 tests/auto/declarative/qdeclarativebehaviors/data/groupedPropertyCrash.qml create mode 100644 tests/auto/declarative/qdeclarativebehaviors/data/loop.qml create mode 100644 tests/auto/declarative/qdeclarativebehaviors/data/nonSelecting2.qml create mode 100644 tests/auto/declarative/qdeclarativebehaviors/data/parent.qml create mode 100644 tests/auto/declarative/qdeclarativebehaviors/data/qtbug12295.qml create mode 100644 tests/auto/declarative/qdeclarativebehaviors/data/reassignedAnimation.qml create mode 100644 tests/auto/declarative/qdeclarativebehaviors/data/runningTrue.qml create mode 100644 tests/auto/declarative/qdeclarativebehaviors/data/scripttrigger.qml create mode 100644 tests/auto/declarative/qdeclarativebehaviors/data/simple.qml create mode 100644 tests/auto/declarative/qdeclarativebehaviors/data/startup.qml create mode 100644 tests/auto/declarative/qdeclarativebehaviors/data/startup2.qml create mode 100644 tests/auto/declarative/qdeclarativebehaviors/qdeclarativebehaviors.pro create mode 100644 tests/auto/declarative/qdeclarativebehaviors/tst_qdeclarativebehaviors.cpp create mode 100644 tests/auto/declarative/qdeclarativebinding/data/deletedObject.qml create mode 100644 tests/auto/declarative/qdeclarativebinding/data/test-binding.qml create mode 100644 tests/auto/declarative/qdeclarativebinding/data/test-binding2.qml create mode 100644 tests/auto/declarative/qdeclarativebinding/qdeclarativebinding.pro create mode 100644 tests/auto/declarative/qdeclarativebinding/tst_qdeclarativebinding.cpp create mode 100644 tests/auto/declarative/qdeclarativeborderimage/data/colors-round-remote.sci create mode 100644 tests/auto/declarative/qdeclarativeborderimage/data/colors-round.sci create mode 100644 tests/auto/declarative/qdeclarativeborderimage/data/colors.png create mode 100644 tests/auto/declarative/qdeclarativeborderimage/data/heart200.png create mode 100644 tests/auto/declarative/qdeclarativeborderimage/data/invalid.sci create mode 100644 tests/auto/declarative/qdeclarativeborderimage/qdeclarativeborderimage.pro create mode 100644 tests/auto/declarative/qdeclarativeborderimage/tst_qdeclarativeborderimage.cpp create mode 100644 tests/auto/declarative/qdeclarativecomponent/data/createObject.qml create mode 100644 tests/auto/declarative/qdeclarativecomponent/data/createObjectWithScript.qml create mode 100644 tests/auto/declarative/qdeclarativecomponent/qdeclarativecomponent.pro create mode 100644 tests/auto/declarative/qdeclarativecomponent/tst_qdeclarativecomponent.cpp create mode 100644 tests/auto/declarative/qdeclarativeconnection/data/connection-targetchange.qml create mode 100644 tests/auto/declarative/qdeclarativeconnection/data/connection-unknownsignals-ignored.qml create mode 100644 tests/auto/declarative/qdeclarativeconnection/data/connection-unknownsignals-notarget.qml create mode 100644 tests/auto/declarative/qdeclarativeconnection/data/connection-unknownsignals-parent.qml create mode 100644 tests/auto/declarative/qdeclarativeconnection/data/connection-unknownsignals.qml create mode 100644 tests/auto/declarative/qdeclarativeconnection/data/error-object.qml create mode 100644 tests/auto/declarative/qdeclarativeconnection/data/error-property.qml create mode 100644 tests/auto/declarative/qdeclarativeconnection/data/error-property2.qml create mode 100644 tests/auto/declarative/qdeclarativeconnection/data/error-syntax.qml create mode 100644 tests/auto/declarative/qdeclarativeconnection/data/test-connection.qml create mode 100644 tests/auto/declarative/qdeclarativeconnection/data/test-connection2.qml create mode 100644 tests/auto/declarative/qdeclarativeconnection/data/test-connection3.qml create mode 100644 tests/auto/declarative/qdeclarativeconnection/data/trimming.qml create mode 100644 tests/auto/declarative/qdeclarativeconnection/qdeclarativeconnection.pro create mode 100644 tests/auto/declarative/qdeclarativeconnection/tst_qdeclarativeconnection.cpp create mode 100644 tests/auto/declarative/qdeclarativecontext/qdeclarativecontext.pro create mode 100644 tests/auto/declarative/qdeclarativecontext/tst_qdeclarativecontext.cpp create mode 100644 tests/auto/declarative/qdeclarativedebug/qdeclarativedebug.pro create mode 100644 tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp create mode 100644 tests/auto/declarative/qdeclarativedebugclient/qdeclarativedebugclient.pro create mode 100644 tests/auto/declarative/qdeclarativedebugclient/tst_qdeclarativedebugclient.cpp create mode 100644 tests/auto/declarative/qdeclarativedebughelper/private_headers/qdeclarativedebughelper_p.h create mode 100644 tests/auto/declarative/qdeclarativedebughelper/qdeclarativedebughelper.pro create mode 100644 tests/auto/declarative/qdeclarativedebughelper/tst_qdeclarativedebughelper.cpp create mode 100644 tests/auto/declarative/qdeclarativedebugjs/app/app.pro create mode 100644 tests/auto/declarative/qdeclarativedebugjs/app/main.cpp create mode 100644 tests/auto/declarative/qdeclarativedebugjs/data/backtrace1.js create mode 100644 tests/auto/declarative/qdeclarativedebugjs/data/backtrace1.qml create mode 100644 tests/auto/declarative/qdeclarativedebugjs/qdeclarativedebugjs.pro create mode 100644 tests/auto/declarative/qdeclarativedebugjs/tst_qdeclarativedebugjs.cpp create mode 100644 tests/auto/declarative/qdeclarativedebugjs/tst_qdeclarativedebugjs.pro create mode 100644 tests/auto/declarative/qdeclarativedebugservice/qdeclarativedebugservice.pro create mode 100644 tests/auto/declarative/qdeclarativedebugservice/tst_qdeclarativedebugservice.cpp create mode 100644 tests/auto/declarative/qdeclarativedom/data/MyComponent.qml create mode 100644 tests/auto/declarative/qdeclarativedom/data/MyItem.qml create mode 100644 tests/auto/declarative/qdeclarativedom/data/import/Bar.qml create mode 100644 tests/auto/declarative/qdeclarativedom/data/importlib/sublib/Foo.qml create mode 100644 tests/auto/declarative/qdeclarativedom/data/importlib/sublib/qmldir create mode 100644 tests/auto/declarative/qdeclarativedom/data/top.qml create mode 100644 tests/auto/declarative/qdeclarativedom/qdeclarativedom.pro create mode 100644 tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/AliasBindingsAssignCorrectlyType.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/AliasBindingsOverrideTargetType.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/AliasBindingsOverrideTargetType3.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/ConstantsOverrideBindings.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/CustomObject.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/MethodsObject.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/NestedTypeTransientErrors.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/ScopeObject.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/SpuriousWarning.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/TypeForDynamicCreation.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/aliasBindingsAssignCorrectly.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/aliasBindingsOverrideTarget.2.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/aliasBindingsOverrideTarget.3.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/aliasBindingsOverrideTarget.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/aliasPropertyAndBinding.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/aliasWritesOverrideBindings.2.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/aliasWritesOverrideBindings.3.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/aliasWritesOverrideBindings.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/assignBasicTypes.2.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/assignBasicTypes.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/attachedProperty.2.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/attachedProperty.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/attachedPropertyScope.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/bindingLoop.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/blank.js create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/boolPropertiesEvaluateAsBool.1.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/boolPropertiesEvaluateAsBool.2.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/bug.1.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/canAssignNullToQObject.1.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/canAssignNullToQObject.2.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/compiled.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/compositePropertyType.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/constantsOverrideBindings.1.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/constantsOverrideBindings.2.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/constantsOverrideBindings.3.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/constantsOverrideBindings.4.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/declarativeToString.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/deferredProperties.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/deferredPropertiesErrors.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/deleteLater.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/deletedEngine.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/deletedObject.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/dynamicCreation.helper.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/dynamicCreation.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/dynamicDeletion.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/enums.1.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/enums.2.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/eval.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/exception.js create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/exceptionClearsOnReeval.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/exceptionProducesWarning.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/exceptionProducesWarning2.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/extendedObjectPropertyLookup.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/extensionObjects.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/extensionObjectsPropertyOverride.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/function.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/functionAssignment.1.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/functionAssignment.2.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/functionAssignment.js create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/functionErrors.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/idShortcutInvalidates.1.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/idShortcutInvalidates.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/in.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/include.js create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/include.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/include_callback.js create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/include_callback.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/include_pragma.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/include_pragma_inner.js create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/include_pragma_outer.js create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/include_remote.js create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/include_remote.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/include_remote_missing.js create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/include_remote_missing.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/include_shared.js create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/include_shared.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/invokableObjectArg.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/invokableObjectRet.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/js/include2.js create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/js/include3.js create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/jsObject.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/libraryScriptAssert.js create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/libraryScriptAssert.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/listProperties.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/listToVariant.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/metaobjectRevision.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/metaobjectRevision2.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/metaobjectRevision3.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/metaobjectRevision4.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/metaobjectRevisionErrors.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/metaobjectRevisionErrors2.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/metaobjectRevisionErrors3.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/methods.1.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/methods.2.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/methods.3.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/methods.4.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/methods.5.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/multiEngineObject.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/noSpuriousWarningsAtShutdown.2.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/noSpuriousWarningsAtShutdown.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/nonExistentAttachedObject.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/nonscriptable.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/nullObjectBinding.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/numberAssignment.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/objectName.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/objectsCompareAsEqual.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/outerBindingOverridesInnerBinding.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/ownership.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/propertyAssignmentErrors.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/propertySplicing.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/qlistqobjectMethods.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/qtbug_10696.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/qtbug_11600.js create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/qtbug_11600.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/qtbug_11606.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/qtbug_20648.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/qtbug_9792.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/qtcreatorbug_1289.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/realToInt.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/regExp.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/remote_file.js create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/scope.2.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/scope.3.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/scope.4.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/scope.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.1.js create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.1.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.2.js create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.2.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.3.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.4.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.5.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.6.js create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.6.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.1.js create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.1.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.2.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.3.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.4.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/scriptErrors.js create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/scriptErrors.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/selfDeletingBinding.2.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/selfDeletingBinding.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/sharedAttachedObject.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/shutdownErrors.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/signalAssignment.1.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/signalAssignment.2.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/signalParameterTypes.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/signalTriggeredBindings.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/signalWithUnknownTypes.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/strictlyEquals.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/transientErrors.2.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/transientErrors.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/undefinedResetsProperty.2.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/undefinedResetsProperty.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/valueTypeFunctions.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/variantsAssignedUndefined.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/writeAttachedProperty.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/writeRemovesBinding.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/qdeclarativeecmascript.pro create mode 100644 tests/auto/declarative/qdeclarativeecmascript/testtypes.cpp create mode 100644 tests/auto/declarative/qdeclarativeecmascript/testtypes.h create mode 100644 tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp create mode 100644 tests/auto/declarative/qdeclarativeengine/qdeclarativeengine.pro create mode 100644 tests/auto/declarative/qdeclarativeengine/tst_qdeclarativeengine.cpp create mode 100644 tests/auto/declarative/qdeclarativeerror/qdeclarativeerror.pro create mode 100644 tests/auto/declarative/qdeclarativeerror/test.txt create mode 100644 tests/auto/declarative/qdeclarativeerror/tst_qdeclarativeerror.cpp create mode 100644 tests/auto/declarative/qdeclarativeflickable/data/disabledcontent.qml create mode 100644 tests/auto/declarative/qdeclarativeflickable/data/flickable01.qml create mode 100644 tests/auto/declarative/qdeclarativeflickable/data/flickable02.qml create mode 100644 tests/auto/declarative/qdeclarativeflickable/data/flickable03.qml create mode 100644 tests/auto/declarative/qdeclarativeflickable/data/flickable04.qml create mode 100644 tests/auto/declarative/qdeclarativeflickable/data/flickableqgraphicswidget.qml create mode 100644 tests/auto/declarative/qdeclarativeflickable/data/nestedPressDelay.qml create mode 100644 tests/auto/declarative/qdeclarativeflickable/data/resize.qml create mode 100644 tests/auto/declarative/qdeclarativeflickable/data/wheel.qml create mode 100644 tests/auto/declarative/qdeclarativeflickable/qdeclarativeflickable.pro create mode 100644 tests/auto/declarative/qdeclarativeflickable/tst_qdeclarativeflickable.cpp create mode 100644 tests/auto/declarative/qdeclarativeflipable/data/crash.qml create mode 100644 tests/auto/declarative/qdeclarativeflipable/data/flipable-abort.qml create mode 100644 tests/auto/declarative/qdeclarativeflipable/data/test-flipable.qml create mode 100644 tests/auto/declarative/qdeclarativeflipable/qdeclarativeflipable.pro create mode 100644 tests/auto/declarative/qdeclarativeflipable/tst_qdeclarativeflipable.cpp create mode 100644 tests/auto/declarative/qdeclarativefocusscope/data/chain.qml create mode 100644 tests/auto/declarative/qdeclarativefocusscope/data/forceActiveFocus.qml create mode 100644 tests/auto/declarative/qdeclarativefocusscope/data/forcefocus.qml create mode 100644 tests/auto/declarative/qdeclarativefocusscope/data/qtBug13380.qml create mode 100644 tests/auto/declarative/qdeclarativefocusscope/data/signalEmission.qml create mode 100644 tests/auto/declarative/qdeclarativefocusscope/data/test.qml create mode 100644 tests/auto/declarative/qdeclarativefocusscope/data/test2.qml create mode 100644 tests/auto/declarative/qdeclarativefocusscope/data/test3.qml create mode 100644 tests/auto/declarative/qdeclarativefocusscope/data/test4.qml create mode 100644 tests/auto/declarative/qdeclarativefocusscope/data/test5.qml create mode 100644 tests/auto/declarative/qdeclarativefocusscope/qdeclarativefocusscope.pro create mode 100644 tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp create mode 100644 tests/auto/declarative/qdeclarativefolderlistmodel/data/basic.qml create mode 100644 tests/auto/declarative/qdeclarativefolderlistmodel/data/dummy.qml create mode 100644 tests/auto/declarative/qdeclarativefolderlistmodel/qdeclarativefolderlistmodel.pro create mode 100644 tests/auto/declarative/qdeclarativefolderlistmodel/tst_qdeclarativefolderlistmodel.cpp create mode 100644 tests/auto/declarative/qdeclarativefontloader/data/daniel.ttf create mode 100644 tests/auto/declarative/qdeclarativefontloader/data/dummy.ttf create mode 100644 tests/auto/declarative/qdeclarativefontloader/data/tarzeau_ocr_a.ttf create mode 100644 tests/auto/declarative/qdeclarativefontloader/qdeclarativefontloader.pro create mode 100644 tests/auto/declarative/qdeclarativefontloader/tst_qdeclarativefontloader.cpp create mode 100644 tests/auto/declarative/qdeclarativegridview/data/attachedSignals.qml create mode 100644 tests/auto/declarative/qdeclarativegridview/data/displaygrid.qml create mode 100644 tests/auto/declarative/qdeclarativegridview/data/footer.qml create mode 100644 tests/auto/declarative/qdeclarativegridview/data/gridview-enforcerange.qml create mode 100644 tests/auto/declarative/qdeclarativegridview/data/gridview-initCurrent.qml create mode 100644 tests/auto/declarative/qdeclarativegridview/data/gridview-noCurrent.qml create mode 100644 tests/auto/declarative/qdeclarativegridview/data/gridview1.qml create mode 100644 tests/auto/declarative/qdeclarativegridview/data/gridview2.qml create mode 100644 tests/auto/declarative/qdeclarativegridview/data/gridview3.qml create mode 100644 tests/auto/declarative/qdeclarativegridview/data/header.qml create mode 100644 tests/auto/declarative/qdeclarativegridview/data/manual-highlight.qml create mode 100644 tests/auto/declarative/qdeclarativegridview/data/mirroring.qml create mode 100644 tests/auto/declarative/qdeclarativegridview/data/propertychangestest.qml create mode 100644 tests/auto/declarative/qdeclarativegridview/data/setindex.qml create mode 100644 tests/auto/declarative/qdeclarativegridview/qdeclarativegridview.pro create mode 100644 tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp create mode 100644 tests/auto/declarative/qdeclarativeimage/data/aspectratio.qml create mode 100644 tests/auto/declarative/qdeclarativeimage/data/big.jpeg create mode 100644 tests/auto/declarative/qdeclarativeimage/data/big256.png create mode 100644 tests/auto/declarative/qdeclarativeimage/data/colors.png create mode 100644 tests/auto/declarative/qdeclarativeimage/data/colors1.png create mode 100644 tests/auto/declarative/qdeclarativeimage/data/green.png create mode 100644 tests/auto/declarative/qdeclarativeimage/data/heart-win32.png create mode 100644 tests/auto/declarative/qdeclarativeimage/data/heart.png create mode 100644 tests/auto/declarative/qdeclarativeimage/data/heart.svg create mode 100644 tests/auto/declarative/qdeclarativeimage/data/heart200-win32.png create mode 100644 tests/auto/declarative/qdeclarativeimage/data/heart200.png create mode 100644 tests/auto/declarative/qdeclarativeimage/data/qtbug_16389.qml create mode 100644 tests/auto/declarative/qdeclarativeimage/data/qtbug_22125.qml create mode 100644 tests/auto/declarative/qdeclarativeimage/data/rect.png create mode 100644 tests/auto/declarative/qdeclarativeimage/data/tiling.qml create mode 100644 tests/auto/declarative/qdeclarativeimage/qdeclarativeimage.pro create mode 100644 tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp create mode 100644 tests/auto/declarative/qdeclarativeimageprovider/qdeclarativeimageprovider.pro create mode 100644 tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp create mode 100644 tests/auto/declarative/qdeclarativeinfo/data/NestedObject.qml create mode 100644 tests/auto/declarative/qdeclarativeinfo/data/nestedQmlObject.qml create mode 100644 tests/auto/declarative/qdeclarativeinfo/data/qmlObject.qml create mode 100644 tests/auto/declarative/qdeclarativeinfo/qdeclarativeinfo.pro create mode 100644 tests/auto/declarative/qdeclarativeinfo/tst_qdeclarativeinfo.cpp create mode 100644 tests/auto/declarative/qdeclarativeinstruction/qdeclarativeinstruction.pro create mode 100644 tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp create mode 100644 tests/auto/declarative/qdeclarativeitem/data/childrenProperty.qml create mode 100644 tests/auto/declarative/qdeclarativeitem/data/childrenRect.qml create mode 100644 tests/auto/declarative/qdeclarativeitem/data/childrenRectBug.qml create mode 100644 tests/auto/declarative/qdeclarativeitem/data/childrenRectBug2.qml create mode 100644 tests/auto/declarative/qdeclarativeitem/data/childrenRectBug3.qml create mode 100644 tests/auto/declarative/qdeclarativeitem/data/implicitsize.qml create mode 100644 tests/auto/declarative/qdeclarativeitem/data/keynavigationtest.qml create mode 100644 tests/auto/declarative/qdeclarativeitem/data/keyspriority.qml create mode 100644 tests/auto/declarative/qdeclarativeitem/data/keystest.qml create mode 100644 tests/auto/declarative/qdeclarativeitem/data/layoutmirroring.qml create mode 100644 tests/auto/declarative/qdeclarativeitem/data/mapCoordinates.qml create mode 100644 tests/auto/declarative/qdeclarativeitem/data/mouseFocus.qml create mode 100644 tests/auto/declarative/qdeclarativeitem/data/propertychanges.qml create mode 100644 tests/auto/declarative/qdeclarativeitem/data/qtbug_16871.qml create mode 100644 tests/auto/declarative/qdeclarativeitem/data/resourcesProperty.qml create mode 100644 tests/auto/declarative/qdeclarativeitem/data/transformCrash.qml create mode 100644 tests/auto/declarative/qdeclarativeitem/qdeclarativeitem.pro create mode 100644 tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/Alias.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/Alias2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/Alias3.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/Alias4.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/AliasPropertyChangeSignalsType.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/ComponentComposite.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/CompositeType.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/CompositeType2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/CompositeType3.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/CompositeType4.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/DontDoubleCallClassBeginItem.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/DynamicPropertiesNestedType.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/HelperAlias.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/I18n.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/I18nType30.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/InlineAssignmentsOverrideBindingsType.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/InlineAssignmentsOverrideBindingsType2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/LocalLast.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/MyComponent.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/MyCompositeValueSource.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/MyContainerComponent.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/NestedAlias.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/NestedComponentRoot.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/NestedErrorsType.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/OnCompletedType.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/OnDestructionType.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/alias.1.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/alias.10.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/alias.11.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/alias.2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/alias.3.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/alias.4.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/alias.5.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/alias.6.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/alias.7.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/alias.8.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/alias.9.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/aliasPropertiesAndSignals.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/aliasPropertyChangeSignals.2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/aliasPropertyChangeSignals.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/allowedRevisionOverloads.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/assignBasicTypes.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/assignCompositeToType.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/assignLiteralSignalProperty.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/assignLiteralToVariant.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/assignObjectToSignal.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/assignObjectToVariant.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/assignQmlComponent.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/assignSignal.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/assignToNamespace.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/assignToNamespace.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/assignTypeExtremes.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/assignValueToSignal.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/assignValueToSignal.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/attachedProperties.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/autoComponentCreation.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/autoNotifyConnection.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/component.1.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/component.1.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/component.2.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/component.2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/component.3.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/component.3.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/component.4.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/component.4.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/component.5.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/component.5.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/component.6.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/component.6.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/component.7.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/component.7.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/component.8.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/component.8.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/component.9.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/component.9.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/componentCompositeType.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/cppnamespace.2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/cppnamespace.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/crash2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/customOnProperty.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/customParserIdNotAllowed.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/customParserIdNotAllowed.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/customParserTypes.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/customVariantTypes.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/declaredPropertyValues.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/defaultGrouped.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/defaultGrouped.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/defaultPropertyListOrder.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/destroyedSignal.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/destroyedSignal.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/disallowedRevisionOverloads.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/disallowedRevisionOverloads.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/dontDoubleCallClassBegin.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/doubleSignal.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/doubleSignal.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/duplicateIDs.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/duplicateIDs.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.1.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.1.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.2.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.3.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.3.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.4.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.4.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.5.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/dynamicMeta.5.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/dynamicObject.1.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/dynamicObjectProperties.2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/dynamicObjectProperties.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/dynamicProperties.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/dynamicPropertiesNested.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/dynamicSignalsAndSlots.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/empty.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/empty.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/emptySignal.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/emptySignal.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/enumTypes.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/enumTypes.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/failingComponent.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/failingComponentTest.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/fakeDotProperty.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/fakeDotProperty.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/finalOverride.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/finalOverride.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/i18nDeclaredPropertyNames.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/i18nDeclaredPropertyUse.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/i18nNameSpace.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/i18nScript.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/i18nStrings.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/i18nType.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/idProperty.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/importFile.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/importFile.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/importIncorrectCase.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/importNamespaceConflict.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/importNamespaceConflict.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/importNewerVersion.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/importNewerVersion.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/importNonExist.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/importNonExist.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/importNonExistOlder.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/importNonExistOlder.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/importVersionMissingBuiltIn.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/importVersionMissingBuiltIn.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/importVersionMissingInstalled.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/importVersionMissingInstalled.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/importscript.1.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/importscript.1.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/incorrectCase.errors.insensitive.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/incorrectCase.errors.sensitive.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/incorrectCase.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/incorrectCaseType.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/inlineAssignmentsOverrideBindings.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/inlineQmlComponents.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/insertedSemicolon.1.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/insertedSemicolon.1.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/interfaceProperty.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/interfaceQList.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.1.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.1.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.10.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.10.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.2.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.3.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.3.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.4.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.4.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.5.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.5.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.6.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.6.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.7.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.7.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.8.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.8.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.9.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAlias.9.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.1.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.1.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.10.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.10.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.11.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.11.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.12.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.12.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.13.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.13.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.2.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.3.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.3.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.4.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.4.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.5.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.5.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.6.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.6.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.7.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.7.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.8.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.8.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.9.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidAttachedProperty.9.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.1.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.1.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.10.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.10.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.2.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.3.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.3.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.4.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.4.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.5.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.5.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.6.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.6.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.7.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.7.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.8.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.8.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.9.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.9.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidID.2.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidID.2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidID.3.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidID.3.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidID.4.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidID.4.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidID.5.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidID.5.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidID.6.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidID.6.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidID.7.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidID.7.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidID.8.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidID.8.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidID.9.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidID.9.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidID.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidID.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidImportID.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidImportID.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidOn.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidOn.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidProperty.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidProperty.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidRoot.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/invalidRoot.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/InstalledTest.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/InstalledTest2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/LocalLast.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/PrivateType.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/qmldir create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest0/InstalledTest.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest0/InstalledTest2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest0/qmldir create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/listAssignment.1.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/listAssignment.1.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/listAssignment.2.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/listAssignment.2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/listAssignment.3.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/listAssignment.3.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/listItemDeleteSelf.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/listProperties.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/metaobjectRevision.1.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/metaobjectRevision.1.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/metaobjectRevision.2.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/metaobjectRevision.2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/metaobjectRevision.3.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/metaobjectRevision.3.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/method.1.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/method.1.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/missingObject.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/missingObject.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/missingSignal.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/missingSignal.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/missingValueTypeProperty.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/missingValueTypeProperty.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/multiSet.1.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/multiSet.1.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/multiSet.10.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/multiSet.10.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/multiSet.11.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/multiSet.11.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/multiSet.2.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/multiSet.2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/multiSet.3.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/multiSet.3.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/multiSet.4.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/multiSet.4.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/multiSet.5.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/multiSet.5.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/multiSet.6.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/multiSet.6.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/multiSet.7.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/multiSet.7.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/multiSet.8.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/multiSet.8.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/multiSet.9.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/multiSet.9.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/nestedComponentRoots.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/nestedErrors.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/nestedErrors.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/noCreation.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/noCreation.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/nonScriptableProperty.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/nonScriptableProperty.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.1.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.1.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.2.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.3.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.3.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.4.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.4.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.5.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.5.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.6.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/nonexistantProperty.6.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/notAvailable.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/notAvailable.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/nullDotProperty.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/nullDotProperty.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/objectValueTypeProperty.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/objectValueTypeProperty.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/onCompleted.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/onDestruction.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/property.1.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/property.1.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/property.2.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/property.2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/property.3.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/property.3.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/property.4.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/property.4.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/property.5.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/property.5.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/property.6.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/property.6.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/property.7.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/property.7.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/propertyValueSource.2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/propertyValueSource.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/qmlAttachedPropertiesObjectMethod.1.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/qmlAttachedPropertiesObjectMethod.2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/readOnly.1.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/readOnly.1.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/readOnly.2.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/readOnly.2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/readOnly.3.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/readOnly.3.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/readOnly.4.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/readOnly.4.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/readOnly.5.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/readOnly.5.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/revisions11.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/revisionsbasesub11.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/revisionssub11.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/rootAsQmlComponent.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/scriptString.1.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/scriptString.1.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/scriptString.2.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/scriptString.2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/scriptString.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/scriptString2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/scriptString3.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/scriptString4.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/signal.1.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/signal.1.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/signal.2.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/signal.2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/signal.3.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/signal.3.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/signal.4.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/signal.4.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/simpleBindings.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/simpleContainer.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/simpleObject.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/singularProperty.2.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/singularProperty.2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/singularProperty.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/singularProperty.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/subdir/Test.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/subdir/subsubdir/SubTest.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/test.js create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/test2.js create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/unregisteredObject.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/unregisteredObject.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/unsupportedProperty.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/unsupportedProperty.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/valueTypes.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/variantNotify.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/versionedbase.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.1.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.1.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.10.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.10.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.11.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.11.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.12.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.12.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.13.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.13.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.14.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.14.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.15.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.15.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.16.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.16.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.2.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.2.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.3.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.3.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.4.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.4.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.5.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.5.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.6.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.6.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.7.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.7.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.8.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.8.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.9.errors.txt create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/wrongType.9.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/qdeclarativelanguage.pro create mode 100644 tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/LocalInternal.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/Test.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/TestLocal.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/TestNamed.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/TestSubDir.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/UndeclaredLocal.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/WrongTestLocal.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/noqmldir/Test.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/pics/blue.png create mode 100644 tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/qmldir create mode 100644 tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/subdir/SubTest.qml create mode 100644 tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/subdir/qmldir create mode 100644 tests/auto/declarative/qdeclarativelanguage/testtypes.cpp create mode 100644 tests/auto/declarative/qdeclarativelanguage/testtypes.h create mode 100644 tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp create mode 100644 tests/auto/declarative/qdeclarativelayoutitem/data/layoutItem.qml create mode 100644 tests/auto/declarative/qdeclarativelayoutitem/qdeclarativelayoutitem.pro create mode 100644 tests/auto/declarative/qdeclarativelayoutitem/tst_qdeclarativelayoutitem.cpp create mode 100644 tests/auto/declarative/qdeclarativelistmodel/data/enumerate.qml create mode 100644 tests/auto/declarative/qdeclarativelistmodel/data/model.qml create mode 100644 tests/auto/declarative/qdeclarativelistmodel/data/multipleroles.qml create mode 100644 tests/auto/declarative/qdeclarativelistmodel/data/script.js create mode 100644 tests/auto/declarative/qdeclarativelistmodel/data/setmodelcachelist.qml create mode 100644 tests/auto/declarative/qdeclarativelistmodel/qdeclarativelistmodel.pro create mode 100644 tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp create mode 100644 tests/auto/declarative/qdeclarativelistreference/data/MyType.qml create mode 100644 tests/auto/declarative/qdeclarativelistreference/data/engineTypes.qml create mode 100644 tests/auto/declarative/qdeclarativelistreference/data/variantToList.qml create mode 100644 tests/auto/declarative/qdeclarativelistreference/qdeclarativelistreference.pro create mode 100644 tests/auto/declarative/qdeclarativelistreference/tst_qdeclarativelistreference.cpp create mode 100644 tests/auto/declarative/qdeclarativelistview/data/attachedSignals.qml create mode 100644 tests/auto/declarative/qdeclarativelistview/data/displaylist.qml create mode 100644 tests/auto/declarative/qdeclarativelistview/data/footer.qml create mode 100644 tests/auto/declarative/qdeclarativelistview/data/header.qml create mode 100644 tests/auto/declarative/qdeclarativelistview/data/header1.qml create mode 100644 tests/auto/declarative/qdeclarativelistview/data/headerfooter.qml create mode 100644 tests/auto/declarative/qdeclarativelistview/data/itemlist.qml create mode 100644 tests/auto/declarative/qdeclarativelistview/data/listview-enforcerange.qml create mode 100644 tests/auto/declarative/qdeclarativelistview/data/listview-initCurrent.qml create mode 100644 tests/auto/declarative/qdeclarativelistview/data/listview-noCurrent.qml create mode 100644 tests/auto/declarative/qdeclarativelistview/data/listview-sections.qml create mode 100644 tests/auto/declarative/qdeclarativelistview/data/listview-sections_delegate.qml create mode 100644 tests/auto/declarative/qdeclarativelistview/data/listviewtest.qml create mode 100644 tests/auto/declarative/qdeclarativelistview/data/manual-highlight.qml create mode 100644 tests/auto/declarative/qdeclarativelistview/data/orientchange.qml create mode 100644 tests/auto/declarative/qdeclarativelistview/data/propertychangestest.qml create mode 100644 tests/auto/declarative/qdeclarativelistview/data/qtbug14821.qml create mode 100644 tests/auto/declarative/qdeclarativelistview/data/qtbug16037.qml create mode 100644 tests/auto/declarative/qdeclarativelistview/data/rightToLeft.qml create mode 100644 tests/auto/declarative/qdeclarativelistview/data/sizelessthan1.qml create mode 100644 tests/auto/declarative/qdeclarativelistview/data/strictlyenforcerange.qml create mode 100644 tests/auto/declarative/qdeclarativelistview/incrementalmodel.cpp create mode 100644 tests/auto/declarative/qdeclarativelistview/incrementalmodel.h create mode 100644 tests/auto/declarative/qdeclarativelistview/qdeclarativelistview.pro create mode 100644 tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp create mode 100644 tests/auto/declarative/qdeclarativeloader/data/AnchoredLoader.qml create mode 100644 tests/auto/declarative/qdeclarativeloader/data/BlueRect.qml create mode 100644 tests/auto/declarative/qdeclarativeloader/data/CreationContextLoader.qml create mode 100644 tests/auto/declarative/qdeclarativeloader/data/GraphicsWidget250x250.qml create mode 100644 tests/auto/declarative/qdeclarativeloader/data/GreenRect.qml create mode 100644 tests/auto/declarative/qdeclarativeloader/data/NoResize.qml create mode 100644 tests/auto/declarative/qdeclarativeloader/data/NoResizeGraphicsWidget.qml create mode 100644 tests/auto/declarative/qdeclarativeloader/data/QTBUG_16928.qml create mode 100644 tests/auto/declarative/qdeclarativeloader/data/QTBUG_17114.qml create mode 100644 tests/auto/declarative/qdeclarativeloader/data/Rect120x60.qml create mode 100644 tests/auto/declarative/qdeclarativeloader/data/SetSourceComponent.qml create mode 100644 tests/auto/declarative/qdeclarativeloader/data/SizeGraphicsWidgetToLoader.qml create mode 100644 tests/auto/declarative/qdeclarativeloader/data/SizeLoaderToGraphicsWidget.qml create mode 100644 tests/auto/declarative/qdeclarativeloader/data/SizeToItem.qml create mode 100644 tests/auto/declarative/qdeclarativeloader/data/SizeToLoader.qml create mode 100644 tests/auto/declarative/qdeclarativeloader/data/VmeError.qml create mode 100644 tests/auto/declarative/qdeclarativeloader/data/crash.qml create mode 100644 tests/auto/declarative/qdeclarativeloader/data/creationContext.qml create mode 100644 tests/auto/declarative/qdeclarativeloader/data/differentorigin.qml create mode 100644 tests/auto/declarative/qdeclarativeloader/data/implicitSize.qml create mode 100644 tests/auto/declarative/qdeclarativeloader/data/nonItem.qml create mode 100644 tests/auto/declarative/qdeclarativeloader/data/qmldir create mode 100644 tests/auto/declarative/qdeclarativeloader/data/sameorigin-load.qml create mode 100644 tests/auto/declarative/qdeclarativeloader/data/sameorigin.qml create mode 100644 tests/auto/declarative/qdeclarativeloader/data/vmeErrors.qml create mode 100644 tests/auto/declarative/qdeclarativeloader/qdeclarativeloader.pro create mode 100644 tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp create mode 100644 tests/auto/declarative/qdeclarativemetatype/qdeclarativemetatype.pro create mode 100644 tests/auto/declarative/qdeclarativemetatype/tst_qdeclarativemetatype.cpp create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/data/importsMixedQmlCppPlugin.2.qml create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/data/importsMixedQmlCppPlugin.qml create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/data/incorrectCase.qml create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/data/pluginWithQmlFile.qml create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/data/versionNotInstalled.2.errors.txt create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/data/versionNotInstalled.2.qml create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/data/versionNotInstalled.errors.txt create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/data/versionNotInstalled.qml create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/data/works.qml create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/data/works2.qml create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/data/works21.qml create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestPluginWithQmlFile/MyQmlFile.qml create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestPluginWithQmlFile/qmldir create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlMixedPluginType/Foo.qml create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlMixedPluginType/qmldir create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlPluginType.2.1/qmldir create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlPluginType.2/qmldir create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlPluginType/qmldir create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlVersionPluginType/qmldir create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/PureQmlModule/ComponentA.qml create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/PureQmlModule/ComponentB.qml create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/PureQmlModule/qmldir create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/WrongCase/qmldir create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/plugin.2.1/plugin.2.1.pro create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/plugin.2.1/plugin.cpp create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/plugin.2/plugin.2.pro create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/plugin.2/plugin.cpp create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/plugin/plugin.cpp create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/plugin/plugin.pro create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/pluginMixed/plugin.cpp create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/pluginMixed/pluginMixed.pro create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/pluginVersion/plugin.cpp create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/pluginVersion/pluginVersion.pro create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/pluginWithQmlFile/plugin.cpp create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/pluginWithQmlFile/pluginWithQmlFile.pro create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/pluginWrongCase/plugin.cpp create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/pluginWrongCase/pluginWrongCase.pro create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/qdeclarativemoduleplugin.pro create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.pro create mode 100644 tests/auto/declarative/qdeclarativemousearea/data/clickandhold.qml create mode 100644 tests/auto/declarative/qdeclarativemousearea/data/clicktwice.qml create mode 100644 tests/auto/declarative/qdeclarativemousearea/data/doubleclick.qml create mode 100644 tests/auto/declarative/qdeclarativemousearea/data/dragging.qml create mode 100644 tests/auto/declarative/qdeclarativemousearea/data/dragproperties.qml create mode 100644 tests/auto/declarative/qdeclarativemousearea/data/dragreset.qml create mode 100644 tests/auto/declarative/qdeclarativemousearea/data/pressedOrdering.qml create mode 100644 tests/auto/declarative/qdeclarativemousearea/data/preventContextMenu.qml create mode 100644 tests/auto/declarative/qdeclarativemousearea/data/preventstealing.qml create mode 100644 tests/auto/declarative/qdeclarativemousearea/data/rejectEvent.qml create mode 100644 tests/auto/declarative/qdeclarativemousearea/data/updateMousePosOnClick.qml create mode 100644 tests/auto/declarative/qdeclarativemousearea/data/updateMousePosOnResize.qml create mode 100644 tests/auto/declarative/qdeclarativemousearea/qdeclarativemousearea.pro create mode 100644 tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp create mode 100644 tests/auto/declarative/qdeclarativeparticles/data/particle.png create mode 100644 tests/auto/declarative/qdeclarativeparticles/data/particlemotiontest.qml create mode 100644 tests/auto/declarative/qdeclarativeparticles/data/particlestest.qml create mode 100644 tests/auto/declarative/qdeclarativeparticles/qdeclarativeparticles.pro create mode 100644 tests/auto/declarative/qdeclarativeparticles/tst_qdeclarativeparticles.cpp create mode 100644 tests/auto/declarative/qdeclarativepathview/data/closedPath.qml create mode 100644 tests/auto/declarative/qdeclarativepathview/data/datamodel.qml create mode 100644 tests/auto/declarative/qdeclarativepathview/data/displaypath.qml create mode 100644 tests/auto/declarative/qdeclarativepathview/data/dragpath.qml create mode 100644 tests/auto/declarative/qdeclarativepathview/data/emptymodel.qml create mode 100644 tests/auto/declarative/qdeclarativepathview/data/openPath.qml create mode 100644 tests/auto/declarative/qdeclarativepathview/data/pathUpdate.qml create mode 100644 tests/auto/declarative/qdeclarativepathview/data/pathUpdateOnStartChanged.qml create mode 100644 tests/auto/declarative/qdeclarativepathview/data/pathtest.qml create mode 100644 tests/auto/declarative/qdeclarativepathview/data/pathview0.qml create mode 100644 tests/auto/declarative/qdeclarativepathview/data/pathview1.qml create mode 100644 tests/auto/declarative/qdeclarativepathview/data/pathview2.qml create mode 100644 tests/auto/declarative/qdeclarativepathview/data/pathview3.qml create mode 100644 tests/auto/declarative/qdeclarativepathview/data/pathview_package.qml create mode 100644 tests/auto/declarative/qdeclarativepathview/data/propertychanges.qml create mode 100644 tests/auto/declarative/qdeclarativepathview/data/treemodel.qml create mode 100644 tests/auto/declarative/qdeclarativepathview/data/undefinedpath.qml create mode 100644 tests/auto/declarative/qdeclarativepathview/data/vdm.qml create mode 100644 tests/auto/declarative/qdeclarativepathview/qdeclarativepathview.pro create mode 100644 tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp create mode 100644 tests/auto/declarative/qdeclarativepincharea/data/flickresize.qml create mode 100644 tests/auto/declarative/qdeclarativepincharea/data/pinchproperties.qml create mode 100644 tests/auto/declarative/qdeclarativepincharea/qdeclarativepincharea.pro create mode 100644 tests/auto/declarative/qdeclarativepincharea/tst_qdeclarativepincharea.cpp create mode 100644 tests/auto/declarative/qdeclarativepixmapcache/data/exists.png create mode 100644 tests/auto/declarative/qdeclarativepixmapcache/data/exists1.png create mode 100644 tests/auto/declarative/qdeclarativepixmapcache/data/exists2.png create mode 100644 tests/auto/declarative/qdeclarativepixmapcache/data/http/exists.png create mode 100644 tests/auto/declarative/qdeclarativepixmapcache/data/http/exists1.png create mode 100644 tests/auto/declarative/qdeclarativepixmapcache/data/http/exists2.png create mode 100644 tests/auto/declarative/qdeclarativepixmapcache/data/http/exists3.png create mode 100644 tests/auto/declarative/qdeclarativepixmapcache/data/http/exists4.png create mode 100644 tests/auto/declarative/qdeclarativepixmapcache/data/http/exists5.png create mode 100644 tests/auto/declarative/qdeclarativepixmapcache/data/massive.png create mode 100644 tests/auto/declarative/qdeclarativepixmapcache/qdeclarativepixmapcache.pro create mode 100644 tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp create mode 100644 tests/auto/declarative/qdeclarativepositioners/data/flow-testimplicitsize.qml create mode 100644 tests/auto/declarative/qdeclarativepositioners/data/flowtest-toptobottom.qml create mode 100644 tests/auto/declarative/qdeclarativepositioners/data/flowtest.qml create mode 100644 tests/auto/declarative/qdeclarativepositioners/data/grid-animated.qml create mode 100644 tests/auto/declarative/qdeclarativepositioners/data/grid-spacing.qml create mode 100644 tests/auto/declarative/qdeclarativepositioners/data/grid-toptobottom.qml create mode 100644 tests/auto/declarative/qdeclarativepositioners/data/gridtest.qml create mode 100644 tests/auto/declarative/qdeclarativepositioners/data/gridzerocolumns.qml create mode 100644 tests/auto/declarative/qdeclarativepositioners/data/horizontal-animated.qml create mode 100644 tests/auto/declarative/qdeclarativepositioners/data/horizontal-spacing.qml create mode 100644 tests/auto/declarative/qdeclarativepositioners/data/horizontal.qml create mode 100644 tests/auto/declarative/qdeclarativepositioners/data/propertychangestest.qml create mode 100644 tests/auto/declarative/qdeclarativepositioners/data/repeatertest.qml create mode 100644 tests/auto/declarative/qdeclarativepositioners/data/vertical-animated.qml create mode 100644 tests/auto/declarative/qdeclarativepositioners/data/vertical-spacing.qml create mode 100644 tests/auto/declarative/qdeclarativepositioners/data/vertical.qml create mode 100644 tests/auto/declarative/qdeclarativepositioners/data/verticalqgraphicswidget.qml create mode 100644 tests/auto/declarative/qdeclarativepositioners/qdeclarativepositioners.pro create mode 100644 tests/auto/declarative/qdeclarativepositioners/tst_qdeclarativepositioners.cpp create mode 100644 tests/auto/declarative/qdeclarativeproperty/data/TestType.qml create mode 100644 tests/auto/declarative/qdeclarativeproperty/data/aliasPropertyBindings.qml create mode 100644 tests/auto/declarative/qdeclarativeproperty/data/readSynthesizedObject.qml create mode 100644 tests/auto/declarative/qdeclarativeproperty/qdeclarativeproperty.pro create mode 100644 tests/auto/declarative/qdeclarativeproperty/tst_qdeclarativeproperty.cpp create mode 100644 tests/auto/declarative/qdeclarativepropertymap/qdeclarativepropertymap.pro create mode 100644 tests/auto/declarative/qdeclarativepropertymap/tst_qdeclarativepropertymap.cpp create mode 100644 tests/auto/declarative/qdeclarativeqt/data/atob.qml create mode 100644 tests/auto/declarative/qdeclarativeqt/data/btoa.qml create mode 100644 tests/auto/declarative/qdeclarativeqt/data/consoleLog.qml create mode 100644 tests/auto/declarative/qdeclarativeqt/data/createComponent.qml create mode 100644 tests/auto/declarative/qdeclarativeqt/data/createComponentData.qml create mode 100644 tests/auto/declarative/qdeclarativeqt/data/createComponent_lib.js create mode 100644 tests/auto/declarative/qdeclarativeqt/data/createComponent_lib.qml create mode 100644 tests/auto/declarative/qdeclarativeqt/data/createQmlObject.qml create mode 100644 tests/auto/declarative/qdeclarativeqt/data/darker.qml create mode 100644 tests/auto/declarative/qdeclarativeqt/data/enums.qml create mode 100644 tests/auto/declarative/qdeclarativeqt/data/fontFamilies.qml create mode 100644 tests/auto/declarative/qdeclarativeqt/data/formatting.qml create mode 100644 tests/auto/declarative/qdeclarativeqt/data/hsla.qml create mode 100644 tests/auto/declarative/qdeclarativeqt/data/isQtObject.qml create mode 100644 tests/auto/declarative/qdeclarativeqt/data/lighter.qml create mode 100644 tests/auto/declarative/qdeclarativeqt/data/md5.qml create mode 100644 tests/auto/declarative/qdeclarativeqt/data/openUrlExternally.qml create mode 100644 tests/auto/declarative/qdeclarativeqt/data/openUrlExternally_lib.js create mode 100644 tests/auto/declarative/qdeclarativeqt/data/openUrlExternally_lib.qml create mode 100644 tests/auto/declarative/qdeclarativeqt/data/point.qml create mode 100644 tests/auto/declarative/qdeclarativeqt/data/quit.qml create mode 100644 tests/auto/declarative/qdeclarativeqt/data/rect.qml create mode 100644 tests/auto/declarative/qdeclarativeqt/data/rgba.qml create mode 100644 tests/auto/declarative/qdeclarativeqt/data/size.qml create mode 100644 tests/auto/declarative/qdeclarativeqt/data/tint.qml create mode 100644 tests/auto/declarative/qdeclarativeqt/data/vector.qml create mode 100644 tests/auto/declarative/qdeclarativeqt/qdeclarativeqt.pro create mode 100644 tests/auto/declarative/qdeclarativeqt/tst_qdeclarativeqt.cpp create mode 100644 tests/auto/declarative/qdeclarativerepeater/data/intmodel.qml create mode 100644 tests/auto/declarative/qdeclarativerepeater/data/itemlist.qml create mode 100644 tests/auto/declarative/qdeclarativerepeater/data/modelChanged.qml create mode 100644 tests/auto/declarative/qdeclarativerepeater/data/objlist.qml create mode 100644 tests/auto/declarative/qdeclarativerepeater/data/properties.qml create mode 100644 tests/auto/declarative/qdeclarativerepeater/data/repeater1.qml create mode 100644 tests/auto/declarative/qdeclarativerepeater/data/repeater2.qml create mode 100644 tests/auto/declarative/qdeclarativerepeater/qdeclarativerepeater.pro create mode 100644 tests/auto/declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp create mode 100644 tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation1.qml create mode 100644 tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation2.qml create mode 100644 tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation3.qml create mode 100644 tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimationBehavior.qml create mode 100644 tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimationValueSource.qml create mode 100644 tests/auto/declarative/qdeclarativesmoothedanimation/qdeclarativesmoothedanimation.pro create mode 100644 tests/auto/declarative/qdeclarativesmoothedanimation/tst_qdeclarativesmoothedanimation.cpp create mode 100644 tests/auto/declarative/qdeclarativespringanimation/data/springanimation1.qml create mode 100644 tests/auto/declarative/qdeclarativespringanimation/data/springanimation2.qml create mode 100644 tests/auto/declarative/qdeclarativespringanimation/data/springanimation3.qml create mode 100644 tests/auto/declarative/qdeclarativespringanimation/qdeclarativespringanimation.pro create mode 100644 tests/auto/declarative/qdeclarativespringanimation/tst_qdeclarativespringanimation.cpp create mode 100644 tests/auto/declarative/qdeclarativestates/data/ExtendedRectangle.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/Implementation/MyType.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/Implementation/images/qt-logo.png create mode 100644 tests/auto/declarative/qdeclarativestates/data/QTBUG-14830.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/anchorChanges1.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/anchorChanges2.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/anchorChanges3.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/anchorChanges4.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/anchorChanges5.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/anchorChangesCrash.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/anchorRewindBug.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/anchorRewindBug2.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/attachedPropertyChanges.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/autoStateAtStartupRestoreBug.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/basicBinding.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/basicBinding2.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/basicBinding3.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/basicBinding4.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/basicChanges.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/basicChanges2.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/basicChanges3.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/basicChanges4.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/basicExtension.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/deleting.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/deletingState.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/editProperties.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/explicit.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/extendsBug.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/fakeExtension.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/illegalObj.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/illegalTempState.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/image.png create mode 100644 tests/auto/declarative/qdeclarativestates/data/legalTempState.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/nonExistantProp.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/parentChange1.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/parentChange2.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/parentChange3.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/parentChange4.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/parentChange5.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/parentChange6.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/propertyErrors.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/reset.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/restoreEntryValues.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/returnToBase.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/script.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/signalOverride.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/signalOverride2.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/signalOverrideCrash.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/signalOverrideCrash2.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/signalOverrideCrash3.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/unnamedWhen.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/urlResolution.qml create mode 100644 tests/auto/declarative/qdeclarativestates/data/whenOrdering.qml create mode 100644 tests/auto/declarative/qdeclarativestates/qdeclarativestates.pro create mode 100644 tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp create mode 100644 tests/auto/declarative/qdeclarativestyledtext/qdeclarativestyledtext.pro create mode 100644 tests/auto/declarative/qdeclarativestyledtext/tst_qdeclarativestyledtext.cpp create mode 100644 tests/auto/declarative/qdeclarativesystempalette/qdeclarativesystempalette.pro create mode 100644 tests/auto/declarative/qdeclarativesystempalette/tst_qdeclarativesystempalette.cpp create mode 100644 tests/auto/declarative/qdeclarativetext/data/alignments.qml create mode 100644 tests/auto/declarative/qdeclarativetext/data/alignments_cb.png create mode 100644 tests/auto/declarative/qdeclarativetext/data/alignments_cc.png create mode 100644 tests/auto/declarative/qdeclarativetext/data/alignments_ct.png create mode 100644 tests/auto/declarative/qdeclarativetext/data/alignments_lb.png create mode 100644 tests/auto/declarative/qdeclarativetext/data/alignments_lc.png create mode 100644 tests/auto/declarative/qdeclarativetext/data/alignments_lt.png create mode 100644 tests/auto/declarative/qdeclarativetext/data/alignments_rb.png create mode 100644 tests/auto/declarative/qdeclarativetext/data/alignments_rc.png create mode 100644 tests/auto/declarative/qdeclarativetext/data/alignments_rt.png create mode 100644 tests/auto/declarative/qdeclarativetext/data/elideimplicitwidth.qml create mode 100644 tests/auto/declarative/qdeclarativetext/data/embeddedImagesLocal.qml create mode 100644 tests/auto/declarative/qdeclarativetext/data/embeddedImagesLocalError.qml create mode 100644 tests/auto/declarative/qdeclarativetext/data/embeddedImagesRemote.qml create mode 100644 tests/auto/declarative/qdeclarativetext/data/embeddedImagesRemoteError.qml create mode 100644 tests/auto/declarative/qdeclarativetext/data/horizontalAlignment_RightToLeft.qml create mode 100644 tests/auto/declarative/qdeclarativetext/data/http/exists.png create mode 100644 tests/auto/declarative/qdeclarativetext/data/lineCount.qml create mode 100644 tests/auto/declarative/qdeclarativetext/data/lineHeight.qml create mode 100644 tests/auto/declarative/qdeclarativetext/data/qtbug_14734.qml create mode 100644 tests/auto/declarative/qdeclarativetext/data/rotated.qml create mode 100644 tests/auto/declarative/qdeclarativetext/qdeclarativetext.pro create mode 100644 tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/CursorRect.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/alignments.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/alignments_cb.png create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/alignments_cc.png create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/alignments_ct.png create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/alignments_lb.png create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/alignments_lc.png create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/alignments_lt.png create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/alignments_rb.png create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/alignments_rc.png create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/alignments_rt.png create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/cursorTest.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/geometrySignals.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/horizontalAlignment_RightToLeft.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/http/ErrItem.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/http/NormItem.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/http/cursorHttpTest.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/http/cursorHttpTestFail1.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/http/cursorHttpTestFail2.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/http/cursorHttpTestPass.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/http/qmldir create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/httpfail/FailItem.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/httpslow/WaitItem.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/inputmethodhints.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/mouseselection_default.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/mouseselection_false.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/mouseselection_false_readonly.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/mouseselection_false_words.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/mouseselection_multiline.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/mouseselection_true.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/mouseselection_true_readonly.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/mouseselection_true_words.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/mouseselectionmode_characters.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/mouseselectionmode_default.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/mouseselectionmode_words.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/navigation.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/positionAt.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/data/readOnly.qml create mode 100644 tests/auto/declarative/qdeclarativetextedit/qdeclarativetextedit.pro create mode 100644 tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp create mode 100644 tests/auto/declarative/qdeclarativetextinput/data/cursorTest.qml create mode 100644 tests/auto/declarative/qdeclarativetextinput/data/echoMode.qml create mode 100644 tests/auto/declarative/qdeclarativetextinput/data/geometrySignals.qml create mode 100644 tests/auto/declarative/qdeclarativetextinput/data/halign_center.png create mode 100644 tests/auto/declarative/qdeclarativetextinput/data/halign_left.png create mode 100644 tests/auto/declarative/qdeclarativetextinput/data/halign_right.png create mode 100644 tests/auto/declarative/qdeclarativetextinput/data/horizontalAlignment.qml create mode 100644 tests/auto/declarative/qdeclarativetextinput/data/horizontalAlignment_RightToLeft.qml create mode 100644 tests/auto/declarative/qdeclarativetextinput/data/inputmethods.qml create mode 100644 tests/auto/declarative/qdeclarativetextinput/data/masks.qml create mode 100644 tests/auto/declarative/qdeclarativetextinput/data/maxLength.qml create mode 100644 tests/auto/declarative/qdeclarativetextinput/data/mouseselection_default.qml create mode 100644 tests/auto/declarative/qdeclarativetextinput/data/mouseselection_false.qml create mode 100644 tests/auto/declarative/qdeclarativetextinput/data/mouseselection_false_readonly.qml create mode 100644 tests/auto/declarative/qdeclarativetextinput/data/mouseselection_false_words.qml create mode 100644 tests/auto/declarative/qdeclarativetextinput/data/mouseselection_true.qml create mode 100644 tests/auto/declarative/qdeclarativetextinput/data/mouseselection_true_readonly.qml create mode 100644 tests/auto/declarative/qdeclarativetextinput/data/mouseselection_true_words.qml create mode 100644 tests/auto/declarative/qdeclarativetextinput/data/mouseselectionmode_characters.qml create mode 100644 tests/auto/declarative/qdeclarativetextinput/data/mouseselectionmode_default.qml create mode 100644 tests/auto/declarative/qdeclarativetextinput/data/mouseselectionmode_words.qml create mode 100644 tests/auto/declarative/qdeclarativetextinput/data/navigation.qml create mode 100644 tests/auto/declarative/qdeclarativetextinput/data/positionAt.qml create mode 100644 tests/auto/declarative/qdeclarativetextinput/data/readOnly.qml create mode 100644 tests/auto/declarative/qdeclarativetextinput/data/validators.qml create mode 100644 tests/auto/declarative/qdeclarativetextinput/qdeclarativetextinput.pro create mode 100644 tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp create mode 100644 tests/auto/declarative/qdeclarativetimer/qdeclarativetimer.pro create mode 100644 tests/auto/declarative/qdeclarativetimer/tst_qdeclarativetimer.cpp create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/BindingsSpliceCorrectlyType.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/BindingsSpliceCorrectlyType4.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/BindingsSpliceCorrectlyType5.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/autoBindingRemoval.2.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/autoBindingRemoval.3.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/autoBindingRemoval.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/bindingAssignment.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/bindingConflict.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/bindingRead.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/bindingVariantCopy.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/bindingsSpliceCorrectly.1.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/bindingsSpliceCorrectly.2.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/bindingsSpliceCorrectly.3.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/bindingsSpliceCorrectly.4.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/bindingsSpliceCorrectly.5.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.1.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.2.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.3.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/deletedObject.js create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/deletedObject.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/enums.1.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/enums.2.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/enums.3.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/enums.4.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/enums.5.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/font_read.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/font_write.2.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/font_write.3.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/font_write.4.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/font_write.5.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/font_write.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/matrix4x4_read.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/matrix4x4_write.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/point_read.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/point_write.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/pointf_read.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/pointf_write.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/quaternion_read.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/quaternion_write.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/rect_read.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/rect_write.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/rectf_read.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/rectf_write.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/returnValues.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/scriptAccess.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/scriptVariantCopy.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/size_read.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/size_write.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/sizef_read.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/sizef_write.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_read.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_writeerror.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_writeerror2.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_writeerror3.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_writeerror4.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/staticAssignment.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/valueInterceptors.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/valueSources.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/varAssignment.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/variant_read.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/vector2d_read.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/vector2d_write.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/vector3d_read.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/vector3d_write.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/vector4d_read.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/data/vector4d_write.qml create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/qdeclarativevaluetypes.pro create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/testtypes.cpp create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/testtypes.h create mode 100644 tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp create mode 100644 tests/auto/declarative/qdeclarativeview/data/error1.qml create mode 100644 tests/auto/declarative/qdeclarativeview/data/resizemodedeclarativeitem.qml create mode 100644 tests/auto/declarative/qdeclarativeview/data/resizemodegraphicswidget.qml create mode 100644 tests/auto/declarative/qdeclarativeview/qdeclarativeview.pro create mode 100644 tests/auto/declarative/qdeclarativeview/tst_qdeclarativeview.cpp create mode 100644 tests/auto/declarative/qdeclarativeviewer/data/orientation.qml create mode 100644 tests/auto/declarative/qdeclarativeviewer/qdeclarativeviewer.pro create mode 100644 tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp create mode 100644 tests/auto/declarative/qdeclarativevisualdatamodel/data/datalist.qml create mode 100644 tests/auto/declarative/qdeclarativevisualdatamodel/data/modelproperties.qml create mode 100644 tests/auto/declarative/qdeclarativevisualdatamodel/data/modelproperties2.qml create mode 100644 tests/auto/declarative/qdeclarativevisualdatamodel/data/objectlist.qml create mode 100644 tests/auto/declarative/qdeclarativevisualdatamodel/data/singlerole1.qml create mode 100644 tests/auto/declarative/qdeclarativevisualdatamodel/data/singlerole2.qml create mode 100644 tests/auto/declarative/qdeclarativevisualdatamodel/data/visualdatamodel.qml create mode 100644 tests/auto/declarative/qdeclarativevisualdatamodel/qdeclarativevisualdatamodel.pro create mode 100644 tests/auto/declarative/qdeclarativevisualdatamodel/tst_qdeclarativevisualdatamodel.cpp create mode 100644 tests/auto/declarative/qdeclarativeworkerscript/data/BaseWorker.qml create mode 100644 tests/auto/declarative/qdeclarativeworkerscript/data/Global.js create mode 100644 tests/auto/declarative/qdeclarativeworkerscript/data/script.js create mode 100644 tests/auto/declarative/qdeclarativeworkerscript/data/script_error_onCall.js create mode 100644 tests/auto/declarative/qdeclarativeworkerscript/data/script_error_onLoad.js create mode 100644 tests/auto/declarative/qdeclarativeworkerscript/data/script_fixed_return.js create mode 100644 tests/auto/declarative/qdeclarativeworkerscript/data/script_include.js create mode 100644 tests/auto/declarative/qdeclarativeworkerscript/data/script_pragma.js create mode 100644 tests/auto/declarative/qdeclarativeworkerscript/data/worker.qml create mode 100644 tests/auto/declarative/qdeclarativeworkerscript/data/worker_error_onCall.qml create mode 100644 tests/auto/declarative/qdeclarativeworkerscript/data/worker_error_onLoad.qml create mode 100644 tests/auto/declarative/qdeclarativeworkerscript/data/worker_include.qml create mode 100644 tests/auto/declarative/qdeclarativeworkerscript/data/worker_pragma.qml create mode 100644 tests/auto/declarative/qdeclarativeworkerscript/qdeclarativeworkerscript.pro create mode 100644 tests/auto/declarative/qdeclarativeworkerscript/tst_qdeclarativeworkerscript.cpp create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/abort.expect create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/abort.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/abort.reply create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_opened.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_unsent.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/attr.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/attr.xml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/callbackException.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/cdata.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/cdata.xml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/constructor.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/defaultState.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/document.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/document.xml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/domExceptionCodes.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/element.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/element.xml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders_args.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders_sent.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders_unsent.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader.expect create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader.reply create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader_args.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader_sent.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader_unsent.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/instanceStateValues.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/invalidMethodUsage.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/open.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/open_arg_count.1.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/open_arg_count.2.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/open_invalid_method.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/open_network.expect create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/open_network.reply create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/open_network.wait create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/open_sync.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/open_user.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/open_username.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/redirectError.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/redirectRecur.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/redirects.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/redirecttarget.html create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/responseText.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/responseXML_invalid.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/seconddocument.html create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/send_alreadySent.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.1.expect create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.1.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.2.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.3.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.4.expect create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.4.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.5.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.6.expect create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.6.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.7.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.reply create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData.reply create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData_GET.expect create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData_PUT.expect create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/send_unsent.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader.expect create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader.reply create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_args.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_illegalName.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_sent.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_unsent.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/staticStateValues.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/status.200.reply create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/status.404.reply create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/status.expect create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/status.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/statusText.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/testdocument.html create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/text.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/text.xml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/utf16.html create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/utf16.qml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/data/utf16.xml create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/qdeclarativexmlhttprequest.pro create mode 100644 tests/auto/declarative/qdeclarativexmlhttprequest/tst_qdeclarativexmlhttprequest.cpp create mode 100644 tests/auto/declarative/qdeclarativexmllistmodel/data/model.qml create mode 100644 tests/auto/declarative/qdeclarativexmllistmodel/data/model.xml create mode 100644 tests/auto/declarative/qdeclarativexmllistmodel/data/model2.xml create mode 100644 tests/auto/declarative/qdeclarativexmllistmodel/data/propertychanges.qml create mode 100644 tests/auto/declarative/qdeclarativexmllistmodel/data/recipes.qml create mode 100644 tests/auto/declarative/qdeclarativexmllistmodel/data/recipes.xml create mode 100644 tests/auto/declarative/qdeclarativexmllistmodel/data/roleCrash.qml create mode 100644 tests/auto/declarative/qdeclarativexmllistmodel/data/roleErrors.qml create mode 100644 tests/auto/declarative/qdeclarativexmllistmodel/data/roleKeys.qml create mode 100644 tests/auto/declarative/qdeclarativexmllistmodel/data/testtypes.qml create mode 100644 tests/auto/declarative/qdeclarativexmllistmodel/data/unique.qml create mode 100644 tests/auto/declarative/qdeclarativexmllistmodel/qdeclarativexmllistmodel.pro create mode 100644 tests/auto/declarative/qdeclarativexmllistmodel/tst_qdeclarativexmllistmodel.cpp create mode 100644 tests/auto/declarative/qmetaobjectbuilder/qmetaobjectbuilder.pro create mode 100644 tests/auto/declarative/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp create mode 100644 tests/auto/declarative/qmlshadersplugin/main.qml create mode 100644 tests/auto/declarative/qmlshadersplugin/qmlshadersplugin.pro create mode 100644 tests/auto/declarative/qmlshadersplugin/tst_qmlshadersplugin.cpp create mode 100644 tests/auto/declarative/qmlvisual/ListView/basic1.qml create mode 100644 tests/auto/declarative/qmlvisual/ListView/basic2.qml create mode 100644 tests/auto/declarative/qmlvisual/ListView/basic3.qml create mode 100644 tests/auto/declarative/qmlvisual/ListView/basic4.qml create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/basic1.0.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/basic1.qml create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/basic2.0.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/basic2.qml create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/basic3.0.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/basic3.qml create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/basic4.0.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/basic4.qml create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/enforcerange.0.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/enforcerange.1.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/enforcerange.2.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/enforcerange.3.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/enforcerange.4.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/enforcerange.5.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/enforcerange.6.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/enforcerange.qml create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/itemlist.0.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/itemlist.1.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/itemlist.2.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/itemlist.3.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/itemlist.4.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/itemlist.5.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/itemlist.6.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/itemlist.7.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/itemlist.qml create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/listview.0.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/listview.1.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/listview.2.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/listview.3.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/listview.4.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/listview.5.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/listview.6.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/listview.7.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/listview.8.png create mode 100644 tests/auto/declarative/qmlvisual/ListView/data/listview.qml create mode 100644 tests/auto/declarative/qmlvisual/ListView/enforcerange.qml create mode 100644 tests/auto/declarative/qmlvisual/ListView/itemlist.qml create mode 100644 tests/auto/declarative/qmlvisual/ListView/listview.qml create mode 100644 tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.0.png create mode 100644 tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.1.png create mode 100644 tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.2.png create mode 100644 tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.3.png create mode 100644 tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.4.png create mode 100644 tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.5.png create mode 100644 tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.6.png create mode 100644 tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.qml create mode 100644 tests/auto/declarative/qmlvisual/Package_Views/packageviews.qml create mode 100644 tests/auto/declarative/qmlvisual/TEST_GUIDELINES create mode 100644 tests/auto/declarative/qmlvisual/animation/bindinganimation/bindinganimation.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.0.png create mode 100644 tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.1.png create mode 100644 tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.2.png create mode 100644 tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.3.png create mode 100644 tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.4.png create mode 100644 tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.5.png create mode 100644 tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/colorAnimation/colorAnimation-visual.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.0.png create mode 100644 tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.1.png create mode 100644 tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.2.png create mode 100644 tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.3.png create mode 100644 tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.0.png create mode 100644 tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.1.png create mode 100644 tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.2.png create mode 100644 tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.3.png create mode 100644 tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/easing/data/easing.0.png create mode 100644 tests/auto/declarative/qmlvisual/animation/easing/data/easing.1.png create mode 100644 tests/auto/declarative/qmlvisual/animation/easing/data/easing.2.png create mode 100644 tests/auto/declarative/qmlvisual/animation/easing/data/easing.3.png create mode 100644 tests/auto/declarative/qmlvisual/animation/easing/data/easing.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/easing/easing.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/loop/data/loop.0.png create mode 100644 tests/auto/declarative/qmlvisual/animation/loop/data/loop.1.png create mode 100644 tests/auto/declarative/qmlvisual/animation/loop/data/loop.2.png create mode 100644 tests/auto/declarative/qmlvisual/animation/loop/data/loop.3.png create mode 100644 tests/auto/declarative/qmlvisual/animation/loop/data/loop.4.png create mode 100644 tests/auto/declarative/qmlvisual/animation/loop/data/loop.5.png create mode 100644 tests/auto/declarative/qmlvisual/animation/loop/data/loop.6.png create mode 100644 tests/auto/declarative/qmlvisual/animation/loop/data/loop.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/loop/loop.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation-visual.0.png create mode 100644 tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation-visual.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/parallelAnimation/parallelAnimation-visual.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.0.png create mode 100644 tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.1.png create mode 100644 tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.2.png create mode 100644 tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.3.png create mode 100644 tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.4.png create mode 100644 tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/parentAnimation/parentAnimation-visual.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.0.png create mode 100644 tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.1.png create mode 100644 tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.2.png create mode 100644 tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.3.png create mode 100644 tests/auto/declarative/qmlvisual/animation/parentAnimation2/data/parentAnimation2.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/parentAnimation2/parentAnimation2.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.0.png create mode 100644 tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.1.png create mode 100644 tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.2.png create mode 100644 tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.3.png create mode 100644 tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.4.png create mode 100644 tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.5.png create mode 100644 tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.6.png create mode 100644 tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation.0.png create mode 100644 tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation.1.png create mode 100644 tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation.2.png create mode 100644 tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation.3.png create mode 100644 tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation.4.png create mode 100644 tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation.5.png create mode 100644 tests/auto/declarative/qmlvisual/animation/pauseAnimation/pauseAnimation-visual.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/pauseAnimation/pics/qtlogo.png create mode 100644 tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.0.png create mode 100644 tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.1.png create mode 100644 tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.2.png create mode 100644 tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.3.png create mode 100644 tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/propertyAction/propertyAction-visual.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.0.png create mode 100644 tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.1.png create mode 100644 tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.2.png create mode 100644 tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.3.png create mode 100644 tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.4.png create mode 100644 tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/qtbug10586/qtbug10586.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.0.png create mode 100644 tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.1.png create mode 100644 tests/auto/declarative/qmlvisual/animation/qtbug13398/data/qtbug13398.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/qtbug13398/qtbug13398.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.0.png create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.1.png create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.2.png create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.3.png create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.4.png create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.5.png create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.6.png create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.7.png create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.8.png create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.9.png create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchor/reanchor.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchorRTL/data/reanchor.0.png create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchorRTL/data/reanchor.1.png create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchorRTL/data/reanchor.10.png create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchorRTL/data/reanchor.11.png create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchorRTL/data/reanchor.12.png create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchorRTL/data/reanchor.2.png create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchorRTL/data/reanchor.3.png create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchorRTL/data/reanchor.4.png create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchorRTL/data/reanchor.5.png create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchorRTL/data/reanchor.6.png create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchorRTL/data/reanchor.7.png create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchorRTL/data/reanchor.8.png create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchorRTL/data/reanchor.9.png create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchorRTL/data/reanchor.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/reanchorRTL/reanchor.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.0.png create mode 100644 tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.1.png create mode 100644 tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.2.png create mode 100644 tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.qml create mode 100644 tests/auto/declarative/qmlvisual/animation/scriptAction/scriptAction-visual.qml create mode 100644 tests/auto/declarative/qmlvisual/fillmode/data/fillmode.0.png create mode 100644 tests/auto/declarative/qmlvisual/fillmode/data/fillmode.qml create mode 100644 tests/auto/declarative/qmlvisual/fillmode/face.png create mode 100644 tests/auto/declarative/qmlvisual/fillmode/fillmode.qml create mode 100644 tests/auto/declarative/qmlvisual/focusscope/data/test.0.png create mode 100644 tests/auto/declarative/qmlvisual/focusscope/data/test.1.png create mode 100644 tests/auto/declarative/qmlvisual/focusscope/data/test.2.png create mode 100644 tests/auto/declarative/qmlvisual/focusscope/data/test.3.png create mode 100644 tests/auto/declarative/qmlvisual/focusscope/data/test.qml create mode 100644 tests/auto/declarative/qmlvisual/focusscope/data/test2.0.png create mode 100644 tests/auto/declarative/qmlvisual/focusscope/data/test2.1.png create mode 100644 tests/auto/declarative/qmlvisual/focusscope/data/test2.qml create mode 100644 tests/auto/declarative/qmlvisual/focusscope/data/test3.0.png create mode 100644 tests/auto/declarative/qmlvisual/focusscope/data/test3.1.png create mode 100644 tests/auto/declarative/qmlvisual/focusscope/data/test3.2.png create mode 100644 tests/auto/declarative/qmlvisual/focusscope/data/test3.3.png create mode 100644 tests/auto/declarative/qmlvisual/focusscope/data/test3.4.png create mode 100644 tests/auto/declarative/qmlvisual/focusscope/data/test3.qml create mode 100644 tests/auto/declarative/qmlvisual/focusscope/test.qml create mode 100644 tests/auto/declarative/qmlvisual/focusscope/test2.qml create mode 100644 tests/auto/declarative/qmlvisual/focusscope/test3.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeborderimage/animated-smooth.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeborderimage/animated.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeborderimage/borders.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/MyBorderImage.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/bw.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/colors-round.sci create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/colors-stretch.sci create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/colors.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/qmldir create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/borders.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/borders.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data-MAC/flickable-horizontal.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-nested.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.8.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/flickable-horizontal.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/flickable-nested.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflickable/flickable-vertical.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test_flipable_resize.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test_flipable_resize.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflipable/test-flipable.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeflipable/test_flipable_resize.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.10.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.8.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.9.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.10.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.8.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.9.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/gridview.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativegridview/gridview2.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.8.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.10.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.11.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.12.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.13.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.14.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.8.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.9.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.10.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.11.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.12.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.13.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.14.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.15.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.8.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.9.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.10.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.11.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.12.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.13.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.14.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.15.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.16.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.17.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.18.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.19.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.20.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.21.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.22.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.8.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.9.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.8.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.9.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/drag.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/mousearea-flickable.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/mousearea-visual.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativemousearea/nested.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeparticles/particles.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativeparticles/star.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview-2.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepositioners/dynamic.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativepositioners/usingRepeater.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/smoothedfollow.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedfollow.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/clock.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/content/background.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/content/center.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/content/clock.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/content/hour.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/content/minute.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/content/second.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-MAC/follow.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data-X11/follow.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/clock.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/clock.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/clock.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/clock.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativespringanimation/follow.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/justify.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/justify.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-X11/multilineAlign.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-X11/multilineAlign.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/align/data/multilineAlign.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/align/data/multilineAlign.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/align/justify.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/align/multilineAlign.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data/parentanchor.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/parentanchor.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/QTBUG-14469.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data-MAC/QTBUG-14469.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data-MAC/QTBUG-14469.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data-MAC/QTBUG-14469.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data-X11/QTBUG-14469.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data-X11/QTBUG-14469.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data/QTBUG-14469.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/bugs/data/QTBUG-14469.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/data/qtbug_14865.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/data/qtbug_14865.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide2.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/elide/multilength.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/BorderedText.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext3.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext3.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext2.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext2.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext2.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext2.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext3.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext3.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext2.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext2.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/plaintext.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/plaintext.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/plaintext2.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/plaintext2.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/plaintext3.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/plaintext3.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/richtext.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/richtext.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/richtext2.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/richtext2.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext2.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext3.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext2.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/maximumLineCount/data-X11/newLines.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/maximumLineCount/data-X11/newLines.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/maximumLineCount/data-X11/newLines_wrap.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/maximumLineCount/data-X11/newLines_wrap.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/maximumLineCount/data-X11/newLines_wrap_elide.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/maximumLineCount/data-X11/newLines_wrap_elide.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/maximumLineCount/data-X11/wrap.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/maximumLineCount/data-X11/wrap.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/maximumLineCount/data-X11/wrap_elide.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/maximumLineCount/data-X11/wrap_elide.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/maximumLineCount/data/newLines.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/maximumLineCount/data/newLines.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/maximumLineCount/data/newLines_wrap.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/maximumLineCount/data/newLines_wrap.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/maximumLineCount/data/newLines_wrap_elide.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/maximumLineCount/data/newLines_wrap_elide.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/maximumLineCount/data/wrap.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/maximumLineCount/data/wrap.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/maximumLineCount/data/wrap_elide.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/maximumLineCount/data/wrap_elide.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/maximumLineCount/newLines.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/maximumLineCount/newLines_wrap.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/maximumLineCount/newLines_wrap_elide.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/maximumLineCount/wrap.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/maximumLineCount/wrap_elide.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetext/qtbug_14865.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/MultilineEdit.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/cursorDelegate.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.8.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.9.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/justify.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/justify.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.10.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.11.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.12.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.8.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.9.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.8.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.9.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/cursorDelegate.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/linkActivated.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/linkActivated.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/linkActivated.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.10.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.11.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.12.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.8.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.9.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.8.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.9.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/flickableEdit.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/flickableEdit.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/flickableEdit.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/flickableEdit.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/flickableEdit.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/flickableEdit.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/flickableEdit.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/flickableEdit.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/linkActivated.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/linkActivated.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/linkActivated.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/qt-669.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/qt-669.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/qt-669.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/qt-669.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/qt-669.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/usingMultilineEdit.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/usingMultilineEdit.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/usingMultilineEdit.10.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/usingMultilineEdit.11.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/usingMultilineEdit.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/usingMultilineEdit.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/usingMultilineEdit.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/usingMultilineEdit.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/usingMultilineEdit.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/usingMultilineEdit.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/usingMultilineEdit.8.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/usingMultilineEdit.9.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/usingMultilineEdit.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/flickableEdit.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/justify.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/linkActivated.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/qt-669.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/usingMultilineEdit.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextedit/wrap.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/LineEdit.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/cursorDelegate.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.8.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/hAlign.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/hAlign.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.10.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.11.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.8.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.9.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/cursorDelegate.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/qtbug-15818.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/qtbug-15818.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/qtbug-15818.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/qtbug-15818.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/qtbug-15818.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/qtbug-15818.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/qtbug-15818.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.10.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.11.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.8.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.9.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/echoMode.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/flickableInput.0.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/flickableInput.1.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/flickableInput.2.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/flickableInput.3.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/flickableInput.4.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/flickableInput.5.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/flickableInput.6.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/flickableInput.7.png create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/flickableInput.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/hAlign.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/echoMode.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/flickableInput.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/hAlign.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/qtbug-15818.qml create mode 100644 tests/auto/declarative/qmlvisual/qdeclarativetextinput/usingLineEdit.qml create mode 100644 tests/auto/declarative/qmlvisual/qmlvisual.pro create mode 100644 tests/auto/declarative/qmlvisual/rect/GradientRect.qml create mode 100644 tests/auto/declarative/qmlvisual/rect/MyRect.qml create mode 100644 tests/auto/declarative/qmlvisual/rect/data/GradientRect.0.png create mode 100644 tests/auto/declarative/qmlvisual/rect/data/GradientRect.qml create mode 100644 tests/auto/declarative/qmlvisual/rect/data/MyRect.0.png create mode 100644 tests/auto/declarative/qmlvisual/rect/data/MyRect.qml create mode 100644 tests/auto/declarative/qmlvisual/rect/data/rect-painting.0.png create mode 100644 tests/auto/declarative/qmlvisual/rect/data/rect-painting.qml create mode 100644 tests/auto/declarative/qmlvisual/rect/rect-painting.qml create mode 100644 tests/auto/declarative/qmlvisual/repeater/basic1.qml create mode 100644 tests/auto/declarative/qmlvisual/repeater/basic2.qml create mode 100644 tests/auto/declarative/qmlvisual/repeater/basic3.qml create mode 100644 tests/auto/declarative/qmlvisual/repeater/basic4.qml create mode 100644 tests/auto/declarative/qmlvisual/repeater/data/basic1.0.png create mode 100644 tests/auto/declarative/qmlvisual/repeater/data/basic1.qml create mode 100644 tests/auto/declarative/qmlvisual/repeater/data/basic2.0.png create mode 100644 tests/auto/declarative/qmlvisual/repeater/data/basic2.qml create mode 100644 tests/auto/declarative/qmlvisual/repeater/data/basic3.0.png create mode 100644 tests/auto/declarative/qmlvisual/repeater/data/basic3.qml create mode 100644 tests/auto/declarative/qmlvisual/repeater/data/basic4.0.png create mode 100644 tests/auto/declarative/qmlvisual/repeater/data/basic4.qml create mode 100644 tests/auto/declarative/qmlvisual/selftest_noimages/data/selftest_noimages.qml create mode 100644 tests/auto/declarative/qmlvisual/selftest_noimages/selftest_noimages.qml create mode 100644 tests/auto/declarative/qmlvisual/shared/DejaVuSansMono.ttf create mode 100644 tests/auto/declarative/qmlvisual/shared/README create mode 100644 tests/auto/declarative/qmlvisual/shared/TestText.qml create mode 100644 tests/auto/declarative/qmlvisual/shared/TestTextEdit.qml create mode 100644 tests/auto/declarative/qmlvisual/shared/TestTextInput.qml create mode 100644 tests/auto/declarative/qmlvisual/shared/qmldir create mode 100644 tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp create mode 100644 tests/auto/declarative/qmlvisual/webview/autosize/autosize.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/autosize/data-X11/autosize.0.png create mode 100644 tests/auto/declarative/qmlvisual/webview/autosize/data-X11/autosize.1.png create mode 100644 tests/auto/declarative/qmlvisual/webview/autosize/data-X11/autosize.2.png create mode 100644 tests/auto/declarative/qmlvisual/webview/autosize/data-X11/autosize.3.png create mode 100644 tests/auto/declarative/qmlvisual/webview/autosize/data-X11/autosize.4.png create mode 100644 tests/auto/declarative/qmlvisual/webview/autosize/data/autosize.0.png create mode 100644 tests/auto/declarative/qmlvisual/webview/autosize/data/autosize.1.png create mode 100644 tests/auto/declarative/qmlvisual/webview/autosize/data/autosize.2.png create mode 100644 tests/auto/declarative/qmlvisual/webview/autosize/data/autosize.3.png create mode 100644 tests/auto/declarative/qmlvisual/webview/autosize/data/autosize.4.png create mode 100644 tests/auto/declarative/qmlvisual/webview/autosize/data/autosize.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.0.png create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.1.png create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.10.png create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.2.png create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.3.png create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.4.png create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.5.png create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.6.png create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.7.png create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.8.png create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.9.png create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/flickweb.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/qtlogo.png create mode 100644 tests/auto/declarative/qmlvisual/webview/flickable/test.html create mode 100644 tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.0.png create mode 100644 tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.1.png create mode 100644 tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.2.png create mode 100644 tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.3.png create mode 100644 tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.4.png create mode 100644 tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.5.png create mode 100644 tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.6.png create mode 100644 tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.7.png create mode 100644 tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.8.png create mode 100644 tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.0.png create mode 100644 tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.1.png create mode 100644 tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.2.png create mode 100644 tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.3.png create mode 100644 tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.4.png create mode 100644 tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/javascript/evaluateJavaScript.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/javascript/test-objects.html create mode 100644 tests/auto/declarative/qmlvisual/webview/javascript/windowObjects.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/settings/data/fontFamily.0.png create mode 100644 tests/auto/declarative/qmlvisual/webview/settings/data/fontFamily.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/settings/data/fontSize.0.png create mode 100644 tests/auto/declarative/qmlvisual/webview/settings/data/fontSize.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/settings/data/noAutoLoadImages.0.png create mode 100644 tests/auto/declarative/qmlvisual/webview/settings/data/noAutoLoadImages.1.png create mode 100644 tests/auto/declarative/qmlvisual/webview/settings/data/noAutoLoadImages.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/settings/data/setFontFamily.0.png create mode 100644 tests/auto/declarative/qmlvisual/webview/settings/data/setFontFamily.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/settings/fontFamily.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/settings/fontSize.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/settings/noAutoLoadImages.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/settings/qtlogo.png create mode 100644 tests/auto/declarative/qmlvisual/webview/settings/setFontFamily.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/settings/tarzeau_ocr_a.ttf create mode 100644 tests/auto/declarative/qmlvisual/webview/settings/test-img.html create mode 100644 tests/auto/declarative/qmlvisual/webview/settings/test.html create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/data/pageWidth.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/data/renderControl.0.png create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/data/renderControl.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.0.png create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.1.png create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.2.png create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.3.png create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.4.png create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/data/zoomTextOnly.0.png create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/data/zoomTextOnly.1.png create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/data/zoomTextOnly.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/data/zooming.0.png create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/data/zooming.1.png create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/data/zooming.2.png create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/data/zooming.3.png create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/data/zooming.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/pageWidth.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/qtlogo.png create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/renderControl.html create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/renderControl.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/resolution.html create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/resolution.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/zoomTextOnly.html create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/zoomTextOnly.qml create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/zooming.html create mode 100644 tests/auto/declarative/qmlvisual/webview/zooming/zooming.qml create mode 100644 tests/auto/declarative/qpacketprotocol/qpacketprotocol.pro create mode 100644 tests/auto/declarative/qpacketprotocol/tst_qpacketprotocol.cpp create mode 100644 tests/auto/declarative/qperformancetimer/qperformancetimer.pro create mode 100644 tests/auto/declarative/qperformancetimer/tst_qperformancetimer.cpp create mode 100755 tests/auto/declarative/runall.sh create mode 100644 tests/auto/declarative/shared/debugutil.cpp create mode 100644 tests/auto/declarative/shared/debugutil_p.h create mode 100644 tests/auto/declarative/shared/testhttpserver.cpp create mode 100644 tests/auto/declarative/shared/testhttpserver.h create mode 100644 tests/auto/declarative/symbianlibs.pri create mode 100644 tests/manual/declarative/declarative.pro create mode 100644 tests/manual/declarative/qmlshadersplugin/main.cpp create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestActive.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestBasic.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestBlending.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestBlendingModes.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestEffectHierarchy.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestEffectInsideAnotherEffect.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestFormat.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestFragmentShader.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestGrab.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestHideOriginal.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestHorizontalWrap.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestImageFiltering.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestImageMargins.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestImageMarginsWithTextureSize.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestImageMipmap.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestItemMargins.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestItemMarginsWithTextureSize.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestLive.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestMeshResolution.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestOneSource.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestOpacity.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestRotation.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestScale.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestTextureSize.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestTwiceOnSameSource.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestTwoSources.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestVertexShader.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestVerticalWrap.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/TestWrapRepeat.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/back.svg create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/green_image_transparent.png create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/image.png create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/image_opaque.png create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/image_small.png create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/main.qml create mode 100644 tests/manual/declarative/qmlshadersplugin/qml/qmlshadersplugintest/wallpaper.jpg create mode 100644 tests/manual/declarative/qmlshadersplugin/qmlapplicationviewer/qmlapplicationviewer.cpp create mode 100644 tests/manual/declarative/qmlshadersplugin/qmlapplicationviewer/qmlapplicationviewer.h create mode 100644 tests/manual/declarative/qmlshadersplugin/qmlapplicationviewer/qmlapplicationviewer.pri create mode 100644 tests/manual/declarative/qmlshadersplugin/qmlshadersplugin.pro create mode 100644 tests/system/declarative/sys_calculator/sys_calculator.pro create mode 100644 tests/system/declarative/sys_calculator/sys_calculator.qtt create mode 100644 tests/system/declarative/sys_dial/sys_dial.pro create mode 100644 tests/system/declarative/sys_dial/sys_dial.qtt create mode 100644 tests/system/declarative/sys_flickr/sys_flickr.pro create mode 100644 tests/system/declarative/sys_flickr/sys_flickr.qtt create mode 100644 tests/system/declarative/sys_parallax/sys_parallax.pro create mode 100644 tests/system/declarative/sys_parallax/sys_parallax.qtt create mode 100644 tests/system/declarative/sys_pincharea/sys_pincharea.pro create mode 100644 tests/system/declarative/sys_pincharea/sys_pincharea.qtt create mode 100644 tests/system/declarative/sys_rtl/sys_rtl.pro create mode 100644 tests/system/declarative/sys_rtl/sys_rtl.qtt create mode 100644 tests/system/declarative/sys_samegame/sys_samegame.pro create mode 100644 tests/system/declarative/sys_samegame/sys_samegame.qtt create mode 100644 tests/system/declarative/sys_textedit/sys_textedit.pro create mode 100644 tests/system/declarative/sys_textedit/sys_textedit.qtt create mode 100644 tests/system/declarative/sys_textinput/sys_textinput.pro create mode 100644 tests/system/declarative/sys_textinput/sys_textinput.qtt create mode 100644 tests/system/declarative/sys_twitter/sys_twitter.pro create mode 100644 tests/system/declarative/sys_twitter/sys_twitter.qtt create mode 100644 tests/system/declarative/sys_webbrowser/sys_webbrowser.pro create mode 100644 tests/system/declarative/sys_webbrowser/sys_webbrowser.qtt create mode 100644 tools/designer/src/plugins/plugins.pri create mode 100644 tools/designer/src/plugins/plugins.pro create mode 100644 tools/designer/src/plugins/qdeclarativeview/qdeclarativeview.pro create mode 100644 tools/designer/src/plugins/qdeclarativeview/qdeclarativeview_plugin.cpp create mode 100644 tools/designer/src/plugins/qdeclarativeview/qdeclarativeview_plugin.h create mode 100644 tools/qml/Info_mac.plist create mode 100644 tools/qml/browser/Browser.qml create mode 100644 tools/qml/browser/browser.qrc create mode 100644 tools/qml/browser/images/folder.png create mode 100644 tools/qml/browser/images/titlebar.png create mode 100644 tools/qml/browser/images/titlebar.sci create mode 100644 tools/qml/browser/images/up.png create mode 100644 tools/qml/deviceorientation.cpp create mode 100644 tools/qml/deviceorientation.h create mode 100644 tools/qml/deviceorientation_harmattan.cpp create mode 100644 tools/qml/deviceorientation_maemo5.cpp create mode 100644 tools/qml/deviceorientation_symbian.cpp create mode 100644 tools/qml/loggerwidget.cpp create mode 100644 tools/qml/loggerwidget.h create mode 100644 tools/qml/main.cpp create mode 100644 tools/qml/proxysettings.cpp create mode 100644 tools/qml/proxysettings.h create mode 100644 tools/qml/proxysettings.ui create mode 100644 tools/qml/proxysettings_maemo5.ui create mode 100644 tools/qml/qdeclarativetester.cpp create mode 100644 tools/qml/qdeclarativetester.h create mode 100644 tools/qml/qml.icns create mode 100644 tools/qml/qml.pri create mode 100644 tools/qml/qml.pro create mode 100644 tools/qml/qmlruntime.cpp create mode 100644 tools/qml/qmlruntime.h create mode 100644 tools/qml/recopts.ui create mode 100644 tools/qml/recopts_maemo5.ui create mode 100644 tools/qml/startup/Logo.qml create mode 100644 tools/qml/startup/qt-back.png create mode 100644 tools/qml/startup/qt-blue.jpg create mode 100644 tools/qml/startup/qt-front.png create mode 100644 tools/qml/startup/qt-sketch.jpg create mode 100644 tools/qml/startup/qt-text.png create mode 100644 tools/qml/startup/quick-blur.png create mode 100644 tools/qml/startup/quick-regular.png create mode 100644 tools/qml/startup/shadow.png create mode 100644 tools/qml/startup/startup.qml create mode 100644 tools/qml/startup/startup.qrc create mode 100644 tools/qml/startup/white-star.png create mode 100644 tools/qml/texteditautoresizer_maemo5.h diff --git a/demos/declarative/calculator/calculator.desktop b/demos/declarative/calculator/calculator.desktop new file mode 100644 index 00000000..854120f2 --- /dev/null +++ b/demos/declarative/calculator/calculator.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Type=Application +Terminal=false +Name=calculator +Exec=/opt/calculator/bin/calculator +Icon=calculator64 +X-Window-Icon= +X-HildonDesk-ShowInToolbar=true +X-Osso-Type=application/x-executable diff --git a/demos/declarative/calculator/calculator.pro b/demos/declarative/calculator/calculator.pro new file mode 100644 index 00000000..c41b6000 --- /dev/null +++ b/demos/declarative/calculator/calculator.pro @@ -0,0 +1,39 @@ +# Add more folders to ship with the application, here +folder_01.source = qml/calculator +folder_01.target = qml +DEPLOYMENTFOLDERS = folder_01 + +# Additional import path used to resolve QML modules in Creator's code model +QML_IMPORT_PATH = + +symbian:TARGET.UID3 = 0xE8BEAB39 + +# Smart Installer package's UID +# This UID is from the protected range and therefore the package will +# fail to install if self-signed. By default qmake uses the unprotected +# range value if unprotected UID is defined for the application and +# 0x2002CCCF value if protected UID is given to the application +#symbian:DEPLOYMENT.installer_header = 0x2002CCCF + +# Allow network access on Symbian +symbian:TARGET.CAPABILITY += NetworkServices + +# If your application uses the Qt Mobility libraries, uncomment the following +# lines and add the respective components to the MOBILITY variable. +# CONFIG += mobility +# MOBILITY += + +# Speed up launching on MeeGo/Harmattan when using applauncherd daemon +# CONFIG += qdeclarative-boostable + +# Add dependency to Symbian components +# CONFIG += qt-components + +# The .cpp file which was generated for your project. Feel free to hack it. +SOURCES += main.cpp + +# Please do not modify the following two lines. Required for deployment. +desktopInstallPrefix=$$[QT_INSTALL_DEMOS]/declarative/calculator +exists(qmlapplicationviewer/qmlapplicationviewer.pri):include(qmlapplicationviewer/qmlapplicationviewer.pri) +else:include(../../helper/qmlapplicationviewer/qmlapplicationviewer.pri) +qtcAddDeployment() diff --git a/demos/declarative/calculator/calculator.qmlproject b/demos/declarative/calculator/calculator.qmlproject new file mode 100644 index 00000000..88ca3caa --- /dev/null +++ b/demos/declarative/calculator/calculator.qmlproject @@ -0,0 +1,16 @@ +import QmlProject 1.0 + +Project { + /* Include .qml, .js, and image files from current directory and subdirectories */ + QmlFiles { + directory: "qml/calculator" + } + JavaScriptFiles { + directory: "qml/calculator" + } + ImageFiles { + directory: "qml/calculator" + } + /* List of plugin directories passed to QML runtime */ + // importPaths: [ " ../exampleplugin " ] +} diff --git a/demos/declarative/calculator/calculator.svg b/demos/declarative/calculator/calculator.svg new file mode 100644 index 00000000..566acfad --- /dev/null +++ b/demos/declarative/calculator/calculator.svg @@ -0,0 +1,93 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/demos/declarative/calculator/calculator64.png b/demos/declarative/calculator/calculator64.png new file mode 100644 index 00000000..707d5c4e Binary files /dev/null and b/demos/declarative/calculator/calculator64.png differ diff --git a/demos/declarative/calculator/calculator80.png b/demos/declarative/calculator/calculator80.png new file mode 100644 index 00000000..6ad8096c Binary files /dev/null and b/demos/declarative/calculator/calculator80.png differ diff --git a/demos/declarative/calculator/calculator_harmattan.desktop b/demos/declarative/calculator/calculator_harmattan.desktop new file mode 100644 index 00000000..574521d8 --- /dev/null +++ b/demos/declarative/calculator/calculator_harmattan.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Type=Application +Terminal=false +Name=calculator +Exec=/usr/bin/single-instance /opt/calculator/bin/calculator +Icon=/usr/share/icons/hicolor/80x80/apps/calculator80.png +X-Window-Icon= +X-HildonDesk-ShowInToolbar=true +X-Osso-Type=application/x-executable diff --git a/demos/declarative/calculator/main.cpp b/demos/declarative/calculator/main.cpp new file mode 100644 index 00000000..cb79f857 --- /dev/null +++ b/demos/declarative/calculator/main.cpp @@ -0,0 +1,60 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the examples 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$ +** +****************************************************************************/ + +#include "qmlapplicationviewer.h" +#include +#include + +Q_DECL_EXPORT int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + qDebug() << "NOTE: The runtime property and the Orientation enum are only available" + << "through qmlviewer and are not available in the complied version.\n" + << "Run 'qmlviewer calculator.qmlproject' or load 'calculator.qmlproject'" + << "in Qt Creator and run the project."; + + QmlApplicationViewer viewer; + viewer.setOrientation(QmlApplicationViewer::ScreenOrientationLockLandscape); + viewer.setMainQmlFile(QLatin1String("qml/calculator/calculator.qml")); + viewer.showExpanded(); + + return app.exec(); +} diff --git a/demos/declarative/calculator/qml/calculator/CalculatorCore/Button.qml b/demos/declarative/calculator/qml/calculator/CalculatorCore/Button.qml new file mode 100644 index 00000000..270a3da1 --- /dev/null +++ b/demos/declarative/calculator/qml/calculator/CalculatorCore/Button.qml @@ -0,0 +1,80 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +BorderImage { + id: button + + property alias operation: buttonText.text + property string color: "" + + signal clicked + + source: "images/button-" + color + ".png"; clip: true + border { left: 10; top: 10; right: 10; bottom: 10 } + + Rectangle { + id: shade + anchors.fill: button; radius: 10; color: "black"; opacity: 0 + } + + Text { + id: buttonText + anchors.centerIn: parent; anchors.verticalCenterOffset: -1 + font.pixelSize: parent.width > parent.height ? parent.height * .5 : parent.width * .5 + style: Text.Sunken; color: "white"; styleColor: "black"; smooth: true + } + + MouseArea { + id: mouseArea + anchors.fill: parent + onClicked: { + doOp(operation) + button.clicked() + } + } + + states: State { + name: "pressed"; when: mouseArea.pressed == true + PropertyChanges { target: shade; opacity: .4 } + } +} diff --git a/demos/declarative/calculator/qml/calculator/CalculatorCore/Display.qml b/demos/declarative/calculator/qml/calculator/CalculatorCore/Display.qml new file mode 100644 index 00000000..351c638b --- /dev/null +++ b/demos/declarative/calculator/qml/calculator/CalculatorCore/Display.qml @@ -0,0 +1,68 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +BorderImage { + id: image + + property alias text : displayText.text + property alias currentOperation : operationText + + source: "images/display.png" + border { left: 10; top: 10; right: 10; bottom: 10 } + + Text { + id: displayText + anchors { + right: parent.right; verticalCenter: parent.verticalCenter; verticalCenterOffset: -1 + rightMargin: 6; left: operationText.right + } + font.pixelSize: parent.height * .6; text: "0"; horizontalAlignment: Text.AlignRight; elide: Text.ElideRight + color: "#343434"; smooth: true; font.bold: true + } + Text { + id: operationText + font.bold: true; font.pixelSize: parent.height * .7 + color: "#343434"; smooth: true + anchors { left: parent.left; leftMargin: 6; verticalCenterOffset: -3; verticalCenter: parent.verticalCenter } + } +} diff --git a/demos/declarative/calculator/qml/calculator/CalculatorCore/calculator.js b/demos/declarative/calculator/qml/calculator/CalculatorCore/calculator.js new file mode 100644 index 00000000..7c363c7f --- /dev/null +++ b/demos/declarative/calculator/qml/calculator/CalculatorCore/calculator.js @@ -0,0 +1,91 @@ + +var curVal = 0 +var memory = 0 +var lastOp = "" +var timer = 0 + +function disabled(op) { + if (op == "." && display.text.toString().search(/\./) != -1) { + return true + } else if (op == squareRoot && display.text.toString().search(/-/) != -1) { + return true + } else { + return false + } +} + +function doOperation(op) { + if (disabled(op)) { + return + } + + if (op.toString().length==1 && ((op >= "0" && op <= "9") || op==".") ) { + if (display.text.toString().length >= 14) + return; // No arbitrary length numbers + if (lastOp.toString().length == 1 && ((lastOp >= "0" && lastOp <= "9") || lastOp == ".") ) { + display.text = display.text + op.toString() + } else { + display.text = op + } + lastOp = op + return + } + lastOp = op + + if (display.currentOperation.text == "+") { + display.text = Number(display.text.valueOf()) + Number(curVal.valueOf()) + } else if (display.currentOperation.text == "-") { + display.text = Number(curVal) - Number(display.text.valueOf()) + } else if (display.currentOperation.text == multiplication) { + display.text = Number(curVal) * Number(display.text.valueOf()) + } else if (display.currentOperation.text == division) { + display.text = Number(Number(curVal) / Number(display.text.valueOf())).toString() + } else if (display.currentOperation.text == "=") { + } + + if (op == "+" || op == "-" || op == multiplication || op == division) { + display.currentOperation.text = op + curVal = display.text.valueOf() + return + } + + curVal = 0 + display.currentOperation.text = "" + + if (op == "1/x") { + display.text = (1 / display.text.valueOf()).toString() + } else if (op == "x^2") { + display.text = (display.text.valueOf() * display.text.valueOf()).toString() + } else if (op == "Abs") { + display.text = (Math.abs(display.text.valueOf())).toString() + } else if (op == "Int") { + display.text = (Math.floor(display.text.valueOf())).toString() + } else if (op == plusminus) { + display.text = (display.text.valueOf() * -1).toString() + } else if (op == squareRoot) { + display.text = (Math.sqrt(display.text.valueOf())).toString() + } else if (op == "mc") { + memory = 0; + } else if (op == "m+") { + memory += display.text.valueOf() + } else if (op == "mr") { + display.text = memory.toString() + } else if (op == "m-") { + memory = display.text.valueOf() + } else if (op == leftArrow) { + display.text = display.text.toString().slice(0, -1) + if (display.text.length == 0) { + display.text = "0" + } + } else if (op == "Off") { + Qt.quit(); + } else if (op == "C") { + display.text = "0" + } else if (op == "AC") { + curVal = 0 + memory = 0 + lastOp = "" + display.text ="0" + } +} + diff --git a/demos/declarative/calculator/qml/calculator/CalculatorCore/images/button-.png b/demos/declarative/calculator/qml/calculator/CalculatorCore/images/button-.png new file mode 100644 index 00000000..544e5145 Binary files /dev/null and b/demos/declarative/calculator/qml/calculator/CalculatorCore/images/button-.png differ diff --git a/demos/declarative/calculator/qml/calculator/CalculatorCore/images/button-blue.png b/demos/declarative/calculator/qml/calculator/CalculatorCore/images/button-blue.png new file mode 100644 index 00000000..5f92de32 Binary files /dev/null and b/demos/declarative/calculator/qml/calculator/CalculatorCore/images/button-blue.png differ diff --git a/demos/declarative/calculator/qml/calculator/CalculatorCore/images/button-green.png b/demos/declarative/calculator/qml/calculator/CalculatorCore/images/button-green.png new file mode 100644 index 00000000..36c93914 Binary files /dev/null and b/demos/declarative/calculator/qml/calculator/CalculatorCore/images/button-green.png differ diff --git a/demos/declarative/calculator/qml/calculator/CalculatorCore/images/button-purple.png b/demos/declarative/calculator/qml/calculator/CalculatorCore/images/button-purple.png new file mode 100644 index 00000000..347cbbea Binary files /dev/null and b/demos/declarative/calculator/qml/calculator/CalculatorCore/images/button-purple.png differ diff --git a/demos/declarative/calculator/qml/calculator/CalculatorCore/images/button-red.png b/demos/declarative/calculator/qml/calculator/CalculatorCore/images/button-red.png new file mode 100644 index 00000000..3b335891 Binary files /dev/null and b/demos/declarative/calculator/qml/calculator/CalculatorCore/images/button-red.png differ diff --git a/demos/declarative/calculator/qml/calculator/CalculatorCore/images/display.png b/demos/declarative/calculator/qml/calculator/CalculatorCore/images/display.png new file mode 100644 index 00000000..9507f438 Binary files /dev/null and b/demos/declarative/calculator/qml/calculator/CalculatorCore/images/display.png differ diff --git a/demos/declarative/calculator/qml/calculator/CalculatorCore/qmldir b/demos/declarative/calculator/qml/calculator/CalculatorCore/qmldir new file mode 100644 index 00000000..a926b93f --- /dev/null +++ b/demos/declarative/calculator/qml/calculator/CalculatorCore/qmldir @@ -0,0 +1,2 @@ +Button Button.qml +Display Display.qml diff --git a/demos/declarative/calculator/qml/calculator/calculator.qml b/demos/declarative/calculator/qml/calculator/calculator.qml new file mode 100644 index 00000000..c5072991 --- /dev/null +++ b/demos/declarative/calculator/qml/calculator/calculator.qml @@ -0,0 +1,162 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 +import "CalculatorCore" +import "CalculatorCore/calculator.js" as CalcEngine + +Rectangle { + id: window + + width: 360; height: 480 + color: "#282828" + + property string rotateLeft: "\u2939" + property string rotateRight: "\u2935" + property string leftArrow: "\u2190" + property string division : "\u00f7" + property string multiplication : "\u00d7" + property string squareRoot : "\u221a" + property string plusminus : "\u00b1" + + function doOp(operation) { CalcEngine.doOperation(operation) } + + Item { + id: main + state: "orientation " + runtime.orientation + + property bool landscapeWindow: window.width > window.height + property real baseWidth: landscapeWindow ? window.height : window.width + property real baseHeight: landscapeWindow ? window.width : window.height + property real rotationDelta: landscapeWindow ? -90 : 0 + + rotation: rotationDelta + width: main.baseWidth + height: main.baseHeight + anchors.centerIn: parent + + Column { + id: box; spacing: 8 + + anchors { fill: parent; topMargin: 6; bottomMargin: 6; leftMargin: 6; rightMargin: 6 } + + Display { + id: display + width: box.width-3 + height: 64 + } + + Column { + id: column; spacing: 6 + + property real h: ((box.height - 72) / 6) - ((spacing * (6 - 1)) / 6) + property real w: (box.width / 4) - ((spacing * (4 - 1)) / 4) + + Row { + spacing: 6 + Button { width: column.w; height: column.h; color: 'purple'; operation: "Off" } + Button { width: column.w; height: column.h; color: 'purple'; operation: leftArrow } + Button { width: column.w; height: column.h; color: 'purple'; operation: "C" } + Button { width: column.w; height: column.h; color: 'purple'; operation: "AC" } + } + + Row { + spacing: 6 + property real w: (box.width / 4) - ((spacing * (4 - 1)) / 4) + + Button { width: column.w; height: column.h; color: 'green'; operation: "mc" } + Button { width: column.w; height: column.h; color: 'green'; operation: "m+" } + Button { width: column.w; height: column.h; color: 'green'; operation: "m-" } + Button { width: column.w; height: column.h; color: 'green'; operation: "mr" } + } + + Grid { + id: grid; rows: 5; columns: 5; spacing: 6 + + property real w: (box.width / columns) - ((spacing * (columns - 1)) / columns) + + Button { width: grid.w; height: column.h; operation: "7"; color: 'blue' } + Button { width: grid.w; height: column.h; operation: "8"; color: 'blue' } + Button { width: grid.w; height: column.h; operation: "9"; color: 'blue' } + Button { width: grid.w; height: column.h; operation: division } + Button { width: grid.w; height: column.h; operation: squareRoot } + Button { width: grid.w; height: column.h; operation: "4"; color: 'blue' } + Button { width: grid.w; height: column.h; operation: "5"; color: 'blue' } + Button { width: grid.w; height: column.h; operation: "6"; color: 'blue' } + Button { width: grid.w; height: column.h; operation: multiplication } + Button { width: grid.w; height: column.h; operation: "x^2" } + Button { width: grid.w; height: column.h; operation: "1"; color: 'blue' } + Button { width: grid.w; height: column.h; operation: "2"; color: 'blue' } + Button { width: grid.w; height: column.h; operation: "3"; color: 'blue' } + Button { width: grid.w; height: column.h; operation: "-" } + Button { width: grid.w; height: column.h; operation: "1/x" } + Button { width: grid.w; height: column.h; operation: "0"; color: 'blue' } + Button { width: grid.w; height: column.h; operation: "." } + Button { width: grid.w; height: column.h; operation: plusminus } + Button { width: grid.w; height: column.h; operation: "+" } + Button { width: grid.w; height: column.h; operation: "="; color: 'red' } + } + } + } + + states: [ + State { + name: "orientation " + Orientation.Landscape + PropertyChanges { target: main; rotation: 90 + rotationDelta; width: main.baseHeight; height: main.baseWidth } + }, + State { + name: "orientation " + Orientation.PortraitInverted + PropertyChanges { target: main; rotation: 180 + rotationDelta; } + }, + State { + name: "orientation " + Orientation.LandscapeInverted + PropertyChanges { target: main; rotation: 270 + rotationDelta; width: main.baseHeight; height: main.baseWidth } + } + ] + + transitions: Transition { + SequentialAnimation { + RotationAnimation { direction: RotationAnimation.Shortest; duration: 300; easing.type: Easing.InOutQuint } + NumberAnimation { properties: "x,y,width,height"; duration: 300; easing.type: Easing.InOutQuint } + } + } + } +} diff --git a/demos/declarative/declarative.pro b/demos/declarative/declarative.pro new file mode 100644 index 00000000..33803579 --- /dev/null +++ b/demos/declarative/declarative.pro @@ -0,0 +1,15 @@ +TEMPLATE = subdirs + +# These demos contain C++ and need to be compiled +SUBDIRS = \ + calculator \ + flickr \ + photoviewer \ + minehunt \ + samegame \ + snake \ + rssnews \ + twitter + +contains(QT_CONFIG, webkit):SUBDIRS += webbrowser + diff --git a/demos/declarative/demos.qmlproject b/demos/declarative/demos.qmlproject new file mode 100644 index 00000000..d4909f86 --- /dev/null +++ b/demos/declarative/demos.qmlproject @@ -0,0 +1,16 @@ +import QmlProject 1.0 + +Project { + /* Include .qml, .js, and image files from current directory and subdirectories */ + QmlFiles { + directory: "." + } + JavaScriptFiles { + directory: "." + } + ImageFiles { + directory: "." + } + /* List of plugin directories passed to QML runtime */ + // importPaths: [ " ../exampleplugin " ] +} diff --git a/demos/declarative/flickr/flickr.desktop b/demos/declarative/flickr/flickr.desktop new file mode 100644 index 00000000..8467f39b --- /dev/null +++ b/demos/declarative/flickr/flickr.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Type=Application +Terminal=false +Name=flickr +Exec=/opt/flickr/bin/flickr +Icon=flickr64 +X-Window-Icon= +X-HildonDesk-ShowInToolbar=true +X-Osso-Type=application/x-executable diff --git a/demos/declarative/flickr/flickr.pro b/demos/declarative/flickr/flickr.pro new file mode 100644 index 00000000..d607fa0b --- /dev/null +++ b/demos/declarative/flickr/flickr.pro @@ -0,0 +1,39 @@ +# Add more folders to ship with the application, here +folder_01.source = qml/flickr +folder_01.target = qml +DEPLOYMENTFOLDERS = folder_01 + +# Additional import path used to resolve QML modules in Creator's code model +QML_IMPORT_PATH = + +symbian:TARGET.UID3 = 0xE6E2201E + +# Smart Installer package's UID +# This UID is from the protected range and therefore the package will +# fail to install if self-signed. By default qmake uses the unprotected +# range value if unprotected UID is defined for the application and +# 0x2002CCCF value if protected UID is given to the application +#symbian:DEPLOYMENT.installer_header = 0x2002CCCF + +# Allow network access on Symbian +symbian:TARGET.CAPABILITY += NetworkServices + +# If your application uses the Qt Mobility libraries, uncomment the following +# lines and add the respective components to the MOBILITY variable. +# CONFIG += mobility +# MOBILITY += + +# Speed up launching on MeeGo/Harmattan when using applauncherd daemon +# CONFIG += qdeclarative-boostable + +# Add dependency to Symbian components +# CONFIG += qt-components + +# The .cpp file which was generated for your project. Feel free to hack it. +SOURCES += main.cpp + +# Please do not modify the following two lines. Required for deployment. +desktopInstallPrefix=$$[QT_INSTALL_DEMOS]/declarative/flickr +exists(qmlapplicationviewer/qmlapplicationviewer.pri):include(qmlapplicationviewer/qmlapplicationviewer.pri) +else:include(../../helper/qmlapplicationviewer/qmlapplicationviewer.pri) +qtcAddDeployment() diff --git a/demos/declarative/flickr/flickr.qmlproject b/demos/declarative/flickr/flickr.qmlproject new file mode 100644 index 00000000..3a6d8210 --- /dev/null +++ b/demos/declarative/flickr/flickr.qmlproject @@ -0,0 +1,16 @@ +import QmlProject 1.0 + +Project { + /* Include .qml, .js, and image files from current directory and subdirectories */ + QmlFiles { + directory: "qml/flickr" + } + JavaScriptFiles { + directory: "qml/flickr" + } + ImageFiles { + directory: "qml/flickr" + } + /* List of plugin directories passed to QML runtime */ + // importPaths: [ " ../exampleplugin " ] +} diff --git a/demos/declarative/flickr/flickr.svg b/demos/declarative/flickr/flickr.svg new file mode 100644 index 00000000..566acfad --- /dev/null +++ b/demos/declarative/flickr/flickr.svg @@ -0,0 +1,93 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/demos/declarative/flickr/flickr64.png b/demos/declarative/flickr/flickr64.png new file mode 100644 index 00000000..707d5c4e Binary files /dev/null and b/demos/declarative/flickr/flickr64.png differ diff --git a/demos/declarative/flickr/flickr80.png b/demos/declarative/flickr/flickr80.png new file mode 100644 index 00000000..6ad8096c Binary files /dev/null and b/demos/declarative/flickr/flickr80.png differ diff --git a/demos/declarative/flickr/flickr_harmattan.desktop b/demos/declarative/flickr/flickr_harmattan.desktop new file mode 100644 index 00000000..19cf6264 --- /dev/null +++ b/demos/declarative/flickr/flickr_harmattan.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Type=Application +Terminal=false +Name=flickr +Exec=/usr/bin/single-instance /opt/flickr/bin/flickr +Icon=/usr/share/icons/hicolor/80x80/apps/flickr80.png +X-Window-Icon= +X-HildonDesk-ShowInToolbar=true +X-Osso-Type=application/x-executable diff --git a/demos/declarative/flickr/main.cpp b/demos/declarative/flickr/main.cpp new file mode 100644 index 00000000..ab5ad2b9 --- /dev/null +++ b/demos/declarative/flickr/main.cpp @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the examples 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$ +** +****************************************************************************/ + +#include "qmlapplicationviewer.h" +#include + +Q_DECL_EXPORT int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + QmlApplicationViewer viewer; + viewer.setOrientation(QmlApplicationViewer::ScreenOrientationLockLandscape); + viewer.setMainQmlFile(QLatin1String("qml/flickr/flickr.qml")); + viewer.showExpanded(); + + return app.exec(); +} diff --git a/demos/declarative/flickr/qml/flickr/common/Progress.qml b/demos/declarative/flickr/qml/flickr/common/Progress.qml new file mode 100644 index 00000000..385b9716 --- /dev/null +++ b/demos/declarative/flickr/qml/flickr/common/Progress.qml @@ -0,0 +1,73 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Item { + property variant progress: 0 + + Rectangle { + anchors.fill: parent; smooth: true + border.color: "white"; border.width: 0; radius: height/2 - 2 + gradient: Gradient { + GradientStop { position: 0; color: "#66343434" } + GradientStop { position: 1.0; color: "#66000000" } + } + } + + Rectangle { + y: 2; height: parent.height-4; + x: 2; width: Math.max(parent.width * progress - 4, 0); + opacity: width < 1 ? 0 : 1; smooth: true + gradient: Gradient { + GradientStop { position: 0; color: "lightsteelblue" } + GradientStop { position: 1.0; color: "steelblue" } + } + radius: height/2 - 2 + } + + Text { + text: Math.round(progress * 100) + "%" + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + color: "white"; font.bold: true; font.pixelSize: 15 + } +} diff --git a/demos/declarative/flickr/qml/flickr/common/RssModel.qml b/demos/declarative/flickr/qml/flickr/common/RssModel.qml new file mode 100644 index 00000000..5d9a45c6 --- /dev/null +++ b/demos/declarative/flickr/qml/flickr/common/RssModel.qml @@ -0,0 +1,66 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +XmlListModel { + property string tags : "" + + function commasep(x) + { + return x.replace(' ',','); + } + + source: "http://api.flickr.com/services/feeds/photos_public.gne?"+(tags ? "tags="+commasep(tags)+"&" : "")+"format=rss2" + query: "/rss/channel/item" + namespaceDeclarations: "declare namespace media=\"http://search.yahoo.com/mrss/\";" + + XmlRole { name: "title"; query: "title/string()" } + XmlRole { name: "imagePath"; query: "media:thumbnail/@url/string()" } + XmlRole { name: "url"; query: "media:content/@url/string()" } + XmlRole { name: "description"; query: "description/string()" } + XmlRole { name: "tags"; query: "media:category/string()" } + XmlRole { name: "photoWidth"; query: "media:content/@width/string()" } + XmlRole { name: "photoHeight"; query: "media:content/@height/string()" } + XmlRole { name: "photoType"; query: "media:content/@type/string()" } + XmlRole { name: "photoAuthor"; query: "author/string()" } + XmlRole { name: "photoDate"; query: "pubDate/string()" } +} diff --git a/demos/declarative/flickr/qml/flickr/common/ScrollBar.qml b/demos/declarative/flickr/qml/flickr/common/ScrollBar.qml new file mode 100644 index 00000000..28d97541 --- /dev/null +++ b/demos/declarative/flickr/qml/flickr/common/ScrollBar.qml @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Item { + id: container + + property variant flickableArea + + Rectangle { + radius: 5 + color: "black" + opacity: 0.3 + border.color: "white" + border.width: 2 + x: 0 + y: flickableArea.visibleArea.yPosition * container.height + width: parent.width + height: flickableArea.visibleArea.heightRatio * container.height + } + states: [ + State { + name: "show" + when: flickableArea.movingVertically + PropertyChanges { + target: container + opacity: 1 + } + } + ] + transitions: [ + Transition { + from: "*" + to: "*" + NumberAnimation { + target: container + properties: "opacity" + duration: 400 + } + } + ] +} diff --git a/demos/declarative/flickr/qml/flickr/common/Slider.qml b/demos/declarative/flickr/qml/flickr/common/Slider.qml new file mode 100644 index 00000000..c2d69bf3 --- /dev/null +++ b/demos/declarative/flickr/qml/flickr/common/Slider.qml @@ -0,0 +1,91 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Item { + id: slider; width: 400; height: 16 + + // value is read/write. + property real value: 1 + onValueChanged: updatePos(); + property real maximum: 1 + property real minimum: 1 + property int xMax: width - handle.width - 4 + onXMaxChanged: updatePos(); + onMinimumChanged: updatePos(); + + function updatePos() { + if (maximum > minimum) { + var pos = 2 + (value - minimum) * slider.xMax / (maximum - minimum); + pos = Math.min(pos, width - handle.width - 2); + pos = Math.max(pos, 2); + handle.x = pos; + } else { + handle.x = 2; + } + } + + Rectangle { + anchors.fill: parent + border.color: "white"; border.width: 0; radius: 8 + gradient: Gradient { + GradientStop { position: 0.0; color: "#66343434" } + GradientStop { position: 1.0; color: "#66000000" } + } + } + + Rectangle { + id: handle; smooth: true + y: 2; width: 30; height: slider.height-4; radius: 6 + gradient: Gradient { + GradientStop { position: 0.0; color: "lightgray" } + GradientStop { position: 1.0; color: "gray" } + } + + MouseArea { + id: mouse + anchors.fill: parent; drag.target: parent + drag.axis: Drag.XAxis; drag.minimumX: 2; drag.maximumX: slider.xMax+2 + onPositionChanged: { value = (maximum - minimum) * (handle.x-2) / slider.xMax + minimum; } + } + } +} diff --git a/demos/declarative/flickr/qml/flickr/common/qmldir b/demos/declarative/flickr/qml/flickr/common/qmldir new file mode 100644 index 00000000..adc2479b --- /dev/null +++ b/demos/declarative/flickr/qml/flickr/common/qmldir @@ -0,0 +1,10 @@ +ImageDetails ImageDetails.qml +LikeOMeter LikeOMeter.qml +Loading Loading.qml +MediaButton MediaButton.qml +MediaLineEdit MediaLineEdit.qml +Progress Progress.qml +RssModel RssModel.qml +ScrollBar ScrollBar.qml +Slider Slider.qml +Star Star.qml diff --git a/demos/declarative/flickr/qml/flickr/flickr-90.qml b/demos/declarative/flickr/qml/flickr/flickr-90.qml new file mode 100644 index 00000000..14d786cf --- /dev/null +++ b/demos/declarative/flickr/qml/flickr/flickr-90.qml @@ -0,0 +1,52 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Item { + width: 480; height: 320 + + Loader { + y: 320; rotation: -90 + transformOrigin: Item.TopLeft + source: "flickr.qml" + } +} diff --git a/demos/declarative/flickr/qml/flickr/flickr.qml b/demos/declarative/flickr/qml/flickr/flickr.qml new file mode 100644 index 00000000..0cf92d3d --- /dev/null +++ b/demos/declarative/flickr/qml/flickr/flickr.qml @@ -0,0 +1,125 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 +import "common" as Common +import "mobile" as Mobile + +Item { + id: screen; width: 320; height: 480 + property bool inListView : false + + Rectangle { + id: background + anchors.fill: parent; color: "#343434"; + + Image { source: "mobile/images/stripes.png"; fillMode: Image.Tile; anchors.fill: parent; opacity: 0.3 } + + Common.RssModel { id: rssModel } + + Item { + id: views + width: parent.width + anchors.top: titleBar.bottom; anchors.bottom: toolBar.top + + GridView { + id: photoGridView; model: rssModel; delegate: Mobile.GridDelegate {} + cacheBuffer: 1000 + cellWidth: (parent.width-2)/4; cellHeight: cellWidth; width: parent.width; height: parent.height + } + + ListView { + id: photoListView; model: rssModel; delegate: Mobile.ListDelegate { } + width: parent.width; height: parent.height; x: -(parent.width * 1.5); cacheBuffer: 100; + } + + states: State { + name: "ListView"; when: screen.inListView == true + PropertyChanges { target: photoListView; x: 0 } + PropertyChanges { target: photoGridView; x: -(parent.width * 1.5) } + } + + transitions: Transition { + NumberAnimation { properties: "x"; duration: 500; easing.type: Easing.InOutQuad } + } + + Mobile.ImageDetails { id: imageDetails; width: parent.width; anchors.left: views.right; height: parent.height } + + Item { id: foreground; anchors.fill: parent } + } + + Mobile.TitleBar { id: titleBar; width: parent.width; height: 40; opacity: 0.9 } + + Mobile.ToolBar { + id: toolBar + height: 40; anchors.bottom: parent.bottom; width: parent.width; opacity: 0.9 + button1Label: "Update"; button2Label: "View mode" + onButton1Clicked: rssModel.reload() + onButton2Clicked: if (screen.inListView == true) screen.inListView = false; else screen.inListView = true + } + + Connections { + target: imageDetails + onClosed: { + if (background.state == "DetailedView") { + background.state = ''; + imageDetails.photoUrl = ""; + } + } + } + + states: State { + name: "DetailedView" + PropertyChanges { target: views; x: -parent.width } + PropertyChanges { target: toolBar; button1Label: "View..." } + PropertyChanges { + target: toolBar + onButton1Clicked: if (imageDetails.state=='') imageDetails.state='Back'; else imageDetails.state='' + } + PropertyChanges { target: toolBar; button2Label: "Back" } + PropertyChanges { target: toolBar; onButton2Clicked: imageDetails.closed() } + } + + transitions: Transition { + NumberAnimation { properties: "x"; duration: 500; easing.type: Easing.InOutQuad } + } + } +} diff --git a/demos/declarative/flickr/qml/flickr/mobile/Button.qml b/demos/declarative/flickr/qml/flickr/mobile/Button.qml new file mode 100644 index 00000000..e2031823 --- /dev/null +++ b/demos/declarative/flickr/qml/flickr/mobile/Button.qml @@ -0,0 +1,79 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Item { + id: container + + signal clicked + + property string text + + BorderImage { + id: buttonImage + source: "images/toolbutton.sci" + width: container.width; height: container.height + } + BorderImage { + id: pressed + opacity: 0 + source: "images/toolbutton.sci" + width: container.width; height: container.height + } + MouseArea { + id: mouseRegion + anchors.fill: buttonImage + onClicked: { container.clicked(); } + } + Text { + color: "white" + anchors.centerIn: buttonImage; font.bold: true; font.pixelSize: 15 + text: container.text; style: Text.Raised; styleColor: "black" + } + states: [ + State { + name: "Pressed" + when: mouseRegion.pressed == true + PropertyChanges { target: pressed; opacity: 1 } + } + ] +} diff --git a/demos/declarative/flickr/qml/flickr/mobile/GridDelegate.qml b/demos/declarative/flickr/qml/flickr/mobile/GridDelegate.qml new file mode 100644 index 00000000..cd0d51d5 --- /dev/null +++ b/demos/declarative/flickr/qml/flickr/mobile/GridDelegate.qml @@ -0,0 +1,111 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Item { + id: wrapper; width: GridView.view.cellWidth; height: GridView.view.cellHeight + + function photoClicked() { + imageDetails.photoTitle = title; + imageDetails.photoTags = tags; + imageDetails.photoWidth = photoWidth; + imageDetails.photoHeight = photoHeight; + imageDetails.photoType = photoType; + imageDetails.photoAuthor = photoAuthor; + imageDetails.photoDate = photoDate; + imageDetails.photoUrl = url; + imageDetails.rating = 0; + scaleMe.state = "Details"; + } + + Item { + anchors.centerIn: parent + scale: 0.0 + Behavior on scale { NumberAnimation { easing.type: Easing.InOutQuad} } + id: scaleMe + + Item { + width: 77; height: 77; anchors.centerIn: parent + Rectangle { + id: whiteRect; width: 77; height: 77; color: "#dddddd"; smooth: true + Image { id: thumb; source: imagePath; x: 1; y: 1; smooth: true } + Image { source: "images/gloss.png" } + } + } + + Connections { + target: toolBar + onButton2Clicked: if (scaleMe.state == 'Details' ) scaleMe.state = 'Show' + } + + states: [ + State { + name: "Show"; when: thumb.status == Image.Ready + PropertyChanges { target: scaleMe; scale: 1 } + }, + State { + name: "Details" + PropertyChanges { target: scaleMe; scale: 1 } + ParentChange { target: whiteRect; x: 10; y: 20; parent: imageDetails.frontContainer } + PropertyChanges { target: background; state: "DetailedView" } + } + ] + transitions: [ + Transition { + from: "Show"; to: "Details" + ParentAnimation { + via: foreground + NumberAnimation { properties: "x,y"; duration: 500; easing.type: Easing.InOutQuad } + } + }, + Transition { + from: "Details"; to: "Show" + ParentAnimation { + via: foreground + NumberAnimation { properties: "x,y"; duration: 500; easing.type: Easing.InOutQuad } + } + } + ] + } + MouseArea { anchors.fill: wrapper; onClicked: photoClicked() } +} + diff --git a/demos/declarative/flickr/qml/flickr/mobile/ImageDetails.qml b/demos/declarative/flickr/qml/flickr/mobile/ImageDetails.qml new file mode 100644 index 00000000..ef966002 --- /dev/null +++ b/demos/declarative/flickr/qml/flickr/mobile/ImageDetails.qml @@ -0,0 +1,186 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 +import "../common" as Common + +Flipable { + id: container + + property alias frontContainer: containerFront + property string photoTitle: "" + property string photoTags: "" + property int photoWidth + property int photoHeight + property string photoType + property string photoAuthor + property string photoDate + property string photoUrl + property int rating: 2 + property variant prevScale: 1.0 + + signal closed + + transform: Rotation { + id: itemRotation + origin.x: container.width / 2; + axis.y: 1; axis.z: 0 + } + + front: Item { + id: containerFront; anchors.fill: container + + Rectangle { + anchors.fill: parent + color: "black"; opacity: 0.4 + } + + Column { + spacing: 10 + anchors { + left: parent.left; leftMargin: 10 + right: parent.right; rightMargin: 10 + top: parent.top; topMargin: 120 + } + Text { font.bold: true; color: "white"; elide: Text.ElideRight; text: container.photoTitle; width: parent.width } + Text { color: "white"; elide: Text.ElideRight; text: "Size: " + container.photoWidth + 'x' + container.photoHeight; width: parent.width } + Text { color: "white"; elide: Text.ElideRight; text: "Type: " + container.photoType; width: parent.width } + Text { color: "white"; elide: Text.ElideRight; text: "Author: " + container.photoAuthor; width: parent.width } + Text { color: "white"; elide: Text.ElideRight; text: "Published: " + container.photoDate; width: parent.width } + Text { color: "white"; elide: Text.ElideRight; text: container.photoTags == "" ? "" : "Tags: "; width: parent.width } + Text { color: "white"; elide: Text.ElideRight; text: container.photoTags; width: parent.width } + } + } + + back: Item { + anchors.fill: container + + Rectangle { anchors.fill: parent; color: "black"; opacity: 0.4 } + + Common.Progress { + anchors.centerIn: parent; width: 200; height: 22 + progress: bigImage.progress; visible: bigImage.status != Image.Ready + } + + Flickable { + id: flickable; anchors.fill: parent; clip: true + contentWidth: imageContainer.width; contentHeight: imageContainer.height + + function updateMinimumScale() { + if (bigImage.status == Image.Ready && bigImage.width != 0) { + slider.minimum = Math.min(flickable.width / bigImage.width, flickable.height / bigImage.height); + if (bigImage.width * slider.value > flickable.width) { + var xoff = (flickable.width/2 + flickable.contentX) * slider.value / prevScale; + flickable.contentX = xoff - flickable.width/2; + } + if (bigImage.height * slider.value > flickable.height) { + var yoff = (flickable.height/2 + flickable.contentY) * slider.value / prevScale; + flickable.contentY = yoff - flickable.height/2; + } + prevScale = slider.value; + } + } + + onWidthChanged: updateMinimumScale() + onHeightChanged: updateMinimumScale() + + Item { + id: imageContainer + width: Math.max(bigImage.width * bigImage.scale, flickable.width); + height: Math.max(bigImage.height * bigImage.scale, flickable.height); + + Image { + id: bigImage; source: container.photoUrl; scale: slider.value + anchors.centerIn: parent; smooth: !flickable.movingVertically + onStatusChanged : { + // Default scale shows the entire image. + if (bigImage.status == Image.Ready && bigImage.width != 0) { + slider.minimum = Math.min(flickable.width / bigImage.width, flickable.height / bigImage.height); + prevScale = Math.min(slider.minimum, 1); + slider.value = prevScale; + } + } + } + } + } + + Text { + text: "Image Unavailable" + visible: bigImage.status == Image.Error + anchors.centerIn: parent; color: "white"; font.bold: true + } + + Common.Slider { + id: slider; visible: { bigImage.status == Image.Ready && maximum > minimum } + anchors { + bottom: parent.bottom; bottomMargin: 65 + left: parent.left; leftMargin: 25 + right: parent.right; rightMargin: 25 + } + onValueChanged: { + if (bigImage.width * value > flickable.width) { + var xoff = (flickable.width/2 + flickable.contentX) * value / prevScale; + flickable.contentX = xoff - flickable.width/2; + } + if (bigImage.height * value > flickable.height) { + var yoff = (flickable.height/2 + flickable.contentY) * value / prevScale; + flickable.contentY = yoff - flickable.height/2; + } + prevScale = value; + } + } + } + + states: State { + name: "Back" + PropertyChanges { target: itemRotation; angle: 180 } + PropertyChanges { target: toolBar; button2Visible: false } + PropertyChanges { target: toolBar; button1Label: "Back" } + } + + transitions: Transition { + SequentialAnimation { + PropertyAction { target: bigImage; property: "smooth"; value: false } + NumberAnimation { easing.type: Easing.InOutQuad; properties: "angle"; duration: 500 } + PropertyAction { target: bigImage; property: "smooth"; value: !flickable.movingVertically } + } + } +} diff --git a/demos/declarative/flickr/qml/flickr/mobile/ListDelegate.qml b/demos/declarative/flickr/qml/flickr/mobile/ListDelegate.qml new file mode 100644 index 00000000..7a54443d --- /dev/null +++ b/demos/declarative/flickr/qml/flickr/mobile/ListDelegate.qml @@ -0,0 +1,64 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Component { + Item { + id: wrapper; width: wrapper.ListView.view.width; height: 86 + Item { + id: moveMe + Rectangle { color: "black"; opacity: index % 2 ? 0.2 : 0.4; height: 84; width: wrapper.width; y: 1 } + Rectangle { + x: 6; y: 4; width: 77; height: 77; color: "white"; smooth: true + + Image { source: imagePath; x: 1; y: 1 } + Image { source: "images/gloss.png" } + } + Column { + x: 92; width: wrapper.ListView.view.width - 95; y: 15; spacing: 2 + Text { text: title; color: "white"; width: parent.width; font.pixelSize: 14; font.bold: true; elide: Text.ElideRight; style: Text.Raised; styleColor: "black" } + Text { text: photoAuthor; width: parent.width; font.pixelSize: 14; elide: Text.ElideLeft; color: "#cccccc"; style: Text.Raised; styleColor: "black" } + Text { text: photoDate; width: parent.width; font.pixelSize: 14; elide: Text.ElideRight; color: "#cccccc"; style: Text.Raised; styleColor: "black" } + } + } + } +} diff --git a/demos/declarative/flickr/qml/flickr/mobile/TitleBar.qml b/demos/declarative/flickr/qml/flickr/mobile/TitleBar.qml new file mode 100644 index 00000000..f0d0703c --- /dev/null +++ b/demos/declarative/flickr/qml/flickr/mobile/TitleBar.qml @@ -0,0 +1,128 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Item { + id: titleBar + property string untaggedString: "Uploads from everyone" + property string taggedString: "Recent uploads tagged " + + BorderImage { source: "images/titlebar.sci"; width: parent.width; height: parent.height + 14; y: -7 } + + Item { + id: container + width: (parent.width * 2) - 55 ; height: parent.height + + function accept() { + imageDetails.closed() + titleBar.state = "" + background.state = "" + rssModel.tags = editor.text + } + + Image { + id: quitButton + anchors.left: parent.left//; anchors.leftMargin: 0 + anchors.verticalCenter: parent.verticalCenter + source: "images/quit.png" + MouseArea { + anchors.fill: parent + onClicked: Qt.quit() + } + } + + Text { + id: categoryText + anchors { + left: quitButton.right; right: tagButton.left; leftMargin: 10; rightMargin: 10 + verticalCenter: parent.verticalCenter + } + elide: Text.ElideLeft + text: (rssModel.tags=="" ? untaggedString : taggedString + rssModel.tags) + font.bold: true; font.pixelSize: 15; color: "White"; style: Text.Raised; styleColor: "Black" + } + + Button { + id: tagButton; x: titleBar.width - 50; width: 45; height: 32; text: "..." + onClicked: if (titleBar.state == "Tags") container.accept(); else titleBar.state = "Tags" + anchors.verticalCenter: parent.verticalCenter + } + + Item { + id: lineEdit + y: 4; height: parent.height - 9 + anchors { left: tagButton.right; leftMargin: 5; right: parent.right; rightMargin: 5 } + + BorderImage { source: "images/lineedit.sci"; anchors.fill: parent } + + TextInput { + id: editor + anchors { + left: parent.left; right: parent.right; leftMargin: 10; rightMargin: 10 + verticalCenter: parent.verticalCenter + } + cursorVisible: true; font.bold: true + color: "#151515"; selectionColor: "Green" + } + + Keys.forwardTo: [ (returnKey), (editor)] + + Item { + id: returnKey + Keys.onReturnPressed: container.accept() + Keys.onEnterPressed: container.accept() + Keys.onEscapePressed: titleBar.state = "" + } + } + } + + states: State { + name: "Tags" + PropertyChanges { target: container; x: -tagButton.x + 5 } + PropertyChanges { target: tagButton; text: "OK" } + PropertyChanges { target: editor; focus: true } + } + + transitions: Transition { + NumberAnimation { properties: "x"; easing.type: Easing.InOutQuad } + } +} diff --git a/demos/declarative/flickr/qml/flickr/mobile/ToolBar.qml b/demos/declarative/flickr/qml/flickr/mobile/ToolBar.qml new file mode 100644 index 00000000..7a8ec14c --- /dev/null +++ b/demos/declarative/flickr/qml/flickr/mobile/ToolBar.qml @@ -0,0 +1,69 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Item { + id: toolbar + + property alias button1Label: button1.text + property alias button2Label: button2.text + property alias button2Visible: button2.visible + + signal button1Clicked + signal button2Clicked + + BorderImage { source: "images/titlebar.sci"; width: parent.width; height: parent.height + 14; y: -7 } + + Row { + anchors.right: parent.right; anchors.rightMargin: 5; y: 3; height: 32; spacing: 30 + Button { + id: button1 + width: 140; height: 32 + onClicked: toolbar.button1Clicked() + } + + Button { + id: button2; width: 140; height: 32 + onClicked: toolbar.button2Clicked() + } + } +} diff --git a/demos/declarative/flickr/qml/flickr/mobile/images/gloss.png b/demos/declarative/flickr/qml/flickr/mobile/images/gloss.png new file mode 100644 index 00000000..5d370cd9 Binary files /dev/null and b/demos/declarative/flickr/qml/flickr/mobile/images/gloss.png differ diff --git a/demos/declarative/flickr/qml/flickr/mobile/images/lineedit.png b/demos/declarative/flickr/qml/flickr/mobile/images/lineedit.png new file mode 100644 index 00000000..2cc38dc3 Binary files /dev/null and b/demos/declarative/flickr/qml/flickr/mobile/images/lineedit.png differ diff --git a/demos/declarative/flickr/qml/flickr/mobile/images/lineedit.sci b/demos/declarative/flickr/qml/flickr/mobile/images/lineedit.sci new file mode 100644 index 00000000..054bff78 --- /dev/null +++ b/demos/declarative/flickr/qml/flickr/mobile/images/lineedit.sci @@ -0,0 +1,5 @@ +border.left: 10 +border.top: 10 +border.bottom: 10 +border.right: 10 +source: lineedit.png diff --git a/demos/declarative/flickr/qml/flickr/mobile/images/quit.png b/demos/declarative/flickr/qml/flickr/mobile/images/quit.png new file mode 100644 index 00000000..5bda1b6e Binary files /dev/null and b/demos/declarative/flickr/qml/flickr/mobile/images/quit.png differ diff --git a/demos/declarative/flickr/qml/flickr/mobile/images/stripes.png b/demos/declarative/flickr/qml/flickr/mobile/images/stripes.png new file mode 100644 index 00000000..9f36727e Binary files /dev/null and b/demos/declarative/flickr/qml/flickr/mobile/images/stripes.png differ diff --git a/demos/declarative/flickr/qml/flickr/mobile/images/titlebar.png b/demos/declarative/flickr/qml/flickr/mobile/images/titlebar.png new file mode 100644 index 00000000..51c90082 Binary files /dev/null and b/demos/declarative/flickr/qml/flickr/mobile/images/titlebar.png differ diff --git a/demos/declarative/flickr/qml/flickr/mobile/images/titlebar.sci b/demos/declarative/flickr/qml/flickr/mobile/images/titlebar.sci new file mode 100644 index 00000000..0418d94c --- /dev/null +++ b/demos/declarative/flickr/qml/flickr/mobile/images/titlebar.sci @@ -0,0 +1,5 @@ +border.left: 10 +border.top: 12 +border.bottom: 12 +border.right: 10 +source: titlebar.png diff --git a/demos/declarative/flickr/qml/flickr/mobile/images/toolbutton.png b/demos/declarative/flickr/qml/flickr/mobile/images/toolbutton.png new file mode 100644 index 00000000..11310013 Binary files /dev/null and b/demos/declarative/flickr/qml/flickr/mobile/images/toolbutton.png differ diff --git a/demos/declarative/flickr/qml/flickr/mobile/images/toolbutton.sci b/demos/declarative/flickr/qml/flickr/mobile/images/toolbutton.sci new file mode 100644 index 00000000..9e4f9653 --- /dev/null +++ b/demos/declarative/flickr/qml/flickr/mobile/images/toolbutton.sci @@ -0,0 +1,5 @@ +border.left: 15 +border.top: 4 +border.bottom: 4 +border.right: 15 +source: toolbutton.png diff --git a/demos/declarative/minehunt/README b/demos/declarative/minehunt/README new file mode 100644 index 00000000..3849ca5f --- /dev/null +++ b/demos/declarative/minehunt/README @@ -0,0 +1,6 @@ +Minehunt has to be compiled to run. + +To compile the C++ part, do 'qmake && make'. +To run, simply run the executable. +To deploy on a device, do 'make sis'. + diff --git a/demos/declarative/minehunt/main.cpp b/demos/declarative/minehunt/main.cpp new file mode 100644 index 00000000..8d3c5457 --- /dev/null +++ b/demos/declarative/minehunt/main.cpp @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demonstration applications of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +#include "qmlapplicationviewer.h" +#include "minehunt.h" +#include +#include +#include + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + QmlApplicationViewer viewer; + + qmlRegisterType(); + MinehuntGame* game = new MinehuntGame(); + + viewer.engine()->rootContext()->setContextObject(game); + viewer.setOrientation(QmlApplicationViewer::ScreenOrientationLockLandscape); + viewer.setMainQmlFile(QLatin1String("qml/minehunt/minehunt.qml")); + viewer.showExpanded(); + + return app.exec(); +} diff --git a/demos/declarative/minehunt/minehunt.cpp b/demos/declarative/minehunt/minehunt.cpp new file mode 100644 index 00000000..21f9b320 --- /dev/null +++ b/demos/declarative/minehunt/minehunt.cpp @@ -0,0 +1,221 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demonstration applications of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +#include +#include +#include + +#include "minehunt.h" + +void tilesPropAppend(QDeclarativeListProperty* prop, TileData* value) +{ + Q_UNUSED(prop); + Q_UNUSED(value); + return; //Append not supported +} + +int tilesPropCount(QDeclarativeListProperty* prop) +{ + return static_cast*>(prop->data)->count(); +} + +TileData* tilesPropAt(QDeclarativeListProperty* prop, int index) +{ + return static_cast*>(prop->data)->at(index); +} + +QDeclarativeListProperty MinehuntGame::tiles(){ + return QDeclarativeListProperty(this, &_tiles, &tilesPropAppend, + &tilesPropCount, &tilesPropAt, 0); +} + +MinehuntGame::MinehuntGame() +: numCols(9), numRows(9), playing(true), won(false) +{ + setObjectName("mainObject"); + srand(QTime(0,0,0).secsTo(QTime::currentTime())); + + //initialize array + for(int ii = 0; ii < numRows * numCols; ++ii) { + _tiles << new TileData; + } + reset(); + +} + +void MinehuntGame::setBoard() +{ + foreach(TileData* t, _tiles){ + t->setHasMine(false); + t->setHint(-1); + } + //place mines + int mines = nMines; + remaining = numRows*numCols-mines; + while ( mines ) { + int col = int((double(rand()) / double(RAND_MAX)) * numCols); + int row = int((double(rand()) / double(RAND_MAX)) * numRows); + + TileData* t = tile( row, col ); + + if (t && !t->hasMine()) { + t->setHasMine( true ); + mines--; + } + } + + //set hints + for (int r = 0; r < numRows; r++) + for (int c = 0; c < numCols; c++) { + TileData* t = tile(r, c); + if (t && !t->hasMine()) { + int hint = getHint(r,c); + t->setHint(hint); + } + } + + setPlaying(true); +} + +void MinehuntGame::reset() +{ + foreach(TileData* t, _tiles){ + t->unflip(); + t->setHasFlag(false); + } + nMines = 12; + nFlags = 0; + emit numMinesChanged(); + emit numFlagsChanged(); + setPlaying(false); + QTimer::singleShot(600,this, SLOT(setBoard())); +} + +int MinehuntGame::getHint(int row, int col) +{ + int hint = 0; + for (int c = col-1; c <= col+1; c++) + for (int r = row-1; r <= row+1; r++) { + TileData* t = tile(r, c); + if (t && t->hasMine()) + hint++; + } + return hint; +} + +bool MinehuntGame::flip(int row, int col) +{ + if(!playing) + return false; + + TileData *t = tile(row, col); + if (!t || t->hasFlag()) + return false; + + if(t->flipped()){ + int flags = 0; + for (int c = col-1; c <= col+1; c++) + for (int r = row-1; r <= row+1; r++) { + TileData *nearT = tile(r, c); + if(!nearT || nearT == t) + continue; + if(nearT->hasFlag()) + flags++; + } + if(!t->hint() || t->hint() != flags) + return false; + for (int c = col-1; c <= col+1; c++) + for (int r = row-1; r <= row+1; r++) { + TileData *nearT = tile(r, c); + if (nearT && !nearT->flipped() && !nearT->hasFlag()) { + flip( r, c ); + } + } + return true; + } + + t->flip(); + + if (t->hint() == 0) { + for (int c = col-1; c <= col+1; c++) + for (int r = row-1; r <= row+1; r++) { + TileData* t = tile(r, c); + if (t && !t->flipped()) { + flip( r, c ); + } + } + } + + if(t->hasMine()){ + for (int r = 0; r < numRows; r++)//Flip all other mines + for (int c = 0; c < numCols; c++) { + TileData* t = tile(r, c); + if (t && t->hasMine()) { + flip(r, c); + } + } + won = false; + hasWonChanged(); + setPlaying(false); + return true; + } + + remaining--; + if(!remaining){ + won = true; + hasWonChanged(); + setPlaying(false); + return true; + } + return true; +} + +bool MinehuntGame::flag(int row, int col) +{ + TileData *t = tile(row, col); + if(!t || !playing || t->flipped()) + return false; + + t->setHasFlag(!t->hasFlag()); + nFlags += (t->hasFlag()?1:-1); + emit numFlagsChanged(); + return true; +} diff --git a/demos/declarative/minehunt/minehunt.h b/demos/declarative/minehunt/minehunt.h new file mode 100644 index 00000000..5d6902ec --- /dev/null +++ b/demos/declarative/minehunt/minehunt.h @@ -0,0 +1,129 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the demonstration applications of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + + +#include + +class TileData : public QObject +{ + Q_OBJECT +public: + TileData() : _hasFlag(false), _hasMine(false), _hint(-1), _flipped(false) {} + + Q_PROPERTY(bool hasFlag READ hasFlag WRITE setHasFlag NOTIFY hasFlagChanged) + bool hasFlag() const { return _hasFlag; } + + Q_PROPERTY(bool hasMine READ hasMine NOTIFY hasMineChanged) + bool hasMine() const { return _hasMine; } + + Q_PROPERTY(int hint READ hint NOTIFY hintChanged) + int hint() const { return _hint; } + + Q_PROPERTY(bool flipped READ flipped NOTIFY flippedChanged()) + bool flipped() const { return _flipped; } + + void setHasFlag(bool flag) {if(flag==_hasFlag) return; _hasFlag = flag; emit hasFlagChanged();} + void setHasMine(bool mine) {if(mine==_hasMine) return; _hasMine = mine; emit hasMineChanged();} + void setHint(int hint) { if(hint == _hint) return; _hint = hint; emit hintChanged(); } + void flip() { if (_flipped) return; _flipped = true; emit flippedChanged(); } + void unflip() { if(!_flipped) return; _flipped = false; emit flippedChanged(); } + +signals: + void flippedChanged(); + void hasFlagChanged(); + void hintChanged(); + void hasMineChanged(); + +private: + bool _hasFlag; + bool _hasMine; + int _hint; + bool _flipped; +}; + +class MinehuntGame : public QObject +{ + Q_OBJECT +public: + MinehuntGame(); + + Q_PROPERTY(QDeclarativeListProperty tiles READ tiles CONSTANT) + QDeclarativeListProperty tiles(); + + Q_PROPERTY(bool isPlaying READ isPlaying NOTIFY isPlayingChanged) + bool isPlaying() {return playing;} + + Q_PROPERTY(bool hasWon READ hasWon NOTIFY hasWonChanged) + bool hasWon() {return won;} + + Q_PROPERTY(int numMines READ numMines NOTIFY numMinesChanged) + int numMines() const{return nMines;} + + Q_PROPERTY(int numFlags READ numFlags NOTIFY numFlagsChanged) + int numFlags() const{return nFlags;} + +public slots: + Q_INVOKABLE bool flip(int row, int col); + Q_INVOKABLE bool flag(int row, int col); + void setBoard(); + void reset(); + +signals: + void isPlayingChanged(); + void hasWonChanged(); + void numMinesChanged(); + void numFlagsChanged(); + +private: + bool onBoard( int r, int c ) const { return r >= 0 && r < numRows && c >= 0 && c < numCols; } + TileData *tile( int row, int col ) { return onBoard(row, col) ? _tiles[col+numRows*row] : 0; } + int getHint(int row, int col); + void setPlaying(bool b){if(b==playing) return; playing=b; emit isPlayingChanged();} + + QList _tiles; + int numCols; + int numRows; + bool playing; + bool won; + int remaining; + int nMines; + int nFlags; +}; diff --git a/demos/declarative/minehunt/minehunt.pro b/demos/declarative/minehunt/minehunt.pro new file mode 100644 index 00000000..5c0b7078 --- /dev/null +++ b/demos/declarative/minehunt/minehunt.pro @@ -0,0 +1,48 @@ +#TEMPLATE = app +# Add more folders to ship with the application, here +folder_01.source = qml/minehunt +folder_01.target = qml +DEPLOYMENTFOLDERS = folder_01 + +# Additional import path used to resolve QML modules in Creator's code model +QML_IMPORT_PATH = + +symbian:TARGET.UID3 = 0xE1CB8EBB + +# Smart Installer package's UID +# This UID is from the protected range and therefore the package will +# fail to install if self-signed. By default qmake uses the unprotected +# range value if unprotected UID is defined for the application and +# 0x2002CCCF value if protected UID is given to the application +#symbian:DEPLOYMENT.installer_header = 0x2002CCCF + +symbian:{ + TARGET.EPOCALLOWDLLDATA = 1 + TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 + include($$QT_SOURCE_TREE/demos/symbianpkgrules.pri) +} + +# Allow network access on Symbian +symbian:TARGET.CAPABILITY += NetworkServices + +# If your application uses the Qt Mobility libraries, uncomment the following +# lines and add the respective components to the MOBILITY variable. +# CONFIG += mobility +# MOBILITY += + +# Speed up launching on MeeGo/Harmattan when using applauncherd daemon +# CONFIG += qdeclarative-boostable + +# Add dependency to Symbian components +# CONFIG += qt-components + +# Input +HEADERS += minehunt.h +SOURCES += main.cpp minehunt.cpp +RESOURCES = minehunt.qrc + +# Please do not modify the following two lines. Required for deployment. +desktopInstallPrefix=$$[QT_INSTALL_DEMOS]/declarative/minehunt +exists(qmlapplicationviewer/qmlapplicationviewer.pri):include(qmlapplicationviewer/qmlapplicationviewer.pri) +else:include(../../helper/qmlapplicationviewer/qmlapplicationviewer.pri) +qtcAddDeployment() diff --git a/demos/declarative/minehunt/minehunt.qmlproject b/demos/declarative/minehunt/minehunt.qmlproject new file mode 100644 index 00000000..1f8b659f --- /dev/null +++ b/demos/declarative/minehunt/minehunt.qmlproject @@ -0,0 +1,16 @@ +import QmlProject 1.0 + +Project { + /* Include .qml, .js, and image files from current directory and subdirectories */ + QmlFiles { + directory: "qml/minehunt" + } + JavaScriptFiles { + directory: "qml/minehunt" + } + ImageFiles { + directory: "qml/minehunt" + } + /* List of plugin directories passed to QML runtime */ + // importPaths: [ " ../exampleplugin " ] +} diff --git a/demos/declarative/minehunt/minehunt.qrc b/demos/declarative/minehunt/minehunt.qrc new file mode 100644 index 00000000..4694beb1 --- /dev/null +++ b/demos/declarative/minehunt/minehunt.qrc @@ -0,0 +1,19 @@ + + + qml/minehunt/minehunt.qml + qml/minehunt/MinehuntCore/Explosion.qml + qml/minehunt/MinehuntCore/Tile.qml + qml/minehunt/MinehuntCore/pics/background.png + qml/minehunt/MinehuntCore/pics/back.png + qml/minehunt/MinehuntCore/pics/bomb-color.png + qml/minehunt/MinehuntCore/pics/bomb.png + qml/minehunt/MinehuntCore/pics/face-sad.png + qml/minehunt/MinehuntCore/pics/face-smile-big.png + qml/minehunt/MinehuntCore/pics/face-smile.png + qml/minehunt/MinehuntCore/pics/flag-color.png + qml/minehunt/MinehuntCore/pics/flag.png + qml/minehunt/MinehuntCore/pics/front.png + qml/minehunt/MinehuntCore/pics/quit.png + qml/minehunt/MinehuntCore/pics/star.png + + diff --git a/demos/declarative/minehunt/qml/minehunt/MinehuntCore/Explosion.qml b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/Explosion.qml new file mode 100644 index 00000000..41f0cc30 --- /dev/null +++ b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/Explosion.qml @@ -0,0 +1,65 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 +import Qt.labs.particles 1.0 + +Item { + property bool explode : false + + Particles { + id: particles + width: 40 + height: 40 + lifeSpan: 1000 + lifeSpanDeviation: 0 + source: "pics/star.png" + count: 0 + angle: 270 + angleDeviation: 360 + velocity: 100 + velocityDeviation: 20 + z: 100 + } + states: State { name: "exploding"; when: explode + StateChangeScript {script: particles.burst(200); } + } +} diff --git a/demos/declarative/minehunt/qml/minehunt/MinehuntCore/Tile.qml b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/Tile.qml new file mode 100644 index 00000000..99f3ce05 --- /dev/null +++ b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/Tile.qml @@ -0,0 +1,128 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Flipable { + id: flipable + property int angle: 0 + + width: 40; height: 40 + transform: Rotation { origin.x: 20; origin.y: 20; axis.x: 1; axis.z: 0; angle: flipable.angle } + + front: Image { + source: "pics/front.png"; width: 40; height: 40 + + Image { + anchors.centerIn: parent + source: "pics/flag.png"; opacity: modelData.hasFlag + + Behavior on opacity { NumberAnimation {} } + } + } + + back: Image { + source: "pics/back.png" + width: 40; height: 40 + + Text { + anchors.centerIn: parent + text: modelData.hint; color: "white"; font.bold: true + opacity: !modelData.hasMine && modelData.hint > 0 + } + + Image { + anchors.centerIn: parent + source: "pics/bomb.png"; opacity: modelData.hasMine + } + + Explosion { id: expl } + } + + states: State { + name: "back"; when: modelData.flipped + PropertyChanges { target: flipable; angle: 180 } + } + + property real pauseDur: 250 + transitions: Transition { + SequentialAnimation { + ScriptAction { + script: { + var ret = Math.abs(flipable.x - field.clickx) + + Math.abs(flipable.y - field.clicky); + if (modelData.hasMine && modelData.flipped) + pauseDur = ret * 3 + else + pauseDur = ret + } + } + PauseAnimation { + duration: pauseDur + } + RotationAnimation { easing.type: Easing.InOutQuad } + ScriptAction { script: if (modelData.hasMine && modelData.flipped) { expl.explode = true } } + } + } + + MouseArea { + anchors.fill: parent + acceptedButtons: Qt.LeftButton | Qt.RightButton + onClicked: { + field.clickx = flipable.x + field.clicky = flipable.y + var row = Math.floor(index / 9) + var col = index - (Math.floor(index / 9) * 9) + if (mouse.button == undefined || mouse.button == Qt.RightButton) { + flag(row, col) + } else { + flip(row, col) + } + } + onPressAndHold: { + field.clickx = flipable.x + field.clicky = flipable.y + var row = Math.floor(index / 9) + var col = index - (Math.floor(index / 9) * 9) + flag(row, col) + } + } +} diff --git a/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/back.png b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/back.png new file mode 100644 index 00000000..f6b3f0b4 Binary files /dev/null and b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/back.png differ diff --git a/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/background.png b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/background.png new file mode 100644 index 00000000..3734a277 Binary files /dev/null and b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/background.png differ diff --git a/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/bomb-color.png b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/bomb-color.png new file mode 100644 index 00000000..61ad0a92 Binary files /dev/null and b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/bomb-color.png differ diff --git a/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/bomb.png b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/bomb.png new file mode 100644 index 00000000..a9925755 Binary files /dev/null and b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/bomb.png differ diff --git a/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/face-sad.png b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/face-sad.png new file mode 100644 index 00000000..cf00aafe Binary files /dev/null and b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/face-sad.png differ diff --git a/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/face-smile-big.png b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/face-smile-big.png new file mode 100644 index 00000000..f9c2335d Binary files /dev/null and b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/face-smile-big.png differ diff --git a/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/face-smile.png b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/face-smile.png new file mode 100644 index 00000000..3d66d725 Binary files /dev/null and b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/face-smile.png differ diff --git a/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/flag-color.png b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/flag-color.png new file mode 100644 index 00000000..aadad0f1 Binary files /dev/null and b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/flag-color.png differ diff --git a/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/flag.png b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/flag.png new file mode 100644 index 00000000..39cde4df Binary files /dev/null and b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/flag.png differ diff --git a/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/front.png b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/front.png new file mode 100644 index 00000000..834331bd Binary files /dev/null and b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/front.png differ diff --git a/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/quit.png b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/quit.png new file mode 100644 index 00000000..b822057d Binary files /dev/null and b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/quit.png differ diff --git a/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/star.png b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/star.png new file mode 100644 index 00000000..37723591 Binary files /dev/null and b/demos/declarative/minehunt/qml/minehunt/MinehuntCore/pics/star.png differ diff --git a/demos/declarative/minehunt/qml/minehunt/minehunt.qml b/demos/declarative/minehunt/qml/minehunt/minehunt.qml new file mode 100644 index 00000000..51b4d90e --- /dev/null +++ b/demos/declarative/minehunt/qml/minehunt/minehunt.qml @@ -0,0 +1,112 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 +import "MinehuntCore" + +Item { + id: field + property int clickx: 0 + property int clicky: 0 + + width: 450; height: 450 + + Image { source: "MinehuntCore/pics/background.png"; anchors.fill: parent; fillMode: Image.Tile } + + Grid { + anchors.horizontalCenter: parent.horizontalCenter + columns: 9; spacing: 1 + + Repeater { + id: repeater + model: tiles + delegate: Tile {} + } + } + + Row { + id: gamedata + x: 20; spacing: 20 + anchors.bottom: field.bottom; anchors.bottomMargin: 15 + + Image { + source: "MinehuntCore/pics/quit.png" + scale: quitMouse.pressed ? 0.8 : 1.0 + smooth: quitMouse.pressed + y: 10 + MouseArea { + id: quitMouse + anchors.fill: parent + anchors.margins: -20 + onClicked: Qt.quit() + } + } + Column { + spacing: 2 + Image { source: "MinehuntCore/pics/bomb-color.png" } + Text { anchors.horizontalCenter: parent.horizontalCenter; color: "white"; text: numMines } + } + + Column { + spacing: 2 + Image { source: "MinehuntCore/pics/flag-color.png" } + Text { anchors.horizontalCenter: parent.horizontalCenter; color: "white"; text: numFlags } + } + } + + Image { + anchors.bottom: field.bottom; anchors.bottomMargin: 15 + anchors.right: field.right; anchors.rightMargin: 20 + source: isPlaying ? 'MinehuntCore/pics/face-smile.png' : + hasWon ? 'MinehuntCore/pics/face-smile-big.png': 'MinehuntCore/pics/face-sad.png' + + MouseArea { anchors.fill: parent; onPressed: reset() } + } + Text { + anchors.centerIn: parent; width: parent.width - 20 + horizontalAlignment: Text.AlignHCenter + wrapMode: Text.WordWrap + text: "Minehunt demo has to be compiled to run.\n\nPlease see README." + color: "white"; font.bold: true; font.pixelSize: 14 + visible: tiles == undefined + } + +} diff --git a/demos/declarative/photoviewer/main.cpp b/demos/declarative/photoviewer/main.cpp new file mode 100644 index 00000000..e0988bac --- /dev/null +++ b/demos/declarative/photoviewer/main.cpp @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the examples 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$ +** +****************************************************************************/ + +#include "qmlapplicationviewer.h" +#include + +Q_DECL_EXPORT int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + QmlApplicationViewer viewer; + viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto); + viewer.setMainQmlFile(QLatin1String("qml/photoviewer/photoviewer.qml")); + viewer.showExpanded(); + + return app.exec(); +} diff --git a/demos/declarative/photoviewer/photoviewer.desktop b/demos/declarative/photoviewer/photoviewer.desktop new file mode 100644 index 00000000..4246b9f3 --- /dev/null +++ b/demos/declarative/photoviewer/photoviewer.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Type=Application +Terminal=false +Name=photoviewer +Exec=/opt/photoviewer/bin/photoviewer +Icon=photoviewer64 +X-Window-Icon= +X-HildonDesk-ShowInToolbar=true +X-Osso-Type=application/x-executable diff --git a/demos/declarative/photoviewer/photoviewer.pro b/demos/declarative/photoviewer/photoviewer.pro new file mode 100644 index 00000000..72b43155 --- /dev/null +++ b/demos/declarative/photoviewer/photoviewer.pro @@ -0,0 +1,39 @@ +# Add more folders to ship with the application, here +folder_01.source = qml/photoviewer +folder_01.target = qml +DEPLOYMENTFOLDERS = folder_01 + +# Additional import path used to resolve QML modules in Creator's code model +QML_IMPORT_PATH = + +symbian:TARGET.UID3 = 0xE93AD27B + +# Smart Installer package's UID +# This UID is from the protected range and therefore the package will +# fail to install if self-signed. By default qmake uses the unprotected +# range value if unprotected UID is defined for the application and +# 0x2002CCCF value if protected UID is given to the application +#symbian:DEPLOYMENT.installer_header = 0x2002CCCF + +# Allow network access on Symbian +symbian:TARGET.CAPABILITY += NetworkServices + +# If your application uses the Qt Mobility libraries, uncomment the following +# lines and add the respective components to the MOBILITY variable. +# CONFIG += mobility +# MOBILITY += + +# Speed up launching on MeeGo/Harmattan when using applauncherd daemon +# CONFIG += qdeclarative-boostable + +# Add dependency to Symbian components +# CONFIG += qt-components + +# The .cpp file which was generated for your project. Feel free to hack it. +SOURCES += main.cpp + +# Please do not modify the following two lines. Required for deployment. +desktopInstallPrefix=$$[QT_INSTALL_DEMOS]/declarative/photoviewer +exists(qmlapplicationviewer/qmlapplicationviewer.pri):include(qmlapplicationviewer/qmlapplicationviewer.pri) +else:include(../../helper/qmlapplicationviewer/qmlapplicationviewer.pri) +qtcAddDeployment() diff --git a/demos/declarative/photoviewer/photoviewer.qmlproject b/demos/declarative/photoviewer/photoviewer.qmlproject new file mode 100644 index 00000000..025a3a8f --- /dev/null +++ b/demos/declarative/photoviewer/photoviewer.qmlproject @@ -0,0 +1,16 @@ +import QmlProject 1.0 + +Project { + /* Include .qml, .js, and image files from current directory and subdirectories */ + QmlFiles { + directory: "qml/photoviewer" + } + JavaScriptFiles { + directory: "qml/photoviewer" + } + ImageFiles { + directory: "qml/photoviewer" + } + /* List of plugin directories passed to QML runtime */ + // importPaths: [ " ../exampleplugin " ] +} diff --git a/demos/declarative/photoviewer/photoviewer.svg b/demos/declarative/photoviewer/photoviewer.svg new file mode 100644 index 00000000..566acfad --- /dev/null +++ b/demos/declarative/photoviewer/photoviewer.svg @@ -0,0 +1,93 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/demos/declarative/photoviewer/photoviewer64.png b/demos/declarative/photoviewer/photoviewer64.png new file mode 100644 index 00000000..707d5c4e Binary files /dev/null and b/demos/declarative/photoviewer/photoviewer64.png differ diff --git a/demos/declarative/photoviewer/photoviewer80.png b/demos/declarative/photoviewer/photoviewer80.png new file mode 100644 index 00000000..6ad8096c Binary files /dev/null and b/demos/declarative/photoviewer/photoviewer80.png differ diff --git a/demos/declarative/photoviewer/photoviewer_harmattan.desktop b/demos/declarative/photoviewer/photoviewer_harmattan.desktop new file mode 100644 index 00000000..2dced148 --- /dev/null +++ b/demos/declarative/photoviewer/photoviewer_harmattan.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Type=Application +Terminal=false +Name=photoviewer +Exec=/usr/bin/single-instance /opt/photoviewer/bin/photoviewer +Icon=/usr/share/icons/hicolor/80x80/apps/photoviewer80.png +X-Window-Icon= +X-HildonDesk-ShowInToolbar=true +X-Osso-Type=application/x-executable diff --git a/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/AlbumDelegate.qml b/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/AlbumDelegate.qml new file mode 100644 index 00000000..b64da40b --- /dev/null +++ b/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/AlbumDelegate.qml @@ -0,0 +1,146 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Component { + id: albumDelegate + Package { + + Item { + Package.name: 'browser' + GridView { + id: photosGridView; model: visualModel.parts.grid; width: mainWindow.width; height: mainWindow.height - 21 + x: 0; y: 21; cellWidth: 160; cellHeight: 153; interactive: false + onCurrentIndexChanged: photosListView.positionViewAtIndex(currentIndex, ListView.Contain) + } + } + + Item { + Package.name: 'fullscreen' + ListView { + id: photosListView; model: visualModel.parts.list; orientation: Qt.Horizontal + width: mainWindow.width; height: mainWindow.height; interactive: false + onCurrentIndexChanged: photosGridView.positionViewAtIndex(currentIndex, GridView.Contain) + highlightRangeMode: ListView.StrictlyEnforceRange; snapMode: ListView.SnapOneItem + } + } + + Item { + Package.name: 'album' + id: albumWrapper; width: 210; height: 220 + + VisualDataModel { + id: visualModel; delegate: PhotoDelegate { } + model: RssModel { id: rssModel; tags: tag } + } + + BusyIndicator { + id: busyIndicator + anchors { centerIn: parent; verticalCenterOffset: -20 } + on: rssModel.status != XmlListModel.Ready + } + + PathView { + id: photosPathView; model: visualModel.parts.stack; pathItemCount: 5 + visible: !busyIndicator.visible + anchors.centerIn: parent; anchors.verticalCenterOffset: -30 + path: Path { + PathAttribute { name: 'z'; value: 9999.0 } + PathLine { x: 1; y: 1 } + PathAttribute { name: 'z'; value: 0.0 } + } + } + + MouseArea { + anchors.fill: parent + onClicked: mainWindow.editMode ? photosModel.remove(index) : albumWrapper.state = 'inGrid' + } + + Tag { + anchors { horizontalCenter: parent.horizontalCenter; bottom: parent.bottom; bottomMargin: 10 } + frontLabel: tag; backLabel: qsTr("Remove"); flipped: mainWindow.editMode + onTagChanged: rssModel.tags = tag + onBackClicked: if (mainWindow.editMode) photosModel.remove(index); + } + + states: [ + State { + name: 'inGrid' + PropertyChanges { target: photosGridView; interactive: true } + PropertyChanges { target: albumsShade; opacity: 1 } + PropertyChanges { target: backButton; onClicked: albumWrapper.state = ''; y: 6 } + }, + State { + name: 'fullscreen'; extend: 'inGrid' + PropertyChanges { target: photosGridView; interactive: false } + PropertyChanges { target: photosListView; interactive: true } + PropertyChanges { target: photosShade; opacity: 1 } + PropertyChanges { target: backButton; y: -backButton.height - 8 } + } + ] + + GridView.onAdd: NumberAnimation { + target: albumWrapper; properties: "scale"; from: 0.0; to: 1.0; easing.type: Easing.OutQuad + } + GridView.onRemove: SequentialAnimation { + PropertyAction { target: albumWrapper; property: "GridView.delayRemove"; value: true } + NumberAnimation { target: albumWrapper; property: "scale"; from: 1.0; to: 0.0; easing.type: Easing.OutQuad } + PropertyAction { target: albumWrapper; property: "GridView.delayRemove"; value: false } + } + + transitions: [ + Transition { + from: '*'; to: 'inGrid' + SequentialAnimation { + NumberAnimation { properties: 'opacity'; duration: 250 } + PauseAnimation { duration: 350 } + NumberAnimation { target: backButton; properties: "y"; duration: 200; easing.type: Easing.OutQuad } + } + }, + Transition { + from: 'inGrid'; to: '*' + NumberAnimation { properties: "y,opacity"; easing.type: Easing.OutQuad; duration: 300 } + } + ] + } + } +} diff --git a/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/BusyIndicator.qml b/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/BusyIndicator.qml new file mode 100644 index 00000000..bd0391e6 --- /dev/null +++ b/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/BusyIndicator.qml @@ -0,0 +1,50 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Image { + id: container + property bool on: false + + source: "images/busy.png"; visible: container.on + NumberAnimation on rotation { running: container.on; from: 0; to: 360; loops: Animation.Infinite; duration: 1200 } +} diff --git a/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/Button.qml b/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/Button.qml new file mode 100644 index 00000000..a4b4e96f --- /dev/null +++ b/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/Button.qml @@ -0,0 +1,72 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Item { + id: container + + property alias label: labelText.text + property color tint: "transparent" + signal clicked + + width: labelText.width + 70 ; height: labelText.height + 18 + + BorderImage { + anchors { fill: container; leftMargin: -6; topMargin: -6; rightMargin: -8; bottomMargin: -8 } + source: 'images/box-shadow.png'; smooth: true + border.left: 10; border.top: 10; border.right: 10; border.bottom: 10 + } + + Image { anchors.fill: parent; source: "images/cardboard.png"; smooth: true } + + Rectangle { + anchors.fill: container; color: container.tint; visible: container.tint != "" + opacity: 0.25; smooth: true + } + + Text { id: labelText; font.pixelSize: 15; anchors.centerIn: parent; smooth: true } + + MouseArea { + anchors { fill: parent; leftMargin: -20; topMargin: -20; rightMargin: -20; bottomMargin: -20 } + onClicked: container.clicked() + } +} diff --git a/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/EditableButton.qml b/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/EditableButton.qml new file mode 100644 index 00000000..fd1cf358 --- /dev/null +++ b/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/EditableButton.qml @@ -0,0 +1,86 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Item { + id: container + + property string label + signal clicked + signal labelChanged(string label) + + width: textInput.width + 70 ; height: textInput.height + 18 + + BorderImage { + anchors { fill: container; leftMargin: -6; topMargin: -6; rightMargin: -8; bottomMargin: -8 } + source: 'images/box-shadow.png'; smooth: true + border.left: 10; border.top: 10; border.right: 10; border.bottom: 10 + } + + Image { anchors.fill: parent; source: "images/cardboard.png"; smooth: true } + + TextInput { + id: textInput; text: label; font.pixelSize: 15; anchors.centerIn: parent; smooth: true + Keys.onReturnPressed: { + container.labelChanged(textInput.text) + container.focus = true + } + Keys.onEnterPressed: { + container.labelChanged(textInput.text) + container.focus = true + } + Keys.onEscapePressed: { + textInput.text = container.label + container.focus = true + } + } + + Rectangle { + anchors.fill: container; border.color: "steelblue"; border.width: 4 + color: "transparent"; visible: textInput.focus; smooth: true + } + + MouseArea { + anchors { fill: parent; leftMargin: -20; topMargin: -20; rightMargin: -20; bottomMargin: -20 } + onClicked: { textInput.forceActiveFocus(); textInput.openSoftwareInputPanel(); } + } +} diff --git a/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/PhotoDelegate.qml b/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/PhotoDelegate.qml new file mode 100644 index 00000000..118d468c --- /dev/null +++ b/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/PhotoDelegate.qml @@ -0,0 +1,188 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "script/script.js" as Script + +Package { + Item { id: stackItem; Package.name: 'stack'; width: 160; height: 153; z: stackItem.PathView.z } + Item { id: listItem; Package.name: 'list'; width: mainWindow.width + 40; height: 153 } + Item { id: gridItem; Package.name: 'grid'; width: 160; height: 153 } + + Item { + width: 160; height: 153 + + Item { + id: photoWrapper + + property double randomAngle: Math.random() * (2 * 6 + 1) - 6 + property double randomAngle2: Math.random() * (2 * 6 + 1) - 6 + + x: 0; y: 0; width: 140; height: 133 + z: stackItem.PathView.z; rotation: photoWrapper.randomAngle + + BorderImage { + anchors { + fill: originalImage.status == Image.Ready ? border : placeHolder + leftMargin: -6; topMargin: -6; rightMargin: -8; bottomMargin: -8 + } + source: 'images/box-shadow.png'; smooth: true + border.left: 10; border.top: 10; border.right: 10; border.bottom: 10 + } + Rectangle { + id: placeHolder + + property int w: Script.getWidth(content) + property int h: Script.getHeight(content) + property double s: Script.calculateScale(w, h, photoWrapper.width) + + color: 'white'; anchors.centerIn: parent; smooth: true + width: w * s; height: h * s; visible: originalImage.status != Image.Ready + Rectangle { + color: "#878787"; smooth: true + anchors { fill: parent; topMargin: 3; bottomMargin: 3; leftMargin: 3; rightMargin: 3 } + } + } + Rectangle { + id: border; color: 'white'; anchors.centerIn: parent; smooth: true + width: originalImage.paintedWidth + 6; height: originalImage.paintedHeight + 6 + visible: !placeHolder.visible + } + BusyIndicator { anchors.centerIn: parent; on: originalImage.status != Image.Ready } + Image { + id: originalImage; smooth: true; source: "http://" + Script.getImagePath(content); cache: false + fillMode: Image.PreserveAspectFit; width: photoWrapper.width; height: photoWrapper.height + } + Image { + id: hqImage; smooth: true; source: ""; visible: false; cache: false + fillMode: Image.PreserveAspectFit; width: photoWrapper.width; height: photoWrapper.height + } + Binding { + target: mainWindow; property: "downloadProgress"; value: hqImage.progress + when: listItem.ListView.isCurrentItem + } + Binding { + target: mainWindow; property: "imageLoading" + value: (hqImage.status == Image.Loading) ? 1 : 0; when: listItem.ListView.isCurrentItem + } + MouseArea { + width: originalImage.paintedWidth; height: originalImage.paintedHeight; anchors.centerIn: originalImage + onClicked: { + if (albumWrapper.state == 'inGrid') { + gridItem.GridView.view.currentIndex = index; + albumWrapper.state = 'fullscreen' + } else { + gridItem.GridView.view.currentIndex = index; + albumWrapper.state = 'inGrid' + } + } + } + + states: [ + State { + name: 'stacked'; when: albumWrapper.state == '' + ParentChange { target: photoWrapper; parent: stackItem; x: 10; y: 10 } + PropertyChanges { target: photoWrapper; opacity: stackItem.PathView.onPath ? 1.0 : 0.0 } + }, + State { + name: 'inGrid'; when: albumWrapper.state == 'inGrid' + ParentChange { target: photoWrapper; parent: gridItem; x: 10; y: 10; rotation: photoWrapper.randomAngle2 } + }, + State { + name: 'fullscreen'; when: albumWrapper.state == 'fullscreen' + ParentChange { + target: photoWrapper; parent: listItem; x: 0; y: 0; rotation: 0 + width: mainWindow.width; height: mainWindow.height + } + PropertyChanges { target: border; opacity: 0 } + PropertyChanges { target: hqImage; source: listItem.ListView.isCurrentItem ? hq : ""; visible: true } + } + ] + + transitions: [ + Transition { + from: 'stacked'; to: 'inGrid' + SequentialAnimation { + PauseAnimation { duration: 10 * index } + ParentAnimation { + target: photoWrapper; via: foreground + NumberAnimation { + target: photoWrapper; properties: 'x,y,rotation,opacity'; duration: 600; easing.type: 'OutQuart' + } + } + } + }, + Transition { + from: 'inGrid'; to: 'stacked' + ParentAnimation { + target: photoWrapper; via: foreground + NumberAnimation { properties: 'x,y,rotation,opacity'; duration: 600; easing.type: 'OutQuart' } + } + }, + Transition { + from: 'inGrid'; to: 'fullscreen' + SequentialAnimation { + PauseAnimation { duration: gridItem.GridView.isCurrentItem ? 0 : 600 } + ParentAnimation { + target: photoWrapper; via: foreground + NumberAnimation { + targets: [ photoWrapper, border ] + properties: 'x,y,width,height,opacity,rotation' + duration: gridItem.GridView.isCurrentItem ? 600 : 1; easing.type: 'OutQuart' + } + } + } + }, + Transition { + from: 'fullscreen'; to: 'inGrid' + ParentAnimation { + target: photoWrapper; via: foreground + NumberAnimation { + targets: [ photoWrapper, border ] + properties: 'x,y,width,height,rotation,opacity' + duration: gridItem.GridView.isCurrentItem ? 600 : 1; easing.type: 'OutQuart' + } + } + } + ] + } + } +} diff --git a/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/ProgressBar.qml b/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/ProgressBar.qml new file mode 100644 index 00000000..33e1fdfd --- /dev/null +++ b/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/ProgressBar.qml @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Item { + id: container + + property real progress: 0 + + Behavior on opacity { NumberAnimation { duration: 600 } } + + Rectangle { anchors.fill: parent; color: "black"; opacity: 0.5 } + + Rectangle { + id: fill; color: "white"; height: container.height + width: container.width * container.progress + } +} diff --git a/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/RssModel.qml b/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/RssModel.qml new file mode 100644 index 00000000..75c86c46 --- /dev/null +++ b/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/RssModel.qml @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +XmlListModel { + property string tags : "" + + source: "http://api.flickr.com/services/feeds/photos_public.gne?"+(tags ? "tags="+tags+"&" : "") + query: "/feed/entry" + namespaceDeclarations: "declare default element namespace 'http://www.w3.org/2005/Atom';" + + XmlRole { name: "title"; query: "title/string()" } + XmlRole { name: "content"; query: "content/string()" } + XmlRole { name: "hq"; query: "link[@rel='enclosure']/@href/string()" } +} diff --git a/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/Tag.qml b/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/Tag.qml new file mode 100644 index 00000000..30695140 --- /dev/null +++ b/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/Tag.qml @@ -0,0 +1,91 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Flipable { + id: flipable + + property alias frontLabel: frontButton.label + property alias backLabel: backButton.label + + property int angle: 0 + property int randomAngle: Math.random() * (2 * 6 + 1) - 6 + property bool flipped: false + + signal frontClicked + signal backClicked + signal tagChanged(string tag) + + front: EditableButton { + id: frontButton; rotation: flipable.randomAngle + anchors { centerIn: parent; verticalCenterOffset: -20 } + onClicked: flipable.frontClicked() + onLabelChanged: flipable.tagChanged(label) + } + + back: Button { + id: backButton; tint: "red"; rotation: flipable.randomAngle + anchors { centerIn: parent; verticalCenterOffset: -20 } + onClicked: flipable.backClicked() + } + + transform: Rotation { + origin.x: flipable.width / 2; origin.y: flipable.height / 2 + axis.x: 0; axis.y: 1; axis.z: 0 + angle: flipable.angle + } + + states: State { + name: "back"; when: flipable.flipped + PropertyChanges { target: flipable; angle: 180 } + } + + transitions: Transition { + ParallelAnimation { + NumberAnimation { properties: "angle"; duration: 400 } + SequentialAnimation { + NumberAnimation { target: flipable; property: "scale"; to: 0.8; duration: 200 } + NumberAnimation { target: flipable; property: "scale"; to: 1.0; duration: 200 } + } + } + } +} diff --git a/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/images/box-shadow.png b/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/images/box-shadow.png new file mode 100644 index 00000000..431af854 Binary files /dev/null and b/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/images/box-shadow.png differ diff --git a/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/images/busy.png b/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/images/busy.png new file mode 100644 index 00000000..664c2b14 Binary files /dev/null and b/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/images/busy.png differ diff --git a/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/images/cardboard.png b/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/images/cardboard.png new file mode 100644 index 00000000..1847ab52 Binary files /dev/null and b/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/images/cardboard.png differ diff --git a/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/qmldir b/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/qmldir new file mode 100644 index 00000000..d3c247f2 --- /dev/null +++ b/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/qmldir @@ -0,0 +1,8 @@ +AlbumDelegate AlbumDelegate.qml +PhotoDelegate PhotoDelegate.qml +ProgressBar ProgressBar.qml +RssModel RssModel.qml +BusyIndicator BusyIndicator.qml +EditableButton EditableButton.qml +Button Button.qml +Tag Tag.qml diff --git a/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/script/script.js b/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/script/script.js new file mode 100644 index 00000000..e8ef93a8 --- /dev/null +++ b/demos/declarative/photoviewer/qml/photoviewer/PhotoViewerCore/script/script.js @@ -0,0 +1,27 @@ +.pragma library + +function getWidth(string) { + return (string.match(/width=\"([0-9]+)\"/))[1] +} + +function getHeight(string) { + return (string.match(/height=\"([0-9]+)\"/))[1] +} + +function getImagePath(string) { + var pattern = /src=\"http:\/\/(\S+)\"/ + return (string.match(pattern))[1] +} + +function calculateScale(width, height, cellSize) { + var widthScale = (cellSize * 1.0) / width + var heightScale = (cellSize * 1.0) / height + var scale = 0 + + if (widthScale <= heightScale) { + scale = widthScale; + } else if (heightScale < widthScale) { + scale = heightScale; + } + return scale; +} diff --git a/demos/declarative/photoviewer/qml/photoviewer/i18n/base.ts b/demos/declarative/photoviewer/qml/photoviewer/i18n/base.ts new file mode 100644 index 00000000..1accfd2f --- /dev/null +++ b/demos/declarative/photoviewer/qml/photoviewer/i18n/base.ts @@ -0,0 +1,30 @@ + + + + + AlbumDelegate + + + Remove + + + + + photoviewer + + + Add + + + + + Edit + + + + + Back + + + + diff --git a/demos/declarative/photoviewer/qml/photoviewer/i18n/qml_fr.qm b/demos/declarative/photoviewer/qml/photoviewer/i18n/qml_fr.qm new file mode 100644 index 00000000..c24fcbc4 Binary files /dev/null and b/demos/declarative/photoviewer/qml/photoviewer/i18n/qml_fr.qm differ diff --git a/demos/declarative/photoviewer/qml/photoviewer/i18n/qml_fr.ts b/demos/declarative/photoviewer/qml/photoviewer/i18n/qml_fr.ts new file mode 100644 index 00000000..9f892db6 --- /dev/null +++ b/demos/declarative/photoviewer/qml/photoviewer/i18n/qml_fr.ts @@ -0,0 +1,30 @@ + + + + + AlbumDelegate + + + Remove + Supprimer + + + + photoviewer + + + Add + Ajouter + + + + Edit + Éditer + + + + Back + Retour + + + diff --git a/demos/declarative/photoviewer/qml/photoviewer/photoviewer.qml b/demos/declarative/photoviewer/qml/photoviewer/photoviewer.qml new file mode 100644 index 00000000..049e9ca5 --- /dev/null +++ b/demos/declarative/photoviewer/qml/photoviewer/photoviewer.qml @@ -0,0 +1,110 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 +import "PhotoViewerCore" + +Rectangle { + id: mainWindow + + property real downloadProgress: 0 + property bool imageLoading: false + property bool editMode: false + + width: 800; height: 480; color: "#d5d6d8" + + ListModel { + id: photosModel + ListElement { tag: "Flowers" } + ListElement { tag: "Wildlife" } + ListElement { tag: "Prague" } + } + + VisualDataModel { id: albumVisualModel; model: photosModel; delegate: AlbumDelegate {} } + + GridView { + id: albumView; width: parent.width; height: parent.height; cellWidth: 210; cellHeight: 220 + model: albumVisualModel.parts.album; visible: albumsShade.opacity != 1.0 + } + + Column { + spacing: 20; anchors { bottom: parent.bottom; right: parent.right; rightMargin: 20; bottomMargin: 20 } + Button { + id: newButton; label: qsTr("Add"); rotation: 3 + anchors.horizontalCenter: parent.horizontalCenter + onClicked: { + mainWindow.editMode = false + photosModel.append( { tag: "" } ) + albumView.positionViewAtIndex(albumView.count - 1, GridView.Contain) + } + } + Button { + id: deleteButton; label: qsTr("Edit"); rotation: -2; + onClicked: mainWindow.editMode = !mainWindow.editMode + anchors.horizontalCenter: parent.horizontalCenter + } + Button { + id: quitButton; label: qsTr("Quit"); rotation: -2; + onClicked: Qt.quit() + anchors.horizontalCenter: parent.horizontalCenter + } + } + + Rectangle { + id: albumsShade; color: mainWindow.color + width: parent.width; height: parent.height; opacity: 0.0 + } + + ListView { anchors.fill: parent; model: albumVisualModel.parts.browser; interactive: false } + + Button { id: backButton; label: qsTr("Back"); rotation: 3; x: parent.width - backButton.width - 6; y: -backButton.height - 8 } + + Rectangle { id: photosShade; color: 'black'; width: parent.width; height: parent.height; opacity: 0; visible: opacity != 0.0 } + + ListView { anchors.fill: parent; model: albumVisualModel.parts.fullscreen; interactive: false } + + Item { id: foreground; anchors.fill: parent } + + ProgressBar { + progress: mainWindow.downloadProgress; width: parent.width; height: 4 + anchors.bottom: parent.bottom; opacity: mainWindow.imageLoading; visible: opacity != 0.0 + } +} diff --git a/demos/declarative/rssnews/main.cpp b/demos/declarative/rssnews/main.cpp new file mode 100644 index 00000000..d3f6026e --- /dev/null +++ b/demos/declarative/rssnews/main.cpp @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the examples 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$ +** +****************************************************************************/ + +#include "qmlapplicationviewer.h" +#include + +Q_DECL_EXPORT int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + QmlApplicationViewer viewer; + viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto); + viewer.setMainQmlFile(QLatin1String("qml/rssnews/rssnews.qml")); + viewer.showExpanded(); + + return app.exec(); +} diff --git a/demos/declarative/rssnews/qml/rssnews/content/BusyIndicator.qml b/demos/declarative/rssnews/qml/rssnews/content/BusyIndicator.qml new file mode 100644 index 00000000..9f1fa5a0 --- /dev/null +++ b/demos/declarative/rssnews/qml/rssnews/content/BusyIndicator.qml @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Image { + id: container + property bool on: false + + source: "images/busy.png"; visible: container.on + + NumberAnimation on rotation { + running: container.on; from: 0; to: 360; loops: Animation.Infinite; duration: 1200 + } +} diff --git a/demos/declarative/rssnews/qml/rssnews/content/CategoryDelegate.qml b/demos/declarative/rssnews/qml/rssnews/content/CategoryDelegate.qml new file mode 100644 index 00000000..568acce0 --- /dev/null +++ b/demos/declarative/rssnews/qml/rssnews/content/CategoryDelegate.qml @@ -0,0 +1,82 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Item { + id: delegate + + width: delegate.ListView.view.width; height: 60 + + Text { + text: name + color: delegate.ListView.isCurrentItem ? "white" : "black" + font { family: "Helvetica"; pixelSize: 16; bold: true } + anchors { + left: parent.left; leftMargin: 15 + verticalCenter: parent.verticalCenter + } + } + + BusyIndicator { + scale: 0.6 + on: delegate.ListView.isCurrentItem && window.loading + anchors { right: parent.right; rightMargin: 10; verticalCenter: parent.verticalCenter } + } + + Rectangle { + width: delegate.width; height: 1; color: "#cccccc" + anchors.bottom: delegate.bottom + visible: delegate.ListView.isCurrentItem ? false : true + } + Rectangle { + width: delegate.width; height: 1; color: "white" + visible: delegate.ListView.isCurrentItem ? false : true + } + + MouseArea { + anchors.fill: delegate + onClicked: { + delegate.ListView.view.currentIndex = index + window.currentFeed = feed + } + } +} diff --git a/demos/declarative/rssnews/qml/rssnews/content/NewsDelegate.qml b/demos/declarative/rssnews/qml/rssnews/content/NewsDelegate.qml new file mode 100644 index 00000000..e709de4e --- /dev/null +++ b/demos/declarative/rssnews/qml/rssnews/content/NewsDelegate.qml @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Item { + id: delegate + height: column.height + 40 + width: delegate.ListView.view.width + + Column { + id: column + x: 20; y: 20 + width: parent.width - 40 + + Text { + id: titleText + text: title; width: parent.width; wrapMode: Text.WordWrap + font { bold: true; family: "Helvetica"; pointSize: 16 } + } + + Text { + id: descriptionText + width: parent.width; text: description + wrapMode: Text.WordWrap; font.family: "Helvetica" + } + } + + Rectangle { + width: parent.width; height: 1; color: "#cccccc" + anchors.bottom: parent.bottom + } +} diff --git a/demos/declarative/rssnews/qml/rssnews/content/RssFeeds.qml b/demos/declarative/rssnews/qml/rssnews/content/RssFeeds.qml new file mode 100644 index 00000000..028e2039 --- /dev/null +++ b/demos/declarative/rssnews/qml/rssnews/content/RssFeeds.qml @@ -0,0 +1,59 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +ListModel { + id: rssFeeds + + ListElement { name: "Top Stories"; feed: "rss.news.yahoo.com/rss/topstories" } + ListElement { name: "World"; feed: "rss.news.yahoo.com/rss/world" } + ListElement { name: "Europe"; feed: "rss.news.yahoo.com/rss/europe" } + ListElement { name: "Oceania"; feed: "rss.news.yahoo.com/rss/oceania" } + ListElement { name: "U.S. National"; feed: "rss.news.yahoo.com/rss/us" } + ListElement { name: "Politics"; feed: "rss.news.yahoo.com/rss/politics" } + ListElement { name: "Business"; feed: "rss.news.yahoo.com/rss/business" } + ListElement { name: "Technology"; feed: "rss.news.yahoo.com/rss/tech" } + ListElement { name: "Entertainment"; feed: "rss.news.yahoo.com/rss/entertainment" } + ListElement { name: "Health"; feed: "rss.news.yahoo.com/rss/health" } + ListElement { name: "Science"; feed: "rss.news.yahoo.com/rss/science" } + ListElement { name: "Sports"; feed: "rss.news.yahoo.com/rss/sports" } +} diff --git a/demos/declarative/rssnews/qml/rssnews/content/ScrollBar.qml b/demos/declarative/rssnews/qml/rssnews/content/ScrollBar.qml new file mode 100644 index 00000000..109aa0ca --- /dev/null +++ b/demos/declarative/rssnews/qml/rssnews/content/ScrollBar.qml @@ -0,0 +1,107 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Item { + id: container + + property variant scrollArea + property variant orientation: Qt.Vertical + + opacity: 0 + + function position() + { + var ny = 0; + if (container.orientation == Qt.Vertical) + ny = scrollArea.visibleArea.yPosition * container.height; + else + ny = scrollArea.visibleArea.xPosition * container.width; + if (ny > 2) return ny; else return 2; + } + + function size() + { + var nh, ny; + + if (container.orientation == Qt.Vertical) + nh = scrollArea.visibleArea.heightRatio * container.height; + else + nh = scrollArea.visibleArea.widthRatio * container.width; + + if (container.orientation == Qt.Vertical) + ny = scrollArea.visibleArea.yPosition * container.height; + else + ny = scrollArea.visibleArea.xPosition * container.width; + + if (ny > 3) { + var t; + if (container.orientation == Qt.Vertical) + t = Math.ceil(container.height - 3 - ny); + else + t = Math.ceil(container.width - 3 - ny); + if (nh > t) return t; else return nh; + } else return nh + ny; + } + + Rectangle { anchors.fill: parent; color: "Black"; opacity: 0.3 } + + BorderImage { + source: "images/scrollbar.png" + border { left: 1; right: 1; top: 1; bottom: 1 } + x: container.orientation == Qt.Vertical ? 2 : position() + width: container.orientation == Qt.Vertical ? container.width - 4 : size() + y: container.orientation == Qt.Vertical ? position() : 2 + height: container.orientation == Qt.Vertical ? size() : container.height - 4 + } + + states: State { + name: "visible" + when: container.orientation == Qt.Vertical ? scrollArea.movingVertically : scrollArea.movingHorizontally + PropertyChanges { target: container; opacity: 1.0 } + } + + transitions: Transition { + from: "visible"; to: "" + NumberAnimation { properties: "opacity"; duration: 600 } + } +} diff --git a/demos/declarative/rssnews/qml/rssnews/content/images/busy.png b/demos/declarative/rssnews/qml/rssnews/content/images/busy.png new file mode 100644 index 00000000..664c2b14 Binary files /dev/null and b/demos/declarative/rssnews/qml/rssnews/content/images/busy.png differ diff --git a/demos/declarative/rssnews/qml/rssnews/content/images/scrollbar.png b/demos/declarative/rssnews/qml/rssnews/content/images/scrollbar.png new file mode 100644 index 00000000..0228dcf9 Binary files /dev/null and b/demos/declarative/rssnews/qml/rssnews/content/images/scrollbar.png differ diff --git a/demos/declarative/rssnews/qml/rssnews/rssnews.qml b/demos/declarative/rssnews/qml/rssnews/rssnews.qml new file mode 100644 index 00000000..6b0e830a --- /dev/null +++ b/demos/declarative/rssnews/qml/rssnews/rssnews.qml @@ -0,0 +1,111 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 +import "content" + +Rectangle { + id: window + width: 800; height: 480 + + property string currentFeed: "rss.news.yahoo.com/rss/topstories" + property bool loading: feedModel.status == XmlListModel.Loading + + RssFeeds { id: rssFeeds } + + XmlListModel { + id: feedModel + source: "http://" + window.currentFeed + query: "/rss/channel/item" + + XmlRole { name: "title"; query: "title/string()" } + XmlRole { name: "link"; query: "link/string()" } + XmlRole { name: "description"; query: "description/string()" } + } + + Row { + Rectangle { + width: 220; height: window.height + color: "#efefef" + + ListView { + focus: true + id: categories + anchors.fill: parent + model: rssFeeds + footer: quitButtonDelegate + delegate: CategoryDelegate {} + highlight: Rectangle { color: "steelblue" } + highlightMoveSpeed: 9999999 + } + ScrollBar { + scrollArea: categories; height: categories.height; width: 8 + anchors.right: categories.right + } + } + ListView { + id: list + width: window.width - 220; height: window.height + model: feedModel + delegate: NewsDelegate {} + } + } + Component { + id: quitButtonDelegate + Item { + width: categories.width; height: 60 + Text { + text: "Quit" + font { family: "Helvetica"; pixelSize: 16; bold: true } + anchors { + left: parent.left; leftMargin: 15 + verticalCenter: parent.verticalCenter + } + } + MouseArea { + anchors.fill: parent + onClicked: Qt.quit() + } + } + } + ScrollBar { scrollArea: list; height: list.height; width: 8; anchors.right: window.right } + Rectangle { x: 220; height: window.height; width: 1; color: "#cccccc" } +} diff --git a/demos/declarative/rssnews/rssnews.desktop b/demos/declarative/rssnews/rssnews.desktop new file mode 100644 index 00000000..7d02ed5f --- /dev/null +++ b/demos/declarative/rssnews/rssnews.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Type=Application +Terminal=false +Name=rssnews +Exec=/opt/rssnews/bin/rssnews +Icon=rssnews64 +X-Window-Icon= +X-HildonDesk-ShowInToolbar=true +X-Osso-Type=application/x-executable diff --git a/demos/declarative/rssnews/rssnews.pro b/demos/declarative/rssnews/rssnews.pro new file mode 100644 index 00000000..6b1f68c2 --- /dev/null +++ b/demos/declarative/rssnews/rssnews.pro @@ -0,0 +1,39 @@ +# Add more folders to ship with the application, here +folder_01.source = qml/rssnews +folder_01.target = qml +DEPLOYMENTFOLDERS = folder_01 + +# Additional import path used to resolve QML modules in Creator's code model +QML_IMPORT_PATH = + +symbian:TARGET.UID3 = 0xE6B4EF2C + +# Smart Installer package's UID +# This UID is from the protected range and therefore the package will +# fail to install if self-signed. By default qmake uses the unprotected +# range value if unprotected UID is defined for the application and +# 0x2002CCCF value if protected UID is given to the application +#symbian:DEPLOYMENT.installer_header = 0x2002CCCF + +# Allow network access on Symbian +symbian:TARGET.CAPABILITY += NetworkServices + +# If your application uses the Qt Mobility libraries, uncomment the following +# lines and add the respective components to the MOBILITY variable. +# CONFIG += mobility +# MOBILITY += + +# Speed up launching on MeeGo/Harmattan when using applauncherd daemon +# CONFIG += qdeclarative-boostable + +# Add dependency to Symbian components +# CONFIG += qt-components + +# The .cpp file which was generated for your project. Feel free to hack it. +SOURCES += main.cpp + +# Please do not modify the following two lines. Required for deployment. +desktopInstallPrefix=$$[QT_INSTALL_DEMOS]/declarative/rssnews +exists(qmlapplicationviewer/qmlapplicationviewer.pri):include(qmlapplicationviewer/qmlapplicationviewer.pri) +else:include(../../helper/qmlapplicationviewer/qmlapplicationviewer.pri) +qtcAddDeployment() diff --git a/demos/declarative/rssnews/rssnews.qmlproject b/demos/declarative/rssnews/rssnews.qmlproject new file mode 100644 index 00000000..608be8d3 --- /dev/null +++ b/demos/declarative/rssnews/rssnews.qmlproject @@ -0,0 +1,16 @@ +import QmlProject 1.0 + +Project { + /* Include .qml, .js, and image files from current directory and subdirectories */ + QmlFiles { + directory: "qml/rssnews" + } + JavaScriptFiles { + directory: "qml/rssnews" + } + ImageFiles { + directory: "qml/rssnews" + } + /* List of plugin directories passed to QML runtime */ + // importPaths: [ " ../exampleplugin " ] +} diff --git a/demos/declarative/rssnews/rssnews.svg b/demos/declarative/rssnews/rssnews.svg new file mode 100644 index 00000000..566acfad --- /dev/null +++ b/demos/declarative/rssnews/rssnews.svg @@ -0,0 +1,93 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/demos/declarative/rssnews/rssnews64.png b/demos/declarative/rssnews/rssnews64.png new file mode 100644 index 00000000..707d5c4e Binary files /dev/null and b/demos/declarative/rssnews/rssnews64.png differ diff --git a/demos/declarative/rssnews/rssnews80.png b/demos/declarative/rssnews/rssnews80.png new file mode 100644 index 00000000..6ad8096c Binary files /dev/null and b/demos/declarative/rssnews/rssnews80.png differ diff --git a/demos/declarative/rssnews/rssnews_harmattan.desktop b/demos/declarative/rssnews/rssnews_harmattan.desktop new file mode 100644 index 00000000..df6303ff --- /dev/null +++ b/demos/declarative/rssnews/rssnews_harmattan.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Type=Application +Terminal=false +Name=rssnews +Exec=/usr/bin/single-instance /opt/rssnews/bin/rssnews +Icon=/usr/share/icons/hicolor/80x80/apps/rssnews80.png +X-Window-Icon= +X-HildonDesk-ShowInToolbar=true +X-Osso-Type=application/x-executable diff --git a/demos/declarative/samegame/main.cpp b/demos/declarative/samegame/main.cpp new file mode 100644 index 00000000..819e86b1 --- /dev/null +++ b/demos/declarative/samegame/main.cpp @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the examples 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$ +** +****************************************************************************/ + +#include "qmlapplicationviewer.h" +#include + +Q_DECL_EXPORT int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + QmlApplicationViewer viewer; + viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto); + viewer.setMainQmlFile(QLatin1String("qml/samegame/samegame.qml")); + viewer.showExpanded(); + + return app.exec(); +} diff --git a/demos/declarative/samegame/qml/samegame/SamegameCore/BoomBlock.qml b/demos/declarative/samegame/qml/samegame/SamegameCore/BoomBlock.qml new file mode 100644 index 00000000..b244238b --- /dev/null +++ b/demos/declarative/samegame/qml/samegame/SamegameCore/BoomBlock.qml @@ -0,0 +1,109 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.1 +import Qt.labs.particles 1.0 + +Item { + id: block + property bool dying: false + property bool spawned: false + property int type: 0 + + Behavior on x { + enabled: spawned; + SpringAnimation{ spring: 2; damping: 0.2 } + } + Behavior on y { + SpringAnimation{ spring: 2; damping: 0.2 } + } + + Image { + id: img + source: { + if(type == 0){ + "pics/redStone.png"; + } else if(type == 1) { + "pics/blueStone.png"; + } else { + "pics/greenStone.png"; + } + } + opacity: 0 + Behavior on opacity { NumberAnimation { duration: 200 } } + anchors.fill: parent + } + + Particles { + id: particles + + width: 1; height: 1 + anchors.centerIn: parent + + emissionRate: 0 + lifeSpan: 700; lifeSpanDeviation: 600 + angle: 0; angleDeviation: 360; + velocity: 100; velocityDeviation: 30 + source: { + if(type == 0){ + "pics/redStar.png"; + } else if (type == 1) { + "pics/blueStar.png"; + } else { + "pics/greenStar.png"; + } + } + } + + states: [ + State { + name: "AliveState"; when: spawned == true && dying == false + PropertyChanges { target: img; opacity: 1 } + }, + + State { + name: "DeathState"; when: dying == true + StateChangeScript { script: particles.burst(50); } + PropertyChanges { target: img; opacity: 0 } + StateChangeScript { script: block.destroy(1000); } + } + ] +} diff --git a/demos/declarative/samegame/qml/samegame/SamegameCore/Button.qml b/demos/declarative/samegame/qml/samegame/SamegameCore/Button.qml new file mode 100644 index 00000000..df7ac56f --- /dev/null +++ b/demos/declarative/samegame/qml/samegame/SamegameCore/Button.qml @@ -0,0 +1,75 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Rectangle { + id: container + + property string text: "Button" + + signal clicked + + width: buttonLabel.width + 20; height: buttonLabel.height + 20 + smooth: true + border { width: 1; color: Qt.darker(activePalette.button) } + radius: 8 + color: activePalette.button + + gradient: Gradient { + GradientStop { + position: 0.0 + color: { + if (mouseArea.pressed) + return activePalette.dark + else + return activePalette.light + } + } + GradientStop { position: 1.0; color: activePalette.button } + } + + MouseArea { id: mouseArea; anchors.fill: parent; onClicked: container.clicked() } + + Text { + id: buttonLabel; text: container.text; anchors.centerIn: container; color: activePalette.buttonText; font.pixelSize: 24 + } +} diff --git a/demos/declarative/samegame/qml/samegame/SamegameCore/Dialog.qml b/demos/declarative/samegame/qml/samegame/SamegameCore/Dialog.qml new file mode 100644 index 00000000..3c86f366 --- /dev/null +++ b/demos/declarative/samegame/qml/samegame/SamegameCore/Dialog.qml @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.1 + +Rectangle { + id: page + + property Item text: dialogText + + signal closed + signal opened + function forceClose() { + if(page.opacity == 0) + return; //already closed + page.closed(); + page.opacity = 0; + } + + function show(txt) { + page.opened(); + dialogText.text = txt; + page.opacity = 1; + } + + width: dialogText.width + 20; height: dialogText.height + 20 + color: "white" + border.width: 1 + opacity: 0 + visible: opacity > 0 + Behavior on opacity { + NumberAnimation { duration: 1000 } + } + + Text { id: dialogText; anchors.centerIn: parent; text: "Hello World!" } + + MouseArea { anchors.fill: parent; onClicked: forceClose(); } +} + diff --git a/demos/declarative/samegame/qml/samegame/SamegameCore/pics/background.png b/demos/declarative/samegame/qml/samegame/SamegameCore/pics/background.png new file mode 100644 index 00000000..3734a277 Binary files /dev/null and b/demos/declarative/samegame/qml/samegame/SamegameCore/pics/background.png differ diff --git a/demos/declarative/samegame/qml/samegame/SamegameCore/pics/blueStar.png b/demos/declarative/samegame/qml/samegame/SamegameCore/pics/blueStar.png new file mode 100644 index 00000000..ff9588f8 Binary files /dev/null and b/demos/declarative/samegame/qml/samegame/SamegameCore/pics/blueStar.png differ diff --git a/demos/declarative/samegame/qml/samegame/SamegameCore/pics/blueStone.png b/demos/declarative/samegame/qml/samegame/SamegameCore/pics/blueStone.png new file mode 100644 index 00000000..20e43c75 Binary files /dev/null and b/demos/declarative/samegame/qml/samegame/SamegameCore/pics/blueStone.png differ diff --git a/demos/declarative/samegame/qml/samegame/SamegameCore/pics/greenStar.png b/demos/declarative/samegame/qml/samegame/SamegameCore/pics/greenStar.png new file mode 100644 index 00000000..cd068547 Binary files /dev/null and b/demos/declarative/samegame/qml/samegame/SamegameCore/pics/greenStar.png differ diff --git a/demos/declarative/samegame/qml/samegame/SamegameCore/pics/greenStone.png b/demos/declarative/samegame/qml/samegame/SamegameCore/pics/greenStone.png new file mode 100644 index 00000000..b568a190 Binary files /dev/null and b/demos/declarative/samegame/qml/samegame/SamegameCore/pics/greenStone.png differ diff --git a/demos/declarative/samegame/qml/samegame/SamegameCore/pics/redStar.png b/demos/declarative/samegame/qml/samegame/SamegameCore/pics/redStar.png new file mode 100644 index 00000000..0a4dffe5 Binary files /dev/null and b/demos/declarative/samegame/qml/samegame/SamegameCore/pics/redStar.png differ diff --git a/demos/declarative/samegame/qml/samegame/SamegameCore/pics/redStone.png b/demos/declarative/samegame/qml/samegame/SamegameCore/pics/redStone.png new file mode 100644 index 00000000..36b09a26 Binary files /dev/null and b/demos/declarative/samegame/qml/samegame/SamegameCore/pics/redStone.png differ diff --git a/demos/declarative/samegame/qml/samegame/SamegameCore/pics/star.png b/demos/declarative/samegame/qml/samegame/SamegameCore/pics/star.png new file mode 100644 index 00000000..defbde53 Binary files /dev/null and b/demos/declarative/samegame/qml/samegame/SamegameCore/pics/star.png differ diff --git a/demos/declarative/samegame/qml/samegame/SamegameCore/pics/yellowStone.png b/demos/declarative/samegame/qml/samegame/SamegameCore/pics/yellowStone.png new file mode 100644 index 00000000..b1ce7621 Binary files /dev/null and b/demos/declarative/samegame/qml/samegame/SamegameCore/pics/yellowStone.png differ diff --git a/demos/declarative/samegame/qml/samegame/SamegameCore/qmldir b/demos/declarative/samegame/qml/samegame/SamegameCore/qmldir new file mode 100644 index 00000000..e17b1f5d --- /dev/null +++ b/demos/declarative/samegame/qml/samegame/SamegameCore/qmldir @@ -0,0 +1,3 @@ +BoomBlock BoomBlock.qml +Button Button.qml +Dialog Dialog.qml diff --git a/demos/declarative/samegame/qml/samegame/SamegameCore/samegame.js b/demos/declarative/samegame/qml/samegame/SamegameCore/samegame.js new file mode 100644 index 00000000..d7b827a1 --- /dev/null +++ b/demos/declarative/samegame/qml/samegame/SamegameCore/samegame.js @@ -0,0 +1,288 @@ +/* This script file handles the game logic */ + +var maxColumn = 10; +var maxRow = 15; +var maxIndex = maxColumn*maxRow; +var board = new Array(maxIndex); +var blockSrc = "SamegameCore/BoomBlock.qml"; +var scoresURL = ""; +var gameDuration; +var component = Qt.createComponent(blockSrc); +var highScoreBar = 0; + +// Index function used instead of a 2D array +function index(column, row) +{ + return column + row * maxColumn; +} + +function timeStr(msecs) +{ + var secs = Math.floor(msecs/1000); + var m = Math.floor(secs/60); + var ret = "" + m + "m " + (secs%60) + "s"; + return ret; +} + +function startNewGame() +{ + // Delete blocks from previous game + for (var i = 0; i < maxIndex; i++) { + if (board[i] != null) + board[i].destroy(); + } + + // Calculate board size + maxColumn = Math.floor(gameCanvas.width/gameCanvas.blockSize); + maxRow = Math.floor(gameCanvas.height/gameCanvas.blockSize); + maxIndex = maxRow * maxColumn; + + // Close dialogs + nameInputDialog.forceClose(); + dialog.forceClose(); + + // Initialize Board + board = new Array(maxIndex); + gameCanvas.score = 0; + for (var column = 0; column < maxColumn; column++) { + for (var row = 0; row < maxRow; row++) { + board[index(column, row)] = null; + createBlock(column, row); + } + } + gameDuration = new Date(); +} + +var fillFound; // Set after a floodFill call to the number of blocks found +var floodBoard; // Set to 1 if the floodFill reaches off that node + +// NOTE: Be careful with vars named x,y, as the calling object's x,y are still in scope +function handleClick(x,y) +{ + var column = Math.floor(x/gameCanvas.blockSize); + var row = Math.floor(y/gameCanvas.blockSize); + if (column >= maxColumn || column < 0 || row >= maxRow || row < 0) + return; + if (board[index(column, row)] == null) + return; + // If it's a valid block, remove it and all connected (does nothing if it's not connected) + floodFill(column,row, -1); + if (fillFound <= 0) + return; + gameCanvas.score += (fillFound - 1) * (fillFound - 1); + shuffleDown(); + victoryCheck(); +} + +function floodFill(column,row,type) +{ + if (board[index(column, row)] == null) + return; + var first = false; + if (type == -1) { + first = true; + type = board[index(column,row)].type; + + // Flood fill initialization + fillFound = 0; + floodBoard = new Array(maxIndex); + } + if (column >= maxColumn || column < 0 || row >= maxRow || row < 0) + return; + if (floodBoard[index(column, row)] == 1 || (!first && type != board[index(column, row)].type)) + return; + floodBoard[index(column, row)] = 1; + floodFill(column + 1, row, type); + floodFill(column - 1, row, type); + floodFill(column, row + 1, type); + floodFill(column, row - 1, type); + if (first == true && fillFound == 0) + return; // Can't remove single blocks + board[index(column, row)].dying = true; + board[index(column, row)] = null; + fillFound += 1; +} + +function shuffleDown() +{ + // Fall down + for (var column = 0; column < maxColumn; column++) { + var fallDist = 0; + for (var row = maxRow - 1; row >= 0; row--) { + if (board[index(column,row)] == null) { + fallDist += 1; + } else { + if (fallDist > 0) { + var obj = board[index(column, row)]; + obj.y = (row + fallDist) * gameCanvas.blockSize; + board[index(column, row + fallDist)] = obj; + board[index(column, row)] = null; + } + } + } + } + // Fall to the left + fallDist = 0; + for (column = 0; column < maxColumn; column++) { + if (board[index(column, maxRow - 1)] == null) { + fallDist += 1; + } else { + if (fallDist > 0) { + for (row = 0; row < maxRow; row++) { + obj = board[index(column, row)]; + if (obj == null) + continue; + obj.x = (column - fallDist) * gameCanvas.blockSize; + board[index(column - fallDist,row)] = obj; + board[index(column, row)] = null; + } + } + } + } +} + +function victoryCheck() +{ + // Awards bonuses for no blocks left + var deservesBonus = true; + for (var column = maxColumn - 1; column >= 0; column--) + if (board[index(column, maxRow - 1)] != null) + deservesBonus = false; + if (deservesBonus) + gameCanvas.score += 500; + // Checks for game over + if (deservesBonus || !(floodMoveCheck(0, maxRow - 1, -1))) { + gameDuration = new Date() - gameDuration; + if(gameCanvas.score > highScoreBar){ + nameInputDialog.show("You won! Please enter your name: "); + nameInputDialog.initialWidth = nameInputDialog.text.width + 20; + if (nameInputDialog.name == "") + nameInputDialog.width = nameInputDialog.initialWidth; + nameInputDialog.text.opacity = 0; // Just a spacer + }else{ + dialog.show("You won!"); + } + } +} + +// Only floods up and right, to see if it can find adjacent same-typed blocks +function floodMoveCheck(column, row, type) +{ + if (column >= maxColumn || column < 0 || row >= maxRow || row < 0) + return false; + if (board[index(column, row)] == null) + return false; + var myType = board[index(column, row)].type; + if (type == myType) + return true; + return floodMoveCheck(column + 1, row, myType) || + floodMoveCheck(column, row - 1, board[index(column, row)].type); +} + +function createBlock(column,row) +{ + // Note that we don't wait for the component to become ready. This will + // only work if the block QML is a local file. Otherwise the component will + // not be ready immediately. There is a statusChanged signal on the + // component you could use if you want to wait to load remote files. + if(component.status == Component.Ready){ + var dynamicObject = component.createObject(gameCanvas, + {"type": Math.floor(Math.random() * 3), + "x": column*gameCanvas.blockSize, + "width": gameCanvas.blockSize, + "height": gameCanvas.blockSize}); + if(dynamicObject == null){ + console.log("error creating block"); + console.log(component.errorString()); + return false; + } + dynamicObject.y = row*gameCanvas.blockSize; + dynamicObject.spawned = true; + + board[index(column,row)] = dynamicObject; + }else{ + console.log("error loading block component"); + console.log(component.errorString()); + return false; + } + return true; +} + +function initHighScoreBar() +{ + if(scoresURL != "") + return true;//don't query remote scores + var db = openDatabaseSync( + "SameGameScores", + "1.0", + "Local SameGame High Scores", + 100 + ); + db.transaction( + function(tx) { + tx.executeSql('CREATE TABLE IF NOT EXISTS Scores(name TEXT, score NUMBER, gridSize TEXT, time NUMBER)'); + // Only show results for the current grid size + var rs = tx.executeSql('SELECT * FROM Scores WHERE gridSize = "' + + maxColumn + "x" + maxRow + '" ORDER BY score desc LIMIT 10'); + if(rs.rows.length < 10) + highScoreBar = 0; + else + highScoreBar = rs.rows.item(rs.rows.length - 1).score; + } + ); +} + +function saveHighScore(name) +{ + if (scoresURL != "") + sendHighScore(name); + // Offline storage + var db = openDatabaseSync( + "SameGameScores", + "1.0", + "Local SameGame High Scores", + 100 + ); + var dataStr = "INSERT INTO Scores VALUES(?, ?, ?, ?)"; + var data = [ + name, + gameCanvas.score, + maxColumn + "x" + maxRow, + Math.floor(gameDuration / 1000) + ]; + db.transaction( + function(tx) { + tx.executeSql('CREATE TABLE IF NOT EXISTS Scores(name TEXT, score NUMBER, gridSize TEXT, time NUMBER)'); + tx.executeSql(dataStr, data); + + // Only show results for the current grid size + var rs = tx.executeSql('SELECT * FROM Scores WHERE gridSize = "' + + maxColumn + "x" + maxRow + '" ORDER BY score desc LIMIT 10'); + var r = "\nHIGH SCORES for this grid size\n\n" + for (var i = 0; i < rs.rows.length; i++) { + r += (i+1) + ". " + rs.rows.item(i).name + ' got ' + + rs.rows.item(i).score + ' points in ' + + rs.rows.item(i).time + ' seconds.\n'; + } + if(rs.rows.length == 10) + highScoreBar = rs.rows.item(9).score; + dialog.show(r); + } + ); +} + +function sendHighScore(name) +{ + var postman = new XMLHttpRequest() + var postData = "name=" + name + "&score=" + gameCanvas.score + + "&gridSize=" + maxColumn + "x" + maxRow + + "&time=" + Math.floor(gameDuration / 1000); + postman.open("POST", scoresURL, true); + postman.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); + postman.onreadystatechange = function() { + if (postman.readyState == postman.DONE) { + dialog.show("Your score has been uploaded."); + } + } + postman.send(postData); +} diff --git a/demos/declarative/samegame/qml/samegame/highscores/README b/demos/declarative/samegame/qml/samegame/highscores/README new file mode 100644 index 00000000..eaa00fae --- /dev/null +++ b/demos/declarative/samegame/qml/samegame/highscores/README @@ -0,0 +1 @@ +The SameGame example can interface with a simple PHP script to store XML high score data on a remote server. We do not have a publically accessible server available for this use, but if you have access to a PHP capable webserver you can copy the files (score_data.xml, score.php, score_style.xsl) to it and alter the highscore_server variable at the top of the samegame.js file to point to it. diff --git a/demos/declarative/samegame/qml/samegame/highscores/score_data.xml b/demos/declarative/samegame/qml/samegame/highscores/score_data.xml new file mode 100644 index 00000000..c3fd90d9 --- /dev/null +++ b/demos/declarative/samegame/qml/samegame/highscores/score_data.xml @@ -0,0 +1,2 @@ +1000000Alan the Tester0x00 +6213Alan12x1751 diff --git a/demos/declarative/samegame/qml/samegame/highscores/score_style.xsl b/demos/declarative/samegame/qml/samegame/highscores/score_style.xsl new file mode 100644 index 00000000..670354c9 --- /dev/null +++ b/demos/declarative/samegame/qml/samegame/highscores/score_style.xsl @@ -0,0 +1,28 @@ + + + + + SameGame High Scores + +

SameGame High Scores

+ + + + + + + + + + + + + + + + +
NameScoreGrid SizeTime, s
+ + +
+
diff --git a/demos/declarative/samegame/qml/samegame/highscores/scores.php b/demos/declarative/samegame/qml/samegame/highscores/scores.php new file mode 100644 index 00000000..3cceb2d7 --- /dev/null +++ b/demos/declarative/samegame/qml/samegame/highscores/scores.php @@ -0,0 +1,34 @@ +"; + echo "SameGame High Scores"; + if($score > 0){#Sending in a new high score + $name = $_POST["name"]; + $grid = $_POST["gridSize"]; + $time = $_POST["time"]; + if($name == "") + $name = "Anonymous"; + //if($grid != "10x10"){ + //Need a standard, so as to reject others? + //} + $file = fopen("score_data.xml", "a"); #It's XML. Happy? + $ret = fwrite($file, "". $score . "" + . $name . "" . $grid . "" + . $time . "\n"); + echo "Your score has been recorded. Thanks for playing!"; + if($ret == False) + echo "
There was an error though, so don't expect to see that score again."; + }else{#Read high score list + #Now uses XSLT to display. So just print the file. With XML cruft added. + #Note that firefox at least won't apply the XSLT on a php file. So redirecting + $file = fopen("scores.xml", "w"); + $ret = fwrite($file, '' . "\n" + . '' . "\n" + . "\n" . file_get_contents("score_data.xml") . "\n"); + if($ret == False) + echo "There was an internal error. Sorry."; + else + echo ''; + } + echo ""; +?> diff --git a/demos/declarative/samegame/qml/samegame/samegame.qml b/demos/declarative/samegame/qml/samegame/samegame.qml new file mode 100644 index 00000000..ee8898af --- /dev/null +++ b/demos/declarative/samegame/qml/samegame/samegame.qml @@ -0,0 +1,161 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.1 +import "SamegameCore" +import "SamegameCore/samegame.js" as Logic + +Rectangle { + id: screen + width: 490; height: 720 + property bool inAnotherDemo: false //Samegame often is just plonked straight into other demos + + SystemPalette { id: activePalette } + + Item { + width: parent.width + anchors { top: parent.top; bottom: toolBar.top } + + Image { + id: background + anchors.fill: parent + source: "SamegameCore/pics/background.png" + fillMode: Image.PreserveAspectCrop + } + + Item { + id: gameCanvas + property int score: 0 + property int blockSize: 40 + + z: 20; anchors.centerIn: parent + width: parent.width - (parent.width % blockSize); + height: parent.height - (parent.height % blockSize); + + MouseArea { + anchors.fill: parent; onClicked: Logic.handleClick(mouse.x,mouse.y); + } + } + } + + Dialog { id: dialog; anchors.centerIn: parent; z: 21 } + + Dialog { + id: nameInputDialog + + property int initialWidth: 0 + property alias name: nameInputText.text + + anchors.centerIn: parent + z: 22; + + Behavior on width { + NumberAnimation {} + enabled: nameInputDialog.initialWidth != 0 + } + + onClosed: { + if (nameInputText.text != "") + Logic.saveHighScore(nameInputText.text); + } + Text { + id: dialogText + anchors { left: nameInputDialog.left; leftMargin: 20; verticalCenter: parent.verticalCenter } + text: "You won! Please enter your name: " + } + MouseArea { + anchors.fill: parent + onClicked: { + if (nameInputText.text == "") + nameInputText.openSoftwareInputPanel(); + else + nameInputDialog.forceClose(); + } + } + + TextInput { + id: nameInputText + anchors { verticalCenter: parent.verticalCenter; left: dialogText.right } + focus: visible + autoScroll: false + maximumLength: 24 + onTextChanged: { + var newWidth = nameInputText.width + dialogText.width + 40; + if ( (newWidth > nameInputDialog.width && newWidth < screen.width) + || (nameInputDialog.width > nameInputDialog.initialWidth) ) + nameInputDialog.width = newWidth; + } + onAccepted: { + nameInputDialog.forceClose(); + } + } + } + + Rectangle { + id: toolBar + width: parent.width; height: 58 + color: activePalette.window + anchors.bottom: screen.bottom + + Button { + id: newGameButton + anchors { left: parent.left; leftMargin: 3; verticalCenter: parent.verticalCenter } + text: "New Game" + onClicked: Logic.startNewGame() + } + + Button { + visible: !inAnotherDemo + text: "Quit" + anchors { left: newGameButton.right; leftMargin: 3; verticalCenter: parent.verticalCenter } + onClicked: Qt.quit(); + } + + Text { + id: score + anchors { right: parent.right; rightMargin: 3; verticalCenter: parent.verticalCenter } + text: "Score: " + gameCanvas.score + font.bold: true + font.pixelSize: 24 + color: activePalette.windowText + } + } +} diff --git a/demos/declarative/samegame/samegame.desktop b/demos/declarative/samegame/samegame.desktop new file mode 100644 index 00000000..18ad2d98 --- /dev/null +++ b/demos/declarative/samegame/samegame.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Type=Application +Terminal=false +Name=samegame +Exec=/opt/samegame/bin/samegame +Icon=samegame64 +X-Window-Icon= +X-HildonDesk-ShowInToolbar=true +X-Osso-Type=application/x-executable diff --git a/demos/declarative/samegame/samegame.pro b/demos/declarative/samegame/samegame.pro new file mode 100644 index 00000000..fb85cd22 --- /dev/null +++ b/demos/declarative/samegame/samegame.pro @@ -0,0 +1,39 @@ +# Add more folders to ship with the application, here +folder_01.source = qml/samegame +folder_01.target = qml +DEPLOYMENTFOLDERS = folder_01 + +# Additional import path used to resolve QML modules in Creator's code model +QML_IMPORT_PATH = + +symbian:TARGET.UID3 = 0xE76774C3 + +# Smart Installer package's UID +# This UID is from the protected range and therefore the package will +# fail to install if self-signed. By default qmake uses the unprotected +# range value if unprotected UID is defined for the application and +# 0x2002CCCF value if protected UID is given to the application +#symbian:DEPLOYMENT.installer_header = 0x2002CCCF + +# Allow network access on Symbian +symbian:TARGET.CAPABILITY += NetworkServices + +# If your application uses the Qt Mobility libraries, uncomment the following +# lines and add the respective components to the MOBILITY variable. +# CONFIG += mobility +# MOBILITY += + +# Speed up launching on MeeGo/Harmattan when using applauncherd daemon +# CONFIG += qdeclarative-boostable + +# Add dependency to Symbian components +# CONFIG += qt-components + +# The .cpp file which was generated for your project. Feel free to hack it. +SOURCES += main.cpp + +# Please do not modify the following two lines. Required for deployment. +desktopInstallPrefix=$$[QT_INSTALL_DEMOS]/declarative/samegame +exists(qmlapplicationviewer/qmlapplicationviewer.pri):include(qmlapplicationviewer/qmlapplicationviewer.pri) +else:include(../../helper/qmlapplicationviewer/qmlapplicationviewer.pri) +qtcAddDeployment() diff --git a/demos/declarative/samegame/samegame.qmlproject b/demos/declarative/samegame/samegame.qmlproject new file mode 100644 index 00000000..c17ee1ee --- /dev/null +++ b/demos/declarative/samegame/samegame.qmlproject @@ -0,0 +1,16 @@ +import QmlProject 1.0 + +Project { + /* Include .qml, .js, and image files from current directory and subdirectories */ + QmlFiles { + directory: "qml/samegame" + } + JavaScriptFiles { + directory: "qml/samegame" + } + ImageFiles { + directory: "qml/samegame" + } + /* List of plugin directories passed to QML runtime */ + // importPaths: [ " ../exampleplugin " ] +} diff --git a/demos/declarative/samegame/samegame.svg b/demos/declarative/samegame/samegame.svg new file mode 100644 index 00000000..566acfad --- /dev/null +++ b/demos/declarative/samegame/samegame.svg @@ -0,0 +1,93 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/demos/declarative/samegame/samegame64.png b/demos/declarative/samegame/samegame64.png new file mode 100644 index 00000000..707d5c4e Binary files /dev/null and b/demos/declarative/samegame/samegame64.png differ diff --git a/demos/declarative/samegame/samegame80.png b/demos/declarative/samegame/samegame80.png new file mode 100644 index 00000000..6ad8096c Binary files /dev/null and b/demos/declarative/samegame/samegame80.png differ diff --git a/demos/declarative/samegame/samegame_harmattan.desktop b/demos/declarative/samegame/samegame_harmattan.desktop new file mode 100644 index 00000000..1f35b8e3 --- /dev/null +++ b/demos/declarative/samegame/samegame_harmattan.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Type=Application +Terminal=false +Name=samegame +Exec=/usr/bin/single-instance /opt/samegame/bin/samegame +Icon=/usr/share/icons/hicolor/80x80/apps/samegame80.png +X-Window-Icon= +X-HildonDesk-ShowInToolbar=true +X-Osso-Type=application/x-executable diff --git a/demos/declarative/snake/main.cpp b/demos/declarative/snake/main.cpp new file mode 100644 index 00000000..cd2b5126 --- /dev/null +++ b/demos/declarative/snake/main.cpp @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the examples 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$ +** +****************************************************************************/ + +#include "qmlapplicationviewer.h" +#include + +Q_DECL_EXPORT int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + QmlApplicationViewer viewer; + viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto); + viewer.setMainQmlFile(QLatin1String("qml/snake/snake.qml")); + viewer.showExpanded(); + + return app.exec(); +} diff --git a/demos/declarative/snake/qml/snake/content/Button.qml b/demos/declarative/snake/qml/snake/content/Button.qml new file mode 100644 index 00000000..6142b1b0 --- /dev/null +++ b/demos/declarative/snake/qml/snake/content/Button.qml @@ -0,0 +1,66 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Rectangle { + id: container + + signal clicked + property string text: "Button" + + color: activePalette.button; smooth: true + width: txtItem.width + 20; height: txtItem.height + 6 + border.width: 1; border.color: Qt.darker(activePalette.button); radius: 8; + + gradient: Gradient { + GradientStop { + id: topGrad; position: 0.0 + color: if (mr.pressed) { activePalette.dark } else { activePalette.light } } + GradientStop { position: 1.0; color: activePalette.button } + } + + MouseArea { id: mr; anchors.fill: parent; onClicked: container.clicked() } + + Text { + id: txtItem; text: container.text; anchors.centerIn: container; color: activePalette.buttonText + } +} diff --git a/demos/declarative/snake/qml/snake/content/Cookie.qml b/demos/declarative/snake/qml/snake/content/Cookie.qml new file mode 100644 index 00000000..b7a3aea6 --- /dev/null +++ b/demos/declarative/snake/qml/snake/content/Cookie.qml @@ -0,0 +1,93 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 +import Qt.labs.particles 1.0 + +Item { + id: root + property bool dying: false + property int row; + property int column; + x: margin + column * gridSize + y: margin + row * gridSize + + width: gridSize + height: gridSize + property int value : 1; + + Image { + id: img + anchors.fill: parent + source: "pics/cookie.png" + opacity: 0 + Text { + font.bold: true + anchors.verticalCenter: parent.verticalCenter + anchors.horizontalCenter: parent.horizontalCenter + text: value + } + } + + Particles { id: particles + width:1; height:1; anchors.centerIn: parent; + emissionRate: 0; + lifeSpan: 700; lifeSpanDeviation: 600; + angle: 0; angleDeviation: 360; + velocity: 100; velocityDeviation:30; + source: "pics/yellowStar.png"; + } + + states: [ + State{ name: "AliveState"; when: dying == false + PropertyChanges { target: img; opacity: 1 } + }, + State{ name: "DeathState"; when: dying == true + StateChangeScript { script: particles.burst(50); } + PropertyChanges { target: img; opacity: 0 } + } + ] + transitions: [ + Transition { + NumberAnimation { target: img; property: "opacity"; duration: 100 } + } + ] +} diff --git a/demos/declarative/snake/qml/snake/content/HighScoreModel.qml b/demos/declarative/snake/qml/snake/content/HighScoreModel.qml new file mode 100644 index 00000000..d8d29b79 --- /dev/null +++ b/demos/declarative/snake/qml/snake/content/HighScoreModel.qml @@ -0,0 +1,139 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +// Models a high score table. +// +// Use this component like this: +// +// HighScoreModel { +// id: highScores +// game: "MyCoolGame" +// } +// +// Then use either use the top-score properties: +// +// Text { text: "HI: " + highScores.topScore } +// +// or, use the model in a view: +// +// ListView { +// model: highScore +// delegate: Component { +// ... player ... score ... +// } +// } +// +// Add new scores via: +// +// saveScore(newScore) +// +// or: +// +// savePlayerScore(playerName,newScore) +// +// The best maxScore scores added by this method will be retained in an SQL database, +// and presented in the model and in the topScore/topPlayer properties. +// + +ListModel { + id: model + property string game: "" + property int topScore: 0 + property string topPlayer: "" + property int maxScores: 10 + + function __db() + { + return openDatabaseSync("HighScoreModel", "1.0", "Generic High Score Functionality for QML", 1000000); + } + function __ensureTables(tx) + { + tx.executeSql('CREATE TABLE IF NOT EXISTS HighScores(game TEXT, score INT, player TEXT)', []); + } + + function fillModel() { + __db().transaction( + function(tx) { + __ensureTables(tx); + var rs = tx.executeSql("SELECT score,player FROM HighScores WHERE game=? ORDER BY score DESC", [game]); + model.clear(); + if (rs.rows.length > 0) { + topScore = rs.rows.item(0).score + topPlayer = rs.rows.item(0).player + for (var i=0; i maxScores) + tx.executeSql("DELETE FROM HighScores WHERE game=? AND score <= ?", + [game, rs.rows.item(maxScores).score]); + } + } + ) + } + + function savePlayerScore(player,score) { + __db().transaction( + function(tx) { + __ensureTables(tx); + tx.executeSql("INSERT INTO HighScores VALUES(?,?,?)", [game,score,player]); + fillModel(); + } + ) + } + + function saveScore(score) { + savePlayerScore("player",score); + } + + function clearScores() { + __db().transaction( + function(tx) { + tx.executeSql("DELETE FROM HighScores WHERE game=?", [game]); + fillModel(); + } + ) + } + + Component.onCompleted: { fillModel() } +} diff --git a/demos/declarative/snake/qml/snake/content/Link.qml b/demos/declarative/snake/qml/snake/content/Link.qml new file mode 100644 index 00000000..71c93a02 --- /dev/null +++ b/demos/declarative/snake/qml/snake/content/Link.qml @@ -0,0 +1,128 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 +import Qt.labs.particles 1.0 + +Item { id:link + property bool dying: false + property bool spawned: false + property int type: 0 + property int row: 0 + property int column: 0 + property int rotation; + + width: 40; + height: 40 + + x: margin - 3 + gridSize * column + y: margin - 3 + gridSize * row + Behavior on x { NumberAnimation { duration: spawned ? heartbeatInterval : 0} } + Behavior on y { NumberAnimation { duration: spawned ? heartbeatInterval : 0 } } + + + Item { + id: img + anchors.fill: parent + Image { + source: { + if(type == 1) { + "pics/blueStone.png"; + } else if (type == 2) { + "pics/head.png"; + } else { + "pics/redStone.png"; + } + } + + transform: Rotation { + id: actualImageRotation + origin.x: width/2; origin.y: height/2; + angle: rotation * 90 + Behavior on angle { + RotationAnimation{ + direction: RotationAnimation.Shortest + duration: spawned ? 200 : 0 + } + } + } + } + + Image { + source: "pics/stoneShadow.png" + } + + opacity: 0 + } + + + Particles { id: particles + width:1; height:1; anchors.centerIn: parent; + emissionRate: 0; + lifeSpan: 700; lifeSpanDeviation: 600; + angle: 0; angleDeviation: 360; + velocity: 100; velocityDeviation:30; + source: { + if(type == 1){ + "pics/blueStar.png"; + } else { + "pics/redStar.png"; + } + } + } + + states: [ + State{ name: "AliveState"; when: spawned == true && dying == false + PropertyChanges { target: img; opacity: 1 } + }, + State{ name: "DeathState"; when: dying == true + StateChangeScript { script: particles.burst(50); } + PropertyChanges { target: img; opacity: 0 } + } + ] + + transitions: [ + Transition { + NumberAnimation { target: img; property: "opacity"; duration: 200 } + } + ] + +} diff --git a/demos/declarative/snake/qml/snake/content/Skull.qml b/demos/declarative/snake/qml/snake/content/Skull.qml new file mode 100644 index 00000000..a7ab2e88 --- /dev/null +++ b/demos/declarative/snake/qml/snake/content/Skull.qml @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Image { + property bool spawned: false + property int row; + property int column; + property int verticalMovement; + property int horizontalMovement; + + x: margin + column * gridSize + 2 + y: margin + row * gridSize - 3 + Behavior on x { NumberAnimation { duration: spawned ? halfbeatInterval : 0} } + Behavior on y { NumberAnimation { duration: spawned ? halfbeatInterval : 0 } } + + opacity: spawned ? 1 : 0 + Behavior on opacity { NumberAnimation { duration: 200 } } + + source: "pics/skull.png" + width: 24 + height: 40 +} diff --git a/demos/declarative/snake/qml/snake/content/pics/README b/demos/declarative/snake/qml/snake/content/pics/README new file mode 100644 index 00000000..0215132c --- /dev/null +++ b/demos/declarative/snake/qml/snake/content/pics/README @@ -0,0 +1 @@ +snake.jpg: This image is based on the picture "Eastern Green Mamba.jpg" from the free media databse Wikimedia Commons and is published under the terms of the GNU Free Documentation License. The original picture was taken by Danleo. diff --git a/demos/declarative/snake/qml/snake/content/pics/background.png b/demos/declarative/snake/qml/snake/content/pics/background.png new file mode 100644 index 00000000..72dffaa8 Binary files /dev/null and b/demos/declarative/snake/qml/snake/content/pics/background.png differ diff --git a/demos/declarative/snake/qml/snake/content/pics/blueStar.png b/demos/declarative/snake/qml/snake/content/pics/blueStar.png new file mode 100644 index 00000000..ba7acabd Binary files /dev/null and b/demos/declarative/snake/qml/snake/content/pics/blueStar.png differ diff --git a/demos/declarative/snake/qml/snake/content/pics/blueStone.png b/demos/declarative/snake/qml/snake/content/pics/blueStone.png new file mode 100644 index 00000000..356affdd Binary files /dev/null and b/demos/declarative/snake/qml/snake/content/pics/blueStone.png differ diff --git a/demos/declarative/snake/qml/snake/content/pics/cookie.png b/demos/declarative/snake/qml/snake/content/pics/cookie.png new file mode 100644 index 00000000..aec2957f Binary files /dev/null and b/demos/declarative/snake/qml/snake/content/pics/cookie.png differ diff --git a/demos/declarative/snake/qml/snake/content/pics/eyes.svg b/demos/declarative/snake/qml/snake/content/pics/eyes.svg new file mode 100644 index 00000000..10786927 --- /dev/null +++ b/demos/declarative/snake/qml/snake/content/pics/eyes.svg @@ -0,0 +1,118 @@ + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/demos/declarative/snake/qml/snake/content/pics/head.png b/demos/declarative/snake/qml/snake/content/pics/head.png new file mode 100644 index 00000000..550e0026 Binary files /dev/null and b/demos/declarative/snake/qml/snake/content/pics/head.png differ diff --git a/demos/declarative/snake/qml/snake/content/pics/head.svg b/demos/declarative/snake/qml/snake/content/pics/head.svg new file mode 100644 index 00000000..3bf0bd2f --- /dev/null +++ b/demos/declarative/snake/qml/snake/content/pics/head.svg @@ -0,0 +1,134 @@ + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/demos/declarative/snake/qml/snake/content/pics/pause.png b/demos/declarative/snake/qml/snake/content/pics/pause.png new file mode 100644 index 00000000..056d97dd Binary files /dev/null and b/demos/declarative/snake/qml/snake/content/pics/pause.png differ diff --git a/demos/declarative/snake/qml/snake/content/pics/redStar.png b/demos/declarative/snake/qml/snake/content/pics/redStar.png new file mode 100644 index 00000000..cd068547 Binary files /dev/null and b/demos/declarative/snake/qml/snake/content/pics/redStar.png differ diff --git a/demos/declarative/snake/qml/snake/content/pics/redStone.png b/demos/declarative/snake/qml/snake/content/pics/redStone.png new file mode 100644 index 00000000..9bb7fe42 Binary files /dev/null and b/demos/declarative/snake/qml/snake/content/pics/redStone.png differ diff --git a/demos/declarative/snake/qml/snake/content/pics/skull.png b/demos/declarative/snake/qml/snake/content/pics/skull.png new file mode 100644 index 00000000..63186167 Binary files /dev/null and b/demos/declarative/snake/qml/snake/content/pics/skull.png differ diff --git a/demos/declarative/snake/qml/snake/content/pics/snake.jpg b/demos/declarative/snake/qml/snake/content/pics/snake.jpg new file mode 100644 index 00000000..e91a784f Binary files /dev/null and b/demos/declarative/snake/qml/snake/content/pics/snake.jpg differ diff --git a/demos/declarative/snake/qml/snake/content/pics/star.png b/demos/declarative/snake/qml/snake/content/pics/star.png new file mode 100644 index 00000000..defbde53 Binary files /dev/null and b/demos/declarative/snake/qml/snake/content/pics/star.png differ diff --git a/demos/declarative/snake/qml/snake/content/pics/stoneShadow.png b/demos/declarative/snake/qml/snake/content/pics/stoneShadow.png new file mode 100644 index 00000000..1bd56afd Binary files /dev/null and b/demos/declarative/snake/qml/snake/content/pics/stoneShadow.png differ diff --git a/demos/declarative/snake/qml/snake/content/pics/yellowStar.png b/demos/declarative/snake/qml/snake/content/pics/yellowStar.png new file mode 100644 index 00000000..52fb9c4b Binary files /dev/null and b/demos/declarative/snake/qml/snake/content/pics/yellowStar.png differ diff --git a/demos/declarative/snake/qml/snake/content/pics/yellowStone.png b/demos/declarative/snake/qml/snake/content/pics/yellowStone.png new file mode 100644 index 00000000..c56124a8 Binary files /dev/null and b/demos/declarative/snake/qml/snake/content/pics/yellowStone.png differ diff --git a/demos/declarative/snake/qml/snake/content/snake.js b/demos/declarative/snake/qml/snake/content/snake.js new file mode 100644 index 00000000..837b82ad --- /dev/null +++ b/demos/declarative/snake/qml/snake/content/snake.js @@ -0,0 +1,316 @@ + +var snake = new Array; +var board = new Array; +var links = new Array; +var scheduledDirections = new Array; +var numRows = 1; +var numColumns = 1; +var linkComponent = Qt.createComponent("content/Link.qml"); // XXX should resolve relative to script, not component +var cookieComponent = Qt.createComponent("content/Cookie.qml"); +var cookie; +var linksToGrow = 0; +var linksToDie = 0; +var waitForCookie = 0; +var growType = 0; +var skullMovementsBeforeDirectionChange = 0; + + +function rand(n) +{ + return (Math.floor(Math.random() * n)); +} + +function scheduleDirection(dir) +{ + if (state == "starting") { + direction = dir; + headDirection = direction; + head.rotation = headDirection; + } else if (state == "running"){ + direction = dir; + if(scheduledDirections[scheduledDirections.length-1]!=direction) + scheduledDirections.push(direction); + } +} + +function startNewGame() +{ + if (state == "starting") { + return; + } + + if (activeGame) { + endGame(); + startNewGameTimer.running = true; + return; + } + + state = "starting"; + + numRows = numRowsAvailable; + numColumns = numColumnsAvailable; + board = new Array(numRows * numColumns); + snake = new Array; + scheduledDirections = new Array; + growType = 0; + + skull.z = numRows * numColumns + 1; + + for (var i = 0; i < numRows * numColumns; ++i) { + if (i < links.length) { + var link = links[i]; + link.spawned = false; + link.dying = false; + } else { + if(linkComponent.status != Component.Ready) { + if(linkComponent.status == Component.Error) + console.log(linkComponent.errorString()); + else + console.log("Still loading linkComponent"); + continue;//TODO: Better error handling? + } + var link = linkComponent.createObject(playfield); + link.z = numRows * numColumns + 1 - i; + link.type = i == 0 ? 2 : 0; + link.spawned = false; + link.dying = false; + links.push(link); + } + } + + head = links[0]; + snake.push(head); + head.row = numRows/2 -1; + head.column = numColumns/2 -1; + head.spawned = true; + + linksToGrow = 5; + linksToDie = 0; + waitForCookie = 5; + score = 0; + startHeartbeatTimer.running = true; +} + +function endGame() +{ + activeGame = false; + for(var i in snake) + snake[i].dying = true; + if (cookie) { + cookie.dying = true; + cookie = 0; + } + lastScore = score; + highScores.saveScore(lastScore); + state = ""; +} + +function move() { + + if (!head) + return; + + var dir = direction; + + if (scheduledDirections.length) { + dir = scheduledDirections.shift(); + } + + if (state == "starting") { + var turn = (dir - headDirection); + head.rotation += turn == -3 ? 1 : (turn == 3 ? -1 : turn ); + headDirection = dir; + return; + } + + var row = head.row; + var column = head.column; + + if (dir == 0) { + row = row - 1; + } else if (dir == 1) { + column = column + 1 + } else if (dir == 2) { + row = row + 1; + } else if (dir == 3) { + column = column - 1; + } + + //validate the new position + if (row < 0 || row >= numRows + || column < 0 || column >= numColumns + || (row == skull.row && column == skull.column) + || !isFree(row, column)) { + var turn = (dir - headDirection); + head.rotation += turn == -3 ? 1 : (turn == 3 ? -1 : turn ); + headDirection = dir; + endGame(); + return; + } + + var newLink; + if (linksToGrow > 0) { + --linksToGrow; + newLink = links[snake.length]; + newLink.spawned = false; + newLink.rotation = snake[snake.length-1].rotation; + newLink.type = growType; + newLink.dying = false; + snake.push(newLink); + } else { + var lastLink = snake[snake.length-1]; + board[lastLink.row * numColumns + lastLink.column] = undefined; + } + + if (waitForCookie > 0) { + if (--waitForCookie == 0) + createCookie(cookie? (cookie.value+1) : 1); + } + + for (var i = snake.length-1; i > 0; --i) { + snake[i].row = snake[i-1].row; + snake[i].column = snake[i-1].column; + snake[i].rotation = snake[i-1].rotation; + } + + if (newLink) { + newLink.spawned = true; + } + + // move the head + head.row = row; + head.column = column; + board[row * numColumns + column] = head; + + var turn = (dir - headDirection); + head.rotation += turn == -3 ? 1 : (turn == 3 ? -1 : turn ); + headDirection = dir; + + var value = testCookie(row, column); + if (value > 0) { + linksToGrow += value; + score += value; + } +} + +function isFree(row, column) +{ + return board[row * numColumns + column] == undefined; +} + +function isHead(row, column) +{ + return head.column == column && head.row == row; +} + +function testCookie(row, column) +{ + if (cookie && !cookie.dying && cookie.row == row && cookie.column == column) { + var value = cookie.value; + waitForCookie = value; + growType = snake[snake.length-1].type == 1 ? 0 : 1; + cookie.dying = true; + cookie.z = numRows * numColumns + 2; + return value; + } + return 0; +} + +function moveSkull() +{ + + if (linksToDie > 0) { + --linksToDie; + var link = snake.pop(); + link.dying = true; + board[link.row * numColumns + link.column] = undefined; + if (score > 0) + --score; + if (snake.length == 0) { + endGame(); + return; + } + } + + var row = skull.row; + var column = skull.column; + if (isHead(row, column)) { + endGame(); + return; + } + row += skull.verticalMovement; + column += skull.horizontalMovement; + + var attempts = 4; + + while (skullMovementsBeforeDirectionChange == 0 || row < 0 || row >= numRows + || column < 0 || column >= numColumns + || (!isFree(row, column) && !isHead(row, column))) { + var d = rand(8); + skull.verticalMovement = 0; + skull.horizontalMovement = 0; + skullMovementsBeforeDirectionChange = rand(20)+1; + if (d == 0) { + skull.verticalMovement = -1 + } else if (d == 1) { + skull.horizontalMovement = -1; + } else if (d == 2) { + skull.verticalMovement = 1 + } else if (d == 3){ + skull.horizontalMovement = 1; + } else if (cookie) { + var rd = cookie.row - skull.row; + var rc = cookie.column - skull.column; + if (Math.abs(rd) > Math.abs(rc)) { + skull.verticalMovement = rd > 0 ? 1 : -1; + skullMovementsBeforeDirectionChange = Math.abs(rd); + } else { + skull.horizontalMovement= rc > 0 ? 1 : -1; + skullMovementsBeforeDirectionChange = Math.abs(rc); + } + } + row = skull.row + skull.verticalMovement; + column = skull.column + skull.horizontalMovement; + if (--attempts == 0) + return; + } + + skull.row = row; + skull.column = column; + --skullMovementsBeforeDirectionChange; + var value = testCookie(row, column); + if (value > 0) + linksToDie += value/2; + + if (isHead(row, column)) + endGame(); +} + +function createCookie(value) { + if (numRows * numColumns - snake.length < 10) + return; + + var column = rand(numColumns); + var row = rand(numRows); + while (!isFree(row, column)) { + column++; + if (column == numColumns) { + column = 0; + row++; + if (row == numRows) + row = 0; + } + } + + if(cookieComponent.status != Component.Ready) { + if(cookieComponent.status == Component.Error) + console.log(cookieComponent.errorString()); + else + console.log("Still loading cookieComponent"); + return;//TODO: Better error handling? + } + cookie = cookieComponent.createObject(head.parent); + cookie.value = value; + cookie.row = row; + cookie.column = column; +} diff --git a/demos/declarative/snake/qml/snake/snake.qml b/demos/declarative/snake/qml/snake/snake.qml new file mode 100644 index 00000000..54e947f9 --- /dev/null +++ b/demos/declarative/snake/qml/snake/snake.qml @@ -0,0 +1,272 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 +import "content" as Content +import "content/snake.js" as Logic + +Rectangle { + id: screen; + SystemPalette { id: activePalette } + color: activePalette.window + property bool activeGame: false + + property int gridSize : 34 + property int margin: 4 + property int numRowsAvailable: Math.floor((height-32-2*margin)/gridSize) + property int numColumnsAvailable: Math.floor((width-2*margin)/gridSize) + + property int lastScore : 0 + + property int score: 0; + property int heartbeatInterval: 200 + property int halfbeatInterval: 160 + + width: 480 + height: 750 + + property int direction + property int headDirection + + property variant head; + + Content.HighScoreModel { + id: highScores + game: "Snake" + } + + Timer { + id: heartbeat; + interval: heartbeatInterval; + running: activeGame && runtime.isActiveWindow + repeat: true + onTriggered: { Logic.move() } + } + Timer { + id: halfbeat; + interval: halfbeatInterval; + repeat: true + running: heartbeat.running + onTriggered: { Logic.moveSkull() } + } + Timer { + id: startNewGameTimer; + interval: 700; + onTriggered: { Logic.startNewGame(); } + } + + Timer { + id: startHeartbeatTimer; + interval: 1000 ; + onTriggered: { state = "running"; activeGame = true; } + } + + Image{ + id: pauseDialog + z: 1 + source: "content/pics/pause.png" + anchors.centerIn: parent; + //opacity is deliberately not animated + opacity: activeGame && !Qt.application.active + } + + Image { + + Image { + id: title + source: "content/pics/snake.jpg" + fillMode: Image.PreserveAspectCrop + anchors.fill: parent + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + + Column { + spacing: 140 + anchors.verticalCenter: parent.verticalCenter; + anchors.left: parent.left; + anchors.right: parent.right; + + Text { + color: "white" + font.pointSize: 48 + font.italic: true; + font.bold: true; + text: "Snake" + anchors.horizontalCenter: parent.horizontalCenter; + } + + Text { + color: "white" + font.pointSize: 24 + anchors.horizontalCenter: parent.horizontalCenter; + //horizontalAlignment: Text.AlignHCenter + text: "Last Score:\t" + lastScore + "\nHighscore:\t" + highScores.topScore; + } + } + } + + source: "content/pics/background.png" + fillMode: Image.PreserveAspectCrop + + anchors.left: parent.left + anchors.right: parent.right + anchors.top: parent.top + anchors.bottom: toolbar.top + + Rectangle { + id: playfield + border.width: 1 + border.color: "white" + color: "transparent" + anchors.horizontalCenter: parent.horizontalCenter + y: (screen.height - 32 - height)/2; + width: numColumnsAvailable * gridSize + 2*margin + height: numRowsAvailable * gridSize + 2*margin + + + Content.Skull { + id: skull + } + + MouseArea { + anchors.fill: parent + onPressed: { + if (screen.state == "") { + Logic.startNewGame(); + return; + } + if (direction == 0 || direction == 2) + Logic.scheduleDirection((mouseX > (head.x + head.width/2)) ? 1 : 3); + else + Logic.scheduleDirection((mouseY > (head.y + head.height/2)) ? 2 : 0); + } + } + } + + } + + Rectangle { + id: progressBar + opacity: 0 + Behavior on opacity { NumberAnimation { duration: 200 } } + color: "transparent" + border.width: 2 + border.color: "#221edd" + x: 50 + y: 50 + width: 200 + height: 30 + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + anchors.verticalCenterOffset: 40 + + Rectangle { + id: progressIndicator + color: "#221edd"; + width: 0; + height: 30; + } + } + + Rectangle { + id: toolbar + color: activePalette.window + height: 32; width: parent.width + anchors.bottom: screen.bottom + + Content.Button { + id: btnA; text: "New Game"; onClicked: Logic.startNewGame(); + anchors.left: parent.left; anchors.leftMargin: 3 + anchors.verticalCenter: parent.verticalCenter + } + + Content.Button { + text: "Quit" + anchors { left: btnA.right; leftMargin: 3; verticalCenter: parent.verticalCenter } + onClicked: Qt.quit(); + } + + Text { + color: activePalette.text + text: "Score: " + score; font.bold: true + anchors.right: parent.right; anchors.rightMargin: 3 + anchors.verticalCenter: parent.verticalCenter + } + } + + focus: true + Keys.onSpacePressed: Logic.startNewGame(); + Keys.onLeftPressed: if (state == "starting" || direction != 1) Logic.scheduleDirection(3); + Keys.onRightPressed: if (state == "starting" || direction != 3) Logic.scheduleDirection(1); + Keys.onUpPressed: if (state == "starting" || direction != 2) Logic.scheduleDirection(0); + Keys.onDownPressed: if (state == "starting" || direction != 0) Logic.scheduleDirection(2); + + states: [ + State { + name: "starting" + PropertyChanges {target: progressIndicator; width: 200} + PropertyChanges {target: title; opacity: 0} + PropertyChanges {target: progressBar; opacity: 1} + }, + State { + name: "running" + PropertyChanges {target: progressIndicator; width: 200} + PropertyChanges {target: title; opacity: 0} + PropertyChanges {target: skull; row: 0; column: 0; } + PropertyChanges {target: skull; spawned: 1} + } + ] + + transitions: [ + Transition { + from: "*" + to: "starting" + NumberAnimation { target: progressIndicator; property: "width"; duration: 1000 } + NumberAnimation { property: "opacity"; duration: 200 } + }, + Transition { + to: "starting" + NumberAnimation { target: progressIndicator; property: "width"; duration: 1000 } + NumberAnimation { property: "opacity"; duration: 200 } + } + ] + +} diff --git a/demos/declarative/snake/snake.desktop b/demos/declarative/snake/snake.desktop new file mode 100644 index 00000000..fef60907 --- /dev/null +++ b/demos/declarative/snake/snake.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Type=Application +Terminal=false +Name=snake +Exec=/opt/snake/bin/snake +Icon=snake64 +X-Window-Icon= +X-HildonDesk-ShowInToolbar=true +X-Osso-Type=application/x-executable diff --git a/demos/declarative/snake/snake.pro b/demos/declarative/snake/snake.pro new file mode 100644 index 00000000..d9b77189 --- /dev/null +++ b/demos/declarative/snake/snake.pro @@ -0,0 +1,39 @@ +# Add more folders to ship with the application, here +folder_01.source = qml/snake +folder_01.target = qml +DEPLOYMENTFOLDERS = folder_01 + +# Additional import path used to resolve QML modules in Creator's code model +QML_IMPORT_PATH = + +symbian:TARGET.UID3 = 0xE619B930 + +# Smart Installer package's UID +# This UID is from the protected range and therefore the package will +# fail to install if self-signed. By default qmake uses the unprotected +# range value if unprotected UID is defined for the application and +# 0x2002CCCF value if protected UID is given to the application +#symbian:DEPLOYMENT.installer_header = 0x2002CCCF + +# Allow network access on Symbian +symbian:TARGET.CAPABILITY += NetworkServices + +# If your application uses the Qt Mobility libraries, uncomment the following +# lines and add the respective components to the MOBILITY variable. +# CONFIG += mobility +# MOBILITY += + +# Speed up launching on MeeGo/Harmattan when using applauncherd daemon +# CONFIG += qdeclarative-boostable + +# Add dependency to Symbian components +# CONFIG += qt-components + +# The .cpp file which was generated for your project. Feel free to hack it. +SOURCES += main.cpp + +# Please do not modify the following two lines. Required for deployment. +desktopInstallPrefix=$$[QT_INSTALL_DEMOS]/declarative/snake +exists(qmlapplicationviewer/qmlapplicationviewer.pri):include(qmlapplicationviewer/qmlapplicationviewer.pri) +else:include(../../helper/qmlapplicationviewer/qmlapplicationviewer.pri) +qtcAddDeployment() diff --git a/demos/declarative/snake/snake.qmlproject b/demos/declarative/snake/snake.qmlproject new file mode 100644 index 00000000..431d2a9e --- /dev/null +++ b/demos/declarative/snake/snake.qmlproject @@ -0,0 +1,16 @@ +import QmlProject 1.0 + +Project { + /* Include .qml, .js, and image files from current directory and subdirectories */ + QmlFiles { + directory: "qml/snake" + } + JavaScriptFiles { + directory: "qml/snake" + } + ImageFiles { + directory: "qml/snake" + } + /* List of plugin directories passed to QML runtime */ + // importPaths: [ " ../exampleplugin " ] +} diff --git a/demos/declarative/snake/snake.svg b/demos/declarative/snake/snake.svg new file mode 100644 index 00000000..566acfad --- /dev/null +++ b/demos/declarative/snake/snake.svg @@ -0,0 +1,93 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/demos/declarative/snake/snake64.png b/demos/declarative/snake/snake64.png new file mode 100644 index 00000000..707d5c4e Binary files /dev/null and b/demos/declarative/snake/snake64.png differ diff --git a/demos/declarative/snake/snake80.png b/demos/declarative/snake/snake80.png new file mode 100644 index 00000000..6ad8096c Binary files /dev/null and b/demos/declarative/snake/snake80.png differ diff --git a/demos/declarative/snake/snake_harmattan.desktop b/demos/declarative/snake/snake_harmattan.desktop new file mode 100644 index 00000000..10b0f792 --- /dev/null +++ b/demos/declarative/snake/snake_harmattan.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Type=Application +Terminal=false +Name=snake +Exec=/usr/bin/single-instance /opt/snake/bin/snake +Icon=/usr/share/icons/hicolor/80x80/apps/snake80.png +X-Window-Icon= +X-HildonDesk-ShowInToolbar=true +X-Osso-Type=application/x-executable diff --git a/demos/declarative/twitter/main.cpp b/demos/declarative/twitter/main.cpp new file mode 100644 index 00000000..0599f316 --- /dev/null +++ b/demos/declarative/twitter/main.cpp @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the examples 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$ +** +****************************************************************************/ + +#include "qmlapplicationviewer.h" +#include + +Q_DECL_EXPORT int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + QmlApplicationViewer viewer; + viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto); + viewer.setMainQmlFile(QLatin1String("qml/twitter/twitter.qml")); + viewer.showExpanded(); + + return app.exec(); +} diff --git a/demos/declarative/twitter/qml/twitter/TwitterCore/Button.qml b/demos/declarative/twitter/qml/twitter/TwitterCore/Button.qml new file mode 100644 index 00000000..75ea7a65 --- /dev/null +++ b/demos/declarative/twitter/qml/twitter/TwitterCore/Button.qml @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Item { + id: container + + signal clicked + + property string text + property bool keyUsing: false + + BorderImage { + id: buttonImage + source: "images/toolbutton.sci" + width: container.width; height: container.height + } + BorderImage { + id: pressed + opacity: 0 + source: "images/toolbutton.sci" + width: container.width; height: container.height + } + MouseArea { + id: mouseRegion + anchors.fill: buttonImage + onClicked: { container.clicked(); } + } + Text { + id: btnText + color: if(container.keyUsing){"#D0D0D0";} else {"#FFFFFF";} + anchors.centerIn: buttonImage; font.bold: true + text: container.text; style: Text.Raised; styleColor: "black" + font.pixelSize: 12 + } + states: [ + State { + name: "Pressed" + when: mouseRegion.pressed == true + PropertyChanges { target: pressed; opacity: 1 } + }, + State { + name: "Focused" + when: container.activeFocus == true + PropertyChanges { target: btnText; color: "#FFFFFF" } + } + ] + transitions: Transition { + ColorAnimation { target: btnText; } + } +} diff --git a/demos/declarative/twitter/qml/twitter/TwitterCore/FatDelegate.qml b/demos/declarative/twitter/qml/twitter/TwitterCore/FatDelegate.qml new file mode 100644 index 00000000..2965493e --- /dev/null +++ b/demos/declarative/twitter/qml/twitter/TwitterCore/FatDelegate.qml @@ -0,0 +1,105 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Component { + id: listDelegate + Item { + id: wrapper; width: wrapper.ListView.view.width; height: if(txt.height > 60){txt.height+10}else{60} //50+5+5 + function handleLink(link){ + if(link.slice(0,3) == 'app'){ + screen.setUser(link.slice(7)); + }else if(link.slice(0,4) == 'http'){ + Qt.openUrlExternally(link); + } + } + function addTags(str){ + var ret = str.replace(/@[a-zA-Z0-9_]+/g, '$&');//click to jump to user? + var ret2 = ret.replace(/http:\/\/[^ \n\t]+/g, '$&');//surrounds http links with html link tags + return ret2; + } + + // Strip away paranthesis + function userName(str) { + var user = str.replace(/\([\S|\s]*\)/gi, ""); + return user.trim(); + } + + Item { + id: moveMe; height: parent.height + Rectangle { + id: blackRect + color: "black"; opacity: wrapper.ListView.index % 2 ? 0.2 : 0.3; height: wrapper.height-2; width: wrapper.width; y: 1 + } + Item { + id: image; x: 6; width: 48; height: 48; smooth: true + anchors.verticalCenter: parent.verticalCenter + + Loading { x: 1; y: 1; width: 48; height: 48; visible: realImage.status != Image.Ready } + Image { + id: realImage; + source: userImage; x: 1; y: 1; + width:48; height:48; opacity:0 ; + onStatusChanged: { + if(status==Image.Ready) + image.state="loaded" + } + } + states: State { + name: "loaded"; + PropertyChanges { target: realImage ; opacity:1 } + } + transitions: Transition { NumberAnimation { target: realImage; property: "opacity"; duration: 200 } } + + } + Text { id:txt; y:4; x: 56 + text: '' + + ''+userName(name) + " from " +source + + "
" + statusText + ""; + textFormat: Qt.RichText + color: "#cccccc"; style: Text.Raised; styleColor: "black"; wrapMode: Text.WordWrap + anchors.left: image.right; anchors.right: blackRect.right; anchors.leftMargin: 6; anchors.rightMargin: 6 + onLinkActivated: wrapper.handleLink(link) + } + } + } +} diff --git a/demos/declarative/twitter/qml/twitter/TwitterCore/Input.qml b/demos/declarative/twitter/qml/twitter/TwitterCore/Input.qml new file mode 100644 index 00000000..4eb0dfc1 --- /dev/null +++ b/demos/declarative/twitter/qml/twitter/TwitterCore/Input.qml @@ -0,0 +1,65 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +FocusScope { + id:container + width: 220 + height: 28 + BorderImage { source: "images/lineedit.sci"; anchors.fill: parent } + signal accepted + property alias text: input.text + property alias item:input + TextInput{ + id: input + width: parent.width - 12 + anchors.centerIn: parent + maximumLength:21 + font.pixelSize: 16; + font.bold: true + color: "#151515"; selectionColor: "mediumseagreen" + focus: true + onAccepted:{container.accepted()} + text: "" + selectByMouse: true + } +} diff --git a/demos/declarative/twitter/qml/twitter/TwitterCore/Loading.qml b/demos/declarative/twitter/qml/twitter/TwitterCore/Loading.qml new file mode 100644 index 00000000..65d888fb --- /dev/null +++ b/demos/declarative/twitter/qml/twitter/TwitterCore/Loading.qml @@ -0,0 +1,49 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Image { + id: loading; source: "images/loading.png" + NumberAnimation on rotation { + from: 0; to: 360; running: loading.visible == true; loops: Animation.Infinite; duration: 900 + } +} diff --git a/demos/declarative/twitter/qml/twitter/TwitterCore/MultiTitleBar.qml b/demos/declarative/twitter/qml/twitter/TwitterCore/MultiTitleBar.qml new file mode 100644 index 00000000..d5b2aae8 --- /dev/null +++ b/demos/declarative/twitter/qml/twitter/TwitterCore/MultiTitleBar.qml @@ -0,0 +1,60 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Item { + TitleBar { id: titleBar; width: parent.width; height: 60; + y: -80 + untaggedString: "Latest tweets from everyone" + taggedString: "Latest tweets from " + } + states: [ + State { + name: "search"; when: screen.state!="search" + PropertyChanges { target: titleBar; y: 0 } + } + ] + transitions: [ + Transition { NumberAnimation { properties: "x,y"; duration: 500; easing.type: Easing.InOutQuad } } + ] +} + diff --git a/demos/declarative/twitter/qml/twitter/TwitterCore/RssModel.qml b/demos/declarative/twitter/qml/twitter/TwitterCore/RssModel.qml new file mode 100644 index 00000000..c512df31 --- /dev/null +++ b/demos/declarative/twitter/qml/twitter/TwitterCore/RssModel.qml @@ -0,0 +1,76 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Item { id: wrapper + property variant model: xmlModel + property string from : "" + property string to : "" + property string phrase : "" + + property string mode : "everyone" + property int status: xmlModel.status + function reload() { xmlModel.reload(); } + XmlListModel { + id: xmlModel + + source: (from=="" && to=="" && phrase=="") ? "" : + 'http://search.twitter.com/search.atom?from='+from+"&to="+to+"&phrase="+phrase + + namespaceDeclarations: "declare default element namespace 'http://www.w3.org/2005/Atom'; " + + "declare namespace twitter=\"http://api.twitter.com/\";"; + + query: "/feed/entry" + + XmlRole { name: "statusText"; query: "content/string()" } + XmlRole { name: "timestamp"; query: "published/string()" } + XmlRole { name: "source"; query: "twitter:source/string()" } + XmlRole { name: "name"; query: "author/name/string()" } + XmlRole { name: "userImage"; query: "link[@rel = 'image']/@href/string()" } + + } + Binding { + property: "mode" + target: wrapper + value: {if(wrapper.tags==''){"everyone";}else if(wrapper.tags=='my timeline'){"self";}else{"user";}} + } +} diff --git a/demos/declarative/twitter/qml/twitter/TwitterCore/SearchView.qml b/demos/declarative/twitter/qml/twitter/TwitterCore/SearchView.qml new file mode 100644 index 00000000..5bc209f6 --- /dev/null +++ b/demos/declarative/twitter/qml/twitter/TwitterCore/SearchView.qml @@ -0,0 +1,124 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +FocusScope { + id: wrapper + Column { + anchors.centerIn: parent + spacing: 20 + Column{ + spacing: 4 + Text { + text: "Posted by:" + font.pixelSize: 16; font.bold: true; color: "white"; style: Text.Raised; styleColor: "black" + horizontalAlignment: Qt.AlignRight + } + Input{ + id: fromIn + KeyNavigation.backtab: searchbutton + KeyNavigation.tab:toIn + onAccepted:searchbutton.doSearch(); + focus: true + } + Text { + text: "In reply to:" + font.pixelSize: 16; font.bold: true; color: "white"; style: Text.Raised; styleColor: "black" + horizontalAlignment: Qt.AlignRight + } + Input{ + id: toIn + KeyNavigation.backtab: fromIn + KeyNavigation.tab:phraseIn + onAccepted:searchbutton.doSearch(); + } + Text { + text: "Search phrase:" + font.pixelSize: 16; font.bold: true; color: "white"; style: Text.Raised; styleColor: "black" + horizontalAlignment: Qt.AlignRight + } + Input{ + id: phraseIn + KeyNavigation.backtab: toIn + KeyNavigation.tab:searchbutton + onAccepted:searchbutton.doSearch(); + text: "Qt Quick" + } + } + Button { + width: 100 + height: 32 + id: searchbutton + keyUsing: true; + opacity: 1 + text: "Search" + KeyNavigation.tab: fromIn + Keys.onReturnPressed: searchbutton.doSearch(); + Keys.onEnterPressed: searchbutton.doSearch(); + Keys.onSelectPressed: searchbutton.doSearch(); + Keys.onSpacePressed: searchbutton.doSearch(); + onClicked: searchbutton.doSearch(); + + function doSearch() { + // Search ! allowed + if (wrapper.state=="invalidinput") + return; + + rssModel.from=fromIn.text; + rssModel.to= toIn.text; + rssModel.phrase = phraseIn.text; + screen.focus = true; + screen.state = "" + } + } + } + states: + State { + name: "invalidinput" + when: fromIn.text=="" && toIn.text=="" && phraseIn.text=="" + PropertyChanges { target: searchbutton ; opacity: 0.6 ; } + } + transitions: + Transition { + NumberAnimation { target: searchbutton; property: "opacity"; duration: 200 } + } +} diff --git a/demos/declarative/twitter/qml/twitter/TwitterCore/TitleBar.qml b/demos/declarative/twitter/qml/twitter/TwitterCore/TitleBar.qml new file mode 100644 index 00000000..795e8533 --- /dev/null +++ b/demos/declarative/twitter/qml/twitter/TwitterCore/TitleBar.qml @@ -0,0 +1,130 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Item { + id: titleBar + property string untaggedString: "Uploads from everyone" + property string taggedString: "Recent uploads tagged " + + BorderImage { source: "images/titlebar.sci"; width: parent.width; height: parent.height + 14; y: -7 } + + Item { + id: container + width: (parent.width * 2) - 55 ; height: parent.height + + function accept() { + titleBar.state = "" + background.state = "" + rssModel.tags = editor.text + } + + Item { + id:imageBox + x: 6; width: 0; height: 50; smooth: true + anchors.verticalCenter: parent.verticalCenter + + UserModel { user: rssModel.from; id: userModel } + Component { + id: imgDelegate; + Item { + id:imageitem + visible:true + Loading { width:48; height:48; visible: realImage.status != Image.Ready } + Image { id: realImage; source: image; width:48; height:48; opacity:0; } + states: + State { + name: "loaded" + when: (realImage.status == Image.Ready) + PropertyChanges { target: realImage; opacity:1 } + } + transitions: Transition { + NumberAnimation { target: realImage; property: "opacity"; duration: 200 } + } + } + } + ListView { id:view; model: userModel.model; x:1; y:1; delegate: imgDelegate } + states: + State { + when: !userModel.user=="" + PropertyChanges { target: imageBox; width: 50; } + } + transitions: + Transition { + NumberAnimation { target: imageBox; property: "width"; duration: 200 } + } + } + + Image { + id: quitButton + x: 5 + anchors.verticalCenter: parent.verticalCenter + source: "images/quit.png" + MouseArea { + anchors.fill: parent + onClicked: Qt.quit() + } + } + + Text { + id: categoryText + anchors { + left: quitButton.right; right: parent.right; leftMargin: 10; rightMargin: 10 + verticalCenter: parent.verticalCenter + } + elide: Text.ElideLeft + text: (rssModel.from=="" ? untaggedString : taggedString + rssModel.from) + font.bold: true; color: "White"; style: Text.Raised; styleColor: "Black" + font.pixelSize: 12 + } + } + + states: State { + name: "Tags" + PropertyChanges { target: container; x: -tagButton.x + 5 } + PropertyChanges { target: editor; focus: true } + } + + transitions: Transition { + NumberAnimation { properties: "x"; easing.type: Easing.InOutQuad } + } +} diff --git a/demos/declarative/twitter/qml/twitter/TwitterCore/ToolBar.qml b/demos/declarative/twitter/qml/twitter/TwitterCore/ToolBar.qml new file mode 100644 index 00000000..b62298e1 --- /dev/null +++ b/demos/declarative/twitter/qml/twitter/TwitterCore/ToolBar.qml @@ -0,0 +1,64 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Item { + id: toolbar + + property alias button1Label: button1.text + property alias button2Label: button2.text + signal button1Clicked + signal button2Clicked + focus:true + BorderImage { source: "images/titlebar.sci"; width: parent.width; height: parent.height + 14; y: -7 } + Button { + id: button1 + anchors.left: parent.left; anchors.leftMargin: 5; y: 3; width: 140; height: 32 + onClicked: toolbar.button1Clicked() + focus:true + } + Button { + id: button2 + anchors.right: parent.right; anchors.rightMargin: 5; y: 3; width: 140; height: 32 + onClicked: toolbar.button2Clicked() + } +} diff --git a/demos/declarative/twitter/qml/twitter/TwitterCore/UserModel.qml b/demos/declarative/twitter/qml/twitter/TwitterCore/UserModel.qml new file mode 100644 index 00000000..a6fb67de --- /dev/null +++ b/demos/declarative/twitter/qml/twitter/TwitterCore/UserModel.qml @@ -0,0 +1,65 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +//This "model" gets the user information about the searched user. Mainly for the icon. + +Item { id: wrapper + property variant model: xmlModel + property string user : "" + property int status: xmlModel.status + function reload() { xmlModel.reload(); } + XmlListModel { + id: xmlModel + + source: user!= "" ? "http://twitter.com/users/show.xml?screen_name="+user : "" + query: "/user" + + XmlRole { name: "name"; query: "name/string()" } + XmlRole { name: "screenName"; query: "screen_name/string()" } + XmlRole { name: "image"; query: "profile_image_url/string()" } + XmlRole { name: "location"; query: "location/string()" } + XmlRole { name: "description"; query: "description/string()" } + XmlRole { name: "followers"; query: "followers_count/string()" } + //TODO: Could also get the user's color scheme, timezone and a few other things + } +} diff --git a/demos/declarative/twitter/qml/twitter/TwitterCore/images/gloss.png b/demos/declarative/twitter/qml/twitter/TwitterCore/images/gloss.png new file mode 100644 index 00000000..5d370cd9 Binary files /dev/null and b/demos/declarative/twitter/qml/twitter/TwitterCore/images/gloss.png differ diff --git a/demos/declarative/twitter/qml/twitter/TwitterCore/images/lineedit.png b/demos/declarative/twitter/qml/twitter/TwitterCore/images/lineedit.png new file mode 100644 index 00000000..2cc38dc3 Binary files /dev/null and b/demos/declarative/twitter/qml/twitter/TwitterCore/images/lineedit.png differ diff --git a/demos/declarative/twitter/qml/twitter/TwitterCore/images/lineedit.sci b/demos/declarative/twitter/qml/twitter/TwitterCore/images/lineedit.sci new file mode 100644 index 00000000..054bff78 --- /dev/null +++ b/demos/declarative/twitter/qml/twitter/TwitterCore/images/lineedit.sci @@ -0,0 +1,5 @@ +border.left: 10 +border.top: 10 +border.bottom: 10 +border.right: 10 +source: lineedit.png diff --git a/demos/declarative/twitter/qml/twitter/TwitterCore/images/loading.png b/demos/declarative/twitter/qml/twitter/TwitterCore/images/loading.png new file mode 100644 index 00000000..47a1589c Binary files /dev/null and b/demos/declarative/twitter/qml/twitter/TwitterCore/images/loading.png differ diff --git a/demos/declarative/twitter/qml/twitter/TwitterCore/images/quit.png b/demos/declarative/twitter/qml/twitter/TwitterCore/images/quit.png new file mode 100644 index 00000000..5bda1b6e Binary files /dev/null and b/demos/declarative/twitter/qml/twitter/TwitterCore/images/quit.png differ diff --git a/demos/declarative/twitter/qml/twitter/TwitterCore/images/stripes.png b/demos/declarative/twitter/qml/twitter/TwitterCore/images/stripes.png new file mode 100644 index 00000000..9f36727e Binary files /dev/null and b/demos/declarative/twitter/qml/twitter/TwitterCore/images/stripes.png differ diff --git a/demos/declarative/twitter/qml/twitter/TwitterCore/images/titlebar.png b/demos/declarative/twitter/qml/twitter/TwitterCore/images/titlebar.png new file mode 100644 index 00000000..51c90082 Binary files /dev/null and b/demos/declarative/twitter/qml/twitter/TwitterCore/images/titlebar.png differ diff --git a/demos/declarative/twitter/qml/twitter/TwitterCore/images/titlebar.sci b/demos/declarative/twitter/qml/twitter/TwitterCore/images/titlebar.sci new file mode 100644 index 00000000..0418d94c --- /dev/null +++ b/demos/declarative/twitter/qml/twitter/TwitterCore/images/titlebar.sci @@ -0,0 +1,5 @@ +border.left: 10 +border.top: 12 +border.bottom: 12 +border.right: 10 +source: titlebar.png diff --git a/demos/declarative/twitter/qml/twitter/TwitterCore/images/toolbutton.png b/demos/declarative/twitter/qml/twitter/TwitterCore/images/toolbutton.png new file mode 100644 index 00000000..11310013 Binary files /dev/null and b/demos/declarative/twitter/qml/twitter/TwitterCore/images/toolbutton.png differ diff --git a/demos/declarative/twitter/qml/twitter/TwitterCore/images/toolbutton.sci b/demos/declarative/twitter/qml/twitter/TwitterCore/images/toolbutton.sci new file mode 100644 index 00000000..9e4f9653 --- /dev/null +++ b/demos/declarative/twitter/qml/twitter/TwitterCore/images/toolbutton.sci @@ -0,0 +1,5 @@ +border.left: 15 +border.top: 4 +border.bottom: 4 +border.right: 15 +source: toolbutton.png diff --git a/demos/declarative/twitter/qml/twitter/TwitterCore/qmldir b/demos/declarative/twitter/qml/twitter/TwitterCore/qmldir new file mode 100644 index 00000000..84d85c28 --- /dev/null +++ b/demos/declarative/twitter/qml/twitter/TwitterCore/qmldir @@ -0,0 +1,10 @@ +SearchView 1.0 SearchView.qml +Button 1.0 Button.qml +Input 1.0 Input.qml +FatDelegate 1.0 FatDelegate.qml +Loading 1.0 Loading.qml +MultiTitleBar 1.0 MultiTitleBar.qml +TitleBar 1.0 TitleBar.qml +RssModel 1.0 RssModel.qml +UserModel 1.0 UserModel.qml +ToolBar 1.0 ToolBar.qml diff --git a/demos/declarative/twitter/qml/twitter/twitter.qml b/demos/declarative/twitter/qml/twitter/twitter.qml new file mode 100644 index 00000000..e4c891c7 --- /dev/null +++ b/demos/declarative/twitter/qml/twitter/twitter.qml @@ -0,0 +1,134 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 +import "TwitterCore" 1.0 as Twitter + +Item { + id: screen; width: 320; height: 480 + property bool userView : false + property variant tmpStr + function setUser(str){hack.running = true; tmpStr = str} + function reallySetUser(){rssModel.from = tmpStr;rssModel.to = ""; rssModel.phrase = ""} + state:"searchquery" + //Workaround for bug 260266 + Timer{ interval: 1; running: false; repeat: false; onTriggered: screen.reallySetUser(); id:hack } + Keys.onEscapePressed: screen.state="searchquery" + Keys.onBacktabPressed: screen.state="searchquery" + Rectangle { + id: background + anchors.fill: parent; color: "#343434"; + + state:"searchquery" + Image { source: "TwitterCore/images/stripes.png"; fillMode: Image.Tile; anchors.fill: parent; opacity: 0.3 } + + MouseArea { + anchors.fill: parent + onClicked: screen.focus = false; + } + + Twitter.RssModel { id: rssModel } + Twitter.Loading { anchors.centerIn: parent; visible: rssModel.status==XmlListModel.Loading && state!='unauthed'} + Text { + width: 180 + text: "Could not access twitter using this screen name and password pair."; + color: "#cccccc"; style: Text.Raised; styleColor: "black"; wrapMode: Text.WordWrap + visible: rssModel.status==XmlListModel.Error; anchors.centerIn: parent + } + + Item { + id: views + x: 2; width: parent.width - 4 + y:60 //Below the title bars + height: parent.height - 100 + + Text { + id:title + text: "Search Twitter" + anchors.horizontalCenter: parent.horizontalCenter + font.pixelSize: 20; font.bold: true; color: "#bbb"; style: Text.Raised; styleColor: "black" + opacity:0 + } + + Twitter.SearchView{ + id: searchView + anchors.verticalCenter: parent.verticalCenter + width: parent.width; height: parent.height-60; + x: -(screen.width * 1.5) + } + + Twitter.FatDelegate { id: fatDelegate } + ListView { + id: mainView; model: rssModel.model; delegate: fatDelegate; + width: parent.width; height: parent.height; x: 0; cacheBuffer: 100; + } + } + + Twitter.MultiTitleBar { id: titleBar; width: parent.width } + Twitter.ToolBar { id: toolBar; height: 40; + //anchors.bottom: parent.bottom; + //TODO: Use anchor changes instead of hard coding + y: screen.height - 40 + width: parent.width; opacity: 0.9 + button1Label: "New Search" + button2Label: "Update" + onButton1Clicked: + { + screen.state="searchquery" + } + onButton2Clicked: rssModel.reload(); + } + } + states: [ + State { + name: "searchquery"; + PropertyChanges { target: searchView; x: 0; focus:true} + PropertyChanges { target: mainView; x: -(parent.width * 1.5) } + PropertyChanges { target: titleBar; y: -80 } + PropertyChanges { target: toolBar; y: screen.height } + PropertyChanges { target: toolBar } + PropertyChanges { target: title; opacity:1} + } + ] + transitions: [ + Transition { NumberAnimation { properties: "x,y,opacity"; duration: 500; easing.type: Easing.InOutQuad } } + ] +} diff --git a/demos/declarative/twitter/twitter.desktop b/demos/declarative/twitter/twitter.desktop new file mode 100644 index 00000000..5d1b851b --- /dev/null +++ b/demos/declarative/twitter/twitter.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Type=Application +Terminal=false +Name=twitter +Exec=/opt/twitter/bin/twitter +Icon=twitter64 +X-Window-Icon= +X-HildonDesk-ShowInToolbar=true +X-Osso-Type=application/x-executable diff --git a/demos/declarative/twitter/twitter.pro b/demos/declarative/twitter/twitter.pro new file mode 100644 index 00000000..91bfd47f --- /dev/null +++ b/demos/declarative/twitter/twitter.pro @@ -0,0 +1,39 @@ +# Add more folders to ship with the application, here +folder_01.source = qml/twitter +folder_01.target = qml +DEPLOYMENTFOLDERS = folder_01 + +# Additional import path used to resolve QML modules in Creator's code model +QML_IMPORT_PATH = + +symbian:TARGET.UID3 = 0xE77B03CA + +# Smart Installer package's UID +# This UID is from the protected range and therefore the package will +# fail to install if self-signed. By default qmake uses the unprotected +# range value if unprotected UID is defined for the application and +# 0x2002CCCF value if protected UID is given to the application +#symbian:DEPLOYMENT.installer_header = 0x2002CCCF + +# Allow network access on Symbian +symbian:TARGET.CAPABILITY += NetworkServices + +# If your application uses the Qt Mobility libraries, uncomment the following +# lines and add the respective components to the MOBILITY variable. +# CONFIG += mobility +# MOBILITY += + +# Speed up launching on MeeGo/Harmattan when using applauncherd daemon +# CONFIG += qdeclarative-boostable + +# Add dependency to Symbian components +# CONFIG += qt-components + +# The .cpp file which was generated for your project. Feel free to hack it. +SOURCES += main.cpp + +# Please do not modify the following two lines. Required for deployment. +desktopInstallPrefix=$$[QT_INSTALL_DEMOS]/declarative/twitter +exists(qmlapplicationviewer/qmlapplicationviewer.pri):include(qmlapplicationviewer/qmlapplicationviewer.pri) +else:include(../../helper/qmlapplicationviewer/qmlapplicationviewer.pri) +qtcAddDeployment() diff --git a/demos/declarative/twitter/twitter.qmlproject b/demos/declarative/twitter/twitter.qmlproject new file mode 100644 index 00000000..3b360cf2 --- /dev/null +++ b/demos/declarative/twitter/twitter.qmlproject @@ -0,0 +1,16 @@ +import QmlProject 1.0 + +Project { + /* Include .qml, .js, and image files from current directory and subdirectories */ + QmlFiles { + directory: "qml/twitter" + } + JavaScriptFiles { + directory: "qml/twitter" + } + ImageFiles { + directory: "qml/twitter" + } + /* List of plugin directories passed to QML runtime */ + // importPaths: [ " ../exampleplugin " ] +} diff --git a/demos/declarative/twitter/twitter.svg b/demos/declarative/twitter/twitter.svg new file mode 100644 index 00000000..566acfad --- /dev/null +++ b/demos/declarative/twitter/twitter.svg @@ -0,0 +1,93 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/demos/declarative/twitter/twitter64.png b/demos/declarative/twitter/twitter64.png new file mode 100644 index 00000000..707d5c4e Binary files /dev/null and b/demos/declarative/twitter/twitter64.png differ diff --git a/demos/declarative/twitter/twitter80.png b/demos/declarative/twitter/twitter80.png new file mode 100644 index 00000000..6ad8096c Binary files /dev/null and b/demos/declarative/twitter/twitter80.png differ diff --git a/demos/declarative/twitter/twitter_harmattan.desktop b/demos/declarative/twitter/twitter_harmattan.desktop new file mode 100644 index 00000000..40a4a1bc --- /dev/null +++ b/demos/declarative/twitter/twitter_harmattan.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Type=Application +Terminal=false +Name=twitter +Exec=/usr/bin/single-instance /opt/twitter/bin/twitter +Icon=/usr/share/icons/hicolor/80x80/apps/twitter80.png +X-Window-Icon= +X-HildonDesk-ShowInToolbar=true +X-Osso-Type=application/x-executable diff --git a/demos/declarative/webbrowser/main.cpp b/demos/declarative/webbrowser/main.cpp new file mode 100644 index 00000000..abbfd04f --- /dev/null +++ b/demos/declarative/webbrowser/main.cpp @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the examples 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$ +** +****************************************************************************/ + +#include "qmlapplicationviewer.h" +#include + +Q_DECL_EXPORT int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + QmlApplicationViewer viewer; + viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto); + viewer.setMainQmlFile(QLatin1String("qml/webbrowser/webbrowser.qml")); + viewer.showExpanded(); + + return app.exec(); +} diff --git a/demos/declarative/webbrowser/qml/webbrowser/content/Button.qml b/demos/declarative/webbrowser/qml/webbrowser/content/Button.qml new file mode 100644 index 00000000..fbffe1ef --- /dev/null +++ b/demos/declarative/webbrowser/qml/webbrowser/content/Button.qml @@ -0,0 +1,65 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Item { + property alias image: icon.source + property variant action + + signal clicked + + width: 40; height: parent.height + + Image { + id: icon; anchors.centerIn: parent + opacity: if (action != undefined) { action.enabled ? 1.0 : 0.4 } else 1 + } + + MouseArea { + anchors { fill: parent; topMargin: -10; bottomMargin: -10 } + onClicked: { + if (action != undefined) + action.trigger() + parent.clicked() + } + } +} diff --git a/demos/declarative/webbrowser/qml/webbrowser/content/FlickableWebView.qml b/demos/declarative/webbrowser/qml/webbrowser/content/FlickableWebView.qml new file mode 100644 index 00000000..4bfcd226 --- /dev/null +++ b/demos/declarative/webbrowser/qml/webbrowser/content/FlickableWebView.qml @@ -0,0 +1,195 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 +import QtWebKit 1.0 + +Flickable { + property alias title: webView.title + property alias icon: webView.icon + property alias progress: webView.progress + property alias url: webView.url + property alias back: webView.back + property alias stop: webView.stop + property alias reload: webView.reload + property alias forward: webView.forward + + id: flickable + width: parent.width + contentWidth: Math.max(parent.width,webView.width) + contentHeight: Math.max(parent.height,webView.height) + anchors.top: headerSpace.bottom + anchors.bottom: parent.top + anchors.left: parent.left + anchors.right: parent.right + pressDelay: 200 + + onWidthChanged : { + // Expand (but not above 1:1) if otherwise would be smaller that available width. + if (width > webView.width*webView.contentsScale && webView.contentsScale < 1.0) + webView.contentsScale = width / webView.width * webView.contentsScale; + } + + WebView { + id: webView + transformOrigin: Item.TopLeft + + function fixUrl(url) + { + if (url == "") return url + if (url[0] == "/") return "file://"+url + if (url.indexOf(":")<0) { + if (url.indexOf(".")<0 || url.indexOf(" ")>=0) { + // Fall back to a search engine; hard-code Wikipedia + return "http://en.wikipedia.org/w/index.php?search="+url + } else { + return "http://"+url + } + } + return url + } + + url: fixUrl(webBrowser.urlString) + smooth: false // We don't want smooth scaling, since we only scale during (fast) transitions + focus: true + + onAlert: console.log(message) + + function doZoom(zoom,centerX,centerY) + { + if (centerX) { + var sc = zoom*contentsScale; + scaleAnim.to = sc; + flickVX.from = flickable.contentX + flickVX.to = Math.max(0,Math.min(centerX-flickable.width/2,webView.width*sc-flickable.width)) + finalX.value = flickVX.to + flickVY.from = flickable.contentY + flickVY.to = Math.max(0,Math.min(centerY-flickable.height/2,webView.height*sc-flickable.height)) + finalY.value = flickVY.to + quickZoom.start() + } + } + + Keys.onLeftPressed: webView.contentsScale -= 0.1 + Keys.onRightPressed: webView.contentsScale += 0.1 + + preferredWidth: flickable.width + preferredHeight: flickable.height + contentsScale: 1 + onContentsSizeChanged: { + // zoom out + contentsScale = Math.min(1,flickable.width / contentsSize.width) + } + onUrlChanged: { + // got to topleft + flickable.contentX = 0 + flickable.contentY = 0 + if (url != null) { header.editUrl = url.toString(); } + } + onDoubleClick: { + if (!heuristicZoom(clickX,clickY,2.5)) { + var zf = flickable.width / contentsSize.width + if (zf >= contentsScale) + zf = 2.0*contentsScale // zoom in (else zooming out) + doZoom(zf,clickX*zf,clickY*zf) + } + } + + SequentialAnimation { + id: quickZoom + + PropertyAction { + target: webView + property: "renderingEnabled" + value: false + } + ParallelAnimation { + NumberAnimation { + id: scaleAnim + target: webView + property: "contentsScale" + // the to property is set before calling + easing.type: Easing.Linear + duration: 200 + } + NumberAnimation { + id: flickVX + target: flickable + property: "contentX" + easing.type: Easing.Linear + duration: 200 + from: 0 // set before calling + to: 0 // set before calling + } + NumberAnimation { + id: flickVY + target: flickable + property: "contentY" + easing.type: Easing.Linear + duration: 200 + from: 0 // set before calling + to: 0 // set before calling + } + } + // Have to set the contentXY, since the above 2 + // size changes may have started a correction if + // contentsScale < 1.0. + PropertyAction { + id: finalX + target: flickable + property: "contentX" + value: 0 // set before calling + } + PropertyAction { + id: finalY + target: flickable + property: "contentY" + value: 0 // set before calling + } + PropertyAction { + target: webView + property: "renderingEnabled" + value: true + } + } + onZoomTo: doZoom(zoom,centerX,centerY) + } +} diff --git a/demos/declarative/webbrowser/qml/webbrowser/content/Header.qml b/demos/declarative/webbrowser/qml/webbrowser/content/Header.qml new file mode 100644 index 00000000..bebdc480 --- /dev/null +++ b/demos/declarative/webbrowser/qml/webbrowser/content/Header.qml @@ -0,0 +1,150 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Image { + id: header + + property alias editUrl: urlInput.url + property bool urlChanged: false + + source: "pics/titlebar-bg.png"; fillMode: Image.TileHorizontally + + x: webView.contentX < 0 ? -webView.contentX : webView.contentX > webView.contentWidth-webView.width + ? -webView.contentX+webView.contentWidth-webView.width : 0 + y: { + if (webView.progress < 1.0) + return 0; + else { + webView.contentY < 0 ? -webView.contentY : webView.contentY > height ? -height : -webView.contentY + } + } + Column { + width: parent.width + + Item { + width: parent.width; height: 20 + Text { + anchors.centerIn: parent + text: webView.title; font.pixelSize: 14; font.bold: true + color: "white"; styleColor: "black"; style: Text.Sunken + } + } + + Item { + width: parent.width; height: 40 + + Button { + id: backButton + action: webView.back; image: "pics/go-previous-view.png" + anchors { left: parent.left; bottom: parent.bottom } + } + + Button { + id: nextButton + anchors.left: backButton.right + action: webView.forward; image: "pics/go-next-view.png" + } + + UrlInput { + id: urlInput + anchors { left: nextButton.right; right: reloadButton.left } + image: "pics/display.png" + onUrlEntered: { + webBrowser.urlString = url + webBrowser.focus = true + header.urlChanged = false + } + onUrlChanged: header.urlChanged = true + } + + Button { + id: reloadButton + anchors { right: quitButton.left; rightMargin: 10 } + action: webView.reload; image: "pics/view-refresh.png" + visible: webView.progress == 1.0 && !header.urlChanged + } + Text { + id: quitButton + color: "white" + style: Text.Sunken + anchors.right: parent.right + anchors.top: parent.top + anchors.bottom: parent.bottom + verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignHCenter + font.pixelSize: 18 + width: 60 + text: "Quit" + MouseArea { + anchors.fill: parent + onClicked: Qt.quit() + } + Rectangle { + width: 1 + y: 5 + height: parent.height-10 + anchors.right: parent.left + color: "darkgray" + } + } + + Button { + id: stopButton + anchors { right: quitButton.left; rightMargin: 10 } + action: webView.stop; image: "pics/edit-delete.png" + visible: webView.progress < 1.0 && !header.urlChanged + } + + Button { + id: goButton + anchors { right: parent.right; rightMargin: 4 } + onClicked: { + webBrowser.urlString = urlInput.url + webBrowser.focus = true + header.urlChanged = false + } + image: "pics/go-jump-locationbar.png"; visible: header.urlChanged + } + } + } +} diff --git a/demos/declarative/webbrowser/qml/webbrowser/content/ScrollBar.qml b/demos/declarative/webbrowser/qml/webbrowser/content/ScrollBar.qml new file mode 100644 index 00000000..71ac9580 --- /dev/null +++ b/demos/declarative/webbrowser/qml/webbrowser/content/ScrollBar.qml @@ -0,0 +1,107 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Item { + id: container + + property variant scrollArea + property variant orientation: Qt.Vertical + + opacity: 0 + + function position() + { + var ny = 0; + if (container.orientation == Qt.Vertical) + ny = scrollArea.visibleArea.yPosition * container.height; + else + ny = scrollArea.visibleArea.xPosition * container.width; + if (ny > 2) return ny; else return 2; + } + + function size() + { + var nh, ny; + + if (container.orientation == Qt.Vertical) + nh = scrollArea.visibleArea.heightRatio * container.height; + else + nh = scrollArea.visibleArea.widthRatio * container.width; + + if (container.orientation == Qt.Vertical) + ny = scrollArea.visibleArea.yPosition * container.height; + else + ny = scrollArea.visibleArea.xPosition * container.width; + + if (ny > 3) { + var t; + if (container.orientation == Qt.Vertical) + t = Math.ceil(container.height - 3 - ny); + else + t = Math.ceil(container.width - 3 - ny); + if (nh > t) return t; else return nh; + } else return nh + ny; + } + + Rectangle { anchors.fill: parent; color: "Black"; opacity: 0.5 } + + BorderImage { + source: "pics/scrollbar.png" + border { left: 1; right: 1; top: 1; bottom: 1 } + x: container.orientation == Qt.Vertical ? 2 : position() + width: container.orientation == Qt.Vertical ? container.width - 4 : size() + y: container.orientation == Qt.Vertical ? position() : 2 + height: container.orientation == Qt.Vertical ? size() : container.height - 4 + } + + states: State { + name: "visible" + when: container.orientation == Qt.Vertical ? scrollArea.movingVertically : scrollArea.movingHorizontally + PropertyChanges { target: container; opacity: 1.0 } + } + + transitions: Transition { + from: "visible"; to: "" + NumberAnimation { properties: "opacity"; duration: 600 } + } +} diff --git a/demos/declarative/webbrowser/qml/webbrowser/content/UrlInput.qml b/demos/declarative/webbrowser/qml/webbrowser/content/UrlInput.qml new file mode 100644 index 00000000..77932769 --- /dev/null +++ b/demos/declarative/webbrowser/qml/webbrowser/content/UrlInput.qml @@ -0,0 +1,96 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 + +Item { + id: container + + property alias image: bg.source + property alias url: urlText.text + + signal urlEntered(string url) + signal urlChanged + + width: parent.height; height: parent.height + + BorderImage { + id: bg; rotation: 180 + x: 8; width: parent.width - 16; height: 30; + anchors.verticalCenter: parent.verticalCenter + border { left: 10; top: 10; right: 10; bottom: 10 } + } + + Rectangle { + anchors.bottom: bg.bottom + x: 18; height: 4; color: "#63b1ed" + width: (bg.width - 20) * webView.progress + opacity: webView.progress == 1.0 ? 0.0 : 1.0 + } + + TextInput { + id: urlText + horizontalAlignment: TextEdit.AlignLeft + font.pixelSize: 14; + + onTextChanged: container.urlChanged() + + Keys.onEscapePressed: { + urlText.text = webView.url + webView.focus = true + } + + Keys.onEnterPressed: { + container.urlEntered(urlText.text) + webView.focus = true + } + + Keys.onReturnPressed: { + container.urlEntered(urlText.text) + webView.focus = true + } + + anchors { + left: parent.left; right: parent.right; leftMargin: 18; rightMargin: 18 + verticalCenter: parent.verticalCenter + } + } +} diff --git a/demos/declarative/webbrowser/qml/webbrowser/content/pics/display.png b/demos/declarative/webbrowser/qml/webbrowser/content/pics/display.png new file mode 100644 index 00000000..9507f438 Binary files /dev/null and b/demos/declarative/webbrowser/qml/webbrowser/content/pics/display.png differ diff --git a/demos/declarative/webbrowser/qml/webbrowser/content/pics/edit-delete.png b/demos/declarative/webbrowser/qml/webbrowser/content/pics/edit-delete.png new file mode 100644 index 00000000..df2a147d Binary files /dev/null and b/demos/declarative/webbrowser/qml/webbrowser/content/pics/edit-delete.png differ diff --git a/demos/declarative/webbrowser/qml/webbrowser/content/pics/go-jump-locationbar.png b/demos/declarative/webbrowser/qml/webbrowser/content/pics/go-jump-locationbar.png new file mode 100644 index 00000000..61f779ce Binary files /dev/null and b/demos/declarative/webbrowser/qml/webbrowser/content/pics/go-jump-locationbar.png differ diff --git a/demos/declarative/webbrowser/qml/webbrowser/content/pics/go-next-view.png b/demos/declarative/webbrowser/qml/webbrowser/content/pics/go-next-view.png new file mode 100644 index 00000000..a585cab8 Binary files /dev/null and b/demos/declarative/webbrowser/qml/webbrowser/content/pics/go-next-view.png differ diff --git a/demos/declarative/webbrowser/qml/webbrowser/content/pics/go-previous-view.png b/demos/declarative/webbrowser/qml/webbrowser/content/pics/go-previous-view.png new file mode 100644 index 00000000..612fb34d Binary files /dev/null and b/demos/declarative/webbrowser/qml/webbrowser/content/pics/go-previous-view.png differ diff --git a/demos/declarative/webbrowser/qml/webbrowser/content/pics/scrollbar.png b/demos/declarative/webbrowser/qml/webbrowser/content/pics/scrollbar.png new file mode 100644 index 00000000..0228dcf9 Binary files /dev/null and b/demos/declarative/webbrowser/qml/webbrowser/content/pics/scrollbar.png differ diff --git a/demos/declarative/webbrowser/qml/webbrowser/content/pics/titlebar-bg.png b/demos/declarative/webbrowser/qml/webbrowser/content/pics/titlebar-bg.png new file mode 100644 index 00000000..06961e8d Binary files /dev/null and b/demos/declarative/webbrowser/qml/webbrowser/content/pics/titlebar-bg.png differ diff --git a/demos/declarative/webbrowser/qml/webbrowser/content/pics/view-refresh.png b/demos/declarative/webbrowser/qml/webbrowser/content/pics/view-refresh.png new file mode 100644 index 00000000..afa2a9d7 Binary files /dev/null and b/demos/declarative/webbrowser/qml/webbrowser/content/pics/view-refresh.png differ diff --git a/demos/declarative/webbrowser/qml/webbrowser/webbrowser.qml b/demos/declarative/webbrowser/qml/webbrowser/webbrowser.qml new file mode 100644 index 00000000..ac1024ec --- /dev/null +++ b/demos/declarative/webbrowser/qml/webbrowser/webbrowser.qml @@ -0,0 +1,79 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** 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$ +** +****************************************************************************/ + +import QtQuick 1.0 +import QtWebKit 1.0 + +import "content" + +Rectangle { + id: webBrowser + + property string urlString : "http://www.nokia.com/" + + width: 800; height: 600 + color: "#343434" + + FlickableWebView { + id: webView + url: webBrowser.urlString + onProgressChanged: header.urlChanged = false + anchors { top: headerSpace.bottom; left: parent.left; right: parent.right; bottom: parent.bottom } + } + + Item { id: headerSpace; width: parent.width; height: 62 } + + Header { + id: header + editUrl: webBrowser.urlString + width: headerSpace.width; height: headerSpace.height + } + + ScrollBar { + scrollArea: webView; width: 8 + anchors { right: parent.right; top: header.bottom; bottom: parent.bottom } + } + + ScrollBar { + scrollArea: webView; height: 8; orientation: Qt.Horizontal + anchors { right: parent.right; rightMargin: 8; left: parent.left; bottom: parent.bottom } + } +} diff --git a/demos/declarative/webbrowser/webbrowser.desktop b/demos/declarative/webbrowser/webbrowser.desktop new file mode 100644 index 00000000..1a7e4f2c --- /dev/null +++ b/demos/declarative/webbrowser/webbrowser.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Type=Application +Terminal=false +Name=webbrowser +Exec=/opt/webbrowser/bin/webbrowser +Icon=webbrowser64 +X-Window-Icon= +X-HildonDesk-ShowInToolbar=true +X-Osso-Type=application/x-executable diff --git a/demos/declarative/webbrowser/webbrowser.pro b/demos/declarative/webbrowser/webbrowser.pro new file mode 100644 index 00000000..c640e889 --- /dev/null +++ b/demos/declarative/webbrowser/webbrowser.pro @@ -0,0 +1,39 @@ +# Add more folders to ship with the application, here +folder_01.source = qml/webbrowser +folder_01.target = qml +DEPLOYMENTFOLDERS = folder_01 + +# Additional import path used to resolve QML modules in Creator's code model +QML_IMPORT_PATH = + +symbian:TARGET.UID3 = 0xE8ECBC65 + +# Smart Installer package's UID +# This UID is from the protected range and therefore the package will +# fail to install if self-signed. By default qmake uses the unprotected +# range value if unprotected UID is defined for the application and +# 0x2002CCCF value if protected UID is given to the application +#symbian:DEPLOYMENT.installer_header = 0x2002CCCF + +# Allow network access on Symbian +symbian:TARGET.CAPABILITY += NetworkServices + +# If your application uses the Qt Mobility libraries, uncomment the following +# lines and add the respective components to the MOBILITY variable. +# CONFIG += mobility +# MOBILITY += + +# Speed up launching on MeeGo/Harmattan when using applauncherd daemon +# CONFIG += qdeclarative-boostable + +# Add dependency to Symbian components +# CONFIG += qt-components + +# The .cpp file which was generated for your project. Feel free to hack it. +SOURCES += main.cpp + +# Please do not modify the following two lines. Required for deployment. +desktopInstallPrefix=$$[QT_INSTALL_DEMOS]/declarative/webbrowser +exists(qmlapplicationviewer/qmlapplicationviewer.pri):include(qmlapplicationviewer/qmlapplicationviewer.pri) +else:include(../../helper/qmlapplicationviewer/qmlapplicationviewer.pri) +qtcAddDeployment() diff --git a/demos/declarative/webbrowser/webbrowser.qmlproject b/demos/declarative/webbrowser/webbrowser.qmlproject new file mode 100644 index 00000000..a05672d3 --- /dev/null +++ b/demos/declarative/webbrowser/webbrowser.qmlproject @@ -0,0 +1,16 @@ +import QmlProject 1.0 + +Project { + /* Include .qml, .js, and image files from current directory and subdirectories */ + QmlFiles { + directory: "qml/webbrowser" + } + JavaScriptFiles { + directory: "qml/webbrowser" + } + ImageFiles { + directory: "qml/webbrowser" + } + /* List of plugin directories passed to QML runtime */ + // importPaths: [ " ../exampleplugin " ] +} diff --git a/demos/declarative/webbrowser/webbrowser.svg b/demos/declarative/webbrowser/webbrowser.svg new file mode 100644 index 00000000..566acfad --- /dev/null +++ b/demos/declarative/webbrowser/webbrowser.svg @@ -0,0 +1,93 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/demos/declarative/webbrowser/webbrowser64.png b/demos/declarative/webbrowser/webbrowser64.png new file mode 100644 index 00000000..707d5c4e Binary files /dev/null and b/demos/declarative/webbrowser/webbrowser64.png differ diff --git a/demos/declarative/webbrowser/webbrowser80.png b/demos/declarative/webbrowser/webbrowser80.png new file mode 100644 index 00000000..6ad8096c Binary files /dev/null and b/demos/declarative/webbrowser/webbrowser80.png differ diff --git a/demos/declarative/webbrowser/webbrowser_harmattan.desktop b/demos/declarative/webbrowser/webbrowser_harmattan.desktop new file mode 100644 index 00000000..455d7148 --- /dev/null +++ b/demos/declarative/webbrowser/webbrowser_harmattan.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Version=1.0 +Type=Application +Terminal=false +Name=webbrowser +Exec=/usr/bin/single-instance /opt/webbrowser/bin/webbrowser +Icon=/usr/share/icons/hicolor/80x80/apps/webbrowser80.png +X-Window-Icon= +X-HildonDesk-ShowInToolbar=true +X-Osso-Type=application/x-executable diff --git a/demos/helper/helper.pro b/demos/helper/helper.pro new file mode 100644 index 00000000..03b3dcd6 --- /dev/null +++ b/demos/helper/helper.pro @@ -0,0 +1,7 @@ +TEMPLATE = subdirs + +# the helpers simply need a make install target, but require no compilation +sources.files = \ + qmlapplicationviewer +sources.path = $$[QT_INSTALL_DEMOS]/helper +INSTALLS += sources diff --git a/demos/helper/qmlapplicationviewer/qmlapplicationviewer.cpp b/demos/helper/qmlapplicationviewer/qmlapplicationviewer.cpp new file mode 100644 index 00000000..570f68f3 --- /dev/null +++ b/demos/helper/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -0,0 +1,226 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $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$ +** +****************************************************************************/ + +#include "qmlapplicationviewer.h" + +#include +#include +#include +#include +#include +#include + +#include // MEEGO_EDITION_HARMATTAN + +#ifdef HARMATTAN_BOOSTER +#include +#endif + +#if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800 + +#include + +#if !defined(NO_JSDEBUGGER) +#include +#endif +#if !defined(NO_QMLOBSERVER) +#include +#endif + +// Enable debugging before any QDeclarativeEngine is created +struct QmlJsDebuggingEnabler +{ + QmlJsDebuggingEnabler() + { + QDeclarativeDebugHelper::enableDebugging(); + } +}; + +// Execute code in constructor before first QDeclarativeEngine is instantiated +static QmlJsDebuggingEnabler enableDebuggingHelper; + +#endif // QMLJSDEBUGGER + +class QmlApplicationViewerPrivate +{ + QmlApplicationViewerPrivate(QDeclarativeView *view_) : view(view_) {} + + QString mainQmlFile; + QDeclarativeView *view; + friend class QmlApplicationViewer; + QString adjustPath(const QString &path); +}; + +QString QmlApplicationViewerPrivate::adjustPath(const QString &path) +{ +#ifdef Q_OS_MAC + if (!QDir::isAbsolutePath(path)) + return QString::fromLatin1("%1/../Resources/%2") + .arg(QCoreApplication::applicationDirPath(), path); +#else + const QString pathInInstallDir = + QString::fromLatin1("%1/../%2").arg(QCoreApplication::applicationDirPath(), path); + if (QFileInfo(pathInInstallDir).exists()) + return pathInInstallDir; +#endif + return path; +} + +QmlApplicationViewer::QmlApplicationViewer(QWidget *parent) + : QDeclarativeView(parent) + , d(new QmlApplicationViewerPrivate(this)) +{ + connect(engine(), SIGNAL(quit()), SLOT(close())); + setResizeMode(QDeclarativeView::SizeRootObjectToView); + // Qt versions prior to 4.8.0 don't have QML/JS debugging services built in +#if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800 +#if !defined(NO_JSDEBUGGER) + new QmlJSDebugger::JSDebuggerAgent(d->view->engine()); +#endif +#if !defined(NO_QMLOBSERVER) + new QmlJSDebugger::QDeclarativeViewObserver(d->view, d->view); +#endif +#endif +} + +QmlApplicationViewer::QmlApplicationViewer(QDeclarativeView *view, QWidget *parent) + : QDeclarativeView(parent) + , d(new QmlApplicationViewerPrivate(view)) +{ + connect(view->engine(), SIGNAL(quit()), view, SLOT(close())); + view->setResizeMode(QDeclarativeView::SizeRootObjectToView); + // Qt versions prior to 4.8.0 don't have QML/JS debugging services built in +#if defined(QMLJSDEBUGGER) && QT_VERSION < 0x040800 +#if !defined(NO_JSDEBUGGER) + new QmlJSDebugger::JSDebuggerAgent(d->view->engine()); +#endif +#if !defined(NO_QMLOBSERVER) + new QmlJSDebugger::QDeclarativeViewObserver(d->view, d->view); +#endif +#endif +} + +QmlApplicationViewer::~QmlApplicationViewer() +{ + delete d; +} + +QmlApplicationViewer *QmlApplicationViewer::create() +{ +#ifdef HARMATTAN_BOOSTER + return new QmlApplicationViewer(MDeclarativeCache::qDeclarativeView(), 0); +#else + return new QmlApplicationViewer(); +#endif +} + +void QmlApplicationViewer::setMainQmlFile(const QString &file) +{ + d->mainQmlFile = d->adjustPath(file); + d->view->setSource(QUrl::fromLocalFile(d->mainQmlFile)); +} + +void QmlApplicationViewer::addImportPath(const QString &path) +{ + d->view->engine()->addImportPath(d->adjustPath(path)); +} + +void QmlApplicationViewer::setOrientation(ScreenOrientation orientation) +{ +#if defined(Q_OS_SYMBIAN) + // If the version of Qt on the device is < 4.7.2, that attribute won't work + if (orientation != ScreenOrientationAuto) { + const QStringList v = QString::fromAscii(qVersion()).split(QLatin1Char('.')); + if (v.count() == 3 && (v.at(0).toInt() << 16 | v.at(1).toInt() << 8 | v.at(2).toInt()) < 0x040702) { + qWarning("Screen orientation locking only supported with Qt 4.7.2 and above"); + return; + } + } +#endif // Q_OS_SYMBIAN + + Qt::WidgetAttribute attribute; + switch (orientation) { +#if QT_VERSION < 0x040702 + // Qt < 4.7.2 does not yet have the Qt::WA_*Orientation attributes + case ScreenOrientationLockPortrait: + attribute = static_cast(128); + break; + case ScreenOrientationLockLandscape: + attribute = static_cast(129); + break; + default: + case ScreenOrientationAuto: + attribute = static_cast(130); + break; +#else // QT_VERSION < 0x040702 + case ScreenOrientationLockPortrait: + attribute = Qt::WA_LockPortraitOrientation; + break; + case ScreenOrientationLockLandscape: + attribute = Qt::WA_LockLandscapeOrientation; + break; + default: + case ScreenOrientationAuto: + attribute = Qt::WA_AutoOrientation; + break; +#endif // QT_VERSION < 0x040702 + }; + setAttribute(attribute, true); +} + +void QmlApplicationViewer::showExpanded() +{ +#if defined(Q_OS_SYMBIAN) || defined(MEEGO_EDITION_HARMATTAN) || defined(Q_WS_SIMULATOR) + d->view->showFullScreen(); +#elif defined(Q_WS_MAEMO_5) + d->view->showMaximized(); +#else + d->view->show(); +#endif +} + +QApplication *createApplication(int &argc, char **argv) +{ +#ifdef HARMATTAN_BOOSTER + return MDeclarativeCache::qApplication(argc, argv); +#else + return new QApplication(argc, argv); +#endif +} diff --git a/demos/helper/qmlapplicationviewer/qmlapplicationviewer.h b/demos/helper/qmlapplicationviewer/qmlapplicationviewer.h new file mode 100644 index 00000000..85c02ab6 --- /dev/null +++ b/demos/helper/qmlapplicationviewer/qmlapplicationviewer.h @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $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$ +** +****************************************************************************/ + +#ifndef QMLAPPLICATIONVIEWER_H +#define QMLAPPLICATIONVIEWER_H + +#include + +class QmlApplicationViewer : public QDeclarativeView +{ + Q_OBJECT + +public: + enum ScreenOrientation { + ScreenOrientationLockPortrait, + ScreenOrientationLockLandscape, + ScreenOrientationAuto + }; + + explicit QmlApplicationViewer(QWidget *parent = 0); + virtual ~QmlApplicationViewer(); + + static QmlApplicationViewer *create(); + + void setMainQmlFile(const QString &file); + void addImportPath(const QString &path); + + // Note that this will only have an effect on Symbian and Fremantle. + void setOrientation(ScreenOrientation orientation); + + void showExpanded(); + +private: + explicit QmlApplicationViewer(QDeclarativeView *view, QWidget *parent); + class QmlApplicationViewerPrivate *d; +}; + +QApplication *createApplication(int &argc, char **argv); + +#endif // QMLAPPLICATIONVIEWER_H diff --git a/demos/helper/qmlapplicationviewer/qmlapplicationviewer.pri b/demos/helper/qmlapplicationviewer/qmlapplicationviewer.pri new file mode 100644 index 00000000..6809b644 --- /dev/null +++ b/demos/helper/qmlapplicationviewer/qmlapplicationviewer.pri @@ -0,0 +1,156 @@ +# This file was generated by the Qt Quick Application wizard of Qt Creator. +# The code below adds the QmlApplicationViewer to the project and handles the +# activation of QML debugging. +# It is recommended not to modify this file, since newer versions of Qt Creator +# may offer an updated version of it. + +QT += declarative + +SOURCES += $$PWD/qmlapplicationviewer.cpp +HEADERS += $$PWD/qmlapplicationviewer.h +INCLUDEPATH += $$PWD + +# Include JS debugger library if QMLJSDEBUGGER_PATH is set +!isEmpty(QMLJSDEBUGGER_PATH) { + include($$QMLJSDEBUGGER_PATH/qmljsdebugger-lib.pri) +} else { + DEFINES -= QMLJSDEBUGGER +} + +contains(CONFIG,qdeclarative-boostable):contains(MEEGO_EDITION,harmattan) { + DEFINES += HARMATTAN_BOOSTER +} +# This file was generated by an application wizard of Qt Creator. +# The code below handles deployment to Symbian and Maemo, aswell as copying +# of the application data to shadow build directories on desktop. +# It is recommended not to modify this file, since newer versions of Qt Creator +# may offer an updated version of it. + +defineTest(qtcAddDeployment) { +for(deploymentfolder, DEPLOYMENTFOLDERS) { + item = item$${deploymentfolder} + itemsources = $${item}.sources + $$itemsources = $$eval($${deploymentfolder}.source) + itempath = $${item}.path + $$itempath= $$eval($${deploymentfolder}.target) + export($$itemsources) + export($$itempath) + DEPLOYMENT += $$item +} + +MAINPROFILEPWD = $$_PRO_FILE_PWD_ + +symbian { + isEmpty(ICON):exists($${TARGET}.svg):ICON = $${TARGET}.svg + isEmpty(TARGET.EPOCHEAPSIZE):TARGET.EPOCHEAPSIZE = 0x20000 0x2000000 +} else:win32 { + copyCommand = + for(deploymentfolder, DEPLOYMENTFOLDERS) { + source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source) + source = $$replace(source, /, \\) + sourcePathSegments = $$split(source, \\) + target = $$OUT_PWD/$$eval($${deploymentfolder}.target)/$$last(sourcePathSegments) + target = $$replace(target, /, \\) + target ~= s,\\\\\\.?\\\\,\\, + !isEqual(source,$$target) { + !isEmpty(copyCommand):copyCommand += && + isEqual(QMAKE_DIR_SEP, \\) { + copyCommand += $(COPY_DIR) \"$$source\" \"$$target\" + } else { + source = $$replace(source, \\\\, /) + target = $$OUT_PWD/$$eval($${deploymentfolder}.target) + target = $$replace(target, \\\\, /) + copyCommand += test -d \"$$target\" || mkdir -p \"$$target\" && cp -r \"$$source\" \"$$target\" + } + } + } + !isEmpty(copyCommand) { + copyCommand = @echo Copying application data... && $$copyCommand + copydeploymentfolders.commands = $$copyCommand + first.depends = $(first) copydeploymentfolders + export(first.depends) + export(copydeploymentfolders.commands) + QMAKE_EXTRA_TARGETS += first copydeploymentfolders + } +} else:unix { + maemo5 { + installPrefix = /opt/$${TARGET} + target.path = $${installPrefix}/bin + desktopfile.files = $${TARGET}.desktop + desktopfile.path = /usr/share/applications/hildon + icon.files = $${TARGET}64.png + icon.path = /usr/share/icons/hicolor/64x64/apps + } else:!isEmpty(MEEGO_VERSION_MAJOR) { + installPrefix = /opt/$${TARGET} + target.path = $${installPrefix}/bin + desktopfile.files = $${TARGET}_harmattan.desktop + desktopfile.path = /usr/share/applications + icon.files = $${TARGET}80.png + icon.path = /usr/share/icons/hicolor/80x80/apps + } else { # Assumed to be a Desktop Unix + installPrefix = $$desktopInstallPrefix + target.path = $${installPrefix} + sources.files = *.cpp *.h *.desktop *.png *.pro *.qml *.qmlproject *.svg + sources.path = $$desktopInstallPrefix + export(sources.files) + export(sources.path) + INSTALLS += sources + copyCommand = + for(deploymentfolder, DEPLOYMENTFOLDERS) { + source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source) + source = $$replace(source, \\\\, /) + macx { + target = $$OUT_PWD/$${TARGET}.app/Contents/Resources/$$eval($${deploymentfolder}.target) + } else { + target = $$OUT_PWD/$$eval($${deploymentfolder}.target) + } + target = $$replace(target, \\\\, /) + sourcePathSegments = $$split(source, /) + targetFullPath = $$target/$$last(sourcePathSegments) + targetFullPath ~= s,/\\.?/,/, + !isEqual(source,$$targetFullPath) { + !isEmpty(copyCommand):copyCommand += && + copyCommand += $(MKDIR) \"$$target\" + copyCommand += && $(COPY_DIR) \"$$source\" \"$$target\" + } + } + !isEmpty(copyCommand) { + copyCommand = @echo Copying application data... && $$copyCommand + copydeploymentfolders.commands = $$copyCommand + first.depends = $(first) copydeploymentfolders + export(first.depends) + export(copydeploymentfolders.commands) + QMAKE_EXTRA_TARGETS += first copydeploymentfolders + } + } + for(deploymentfolder, DEPLOYMENTFOLDERS) { + item = item$${deploymentfolder} + itemfiles = $${item}.files + $$itemfiles = $$eval($${deploymentfolder}.source) + itempath = $${item}.path + $$itempath = $${installPrefix}/$$eval($${deploymentfolder}.target) + export($$itemfiles) + export($$itempath) + INSTALLS += $$item + } + + !isEmpty(desktopfile.path) { + export(icon.files) + export(icon.path) + export(desktopfile.files) + export(desktopfile.path) + INSTALLS += icon desktopfile + } + + export(target.path) + INSTALLS += target +} + +export (ICON) +export (INSTALLS) +export (DEPLOYMENT) +export (TARGET.EPOCHEAPSIZE) +export (TARGET.CAPABILITY) +export (LIBS) +export (QMAKE_EXTRA_TARGETS) +} diff --git a/demos/mobile/guitartuner/guitartuner.pro b/demos/mobile/guitartuner/guitartuner.pro new file mode 100644 index 00000000..62835300 --- /dev/null +++ b/demos/mobile/guitartuner/guitartuner.pro @@ -0,0 +1,89 @@ +#------------------------------------------------- +# +# Project created by QtCreator 2010-10-22T14:28:56 +# +#------------------------------------------------- + +QT += core gui + +TARGET = guitartuner +TEMPLATE = app + +ICON = images/guitartuner_icon.svg + +SOURCES += src/main.cpp\ + src/guitartuner.cpp \ + src/voicegenerator.cpp \ + src/voiceanalyzer.cpp \ + src/guitartunerui.cpp \ + src/fastfouriertransformer.cpp + +HEADERS += src/guitartuner.h \ + src/voicegenerator.h \ + src/voiceanalyzer.h \ + src/constants.h \ + src/guitartunerui.h \ + src/fastfouriertransformer.h + +FORMS += src/guitartunerui.ui + +VERSION = 1.2.0 + +symbian { + INCLUDEPATH += /epoc32/include/mmf/common + INCLUDEPATH += /epoc32/include/mmf/server + LIBS += -lmmfdevsound + TARGET.UID3 = 0xEC46D2C8 + # TARGET.CAPABILITY += + # TARGET.EPOCSTACKSIZE = 0x14000 + # TARGET.EPOCHEAPSIZE = 0x020000 0x1000000 +} + +RESOURCES += \ + guitartuner.qrc + +# Avoid auto screen rotation +DEFINES += ORIENTATIONLOCK + +symbian { + contains(DEFINES, ORIENTATIONLOCK):LIBS += -lavkon -leikcore -leiksrv -lcone +} + + +# Add mobility into Qt's CONFIG, and add multimedia into MOBILITY. + +win32 { + QT += multimedia + RC_FILE = src/guitartuner.rc +} +else { + CONFIG += mobility + MOBILITY += multimedia +} + +symbian { + TARGET.CAPABILITY = UserEnvironment +} + +# Add declarative module +QT += declarative + +OTHER_FILES += \ + src/application.qml \ + src/mycomponents/Adjuster.qml \ + src/mycomponents/adjustbars.js \ + src/mycomponents/ToggleButton.qml + +OTHER_FILES += \ + src/mycomponents/NotesModel.qml \ + src/mycomponents/NoteButtonView.qml \ + src/mycomponents/Meter.qml + +unix:!symbian { + maemo5 { + target.path = /opt/usr/bin + } else { + target.path = /usr/local/bin + } + INSTALLS += target +} diff --git a/demos/mobile/guitartuner/guitartuner.qrc b/demos/mobile/guitartuner/guitartuner.qrc new file mode 100644 index 00000000..d8ba0199 --- /dev/null +++ b/demos/mobile/guitartuner/guitartuner.qrc @@ -0,0 +1,43 @@ + + + src/application.qml + src/mycomponents/adjustbars.js + src/mycomponents/Adjuster.qml + src/mycomponents/Meter.qml + src/mycomponents/NoteButtonView.qml + src/mycomponents/NotesModel.qml + src/mycomponents/ToggleButton.qml + src/mycomponents/images/meterBG.png + src/mycomponents/images/pointerShadow.png + src/mycomponents/images/sensitivity.png + src/mycomponents/images/tuner_a.png + src/mycomponents/images/tuner_a_on.png + src/mycomponents/images/tuner_b.png + src/mycomponents/images/tuner_b_on.png + src/mycomponents/images/tuner_d.png + src/mycomponents/images/tuner_d_on.png + src/mycomponents/images/tuner_e.png + src/mycomponents/images/tuner_e_on.png + src/mycomponents/images/tuner_g.png + src/mycomponents/images/tuner_g_on.png + src/mycomponents/images/voicemode_off.png + src/mycomponents/images/voicemode_on.png + src/mycomponents/images/volume.png + src/mycomponents/images/volume_off.png + src/mycomponents/images/guitartuner_skin.png + src/mycomponents/images/power.png + src/mycomponents/images/tuner_auto.png + src/mycomponents/images/tuner_auto_on.png + src/mycomponents/images/big_a.png + src/mycomponents/images/big_b.png + src/mycomponents/images/big_d.png + src/mycomponents/images/big_e.png + src/mycomponents/images/big_g.png + src/mycomponents/images/glowing_a.png + src/mycomponents/images/glowing_b.png + src/mycomponents/images/glowing_d.png + src/mycomponents/images/glowing_e.png + src/mycomponents/images/glowing_g.png + src/mycomponents/images/pointer.png + + diff --git a/demos/mobile/guitartuner/images/guitartab.svg b/demos/mobile/guitartuner/images/guitartab.svg new file mode 100644 index 00000000..9d88d5d2 --- /dev/null +++ b/demos/mobile/guitartuner/images/guitartab.svg @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + diff --git a/demos/mobile/guitartuner/images/guitartuner_icon.svg b/demos/mobile/guitartuner/images/guitartuner_icon.svg new file mode 100644 index 00000000..de7ebe0f --- /dev/null +++ b/demos/mobile/guitartuner/images/guitartuner_icon.svg @@ -0,0 +1,247 @@ + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demos/mobile/guitartuner/images/inputMode.svg b/demos/mobile/guitartuner/images/inputMode.svg new file mode 100644 index 00000000..f95991af --- /dev/null +++ b/demos/mobile/guitartuner/images/inputMode.svg @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + diff --git a/demos/mobile/guitartuner/images/note.svg b/demos/mobile/guitartuner/images/note.svg new file mode 100644 index 00000000..c1f1771a --- /dev/null +++ b/demos/mobile/guitartuner/images/note.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/demos/mobile/guitartuner/images/noteNo.svg b/demos/mobile/guitartuner/images/noteNo.svg new file mode 100644 index 00000000..888d2308 --- /dev/null +++ b/demos/mobile/guitartuner/images/noteNo.svg @@ -0,0 +1,105 @@ + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/demos/mobile/guitartuner/src/application.qml b/demos/mobile/guitartuner/src/application.qml new file mode 100644 index 00000000..c18e64c5 --- /dev/null +++ b/demos/mobile/guitartuner/src/application.qml @@ -0,0 +1,328 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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 1.0 +import "mycomponents" + +/* The base canvas for all QML drawing. */ +Rectangle { + id: application + + property int targetNoteIndex: 0 + property alias frequency: noteChooser.currentFrequency + //Data provided to C++. + property bool isInput: true + property bool isMuted: false + property bool isAuto: true + property alias maxVoiceDifference: voiceDifferenceMeter.maxValue + property real volume: 0.5 + property real sensitivity: 0.5 + + //Signals to C++. + signal volumeChanged(real volume) + signal microphoneSensitivityChanged(real sensitivity) + signal targetFrequencyChanged(real frequency) + signal modeChanged(bool isInput) + signal muteStateChanged(bool isMuted) + + //Slots for signals coming from C++. + function voiceDifferenceChanged(difference) { + if (isAuto) timer.running = true; + voiceDifferenceMeter.valueChanged(difference); + noteImage.glowing = false + } + function correctFrequencyObtained() { + noteImage.glowing = true + } + function lowVoice() { + noteImage.glowing = false + } + + //Private function for changing the target frequency automatically. + function calculateTargetFrequency(difference) { + var tempDifference = Math.abs(difference); + var tempIndex = targetNoteIndex + while (!(difference < 0 && tempIndex == 0) && + tempDifference >= notes.get(tempIndex-(difference<0)).interval/2) { + tempDifference -= notes.get(tempIndex-(difference<0)).interval; + tempIndex += difference/Math.abs(difference); + } + if (tempIndex != targetNoteIndex) { + targetNoteIndex = tempIndex + noteChooser.currentFrequency = notes.get(targetNoteIndex).frequency; + targetFrequencyChanged(frequency); + } + } + + width: 360; height: 640 + color: "black" + + //Provides data for functions. + NotesModel {id: notes} + + /* A timer for changing the target frequency automatically. + * This is needed for avoiding recursion. */ + Timer { + id: timer + + interval: 1 + onTriggered: calculateTargetFrequency(voiceDifferenceMeter.value) + } + + //A meter for showing the difference between current and target frequency. + Meter { + id: voiceDifferenceMeter + + maxValue: 12 + minValue: -maxValue + height: imageSize.height/background.sourceSize.height*parent.height + width: imageSize.width/background.sourceSize.width*parent.width + anchors { + topMargin: 100/background.sourceSize.height*parent.height + horizontalCenter: parent.horizontalCenter + top: parent.top + } + } + + Image { + id: background + + anchors.fill: parent + smooth: true + source: "./mycomponents/images/guitartuner_skin.png" + } + + //A button for quitting the application. + Image { + id: quitButton + + width: sourceSize.width/background.sourceSize.width*parent.width + height: sourceSize.height/background.sourceSize.height*parent.height + source: "./mycomponents/images/power.png" + smooth: true + KeyNavigation.up: volumeAdjuster + KeyNavigation.down: modeButton + Keys.onEnterPressed: Qt.quit() + anchors{ + leftMargin: 297/background.sourceSize.width*parent.width + left: parent.left; + topMargin: 17/background.sourceSize.height*parent.height + top: parent.top + } + + MouseArea { + anchors.fill: parent + onClicked: Qt.quit() + } + } + + //An image for showing the target note. + Image { + id: noteImage + + property bool glowing: false + + width: sourceSize.width/background.sourceSize.width*parent.width + height: sourceSize.height/background.sourceSize.height*parent.height + source: glowing ? notes.get(targetNoteIndex).glowSource : notes.get(targetNoteIndex).bigSource + + anchors { + topMargin: 273/background.sourceSize.height*parent.height + top: parent.top + horizontalCenter: parent.horizontalCenter + } + } + + //A button for choosing the input/output mode. + Image { + id: modeButton + + function buttonPressed() { + isInput = !isInput + modeChanged(isInput) + if (isInput) { + soundIcons.source = "./mycomponents/images/sensitivity.png" + source = "./mycomponents/images/voicemode_off.png" + volumeAdjuster.setValue(sensitivity) + } + else { + //Change off from "auto" mode + if (isAuto) { + noteChooser.pushButton(targetNoteIndex) + } + if (isMuted) { + soundIcons.source = "./mycomponents/images/volume_off.png"; + } + else + soundIcons.source = "./mycomponents/images/volume.png" + source = "./mycomponents/images/voicemode_on.png" + volumeAdjuster.setValue(volume) + } + } + + width: sourceSize.width/background.sourceSize.width*parent.width + height: sourceSize.height/background.sourceSize.height*parent.height + smooth: true + source: "./mycomponents/images/voicemode_off.png" + KeyNavigation.up: quitButton + KeyNavigation.down: noteChooser + Keys.onEnterPressed: buttonPressed() + anchors { + leftMargin: 16/background.sourceSize.width*parent.width + left: parent.left + topMargin: 353/background.sourceSize.height*parent.height + top: parent.top + } + + MouseArea { + anchors.fill: parent + onPressed: { + parent.focus = true + parent.scale = 0.95 + } + onReleased: { + parent.scale = 1/0.95 + } + onClicked: parent.buttonPressed() + } + } + + //Buttons for choosing the target note. + NoteButtonView { + id: noteChooser + + width: parent.width*0.95; height: width/model.count + onNoteSelected: { + if (note == "Auto") { + if (!isAuto) { + isAuto = true + } + if (!isInput) { + modeButton.buttonPressed() + } + } + else { + timer.running = false; + isAuto = false + targetNoteIndex = index + targetFrequencyChanged(frequency) + } + focus = true + } + KeyNavigation.up: modeButton + KeyNavigation.down: soundIcons + anchors { + horizontalCenter: parent.horizontalCenter + topMargin: 454/background.sourceSize.height*parent.height + top: parent.top + } + } + + //An element for showing the mode and changing the mute state. + Image { + id: soundIcons + + function stateChanged() { + isMuted = !isMuted + muteStateChanged(isMuted) + if (isMuted) { + source = "qrc:/src/mycomponents/images/volume_off.png" + } + else { + source = "qrc:/src/mycomponents/images/volume.png" + } + } + + width: sourceSize.width/background.sourceSize.width*parent.width + height: sourceSize.height/background.sourceSize.height*parent.height + smooth: true + source: "./mycomponents/images/sensitivity.png" + Keys.onEnterPressed: stateChanged() + KeyNavigation.up: noteChooser + KeyNavigation.down: quitButton + KeyNavigation.left: volumeAdjuster + KeyNavigation.right: volumeAdjuster + anchors { + leftMargin: 42/background.sourceSize.width*parent.width + left: parent.left + topMargin: 565/background.sourceSize.height*parent.height + top: parent.top + } + + MouseArea { + anchors.fill: parent + onClicked: { + if (!isInput) { + parent.stateChanged() + } + parent.focus = true + } + } + } + + //An element for adjusting volume. + Adjuster { + id: volumeAdjuster + + max: 1 + value: 0.5 + width: 222/background.sourceSize.width*parent.width + height: parent.height*0.1 + onFocusChangedByClick: focus = true + onArrowPressedWhenValueOverLimits: soundIcons.focus = true + KeyNavigation.up: modeButton + KeyNavigation.down: quitButton + anchors { + leftMargin: 98/background.sourceSize.width*parent.width + left: parent.left + verticalCenter: soundIcons.verticalCenter + } + onValueChanged: { + if (isInput) { + sensitivity = value; + microphoneSensitivityChanged(1-sensitivity) + } + else { + volume = value + volumeChanged(volume) + } + } + } +} diff --git a/demos/mobile/guitartuner/src/constants.h b/demos/mobile/guitartuner/src/constants.h new file mode 100644 index 00000000..ab53cbea --- /dev/null +++ b/demos/mobile/guitartuner/src/constants.h @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#ifndef CONSTANTS_H +#define CONSTANTS_H + +#define M_MAX_AMPLITUDE_8BIT_SIGNED 127 +#define M_MAX_AMPLITUDE_8BIT_UNSIGNED 255 +#define M_MAX_AMPLITUDE_16BIT_SIGNED 32767 +#define M_MAX_AMPLITUDE_16BIT_UNSIGNED 65535 + +#define M_TWELTH_ROOT_OF_2 1.05946309435930000000 + +// M_SAMPLE_COUNT_MULTIPLIER is 2/(M_TWELTH_ROOT_OF_2 - 1) +#define M_SAMPLE_COUNT_MULTIPLIER 33.63430749021150000000 + +#endif // CONSTANTS_H diff --git a/demos/mobile/guitartuner/src/fastfouriertransformer.cpp b/demos/mobile/guitartuner/src/fastfouriertransformer.cpp new file mode 100644 index 00000000..275d36b2 --- /dev/null +++ b/demos/mobile/guitartuner/src/fastfouriertransformer.cpp @@ -0,0 +1,184 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#include "fastfouriertransformer.h" +#include "math.h" + +#define STIN inline +#define __STATIC + +#include "fftpack.c" + +// called by __ogg_fdrffti +__STATIC void drfti1(int n, float *wa, int *ifac); +void __ogg_fdrffti(int n, float *wsave, int *ifac); +void __ogg_fdcosqi(int n, float *wsave, int *ifac); +// called by drftf1 +STIN void dradf2(int ido,int l1,float *cc,float *ch,float *wa1); +// called by drftf1 +STIN void dradf4(int ido,int l1,float *cc,float *ch,float *wa1, + float *wa2,float *wa3); +// called by drftf1 +STIN void dradfg(int ido,int ip,int l1,int idl1,float *cc,float *c1, + float *c2,float *ch,float *ch2,float *wa); +// called by drftf1 +STIN void drftf1(int n,float *c,float *ch,float *wa,int *ifac); +void __ogg_fdrfftf(int n,float *r,float *wsave,int *ifac); +STIN void dcsqf1(int n,float *x,float *w,float *xh,int *ifac); +void __ogg_fdcosqf(int n,float *x,float *wsave,int *ifac); +STIN void dradb2(int ido,int l1,float *cc,float *ch,float *wa1); +STIN void dradb3(int ido,int l1,float *cc,float *ch,float *wa1, + float *wa2); +STIN void dradb4(int ido,int l1,float *cc,float *ch,float *wa1, + float *wa2,float *wa3); +STIN void dradbg(int ido,int ip,int l1,int idl1,float *cc,float *c1, + float *c2,float *ch,float *ch2,float *wa); +STIN void drftb1(int n, float *c, float *ch, float *wa, int *ifac); +void __ogg_fdrfftb(int n, float *r, float *wsave, int *ifac); +STIN void dcsqb1(int n,float *x,float *w,float *xh,int *ifac); +void __ogg_fdcosqb(int n,float *x,float *wsave,int *ifac); + +FastFourierTransformer::FastFourierTransformer(QObject *parent) : + QObject(parent), + m_waveFloat(0), + m_workingArray(0), + m_ifac(0), + m_last_n(-1) +{ +} + +FastFourierTransformer::~FastFourierTransformer() +{ + if (m_waveFloat != 0) { + delete [] m_waveFloat; + } + if (m_workingArray != 0) { + delete [] m_workingArray; + } + if (m_ifac != 0) { + delete [] m_ifac; + } +} + +/** + * Prepares the arrays to be of length n. + */ +void FastFourierTransformer::reserve(int n) +{ + Q_ASSERT(n>0); + if (m_waveFloat != 0) { + delete [] m_waveFloat; + } + if (m_workingArray != 0) { + delete [] m_workingArray; + } + if (m_ifac != 0) { + delete [] m_ifac; + } + m_workingArray = new float[2*n+15]; + m_waveFloat = new float[n]; + m_ifac = new int[n]; + __ogg_fdrffti(n, m_workingArray, m_ifac); + m_last_n = n; +} + +/** + * Calculates the Fast Fourier Transformation (FFT). + */ +void FastFourierTransformer::calculateFFT(QList wave) +{ + const int n = wave.size(); + if (m_last_n != n) { + reserve(n); + } + for (int i = 0; i < n; i++) { + m_waveFloat[i] = (float) wave.at(i); + } + + __ogg_fdrfftf(n, m_waveFloat, m_workingArray, m_ifac); + +} + +/** + * Returns the index which corresponds to the maximum density + * of the FFT. + */ +int FastFourierTransformer::getMaximumDensityIndex() +{ + const int halfN = m_last_n / 2; + float maxDensity = 0; + int maxDensityIndex = 0; + float densitySquared = 0.f; + for (int k = 1; k < halfN; k++) { + // Here, we calculate the frequency k/N. + // k=1, the wave oscillation time is N, and the frequency + // is 1/sample. + // k=2, the wave oscillation time is N/2, and the frequency + // is 2/sample. + // k=3, the wave oscillation time is N/3, and the frequency + // is 3/sample. + // Note, that the documentation is for Fortran, so indexes in the + // documentation does not match. + // The sine and cosine coefficients are obtained thus as follows: + const float cosCoefficient = qAbs(m_waveFloat[2*k-1]); + const float sinCoefficient = qAbs(m_waveFloat[2*k]); + + densitySquared = sinCoefficient*sinCoefficient + cosCoefficient*cosCoefficient; + if (densitySquared > maxDensity) { + maxDensity = densitySquared; + maxDensityIndex = k; + } + } + + if (m_cutOffForDensitySquared < maxDensity) { + return maxDensityIndex; + } + else { + return -1; + } +} + +/** + * Sets the cutoff density. + */ +void FastFourierTransformer::setCutOffForDensity(float cutoff) +{ + m_cutOffForDensitySquared = cutoff*cutoff; +} diff --git a/demos/mobile/guitartuner/src/fastfouriertransformer.h b/demos/mobile/guitartuner/src/fastfouriertransformer.h new file mode 100644 index 00000000..b8064f7a --- /dev/null +++ b/demos/mobile/guitartuner/src/fastfouriertransformer.h @@ -0,0 +1,67 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#ifndef FASTFOURIERTRANSFORM_H +#define FASTFOURIERTRANSFORM_H + +#include +#include + +class FastFourierTransformer : public QObject +{ + Q_OBJECT + +public: + FastFourierTransformer(QObject *parent = 0); + ~FastFourierTransformer(); + void reserve(int n); + void calculateFFT(QList wave); + int getMaximumDensityIndex(); + void setCutOffForDensity(float cutoff); + +private: + float *m_waveFloat; + float *m_workingArray; + int *m_ifac; + int m_last_n; + float m_cutOffForDensitySquared; +}; + +#endif // FASTFOURIERTRANSFORM_H diff --git a/demos/mobile/guitartuner/src/fftpack.c b/demos/mobile/guitartuner/src/fftpack.c new file mode 100644 index 00000000..43109408 --- /dev/null +++ b/demos/mobile/guitartuner/src/fftpack.c @@ -0,0 +1,1406 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +/******************************************************************** + + The routines in this file are from http://www.netlib.org/fftpack/. + According to the comments in the original file (which are provided below) + and according to the wikipedia article about the FFTPACK[1], + they are released as public domain. + + For information about the author of the original, Fortran routines, + and the author of the C translation these routines, + see the comments below. + + [1] http://en.wikipedia.org/wiki/FFTPACK, referenced 2010-12-21. + + ********************************************************************/ + +/******************************************************************** + + file: fft.c + function: Fast discrete Fourier and cosine transforms and inverses + author: Monty + modifications by: Monty + last modification date: Jul 1 1996 + + ********************************************************************/ + +/* These Fourier routines were originally based on the Fourier + routines of the same names from the NETLIB bihar and fftpack + fortran libraries developed by Paul N. Swarztrauber at the National + Center for Atmospheric Research in Boulder, CO USA. They have been + reimplemented in C and optimized in a few ways for OggSquish. */ + +/* As the original fortran libraries are public domain, the C Fourier + routines in this file are hereby released to the public domain as + well. The C routines here produce output exactly equivalent to the + original fortran routines. Of particular interest are the facts + that (like the original fortran), these routines can work on + arbitrary length vectors that need not be powers of two in + length. */ + +#include + +__STATIC void drfti1(int n, float *wa, int *ifac){ + static int ntryh[4] = { 4,2,3,5 }; + static float tpi = 6.28318530717958647692528676655900577; + float arg,argh,argld,fi; + int ntry=0,i,j=-1; + int k1, l1, l2, ib; + int ld, ii, ip, is, nq, nr; + int ido, ipm, nfm1; + int nl=n; + int nf=0; + + L101: + j++; + if (j < 4) + ntry=ntryh[j]; + else + ntry+=2; + + L104: + nq=nl/ntry; + nr=nl-ntry*nq; + if (nr!=0) goto L101; + + nf++; + ifac[nf+1]=ntry; + nl=nq; + if (ntry!=2) goto L107; + if (nf==1) goto L107; + + for (i=1;i>1; + ipp2=ip; + idp2=ido; + nbd=(ido-1)>>1; + t0=l1*ido; + t10=ip*ido; + + if (ido==1) goto L119; + for (ik=0;ikl1){ + for (j=1;j>1; + np2=n; + + kc=np2; + for (k=1;k>1; + ipp2=ip; + ipph=(ip+1)>>1; + if (idol1) goto L139; + + is= -ido-1; + t1=0; + for (j=1;j>1; + np2=n; + + for (i=2;i +#endif // Q_OS_SYMBIAN + +#if defined(Q_OS_SYMBIAN) && defined(ORIENTATIONLOCK) +#include +#include +#include +#include +#endif // Q_OS_SYMBIAN && ORIENTATIONLOCK + +GuitarTuner::GuitarTuner(QWidget *parent) : + QMainWindow(parent) +{ + + // Set up the QML. + m_guitarTunerUI = new QDeclarativeView(QUrl("qrc:/src/application.qml"), this); + setCentralWidget(m_guitarTunerUI); + m_guitarTunerUI->setResizeMode(QDeclarativeView::SizeRootObjectToView); + qmlObject = m_guitarTunerUI->rootObject(); + + // Init audio output and input. + initAudioOutput(); + initAudioInput(); + + // Connect the quit signal of m_guitarTunerUI + // into the close slot of this. + connect(m_guitarTunerUI->engine(), SIGNAL(quit()), SLOT(close())); + + // Connect the signals from qmlObject into proper slots + // of this and m_voicegenerator. + connect(qmlObject, SIGNAL(muteStateChanged(bool)), + SLOT(muteStateChanged(bool))); + connect(qmlObject, SIGNAL(volumeChanged(qreal)), + m_voicegenerator, SLOT(setAmplitude(qreal))); + connect(qmlObject, SIGNAL(volumeChanged(qreal)), + SLOT(setMaxVolumeLevel(qreal))); + + // Connect the modeChanged signal from qmlObject + // into modeChanged slot of this class. + connect(qmlObject, SIGNAL(modeChanged(bool)), + SLOT(modeChanged(bool))); + + // Connect the microphoneSensitivityChanged signal from + // m_guitarTunerUI into setCutOffPercentage slot of m_analyzer class. + connect(qmlObject, SIGNAL(microphoneSensitivityChanged(qreal)), + m_analyzer, SLOT(setCutOffPercentage(qreal))); + + // Connect the signals from m_analyzer into slots of qmlObject. + connect(m_analyzer, SIGNAL(lowVoice()), + qmlObject, SLOT(lowVoice())); + connect(m_analyzer, SIGNAL(correctFrequency()), + qmlObject, SLOT(correctFrequencyObtained())); + connect(m_analyzer, SIGNAL(voiceDifference(QVariant)), + qmlObject, SLOT(voiceDifferenceChanged(QVariant))); + + // Initialise the MaximumVoiceDifference + // value of qmlObject with the value obtained from m_analyzer. + qmlObject->setProperty("maxVoiceDifference", + m_analyzer->getMaximumVoiceDifference()); + + // Connect the targetFrequencyChanged signal of qmlObject + // into targetFrequencyChanged slot of this class. + connect(qmlObject, SIGNAL(targetFrequencyChanged(qreal)), + SLOT(targetFrequencyChanged(qreal))); + + // Start voice output or input by using the modeChanged function, + // depending of the current mode. + modeChanged(qmlObject->property("isInput").toBool()); + +} + +/** + * Inits audio output. + */ +void GuitarTuner::initAudioOutput() +{ + // Set up the output format. + m_format_output.setFrequency(DataFrequencyHzOutput); + m_format_output.setCodec("audio/pcm"); + m_format_output.setSampleSize(16); + m_format_output.setChannels(1); + m_format_output.setByteOrder(QAudioFormat::LittleEndian); + m_format_output.setSampleType(QAudioFormat::SignedInt); + + // Obtain a default output device, and if the format is not + // supported, find the nearest format available. + QAudioDeviceInfo outputDeviceInfo( + QAudioDeviceInfo::defaultOutputDevice()); + if (!outputDeviceInfo.isFormatSupported(m_format_output)) { + m_format_output = outputDeviceInfo.nearestFormat(m_format_output); + } + + // Create new QAudioOutput and VoiceGenerator instances, and store + // them in m_audioOutput and m_voicegenerator, respectively. + m_audioOutput = new QAudioOutput(outputDeviceInfo, + m_format_output, this); + m_voicegenerator = new VoiceGenerator(m_format_output, + qmlObject->property("frequency").toReal(), + qmlObject->property("volume").toReal(), + this); + + // Connect m_audioOutput stateChanged signal to outputStateChanged. + connect(m_audioOutput, SIGNAL(stateChanged(QAudio::State)), + SLOT(outputStateChanged(QAudio::State))); +} + +/** + * Inits audio input. + */ +void GuitarTuner::initAudioInput() +{ + // Set up the input format. + m_format_input.setFrequency(DataFrequencyHzInput); + m_format_input.setCodec("audio/pcm"); + m_format_input.setSampleSize(16); + m_format_input.setChannels(1); + m_format_input.setByteOrder(QAudioFormat::LittleEndian); + m_format_input.setSampleType(QAudioFormat::SignedInt); + + // Obtain a default input device, and if the format is not + // supported, find the nearest format available. + QAudioDeviceInfo inputDeviceInfo( + QAudioDeviceInfo::defaultInputDevice()); + if (!inputDeviceInfo.isFormatSupported(m_format_input)) { + m_format_input = inputDeviceInfo.nearestFormat(m_format_input); + } + + // Create new QAudioInput and VoiceAnalyzer instances, and store + // them in m_audioInput and m_analyzer, respectively. + // Remember to set the cut-off percentage for voice analyzer. + m_audioInput = new QAudioInput(inputDeviceInfo, m_format_input, this); + m_analyzer = new VoiceAnalyzer(m_format_input, this); + m_analyzer->setCutOffPercentage(qmlObject->property("sensitivity").toReal()); + +} + +/** + * Receives a mode changed signal. + */ +void GuitarTuner::modeChanged(bool isInput) +{ + + + + // If the mode must be changed to input mode: + if (isInput) { + + // Stop audio output and audio generator. + m_audioOutput->stop(); + m_voicegenerator->stop(); + // Start the audio analyzer and then the audio input. + m_analyzer->start(qmlObject->property("frequency").toReal()); + m_audioInput->start(m_analyzer); + + } + // Else: + else { + + // Stop audio input and audio analyzer. + m_audioInput->stop(); + m_analyzer->stop(); + + // Set up the audio output. + + // If the current frequency of voice generator + // is not the same as the target frequency selected in the UI, + // update voice generator's frequency. + if (m_voicegenerator->frequency() != qmlObject->property("frequency").toReal()) { + m_voicegenerator->setFrequency(qmlObject->property("frequency").toReal()); + } + + // Start the voice generator and then the audio output. + m_voicegenerator->start(); + m_audioOutput->start(m_voicegenerator); + // Call setMaxVolumeLevel(1) to set the maximum volume louder. + setMaxVolumeLevel(qmlObject->property("volume").toReal()); + + // If the voice is muted, the voice is suspended + // in the outputStateChanged slot. + + } +} + +/** + * Receives a output state changed signal. + * Suspends the audio output, if the state is ActiveState + * and the voice is muted. + */ +void GuitarTuner::outputStateChanged(QAudio::State state) +{ + if (QAudio::ActiveState == state && qmlObject->property("isMuted").toBool()) { + // If the voice is muted, suspend the voice. + m_audioOutput->suspend(); + } +} + +/** + * Receives a mute state changed signal. + * Suspends the audio output or resumes it, depending of the + * isMuted parameter. + */ +void GuitarTuner::muteStateChanged(bool isMuted) +{ + if (isMuted) { + m_audioOutput->suspend(); + } + else { + m_audioOutput->resume(); + } +} + +/** + * Receives a target frequency signal. + */ +void GuitarTuner::targetFrequencyChanged(qreal targetFrequency) +{ + // If the output mode is active: + if (!qmlObject->property("isInput").toBool()) { + // Stop the audio output and voice generator. + m_audioOutput->stop(); + m_voicegenerator->stop(); + // Set the voice generator's frequency to the target frequency. + m_voicegenerator->setFrequency(targetFrequency); + // Start the voice generator and audio output. + m_voicegenerator->start(); + m_audioOutput->start(m_voicegenerator); + // Call setMaxVolumeLevel(1) to set the maximum volume louder. + setMaxVolumeLevel(qmlObject->property("volume").toReal()); + + // If the voice is muted, the voice is suspended + // in the outputStateChanged slot. + + } + // Else: + else { + + // Stop the audio input and voice analyzer. + m_audioInput->stop(); + m_analyzer->stop(); + // Start the voice analyzer with new frequency and audio input. + m_analyzer->start(targetFrequency); + m_audioInput->start(m_analyzer); + + } +} + +/** + * This method provides a hack to set the maximum volume level in + * Symbian. + */ +void GuitarTuner::setMaxVolumeLevel(qreal percent) +{ + if (percent >= 1.0) { + percent = 1.0; + } + else if (percent <= 0.0) { + percent = 0.0; + } + percent = percent*0.5 + 0.5; + // Warning! This is a hack, which can break when the QtMobility + // changes. Use at your own risk. +#ifdef Q_OS_SYMBIAN + unsigned int *pointer_to_abstract_audio + = (unsigned int*)( (unsigned char*)m_audioOutput + 8 ); + unsigned int *dev_sound_wrapper + = (unsigned int*)(*pointer_to_abstract_audio) + 16; + unsigned int *temp + = ((unsigned int*)(*dev_sound_wrapper) + 6); + CMMFDevSound *dev_sound = (CMMFDevSound*)(*temp); + dev_sound->SetVolume((unsigned int) + (percent*(float)dev_sound->MaxVolume())); +#endif +} + +/** + * A function used to lock the orientation. + */ +void GuitarTuner::setOrientation(Orientation orientation) +{ +#ifdef Q_OS_SYMBIAN + if (orientation != Auto) { +#if defined(ORIENTATIONLOCK) + const CAknAppUiBase::TAppUiOrientation uiOrientation = + (orientation == LockPortrait) + ? CAknAppUi::EAppUiOrientationPortrait + : CAknAppUi::EAppUiOrientationLandscape; + CAknAppUi* appUi = dynamic_cast + (CEikonEnv::Static()->AppUi()); + TRAPD(error, + if (appUi) + appUi->SetOrientationL(uiOrientation); + ); +#else // ORIENTATIONLOCK + qWarning(QString("'ORIENTATIONLOCK' needs to be defined on") + +QString(" Symbian when locking the orientation.")); +#endif // ORIENTATIONLOCK + } +#elif defined(Q_WS_MAEMO_5) + Qt::WidgetAttribute attribute; + switch (orientation) { + case LockPortrait: + attribute = Qt::WA_Maemo5PortraitOrientation; + break; + case LockLandscape: + attribute = Qt::WA_Maemo5LandscapeOrientation; + break; + case Auto: + default: + attribute = Qt::WA_Maemo5AutoOrientation; + break; + } + setAttribute(attribute, true); +#else // Q_OS_SYMBIAN + Q_UNUSED(orientation); +#endif // Q_OS_SYMBIAN +} diff --git a/demos/mobile/guitartuner/src/guitartuner.h b/demos/mobile/guitartuner/src/guitartuner.h new file mode 100644 index 00000000..fbb16f7c --- /dev/null +++ b/demos/mobile/guitartuner/src/guitartuner.h @@ -0,0 +1,95 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include +#include +#include +#include +#include +#include "voicegenerator.h" +#include "voiceanalyzer.h" + +const int DataFrequencyHzOutput = 44100; +const int DataFrequencyHzInput = 48000; + +#define MAX_INPUT_VALUE 50 +#define MIN_INPUT_VALUE -50 + +class GuitarTuner : public QMainWindow +{ + Q_OBJECT +public: + enum Orientation { + LockPortrait, + LockLandscape, + Auto + }; + explicit GuitarTuner(QWidget *parent = 0); + qreal getVolume(); + qreal getMicrophoneSensitivity(); + bool getMuteState(); + void setOrientation(Orientation orientation); + +signals: + +public slots: + void modeChanged(bool isInput); + void muteStateChanged(bool isMuted); + void targetFrequencyChanged(qreal targetFrequency); + void outputStateChanged(QAudio::State state); + void setMaxVolumeLevel(qreal); + +private: + void initAudioOutput(); + void initAudioInput(); + VoiceGenerator *m_voicegenerator; + VoiceAnalyzer *m_analyzer; + QObject *qmlObject; + QAudioOutput *m_audioOutput; + QAudioInput *m_audioInput; + QAudioFormat m_format_output; + QAudioFormat m_format_input; + QDeclarativeView *m_guitarTunerUI; +}; + +#endif // MAINWINDOW_H diff --git a/demos/mobile/guitartuner/src/guitartuner.rc b/demos/mobile/guitartuner/src/guitartuner.rc new file mode 100644 index 00000000..5cd35118 --- /dev/null +++ b/demos/mobile/guitartuner/src/guitartuner.rc @@ -0,0 +1,23 @@ +IDI_ICON1 ICON DISCARDABLE "/../images/guitartuner_icon.ico" + +1 VERSIONINFO +FILEVERSION 1,2,0,0 +PRODUCTVERSION 1,2,0,0 +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "CompanyName", "Nokia Corporation\0" + VALUE "FileDescription", "Qt Quick example application.\0" + VALUE "FileVersion", "1.2.0\0" + VALUE "LegalCopyright", "Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies)." + VALUE "ProductName", "Guitar Tuner\0" + VALUE "ProductVersion", "1.2.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END diff --git a/demos/mobile/guitartuner/src/guitartuner.ui b/demos/mobile/guitartuner/src/guitartuner.ui new file mode 100644 index 00000000..36ee1bd8 --- /dev/null +++ b/demos/mobile/guitartuner/src/guitartuner.ui @@ -0,0 +1,178 @@ + + + GuitarTuner + + + + 0 + 0 + 187 + 279 + + + + GuitarTuner + + + + + + + + + :/images/guitartab.svg + + + Qt::AlignCenter + + + + + + + false + + + false + + + -50 + + + 50 + + + Qt::Horizontal + + + QSlider::TicksAbove + + + 50 + + + + + + + + + + 0 + 0 + + + + ... + + + Qt::LeftArrow + + + + + + + A + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + ... + + + false + + + Qt::RightArrow + + + + + + + + + Change mode + + + + + + + Qt::Horizontal + + + + + + + + + 65 + + + Qt::Vertical + + + + + + + ... + + + + :/images/note.svg + :/images/noteNo.svg + :/images/noteNo.svg:/images/note.svg + + + + 30 + 30 + + + + true + + + true + + + + + + + + 0 + 0 + + + + microphone +sensitivity + + + + + + + + + + + + + diff --git a/demos/mobile/guitartuner/src/guitartunerui.cpp b/demos/mobile/guitartuner/src/guitartunerui.cpp new file mode 100644 index 00000000..24357b3b --- /dev/null +++ b/demos/mobile/guitartuner/src/guitartunerui.cpp @@ -0,0 +1,341 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#include + +#include "guitartunerui.h" +#include "ui_guitartunerui.h" + +GuitarTunerUI::GuitarTunerUI(QWidget *parent) : + QWidget(parent), + ui(new Ui::GuitarTunerUI), + m_maximumPrecision(0) +{ + ui->setupUi(this); + + // Set up the class attributes to proper values. + m_outputActive = false; + m_muted = false; + m_outputVolumeLevel = getVolumeFromSoundSlider(); + m_inputVolumeLevel = 1.0 - m_outputVolumeLevel; + + // Set up the current tone, the frequency, and the name for it. + m_currentToneIndex = 5; + updateFrequencyByToneIndex(m_currentToneIndex); + + // Connect the signals from UI into proper slots. + connect(ui->soundSlider, SIGNAL(valueChanged(int)), + SLOT(changeVolume())); + connect(ui->soundButton, SIGNAL(toggled(bool)), + SLOT(toggleSound(bool))); + connect(ui->modeButton, SIGNAL(clicked()), + SLOT(toggleInputOrOutput())); + connect(ui->buttonNext, SIGNAL(clicked()), SLOT(next())); + connect(ui->buttonPrev, SIGNAL(clicked()), SLOT(prev())); + + // Initialise up the UI by calling toggleInputOrOutput + // for the first time. + toggleInputOrOutput(); +} + +GuitarTunerUI::~GuitarTunerUI() +{ + delete ui; +} + +void GuitarTunerUI::changeEvent(QEvent *e) +{ + QWidget::changeEvent(e); + switch (e->type()) { + case QEvent::LanguageChange: + ui->retranslateUi(this); + break; + default: + break; + } +} + +/** + * Returns a value from 0 to 1, representing the volume. + */ +qreal GuitarTunerUI::getVolumeFromSoundSlider() const +{ + qreal value = ui->soundSlider->value(); + return value/ui->soundSlider->maximum(); +} + +/** + * Updates the m_currentToneFrequency and m_currentToneString, + * according to the given index. Also updates the UI. + */ +void GuitarTunerUI::updateFrequencyByToneIndex(int index) +{ + + switch (index) { + case 0: { + m_currentToneFrequency = FrequencyE; + m_currentToneString = "E"; + break; + } + case 1: { + m_currentToneFrequency = FrequencyA; + m_currentToneString = "A"; + break; + } + case 2: { + m_currentToneFrequency = FrequencyD; + m_currentToneString = "D"; + break; + } + case 3: { + m_currentToneFrequency = FrequencyG; + m_currentToneString = "G"; + break; + } + case 4: { + m_currentToneFrequency = FrequencyB; + m_currentToneString = "B"; + break; + } + case 5: { + m_currentToneFrequency = FrequencyE2; + m_currentToneString = "e"; + break; + } + default: { + qDebug() << "invalid index!" << index; + } + } + // Set the noteLabel text according to the current tone. + ui->noteLabel->setText(m_currentToneString); +} + +/** + * Returns the volume. + */ +qreal GuitarTunerUI::getVolume() const +{ + return m_outputVolumeLevel; +} + +/** + * Returns true if the sound is muted. + */ +bool GuitarTunerUI::getMuteState() const +{ + return m_muted; +} + + +/** + * Returns the microphone sensitivity. + */ +qreal GuitarTunerUI::getMicrophoneSensitivity() const +{ + return m_inputVolumeLevel; +} + +/** + * Returns whether the input mode is active. + */ +bool GuitarTunerUI::isInputModeActive() const +{ + return !m_outputActive; +} + +/** + * Returns the current target frequency. + */ +qreal GuitarTunerUI::getFrequency() const +{ + return m_currentToneFrequency; +} + +/** + * Toggles the sound according to the parameter. + * Has no effect if output is not active. + */ +void GuitarTunerUI::toggleSound(bool noSound) +{ + if (!m_outputActive) { + return; + } + m_muted = noSound; + emit muteChanged(m_muted); +} + +/** + * Changes the volume or microphone sensitivity. + */ +void GuitarTunerUI::changeVolume() +{ + qreal resultingAmplitude = getVolumeFromSoundSlider(); + qDebug() << "resultingAmplitude" << resultingAmplitude; + if (m_outputActive) { + m_outputVolumeLevel = resultingAmplitude; + emit volumeChanged(resultingAmplitude); + } + else { + m_inputVolumeLevel = resultingAmplitude; + emit microphoneSensitivityChanged(1.0-resultingAmplitude); + } +} + +/** + * Toggles input or output, depending of the current state. + */ +void GuitarTunerUI::toggleInputOrOutput() +{ + // If output mode is active: + if (m_outputActive) { + // Change UI to correspond to the input mode. + m_outputActive = false; + ui->soundSlider->setValue(m_inputVolumeLevel*100); + ui->soundButton->setDisabled(true); + ui->soundButton->hide(); + ui->micSensitivityLabel->show(); + emit modeChanged(true); + ui->modeButton->setText("To tone mode"); + } + // Else: + else { + // Change UI to correspond to the output mode. + m_outputActive = true; + ui->soundSlider->setValue(m_outputVolumeLevel*100); + ui->soundButton->setDisabled(false); + ui->micSensitivityLabel->hide(); + ui->soundButton->show(); + emit modeChanged(false); + ui->modeButton->setText("To listen mode"); + } +} + +/** + * Receives the low voice signal. + */ +void GuitarTunerUI::lowVoice() +{ + if (ui->noteLabel->font().bold()) { + QFont font; + font.setBold(false); + font.setUnderline(false); + ui->noteLabel->setFont(font); + } +} + +/** + * Receives the voice difference signal. + * The difference is qreal, where increase of 1 corresponds + * to increase of 1 tone to the target frequency. + */ +void GuitarTunerUI::voiceDifference(qreal difference) +{ + if (ui->noteLabel->font().bold()) { + QFont font; + font.setBold(false); + font.setUnderline(false); + ui->noteLabel->setFont(font); + } + ui->correctSoundSlider->setValue(difference*m_maximumPrecision); +} + +/** + * Receives the correct frequency signal. + * Makes the UI to visualize correct frequency event. + */ +void GuitarTunerUI::correctFrequencyObtained() +{ + qDebug() << "CORRECT FREQUENCY"; + QFont font; + font.setBold(true); + font.setUnderline(true); + ui->noteLabel->setFont(font); +} + +/** + * Sets up the maximum voice difference. + */ +void GuitarTunerUI::setMaximumVoiceDifference(int max) +{ + // Assert that the maximum precision is known. + Q_ASSERT(m_maximumPrecision != 0); + // Set the maximum and minimum values of the correctSoundSlider + // to the +- max*m_maximumPrecision, and set the tick interval + // to be m_maximumPrecision. + ui->correctSoundSlider->setMaximum(max*m_maximumPrecision); + ui->correctSoundSlider->setMinimum(-max*m_maximumPrecision); + ui->correctSoundSlider->setTickInterval(max*m_maximumPrecision); +} + +/** + * Stores the maximum precision per note. Used to setup the + * correct sound slider. + */ +void GuitarTunerUI::setMaximumPrecisionPerNote(int max) +{ + m_maximumPrecision = max; +} + +/** + * Changes the tone to the next value. + */ +void GuitarTunerUI::next() +{ + changeTone((m_currentToneIndex + 1) % 6); +} + +/** + * Changes the tone to the previous value. + */ +void GuitarTunerUI::prev() +{ + changeTone((m_currentToneIndex + 5) % 6); +} + +/** + * Changes the tone according to the new index. + */ +void GuitarTunerUI::changeTone(int newIndex) +{ + m_currentToneIndex = newIndex; + updateFrequencyByToneIndex(m_currentToneIndex); + qDebug() << "targetFrequencyChanged" << m_currentToneFrequency; + emit targetFrequencyChanged(m_currentToneFrequency); +} diff --git a/demos/mobile/guitartuner/src/guitartunerui.h b/demos/mobile/guitartuner/src/guitartunerui.h new file mode 100644 index 00000000..79c92e3e --- /dev/null +++ b/demos/mobile/guitartuner/src/guitartunerui.h @@ -0,0 +1,111 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#ifndef GUITARTUNERUI_H +#define GUITARTUNERUI_H + +#include +#include + +namespace Ui { + class GuitarTunerUI; +} + +const qreal FrequencyE = 82.407; +const qreal FrequencyA = 110.00; +const qreal FrequencyD = 146.83; +const qreal FrequencyG = 196.00; +const qreal FrequencyB = 246.94; +const qreal FrequencyE2 = 329.63; + +class GuitarTunerUI : public QWidget +{ + Q_OBJECT + +public: + explicit GuitarTunerUI(QWidget *parent = 0); + ~GuitarTunerUI(); + + qreal getVolume() const; + bool getMuteState() const; + qreal getMicrophoneSensitivity() const; + bool isInputModeActive() const; + qreal getFrequency() const; + int getScaleMaximumValue() const; + void setMaximumVoiceDifference(int max); + void setMaximumPrecisionPerNote(int max); + +public slots: + void toggleSound(bool off); + void next(); + void prev(); + void changeVolume(); + void toggleInputOrOutput(); + + void lowVoice(); + void voiceDifference(qreal difference); + void correctFrequencyObtained(); + +signals: + void modeChanged(bool isInput); + void volumeChanged(qreal volume); + void microphoneSensitivityChanged(qreal sensitivity); + void muteChanged(bool isMuted); + void targetFrequencyChanged(qreal targetFrequency); + +protected: + void changeEvent(QEvent *e); + +private: + Ui::GuitarTunerUI *ui; + void changeTone(int newIndex); + qreal getVolumeFromSoundSlider() const; + int m_currentToneIndex; + QString m_currentToneString; + qreal m_currentToneFrequency; + void updateFrequencyByToneIndex(int index); + bool m_outputActive; + bool m_muted; + qreal m_outputVolumeLevel; + qreal m_inputVolumeLevel; + int m_maximumPrecision; +}; + +#endif // GUITARTUNERUI_H diff --git a/demos/mobile/guitartuner/src/guitartunerui.ui b/demos/mobile/guitartuner/src/guitartunerui.ui new file mode 100644 index 00000000..af7b585b --- /dev/null +++ b/demos/mobile/guitartuner/src/guitartunerui.ui @@ -0,0 +1,178 @@ + + + GuitarTunerUI + + + + 0 + 0 + 187 + 279 + + + + GuitarTunerUI + + + + + + + + + :/images/guitartab.svg + + + Qt::AlignCenter + + + + + + + false + + + false + + + -50 + + + 50 + + + Qt::Horizontal + + + QSlider::TicksAbove + + + 50 + + + + + + + + + + 0 + 0 + + + + ... + + + Qt::LeftArrow + + + + + + + A + + + Qt::AlignCenter + + + + + + + + 0 + 0 + + + + ... + + + false + + + Qt::RightArrow + + + + + + + + + Change mode + + + + + + + Qt::Horizontal + + + + + + + + + 65 + + + Qt::Vertical + + + + + + + ... + + + + :/images/note.svg + :/images/noteNo.svg + :/images/noteNo.svg:/images/note.svg + + + + 30 + 30 + + + + true + + + true + + + + + + + + 0 + 0 + + + + microphone +sensitivity + + + + + + + + + + + + + diff --git a/demos/mobile/guitartuner/src/main.cpp b/demos/mobile/guitartuner/src/main.cpp new file mode 100644 index 00000000..7ddd1f78 --- /dev/null +++ b/demos/mobile/guitartuner/src/main.cpp @@ -0,0 +1,60 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#include +#include "guitartuner.h" + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + GuitarTuner w; + w.setOrientation(GuitarTuner::LockPortrait); + +#ifdef Q_OS_SYMBIAN + w.showFullScreen(); +#elif defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6) + w.showMaximized(); +#else + w.show(); +#endif + + return a.exec(); +} + diff --git a/demos/mobile/guitartuner/src/mycomponents/Adjuster.qml b/demos/mobile/guitartuner/src/mycomponents/Adjuster.qml new file mode 100644 index 00000000..e5e67eb8 --- /dev/null +++ b/demos/mobile/guitartuner/src/mycomponents/Adjuster.qml @@ -0,0 +1,131 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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 1.0 +import "adjustbars.js" as AdjustBars + +/* A barchart-like adjuster component. */ +Rectangle { + id: adjuster + + property real max: 100 + property real value: 0 + property bool created: false + + signal valueChanged(real value) + signal focusChangedByClick() + signal arrowPressedWhenValueOverLimits() + + function setValue(pValue) { + value = pValue; + AdjustBars.fillBars(value/max*AdjustBars.maxBars); + valueChanged(value); + } + + height: 60; width: 300 + color: "transparent" + Keys.onRightPressed: { + var val = value+max/AdjustBars.maxBars; + if (val <= max) { + value = val; + AdjustBars.fillBars(value/max*AdjustBars.maxBars); + valueChanged(value); + } + else { + arrowPressedWhenValueOverLimits() + } + } + Keys.onLeftPressed: { + var val = value-max/AdjustBars.maxBars; + if (0 <= val) { + value = val; + AdjustBars.fillBars(value/max*AdjustBars.maxBars); + valueChanged(value); + } + else { + arrowPressedWhenValueOverLimits() + } + } + Component.onCompleted: { + AdjustBars.createBars(); + AdjustBars.fillBars(value/max*AdjustBars.maxBars); + created = true; + } + Component.onDestruction: { + AdjustBars.destroyBars; + } + //Dynamic objects have to be recreated when the window size changes. + onWidthChanged: { + if (created) { + AdjustBars.destroyBars(); + AdjustBars.createBars(); + AdjustBars.fillBars(value/max*AdjustBars.maxBars); + } + } + onHeightChanged: { + if (created) { + AdjustBars.destroyBars(); + AdjustBars.createBars(); + AdjustBars.fillBars(value/max*AdjustBars.maxBars); + } + } + + MouseArea { + anchors.fill: parent + onPositionChanged: { + focusChangedByClick(); + var val = mouse.x/parent.width*parent.max; + if (0 < val && val < max) { + parent.value = val; + AdjustBars.fillBars(parent.value/parent.max*AdjustBars.maxBars); + valueChanged(parent.value); + } + } + onClicked: { + focusChangedByClick(); + var val = mouse.x/parent.width*parent.max; + if (0 < val && val < max) { + parent.value = val; + AdjustBars.fillBars(parent.value/parent.max*AdjustBars.maxBars); + valueChanged(parent.value); + } + } + } +} diff --git a/demos/mobile/guitartuner/src/mycomponents/Meter.qml b/demos/mobile/guitartuner/src/mycomponents/Meter.qml new file mode 100644 index 00000000..1b175493 --- /dev/null +++ b/demos/mobile/guitartuner/src/mycomponents/Meter.qml @@ -0,0 +1,112 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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 1.0 + +/* A meter component. */ +Rectangle { + id: meter + + property real value: 0 + property real minValue: -1 + property real maxValue: 1 + property alias imageSize: meterImage.sourceSize + + function valueChanged(pValue) { + value = pValue; + scaleValueToAngle(); + } + function scaleValueToAngle() { + pointer.angle = (((value-minValue)/(maxValue-minValue))* + (pointer.angleMax-pointer.angleMin))+ + pointer.angleMin; + } + + color: "transparent" + + Image { + id: meterImage + + smooth: true + source: "./images/meterBG.png" + anchors.fill: parent + } + + Image { + id:pointerShadow + + x: pointer.x - 2 + y: pointer.y - 2 + height: pointer.height + smooth: true + source: "./images/pointerShadow.png" + transform: Rotation { + origin.x: 2 + origin.y: height + angle: -pointer.angle + } + } + + Image { + id: pointer + + property real angle: 0 + property real angleMax: -45 + property real angleMin: 45 + + height: parent.height*0.92 + transformOrigin: "Bottom" + rotation: -angle + smooth: true + source: "./images/pointer.png" + anchors { + bottomMargin: 2 + bottom: parent.bottom; + horizontalCenter: parent.horizontalCenter + } + + Behavior on angle { + SpringAnimation { + spring: 1.4 + damping: 0.15 + } + } + } +} diff --git a/demos/mobile/guitartuner/src/mycomponents/NoteButtonView.qml b/demos/mobile/guitartuner/src/mycomponents/NoteButtonView.qml new file mode 100644 index 00000000..04a78dd4 --- /dev/null +++ b/demos/mobile/guitartuner/src/mycomponents/NoteButtonView.qml @@ -0,0 +1,84 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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 1.0 + +/* A view component for buttons for choosing notes. */ +ListView { + id: noteChooser + + property real currentFrequency: 82.407 + + signal noteSelected(string note, real frequency, int index) + + //Press down the button corresponding to the given note. + function pushButton(index) { + currentIndex = index; + } + + width: 50*model.count + spacing*(model.count-1); height: 50 + orientation: ListView.Horizontal + model: NotesModel {} + delegate: notesDelegate + keyNavigationWraps: true + boundsBehavior: Flickable.StopAtBounds + + Component { + id: notesDelegate + + ToggleButton { + id: noteButton + + width: height; height: noteChooser.height + offImageSource: offSource + onImageSource: onSource + state: noteButton.ListView.isCurrentItem ? "pressed" : "unPressed" + onSelected: { + noteChooser.noteSelected(note, frequency, index) + if (note != "Auto") { + currentFrequency = frequency + } + } + onPushed: { + noteButton.ListView.view.currentIndex = index + } + } + } +} diff --git a/demos/mobile/guitartuner/src/mycomponents/NotesModel.qml b/demos/mobile/guitartuner/src/mycomponents/NotesModel.qml new file mode 100644 index 00000000..1aecc051 --- /dev/null +++ b/demos/mobile/guitartuner/src/mycomponents/NotesModel.qml @@ -0,0 +1,105 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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 1.0 + +/* The model component for the NoteButtonView. */ +ListModel { + ListElement { + note: "E" + offSource: "./images/tuner_e.png" + onSource: "./images/tuner_e_on.png" + bigSource: "./mycomponents/images/big_e.png" + glowSource: "./mycomponents/images/glowing_e.png" + frequency: "82.407" + interval: "5" + } + ListElement { + note: "A" + offSource: "./images/tuner_a.png" + onSource: "./images/tuner_a_on.png" + bigSource: "./mycomponents/images/big_a.png" + glowSource: "./mycomponents/images/glowing_a.png" + frequency: "110.00" + interval: "5" + } + ListElement { + note: "D" + offSource: "./images/tuner_d.png" + onSource: "./images/tuner_d_on.png" + bigSource: "./mycomponents/images/big_d.png" + glowSource: "./mycomponents/images/glowing_d.png" + frequency: "146.83" + interval: "5" + } + ListElement { + note: "G" + offSource: "./images/tuner_g.png" + onSource: "./images/tuner_g_on.png" + bigSource: "./mycomponents/images/big_g.png" + glowSource: "./mycomponents/images/glowing_g.png" + frequency: "196.00" + interval: "4" + } + ListElement { + note: "B" + offSource: "./images/tuner_b.png" + onSource: "./images/tuner_b_on.png" + bigSource: "./mycomponents/images/big_b.png" + glowSource: "./mycomponents/images/glowing_b.png" + frequency: "246.94" + interval: "5" + } + ListElement { + note: "e" + offSource: "./images/tuner_e.png" + onSource: "./images/tuner_e_on.png" + bigSource: "./mycomponents/images/big_e.png" + glowSource: "./mycomponents/images/glowing_e.png" + frequency: "329.63" + interval: "9999" //Big enough that we can't move over this note + } + ListElement { + note: "Auto" + offSource: "./images/tuner_auto.png" + onSource: "./images/tuner_auto_on.png" + frequency: "82.407" + } +} diff --git a/demos/mobile/guitartuner/src/mycomponents/ToggleButton.qml b/demos/mobile/guitartuner/src/mycomponents/ToggleButton.qml new file mode 100644 index 00000000..de46b9f0 --- /dev/null +++ b/demos/mobile/guitartuner/src/mycomponents/ToggleButton.qml @@ -0,0 +1,110 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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 1.0 + +/* A toggle button component. */ +Rectangle { + id: toggleButton + + property url offImageSource: "" + property url onImageSource: "" + property alias imageSource: buttonImage.source + + signal selected() + signal pushed() + + color: "transparent" + state: "unPressed" + onStateChanged: { + if (state == "pressed") { + selected() + } + } + + Image { + id: buttonImage + + smooth: true + anchors.fill: parent + } + MouseArea { + id: mouseArea + + anchors.fill: parent + onPressed: { + if (parent.state == "unPressed") { + pushed() + } + } + } + + states: [ + State { + name: "pressed" + PropertyChanges { + target: toggleButton + scale: 0.95 + imageSource: onImageSource + } + }, + State { + name: "unPressed" + PropertyChanges { + target: toggleButton + scale: 1/0.95 + imageSource: offImageSource + } + } + ] + + transitions: [ + Transition { + from: "unPressed" + to: "pressed" + reversible: true + PropertyAnimation { + target: toggleButton + properties: "scale" + duration: 100 + } + } + ] +} diff --git a/demos/mobile/guitartuner/src/mycomponents/adjustbars.js b/demos/mobile/guitartuner/src/mycomponents/adjustbars.js new file mode 100644 index 00000000..ba652a6f --- /dev/null +++ b/demos/mobile/guitartuner/src/mycomponents/adjustbars.js @@ -0,0 +1,89 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +/* JavaScript functions for creating, handling and + * destroying the bars of the adjuster component. */ + +var maxBars = 10; +var firstBarHeight = 5; +var bars = new Array(maxBars); +var colors = new Array(maxBars); +var barWidthFactor = 2.3; + +function createBars() { + var barWidth = adjuster.width/maxBars/barWidthFactor; + for (var i = 1; i <= maxBars; i++) { + //Create, configure and store the bars. + var bar = Qt.createQmlObject('import QtQuick 1.0; Rectangle {smooth: true}', adjuster, "dynamicBar"); + bar.width = barWidth; + bar.height = firstBarHeight+(i/maxBars)*(adjuster.height*0.8-firstBarHeight); + bar.radius = bar.width/2; + bar.x = (i-1)*(barWidthFactor*barWidth); + bar.y = adjuster.height/2 - bar.height/2; + bars[i-1] = bar; + + //Calculate and store the colors + if (i < maxBars/2) { + colors[i-1] = Qt.rgba(1-i/(maxBars/2), 1, 1-i/(maxBars/2), i); + } + else { + colors[i-1] = Qt.rgba((i-(maxBars/2))/(maxBars/2), 1-((i-(maxBars/2))/(maxBars/2)), 0, i); + } + } +} + +function destroyBars() { + for (var i = 0; i < maxBars; i++) { + bars[i].color = "transparent" //Colors must be set to transparent or otherwise the bars will stay appeared. + bars[i].destroy(); + } +} + +function fillBars(barNumber) { + //Set the color for the bars (transparent from the selected bar to the end). + for (var i = 0; i < maxBars; i++) { + if (i < barNumber) { + bars[i].color = colors[i]; + } + else { + bars[i].color = "black"; + } + } +} diff --git a/demos/mobile/guitartuner/src/mycomponents/images/big_a.png b/demos/mobile/guitartuner/src/mycomponents/images/big_a.png new file mode 100644 index 00000000..3838e766 Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/big_a.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/big_b.png b/demos/mobile/guitartuner/src/mycomponents/images/big_b.png new file mode 100644 index 00000000..114b32d3 Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/big_b.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/big_d.png b/demos/mobile/guitartuner/src/mycomponents/images/big_d.png new file mode 100644 index 00000000..3ede9f0f Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/big_d.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/big_e.png b/demos/mobile/guitartuner/src/mycomponents/images/big_e.png new file mode 100644 index 00000000..cc1f4885 Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/big_e.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/big_g.png b/demos/mobile/guitartuner/src/mycomponents/images/big_g.png new file mode 100644 index 00000000..804177b3 Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/big_g.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/glowing_a.png b/demos/mobile/guitartuner/src/mycomponents/images/glowing_a.png new file mode 100644 index 00000000..b6fd0e20 Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/glowing_a.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/glowing_b.png b/demos/mobile/guitartuner/src/mycomponents/images/glowing_b.png new file mode 100644 index 00000000..b5fa016a Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/glowing_b.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/glowing_d.png b/demos/mobile/guitartuner/src/mycomponents/images/glowing_d.png new file mode 100644 index 00000000..32f1a291 Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/glowing_d.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/glowing_e.png b/demos/mobile/guitartuner/src/mycomponents/images/glowing_e.png new file mode 100644 index 00000000..4be9f2a7 Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/glowing_e.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/glowing_g.png b/demos/mobile/guitartuner/src/mycomponents/images/glowing_g.png new file mode 100644 index 00000000..4216d828 Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/glowing_g.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/guitartuner_malli.png b/demos/mobile/guitartuner/src/mycomponents/images/guitartuner_malli.png new file mode 100644 index 00000000..dbe3fc79 Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/guitartuner_malli.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/guitartuner_skin.png b/demos/mobile/guitartuner/src/mycomponents/images/guitartuner_skin.png new file mode 100644 index 00000000..5d53df9b Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/guitartuner_skin.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/lcdFrame.png b/demos/mobile/guitartuner/src/mycomponents/images/lcdFrame.png new file mode 100644 index 00000000..ff8dffc6 Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/lcdFrame.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/meterBG.png b/demos/mobile/guitartuner/src/mycomponents/images/meterBG.png new file mode 100644 index 00000000..4046355c Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/meterBG.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/mute.png b/demos/mobile/guitartuner/src/mycomponents/images/mute.png new file mode 100644 index 00000000..382e6047 Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/mute.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/pointer.png b/demos/mobile/guitartuner/src/mycomponents/images/pointer.png new file mode 100644 index 00000000..d0cb21b8 Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/pointer.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/pointerShadow.png b/demos/mobile/guitartuner/src/mycomponents/images/pointerShadow.png new file mode 100644 index 00000000..a7086391 Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/pointerShadow.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/power.png b/demos/mobile/guitartuner/src/mycomponents/images/power.png new file mode 100644 index 00000000..8ec0c5ce Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/power.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/quit.png b/demos/mobile/guitartuner/src/mycomponents/images/quit.png new file mode 100644 index 00000000..2a9443ec Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/quit.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/sensitivity.png b/demos/mobile/guitartuner/src/mycomponents/images/sensitivity.png new file mode 100644 index 00000000..c3d2ea31 Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/sensitivity.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/tuner_a.png b/demos/mobile/guitartuner/src/mycomponents/images/tuner_a.png new file mode 100644 index 00000000..a1823e59 Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/tuner_a.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/tuner_a_on.png b/demos/mobile/guitartuner/src/mycomponents/images/tuner_a_on.png new file mode 100644 index 00000000..7c78cbd8 Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/tuner_a_on.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/tuner_auto.png b/demos/mobile/guitartuner/src/mycomponents/images/tuner_auto.png new file mode 100644 index 00000000..b9e494bd Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/tuner_auto.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/tuner_auto_on.png b/demos/mobile/guitartuner/src/mycomponents/images/tuner_auto_on.png new file mode 100644 index 00000000..d5608d85 Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/tuner_auto_on.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/tuner_b.png b/demos/mobile/guitartuner/src/mycomponents/images/tuner_b.png new file mode 100644 index 00000000..94977f87 Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/tuner_b.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/tuner_b_on.png b/demos/mobile/guitartuner/src/mycomponents/images/tuner_b_on.png new file mode 100644 index 00000000..78841dc0 Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/tuner_b_on.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/tuner_d.png b/demos/mobile/guitartuner/src/mycomponents/images/tuner_d.png new file mode 100644 index 00000000..293ee55a Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/tuner_d.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/tuner_d_on.png b/demos/mobile/guitartuner/src/mycomponents/images/tuner_d_on.png new file mode 100644 index 00000000..705de41d Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/tuner_d_on.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/tuner_e.png b/demos/mobile/guitartuner/src/mycomponents/images/tuner_e.png new file mode 100644 index 00000000..569d2c65 Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/tuner_e.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/tuner_e_on.png b/demos/mobile/guitartuner/src/mycomponents/images/tuner_e_on.png new file mode 100644 index 00000000..1342a914 Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/tuner_e_on.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/tuner_g.png b/demos/mobile/guitartuner/src/mycomponents/images/tuner_g.png new file mode 100644 index 00000000..a8f0de57 Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/tuner_g.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/tuner_g_on.png b/demos/mobile/guitartuner/src/mycomponents/images/tuner_g_on.png new file mode 100644 index 00000000..6fdca419 Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/tuner_g_on.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/voicemode_off.png b/demos/mobile/guitartuner/src/mycomponents/images/voicemode_off.png new file mode 100644 index 00000000..0701dd34 Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/voicemode_off.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/voicemode_on.png b/demos/mobile/guitartuner/src/mycomponents/images/voicemode_on.png new file mode 100644 index 00000000..986d589a Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/voicemode_on.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/volume.png b/demos/mobile/guitartuner/src/mycomponents/images/volume.png new file mode 100644 index 00000000..46fdb7fa Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/volume.png differ diff --git a/demos/mobile/guitartuner/src/mycomponents/images/volume_off.png b/demos/mobile/guitartuner/src/mycomponents/images/volume_off.png new file mode 100644 index 00000000..a97e4224 Binary files /dev/null and b/demos/mobile/guitartuner/src/mycomponents/images/volume_off.png differ diff --git a/demos/mobile/guitartuner/src/voiceanalyzer.cpp b/demos/mobile/guitartuner/src/voiceanalyzer.cpp new file mode 100644 index 00000000..5c179638 --- /dev/null +++ b/demos/mobile/guitartuner/src/voiceanalyzer.cpp @@ -0,0 +1,295 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#include "voiceanalyzer.h" + +/** + * Constant used to scale the cut-off density for the fft helper. + */ +const static float CutOffScaler = 0.05; + +/** + * Force the precision to be "1/PrecisionPerNote" notes + * near the target frequency. + */ +const static int PrecisionPerNote = 4; + +/** + * TargetFrequencyParameter is a constant which implies the index at + * which corresponds to the target frequency. + * 0.5 * N * 1/TargetFrequencyParameter is (about) the index which + * corresponds to the given target frequency. + * Effectively TargetFrequencyParameter = 2^z, and the z*TargetFrequency + * is the maximum frequency that can be noticed. + */ +const static int TargetFrequencyParameter = 4; + + +VoiceAnalyzer::VoiceAnalyzer(const QAudioFormat &format, QObject *parent): + QIODevice(parent), + m_format(format), + m_frequency(0), + m_position(0), + m_fftHelper(new FastFourierTransformer(this)) +{ + Q_ASSERT(qFuzzyCompare(M_SAMPLE_COUNT_MULTIPLIER, + float(2)/(M_TWELTH_ROOT_OF_2 -1.0))); + m_totalSampleCount = qRound(qreal(PrecisionPerNote) + *TargetFrequencyParameter + *M_SAMPLE_COUNT_MULTIPLIER); + m_samples.reserve(m_totalSampleCount); + int i = 2; + int j = 1; + for (; i < TargetFrequencyParameter; i *= 2) { + j++; + } + m_maximumVoiceDifference = j*12; + + setCutOffPercentage(CutOffScaler); +} + +/** + * Opens the parent QIODevice. Sets up the analysation parameters. + */ +void VoiceAnalyzer::start(qreal frequency) +{ + m_stepSize = (qreal) 1.0 * m_format.sampleRate() + / (TargetFrequencyParameter*2*frequency); + m_frequency = frequency; + open(QIODevice::WriteOnly); +} + +/** + * Closes the parent QIODevice, thus the voice is not analysed anymore. + * Resets the m_samples QList. + */ +void VoiceAnalyzer::stop() +{ + m_samples.clear(); + m_samples.reserve(m_totalSampleCount); + close(); +} + +/** + * Called when data is obtained. Stores each m_stepSize sample + * into a QList to be analysed. + */ +qint64 VoiceAnalyzer::writeData(const char *data, qint64 maxlen) +{ + const int channelBytes = m_format.sampleSize() / 8; + int sampleSize = m_format.channels() * channelBytes; + int m_stepSizeInBytes = m_stepSize*sampleSize; + // assert that each sample fits fully into the data + Q_ASSERT((m_position % sampleSize)==0); + const uchar *ptr = reinterpret_cast(data); + while (m_position < maxlen) { + if (m_samples.size() < m_totalSampleCount) { + m_samples.append(getValueInt16(ptr+m_position)); + } + else { + analyzeVoice(); + m_samples.clear(); + m_samples.reserve(m_totalSampleCount); + // fast forward position to the first position after maxlen or to the maxlen + m_position += ((m_stepSizeInBytes - 1 + maxlen - m_position) / + m_stepSizeInBytes) * m_stepSizeInBytes; + break; + } + m_position += m_stepSizeInBytes; + } + m_position -= maxlen; + return maxlen; +} + +/** + * Interprets ptr as a pointer to int value and returns it. + */ +qint16 VoiceAnalyzer::getValueInt16(const uchar *ptr) +{ + qint16 realValue = 0; + if (m_format.sampleSize() == 8) + { + const qint16 value = *reinterpret_cast(ptr); + if (m_format.sampleType() == QAudioFormat::UnSignedInt) { + realValue = value - M_MAX_AMPLITUDE_8BIT_SIGNED - 1; + } else if (m_format.sampleType() == QAudioFormat::SignedInt) { + realValue = value; + } + } else if (m_format.sampleSize() == 16) { + qint16 value = 0; + if (m_format.byteOrder() == QAudioFormat::LittleEndian) + value = qFromLittleEndian(ptr); + else + value = qFromBigEndian(ptr); + + if (m_format.sampleType() == QAudioFormat::UnSignedInt) { + realValue = value - M_MAX_AMPLITUDE_16BIT_SIGNED; + } else if (m_format.sampleType() == QAudioFormat::SignedInt) { + realValue = value; + } + } + return realValue; +} + +/** + * Takes a number between 0 and 1, scales it with CutOffScaler, + * multiplies it with maximum density, and then gives it + * to the fft helper. + */ +void VoiceAnalyzer::setCutOffPercentage(qreal cutoff) +{ + cutoff = CutOffScaler*cutoff; + if (m_format.sampleSize() == 8) { + float t = cutoff*m_totalSampleCount*M_MAX_AMPLITUDE_8BIT_SIGNED; + m_fftHelper->setCutOffForDensity(t); + } + else if (m_format.sampleSize() == 16) { + float t = cutoff*m_totalSampleCount*M_MAX_AMPLITUDE_16BIT_SIGNED; + m_fftHelper->setCutOffForDensity(t); + } +} + +/** + * Returns the current target frequency. + */ +qreal VoiceAnalyzer::frequency() +{ + return m_frequency; +} + +/** + * Returns the maximum absolute value sent by + * the voiceDifference() signal. + */ +int VoiceAnalyzer::getMaximumVoiceDifference() +{ + return m_maximumVoiceDifference; +} + +/** + * Returns the maximum precision per note + * near the target frequency. + */ +int VoiceAnalyzer::getMaximumPrecisionPerNote() +{ + return PrecisionPerNote; +} + +/** + * Analyzes the voice frequency and emits appropriate signals. + */ +void VoiceAnalyzer::analyzeVoice() +{ + m_fftHelper->calculateFFT(m_samples); + int index = m_fftHelper->getMaximumDensityIndex(); + + // If index == -1 + if (index == -1) { + // The voice is to be filtered away. + // Emit the lowVoice signal and return. + emit lowVoice(); + qDebug() << "low voice"; + return; + } + // Else, continue + + // Let the correctIndex to be + // the nearest index corresponding to the correct frequency. + qreal stepSizeInFrequency = (qreal)m_format.sampleRate() + / (m_totalSampleCount * m_stepSize); + qreal newFrequency = qreal(index) * stepSizeInFrequency; + // Calculate the nearest index corresponding to the correct frequency. + int correctIndex = qRound(m_frequency / stepSizeInFrequency); + qreal value = 0; + + // If the obtained frequency is more than + // log_2(TargetFrequencyParameter) octaves less than the m_frequency: + + // Note: + // Instead of m_frequency/TargetFrequencyParameter > newFrequency, + // the comparison is done without a div instructions by + // m_frequency > newFrequency * TargetFrequencyParameter. + + if (m_frequency > newFrequency * TargetFrequencyParameter) { + // Set the difference value to be -m_maximumVoiceDifference. + qDebug() << "compare" << "low" << newFrequency << m_frequency - stepSizeInFrequency * correctIndex << (m_frequency - stepSizeInFrequency * correctIndex) / stepSizeInFrequency; + value = -m_maximumVoiceDifference; + } + // Else, if the obtained frequency is more than + // log_2(TargetFrequencyParameter) octaves more than the m_frequency: + else if (m_frequency*TargetFrequencyParameter < newFrequency) { + // Set the difference value to be m_maximumVoiceDifference. + qDebug() << "compare" << "high" << newFrequency << m_frequency - stepSizeInFrequency * correctIndex << (m_frequency - stepSizeInFrequency * correctIndex) / stepSizeInFrequency; + value = m_maximumVoiceDifference; + } + // Else: + else { + // Calculate the difference between the obtained and the correct + // frequency in tones. + // Use stepSizeInFrequency * correctIndex instead of + // m_frequency so that the value is zero when there is correct + // voice obtained. Set the difference value to be + // log(frequency / target frequency) * 12 / log(2). + value = log(newFrequency / (stepSizeInFrequency * correctIndex)) + * 12 / M_LN2; + qDebug() << "compare" << value << newFrequency << m_frequency - stepSizeInFrequency * correctIndex << (m_frequency - stepSizeInFrequency * correctIndex) / stepSizeInFrequency; + } + + // Emit voiceDifference signal. + QVariant valueVar(value); //Has to be QVariant for QML + emit voiceDifference(valueVar); + + // If the correctIndex is index, emit the correctFrequency signal. + if (correctIndex == index) { + emit(correctFrequency()); + } +} + +/** + * Empty implementation for readData, since no data is provided + * by the VoiceAnalyzer class. + */ +qint64 VoiceAnalyzer::readData(char *data, qint64 maxlen) +{ + Q_UNUSED(data); + Q_UNUSED(maxlen); + + return 0; +} diff --git a/demos/mobile/guitartuner/src/voiceanalyzer.h b/demos/mobile/guitartuner/src/voiceanalyzer.h new file mode 100644 index 00000000..8957c2e9 --- /dev/null +++ b/demos/mobile/guitartuner/src/voiceanalyzer.h @@ -0,0 +1,93 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#ifndef VOICEANALYZER_H +#define VOICEANALYZER_H + +#include +#include +#include +#include +#include +#include + +#include "constants.h" +#include "fastfouriertransformer.h" +#include "math.h" + +class VoiceAnalyzer : public QIODevice +{ + Q_OBJECT +public: + VoiceAnalyzer(const QAudioFormat &format, QObject *parent = 0); + qint64 readData(char *data, qint64 maxlen); + qint64 writeData(const char *data, qint64 maxlen); + void start(qreal frequency); + void stop(); + qreal frequency(); + int getMaximumVoiceDifference(); + int getMaximumPrecisionPerNote(); + +public slots: + void setCutOffPercentage(qreal cutoff); + +private: + const QAudioFormat m_format; + QList m_samples; + int m_totalSampleCount; + int m_maximumVoiceDifference; + + qint16 getValueInt16(const uchar *ptr); + int m_stepSize; + qreal m_frequency; + qint64 m_position; + FastFourierTransformer *m_fftHelper; + void analyzeVoice(); +signals: + void voiceDifference(QVariant frequency); + void correctFrequency(); + void lowVoice(); + +public slots: + +}; + + +#endif // VOICEANALYZER_H diff --git a/demos/mobile/guitartuner/src/voicegenerator.cpp b/demos/mobile/guitartuner/src/voicegenerator.cpp new file mode 100644 index 00000000..046f75ef --- /dev/null +++ b/demos/mobile/guitartuner/src/voicegenerator.cpp @@ -0,0 +1,246 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#include "voicegenerator.h" + +const int BufferSizeMilliseconds = 100; + +VoiceGenerator::VoiceGenerator(const QAudioFormat &format, + qreal frequency, qreal amplitude, + QObject *parent) : + QIODevice(parent), + m_format(format), + m_amplitude(0.5) +{ + Q_ASSERT(m_format.sampleSize() % 8 == 0); + int sampleBytes = m_format.channels() * (m_format.sampleSize() / 8); + // + 1 to round up, just to be sure that all samples fit. + qint64 samplesInBuffer = m_format.sampleRate() + * BufferSizeMilliseconds / 1000 + 1; + qint64 length = samplesInBuffer * sampleBytes; + m_buffer.resize(length); + m_max_position = 0; + m_position = 0; + m_amplitude = amplitude; + setFrequency(frequency); +} + +VoiceGenerator::~VoiceGenerator() +{ +} + +/** + * Opens the parent QIODevice. + */ +void VoiceGenerator::start() +{ + open(QIODevice::ReadOnly); +} + +/** + * Closes the parent QIODevice. Resets the m_position to zero. + */ +void VoiceGenerator::stop() +{ + close(); + m_position = 0; +} + +/** + * Sets the frequency to new frequency. + */ +void VoiceGenerator::setFrequency(qreal frequency) +{ + Q_ASSERT(1 / frequency < BufferSizeMilliseconds); + this->m_frequency = frequency; + refreshData(); +} + +/** + * Sets the amplitude for the voice. + */ +void VoiceGenerator::setAmplitude(qreal amplitude) +{ + Q_ASSERT(amplitude >= 0); + m_amplitude = amplitude; + refreshData(); +} + +/** + * Returns the current frequency. + */ +qreal VoiceGenerator::frequency() +{ + return m_frequency; +} + +/** + * Generates voice data corresponding a sine voice with target frequency. + * The number of data generated is calculated + * and stored to m_max_position. + */ +void VoiceGenerator::refreshData() +{ + const int channelBytes = m_format.sampleSize() / 8; + const int sampleSize = m_format.channels() * channelBytes; + const qint64 voiceOscillationsInBuffer = BufferSizeMilliseconds + * m_frequency / 1000; + const qint64 voiceSamplesInBuffer = voiceOscillationsInBuffer + * m_format.sampleRate() / m_frequency; + m_max_position = voiceSamplesInBuffer * sampleSize; + qint64 dataGenerationLength = m_buffer.size(); + + + Q_ASSERT(m_max_position % (sampleSize) == 0); + Q_ASSERT(dataGenerationLength <= m_buffer.size()); + + short *t = (short*)m_buffer.data(); + + +/* + int te ; + static float fpos = 0.0f; + //dataGenerationLength>>=1; // in words + for (int f=0; f(m_buffer.data()); + int sampleIndex = 0; + while (dataGenerationLength > 0) { + qreal realValue = 0; + if (sampleIndex < voiceSamplesInBuffer) { + realValue = m_amplitude + *qSin(2.0f * M_PI * m_frequency + * qreal(sampleIndex % m_format.sampleRate()) + / m_format.sampleRate()); + } + for (int i=0; i( + qRound((1.0 + realValue) / 2 + * M_MAX_AMPLITUDE_8BIT_UNSIGNED)); + } else if (m_format.sampleType() == QAudioFormat::SignedInt) { + value = static_cast( + qRound(realValue + * M_MAX_AMPLITUDE_8BIT_SIGNED)); + } + *reinterpret_cast(ptr) = value; + } else if (m_format.sampleSize() == 16) { + quint16 value = 0; + if (m_format.sampleType() == QAudioFormat::UnSignedInt) { + value = static_cast( + qRound((1.0 + realValue) / 2 + * M_MAX_AMPLITUDE_16BIT_UNSIGNED)); + } else if (m_format.sampleType() == QAudioFormat::SignedInt) { + value = static_cast( + qRound(realValue + * M_MAX_AMPLITUDE_16BIT_SIGNED)); + } + if (m_format.byteOrder() == QAudioFormat::LittleEndian) + qToLittleEndian(value, ptr); + else + qToBigEndian(value, ptr); + } +} + +qint64 VoiceGenerator::bytesAvailable() const +{ + return m_max_position + QIODevice::bytesAvailable(); +} + +/** + * Called by the QIODevice. Puts maxlen amount of voice + * samples into the data array. + */ +qint64 VoiceGenerator::readData(char *data, qint64 maxlen) +{ + qint64 total = 0; + qint64 chunk = 0; + while (total < maxlen) { + if (maxlen - total >= m_max_position - m_position) { + // the needed buffer is longer than the currently + // available buffer from m_position to the m_max_position + chunk = m_max_position - m_position; + memcpy(data, m_buffer.constData() + m_position, chunk); + m_position = 0; + } + else { + // we can copy the needed data directly, and the loop will end + chunk = maxlen - total; + memcpy(data, m_buffer.constData() + m_position, chunk); + m_position = (m_position + chunk) % m_max_position; + } + data += chunk; + total += chunk; + } + return total; +} + +/** + * Empty implementation for writeData, since no data is provided + * for the VoiceGenerator class. + */ +qint64 VoiceGenerator::writeData(const char *data, qint64 maxlen) +{ + Q_UNUSED(data); + Q_UNUSED(maxlen); + + return 0; +} diff --git a/demos/mobile/guitartuner/src/voicegenerator.h b/demos/mobile/guitartuner/src/voicegenerator.h new file mode 100644 index 00000000..ed2292b7 --- /dev/null +++ b/demos/mobile/guitartuner/src/voicegenerator.h @@ -0,0 +1,86 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#ifndef VOICEGENERATOR_H +#define VOICEGENERATOR_H + +#include +#include +#include +#include +#include +#include + +#include "constants.h" + + +class VoiceGenerator : public QIODevice +{ + Q_OBJECT +public: + VoiceGenerator(const QAudioFormat &format, qreal frequency, qreal amplitude, QObject *parent = 0); + ~VoiceGenerator(); + void setFrequency(qreal frequency); + qint64 readData(char *data, qint64 maxlen); + qint64 writeData(const char *data, qint64 maxlen); + qint64 bytesAvailable() const; + qreal frequency(); +signals: + +public slots: + void setAmplitude(qreal amplitude); + void start(); + void stop(); + +private: + void setValue(uchar *ptr, qreal realValue); + void refreshData(); + const QAudioFormat m_format; + // buffer to store the data + QByteArray m_buffer; + // current position in buffer + qint64 m_position; + // max position depends on the sample rate of format and the frequency of voice + qint64 m_max_position; + qreal m_amplitude; + qreal m_frequency; +}; + +#endif // VOICEGENERATOR_H diff --git a/demos/mobile/qtbubblelevel/accelerometerfilter.cpp b/demos/mobile/qtbubblelevel/accelerometerfilter.cpp new file mode 100644 index 00000000..b8a0eb77 --- /dev/null +++ b/demos/mobile/qtbubblelevel/accelerometerfilter.cpp @@ -0,0 +1,85 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#include +#include "accelerometerfilter.h" + +#define RADIANS_TO_DEGREES 57.2957795 + +AccelerometerFilter::AccelerometerFilter() + : x(0), y(0), z(0) +{ +} + +//! [0] +bool AccelerometerFilter::filter(QAccelerometerReading *reading) +{ + qreal rx = reading->x(); + qreal ry = reading->y(); + qreal rz = reading->z(); + + qreal divider = sqrt(rx * rx + ry * ry + rz * rz); + + // Lowpass factor +#ifdef Q_OS_SYMBIAN + float lowPassFactor = 0.10; +#else + float lowPassFactor = 0.05; +#endif + + // Calculate the axis angles in degrees and reduce the noise in sensor + // readings. + x += (acos(rx / divider) * RADIANS_TO_DEGREES - 90 - x) * lowPassFactor; + y += (acos(ry / divider) * RADIANS_TO_DEGREES - 90 - y) * lowPassFactor; + z += (acos(rz / divider) * RADIANS_TO_DEGREES - 90 - z) * lowPassFactor; + + // The orientations of the accelerometers are different between + // Symbian and Maemo devices so we use the different axes + // depending on the platform. +#if defined(Q_OS_SYMBIAN) + emit rotationChanged(-y); +#else + emit rotationChanged(x); +#endif + + // Don't store the reading in the sensor. + return false; +} +//! [0] diff --git a/demos/mobile/qtbubblelevel/accelerometerfilter.h b/demos/mobile/qtbubblelevel/accelerometerfilter.h new file mode 100644 index 00000000..006df84f --- /dev/null +++ b/demos/mobile/qtbubblelevel/accelerometerfilter.h @@ -0,0 +1,69 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#ifndef ACCELEROMETERFILTER_H +#define ACCELEROMETERFILTER_H + +//! [0] +#include +#include + +QTM_USE_NAMESPACE + +class AccelerometerFilter + : public QObject, public QAccelerometerFilter +{ + Q_OBJECT + +protected: + qreal x; + qreal y; + qreal z; + +public: + AccelerometerFilter(); + bool filter(QAccelerometerReading *reading); + +signals: + void rotationChanged(const QVariant °); +}; +//! [0] + +#endif // ACCELEROMETERFILTER_H diff --git a/demos/mobile/qtbubblelevel/debian/changelog b/demos/mobile/qtbubblelevel/debian/changelog new file mode 100644 index 00000000..0413145a --- /dev/null +++ b/demos/mobile/qtbubblelevel/debian/changelog @@ -0,0 +1,19 @@ +qtbubblelevel (1.2.0) stable; urgency=low + + * Improved the usability of the calibration dialog. + + -- Forum Nokia Wed, 16 Feb 2011 12:59:30 +0100 + +qtbubblelevel (1.1.0) stable; urgency=low + + * QtMobility Rotation sensor support + + -- Antonio Aloisio Tue, 15 Jun 2010 9:03:02 +0100 + + +qtbubblelevel (1.0.0) unstable; urgency=low + + * Initial release + + -- Antonio Aloisio Tue, 15 Jun 2010 9:03:02 +0100 + diff --git a/demos/mobile/qtbubblelevel/debian/compat b/demos/mobile/qtbubblelevel/debian/compat new file mode 100644 index 00000000..7f8f011e --- /dev/null +++ b/demos/mobile/qtbubblelevel/debian/compat @@ -0,0 +1 @@ +7 diff --git a/demos/mobile/qtbubblelevel/debian/control b/demos/mobile/qtbubblelevel/debian/control new file mode 100644 index 00000000..59803270 --- /dev/null +++ b/demos/mobile/qtbubblelevel/debian/control @@ -0,0 +1,12 @@ +Source: qtbubblelevel +Section: user/games +Priority: extra +Maintainer: Forum Nokia +Build-Depends: debhelper (>= 5), libqt4-dev, libqtm-sensors +Standards-Version: 3.7.3 + +Package: qtbubblelevel +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Qt Bubble Level example + QtQuick example diff --git a/demos/mobile/qtbubblelevel/debian/copyright b/demos/mobile/qtbubblelevel/debian/copyright new file mode 100644 index 00000000..e8dea63d --- /dev/null +++ b/demos/mobile/qtbubblelevel/debian/copyright @@ -0,0 +1,36 @@ +This package was debianized by unknown on +Tue, 15 Jun 2010 9:03:02 +0100. + +It was downloaded from + +Upstream Author: + +Copyright: + +License: + + This package is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian systems, the complete text of the GNU Lesser General +Public License can be found in `/usr/share/common-licenses/LGPL'. + + +The Debian packaging is (C) 2010, unknown and +is licensed under the GPL, see `/usr/share/common-licenses/GPL'. + + +# Please also look if there are files or directories which have a +# different copyright/license attached and list them here. diff --git a/demos/mobile/qtbubblelevel/debian/dirs b/demos/mobile/qtbubblelevel/debian/dirs new file mode 100644 index 00000000..80507f10 --- /dev/null +++ b/demos/mobile/qtbubblelevel/debian/dirs @@ -0,0 +1,2 @@ +usr/bin +usr/share/applications/hildon diff --git a/demos/mobile/qtbubblelevel/debian/files b/demos/mobile/qtbubblelevel/debian/files new file mode 100644 index 00000000..3d432422 --- /dev/null +++ b/demos/mobile/qtbubblelevel/debian/files @@ -0,0 +1 @@ +qtbubblelevel_1.2.0_armel.deb user/games extra diff --git a/demos/mobile/qtbubblelevel/debian/postinst b/demos/mobile/qtbubblelevel/debian/postinst new file mode 100644 index 00000000..79fb6ddd --- /dev/null +++ b/demos/mobile/qtbubblelevel/debian/postinst @@ -0,0 +1,5 @@ +#!/bin/sh -e + +gtk-update-icon-cache -f /usr/share/icons/hicolor + +exit 0 diff --git a/demos/mobile/qtbubblelevel/debian/rules b/demos/mobile/qtbubblelevel/debian/rules new file mode 100644 index 00000000..f18b9cd8 --- /dev/null +++ b/demos/mobile/qtbubblelevel/debian/rules @@ -0,0 +1,91 @@ +#!/usr/bin/make -f +# -*- makefile -*- +# Sample debian/rules that uses debhelper. +# This file was originally written by Joey Hess and Craig Small. +# As a special exception, when this file is copied by dh-make into a +# dh-make output file, you may use that output file without restriction. +# This special exception was added by Craig Small in version 0.37 of dh-make. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + + + + + +configure: configure-stamp +configure-stamp: + dh_testdir + # Add here commands to configure the package. + + touch configure-stamp + + +build: build-stamp + +build-stamp: configure-stamp + dh_testdir + + # Add here commands to compile the package. + $(MAKE) + #docbook-to-man debian/qtbubblelevel.sgml > qtbubblelevel.1 + + touch $@ + +clean: + dh_testdir + dh_testroot + rm -f build-stamp configure-stamp + + # Add here commands to clean up after the build process. + $(MAKE) clean + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + # Add here commands to install the package into debian/qtbubblelevel. + $(MAKE) INSTALL_ROOT="$(CURDIR)"/debian/qtbubblelevel install + + +# Build architecture-independent files here. +binary-indep: build install +# We have nothing to do by default. + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + dh_installchangelogs + dh_installdocs + dh_installexamples +# dh_install +# dh_installmenu +# dh_installdebconf +# dh_installlogrotate +# dh_installemacsen +# dh_installpam +# dh_installmime +# dh_python +# dh_installinit +# dh_installcron +# dh_installinfo + dh_installman + dh_link +# dh_strip + dh_compress + dh_fixperms +# dh_perl + dh_makeshlibs + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install configure diff --git a/demos/mobile/qtbubblelevel/icons/26x26/qtbubblelevel.png b/demos/mobile/qtbubblelevel/icons/26x26/qtbubblelevel.png new file mode 100644 index 00000000..ae34ccf5 Binary files /dev/null and b/demos/mobile/qtbubblelevel/icons/26x26/qtbubblelevel.png differ diff --git a/demos/mobile/qtbubblelevel/icons/40x40/qtbubblelevel.png b/demos/mobile/qtbubblelevel/icons/40x40/qtbubblelevel.png new file mode 100644 index 00000000..6230f55e Binary files /dev/null and b/demos/mobile/qtbubblelevel/icons/40x40/qtbubblelevel.png differ diff --git a/demos/mobile/qtbubblelevel/icons/64x64/qtbubblelevel.png b/demos/mobile/qtbubblelevel/icons/64x64/qtbubblelevel.png new file mode 100644 index 00000000..375326c0 Binary files /dev/null and b/demos/mobile/qtbubblelevel/icons/64x64/qtbubblelevel.png differ diff --git a/demos/mobile/qtbubblelevel/icons/bubblelevel.svg b/demos/mobile/qtbubblelevel/icons/bubblelevel.svg new file mode 100644 index 00000000..a3c30dfa --- /dev/null +++ b/demos/mobile/qtbubblelevel/icons/bubblelevel.svg @@ -0,0 +1,264 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/demos/mobile/qtbubblelevel/icons/qtbl_icon.png b/demos/mobile/qtbubblelevel/icons/qtbl_icon.png new file mode 100644 index 00000000..780fbb41 Binary files /dev/null and b/demos/mobile/qtbubblelevel/icons/qtbl_icon.png differ diff --git a/demos/mobile/qtbubblelevel/icons/xpm/qtbubblelevel.xpm b/demos/mobile/qtbubblelevel/icons/xpm/qtbubblelevel.xpm new file mode 100644 index 00000000..19f3c2f3 --- /dev/null +++ b/demos/mobile/qtbubblelevel/icons/xpm/qtbubblelevel.xpm @@ -0,0 +1,1783 @@ +/* XPM */ +static char * qtbubblelevel_xpm[] = { +"64 64 1716 2", +" c None", +". c #BBD2A8", +"+ c #BBD1A8", +"@ c #BFD3A5", +"# c #C0D2AA", +"$ c #A4B594", +"% c #94A488", +"& c #B2C3A5", +"* c #A5B694", +"= c #A6B893", +"- c #A7B993", +"; c #A8BA93", +"> c #A6B891", +", c #A7B992", +"' c #A7B792", +") c #A7B896", +"! c #A8B997", +"~ c #A9BA98", +"{ c #ABBC99", +"] c #AABB99", +"^ c #AABB98", +"/ c #A8B996", +"( c #A9BA97", +"_ c #ADBC94", +": c #ACBA95", +"< c #ABB895", +"[ c #ADBC9A", +"} c #B6C3A5", +"| c #95A285", +"1 c #A9BA99", +"2 c #BDD4AA", +"3 c #AFC897", +"4 c #AFC898", +"5 c #AFC797", +"6 c #B4C994", +"7 c #B4C799", +"8 c #97A981", +"9 c #839570", +"0 c #8C9E7A", +"a c #7B8C65", +"b c #7E9167", +"c c #7D9268", +"d c #7E9268", +"e c #7E926A", +"f c #82966E", +"g c #859972", +"h c #889B74", +"i c #8CA07A", +"j c #8FA37D", +"k c #91A47E", +"l c #93A680", +"m c #94A881", +"n c #93A781", +"o c #95A983", +"p c #96AA83", +"q c #94A882", +"r c #94A880", +"s c #94A780", +"t c #93A47A", +"u c #90A079", +"v c #8D9C77", +"w c #8B9A78", +"x c #98A787", +"y c #879576", +"z c #9CAE89", +"A c #B1CA9A", +"B c #B1C999", +"C c #A7BF8A", +"D c #A8C18A", +"E c #A8C18B", +"F c #A8C08A", +"G c #ACC286", +"H c #ACC08A", +"I c #93A677", +"J c #7A8C63", +"K c #7A8D62", +"L c #778A5D", +"M c #7C905F", +"N c #799162", +"O c #7A9163", +"P c #799063", +"Q c #7B9363", +"R c #7C9464", +"S c #7C9465", +"T c #819869", +"U c #849C6D", +"V c #89A071", +"W c #8DA478", +"X c #90A77C", +"Y c #94AB80", +"Z c #96AD82", +"` c #97AE83", +" . c #96AE83", +".. c #98AD82", +"+. c #99AF84", +"@. c #9AB085", +"#. c #99B085", +"$. c #98AE83", +"%. c #97AD81", +"&. c #96A97D", +"*. c #91A378", +"=. c #8C9F76", +"-. c #879973", +";. c #879875", +">. c #819271", +",. c #96AA80", +"'. c #AAC38C", +"). c #A9C28C", +"!. c #A7C189", +"~. c #A8C189", +"{. c #A2BB80", +"]. c #A2BB82", +"^. c #A1BA81", +"/. c #A4BD83", +"(. c #A3BD82", +"_. c #A5BC7D", +":. c #A4B980", +"<. c #8CA06F", +"[. c #798B5F", +"}. c #788B5E", +"|. c #7A8D5D", +"1. c #7D935F", +"2. c #7A9661", +"3. c #7C9762", +"4. c #7C9763", +"5. c #819B66", +"6. c #829D68", +"7. c #829D66", +"8. c #819C65", +"9. c #849F68", +"0. c #86A16A", +"a. c #87A26C", +"b. c #8CA674", +"c. c #8FA979", +"d. c #92AD7D", +"e. c #95AF7F", +"f. c #96B080", +"g. c #97B180", +"h. c #98B282", +"i. c #9AB383", +"j. c #9AB483", +"k. c #99B282", +"l. c #97B080", +"m. c #96AF7F", +"n. c #93A879", +"o. c #8DA375", +"p. c #889D72", +"q. c #81966D", +"r. c #7E926B", +"s. c #7B8E6A", +"t. c #94A97C", +"u. c #A4BD84", +"v. c #A3BC82", +"w. c #A1BA82", +"x. c #A2BB83", +"y. c #A3BB84", +"z. c #A5BD86", +"A. c #A5BD85", +"B. c #A6BC7F", +"C. c #A5BA83", +"D. c #90A274", +"E. c #7D9165", +"F. c #7E9266", +"G. c #7E9262", +"H. c #809662", +"I. c #7E9C61", +"J. c #819E64", +"K. c #83A166", +"L. c #88A56B", +"M. c #89A76C", +"N. c #89A769", +"O. c #8BA96B", +"P. c #8CAB6B", +"Q. c #8FAD74", +"R. c #92AF79", +"S. c #95B27C", +"T. c #97B57E", +"U. c #98B67E", +"V. c #9AB880", +"W. c #9CB982", +"X. c #9CBA83", +"Y. c #9DBA83", +"Z. c #9BB881", +"`. c #99B67F", +" + c #98B57E", +".+ c #96B27D", +"++ c #93AB79", +"@+ c #8CA574", +"#+ c #879F70", +"$+ c #829A6D", +"%+ c #80976D", +"&+ c #7D946C", +"*+ c #95AC7D", +"=+ c #A4BC85", +"-+ c #A3BA84", +";+ c #A3BC84", +">+ c #A4BC88", +",+ c #A4BC89", +"'+ c #A6BE8B", +")+ c #A5BE8A", +"!+ c #A7BC83", +"~+ c #A8BC88", +"{+ c #94A77B", +"]+ c #85976F", +"^+ c #869870", +"/+ c #83966B", +"(+ c #859A69", +"_+ c #84A365", +":+ c #88A869", +"<+ c #8CAC6D", +"[+ c #90B071", +"}+ c #91B172", +"|+ c #91B170", +"1+ c #91B26D", +"2+ c #91B26E", +"3+ c #91B16E", +"4+ c #90B16C", +"5+ c #93B370", +"6+ c #95B376", +"7+ c #96B47A", +"8+ c #99B87E", +"9+ c #9CBA80", +"0+ c #9BBA80", +"a+ c #9EBD82", +"b+ c #9FBE83", +"c+ c #A0BF84", +"d+ c #9DBB81", +"e+ c #9BBA7F", +"f+ c #9AB97E", +"g+ c #98B67D", +"h+ c #93AD79", +"i+ c #8DA874", +"j+ c #87A271", +"k+ c #849E6F", +"l+ c #849E72", +"m+ c #80996F", +"n+ c #96AE80", +"o+ c #A5BD8A", +"p+ c #A3BB88", +"q+ c #A7BF8C", +"r+ c #A6BE8C", +"s+ c #A8C08E", +"t+ c #A8C08D", +"u+ c #A8C08B", +"v+ c #A8BE8B", +"w+ c #95AA80", +"x+ c #899C7A", +"y+ c #8B9F78", +"z+ c #879C71", +"A+ c #879E71", +"B+ c #8AA86E", +"C+ c #8EAD70", +"D+ c #92B274", +"E+ c #94B776", +"F+ c #94B875", +"G+ c #93B872", +"H+ c #93B973", +"I+ c #97B976", +"J+ c #96B976", +"K+ c #98B976", +"L+ c #98BB77", +"M+ c #97B97A", +"N+ c #99BA7D", +"O+ c #9ABB7E", +"P+ c #9BBD80", +"Q+ c #9EBF82", +"R+ c #9FC082", +"S+ c #9FC183", +"T+ c #A1C284", +"U+ c #A0C184", +"V+ c #A3BF88", +"W+ c #A3C086", +"X+ c #A3C087", +"Y+ c #9FBC82", +"Z+ c #9EBC80", +"`+ c #9EBB80", +" @ c #9AB77C", +".@ c #92AF78", +"+@ c #8DA87A", +"@@ c #89A279", +"#@ c #869F74", +"$@ c #8CA378", +"%@ c #889D73", +"&@ c #9AB084", +"*@ c #A7BF8D", +"=@ c #A5BD8B", +"-@ c #A6BE87", +";@ c #A6BF87", +">@ c #A5BF87", +",@ c #A7BF89", +"'@ c #A6C087", +")@ c #93AB7E", +"!@ c #8A9E7D", +"~@ c #8FA67B", +"{@ c #849D6D", +"]@ c #88A072", +"^@ c #8BA971", +"/@ c #8FAF73", +"(@ c #92B675", +"_@ c #94BA74", +":@ c #92BC71", +"<@ c #91BE6D", +"[@ c #94BE71", +"}@ c #96BC78", +"|@ c #97BD78", +"1@ c #96BD78", +"2@ c #98BF7A", +"3@ c #99BF7A", +"4@ c #9CC27E", +"5@ c #9BC17D", +"6@ c #9DC380", +"7@ c #9EC480", +"8@ c #9EC380", +"9@ c #A1C185", +"0@ c #A1C282", +"a@ c #9DBE7E", +"b@ c #9DBE7D", +"c@ c #9CBD7B", +"d@ c #97B875", +"e@ c #92B273", +"f@ c #8CA97B", +"g@ c #88A17C", +"h@ c #879E74", +"i@ c #8DA074", +"j@ c #9BB081", +"k@ c #A7C089", +"l@ c #A5BE88", +"m@ c #A6BF86", +"n@ c #93AF6E", +"o@ c #94B06E", +"p@ c #93B06E", +"q@ c #93B070", +"r@ c #95B16F", +"s@ c #809B63", +"t@ c #758F61", +"u@ c #86A16B", +"v@ c #6F8A50", +"w@ c #728F58", +"x@ c #729757", +"y@ c #789E5B", +"z@ c #7DA75D", +"A@ c #7EAC5C", +"B@ c #7EAE5A", +"C@ c #81B259", +"D@ c #81B25D", +"E@ c #83B061", +"F@ c #83B161", +"G@ c #85B363", +"H@ c #84B363", +"I@ c #86B465", +"J@ c #86B565", +"K@ c #86B464", +"L@ c #88B666", +"M@ c #88B767", +"N@ c #8BB468", +"O@ c #8BB568", +"P@ c #8BB567", +"Q@ c #89B263", +"R@ c #87B163", +"S@ c #84AD5F", +"T@ c #7EA759", +"U@ c #7C9E59", +"V@ c #78955F", +"W@ c #728E5E", +"X@ c #748F5A", +"Y@ c #889F68", +"Z@ c #7A905E", +"`@ c #88A06A", +" # c #97B472", +".# c #97B372", +"+# c #94B06F", +"@# c #94B06D", +"## c #7A994D", +"$# c #7A9A4E", +"%# c #799A4E", +"&# c #799A4B", +"*# c #607E3B", +"=# c #537038", +"-# c #6F8E4D", +";# c #52712B", +"># c #4D6D2C", +",# c #4C752E", +"'# c #537D32", +")# c #598737", +"!# c #5D8E38", +"~# c #5E9337", +"{# c #619838", +"]# c #62993B", +"^# c #62963B", +"/# c #62973B", +"(# c #64993D", +"_# c #63993C", +":# c #65993E", +"<# c #659A3E", +"[# c #649A3D", +"}# c #669A40", +"|# c #679B40", +"1# c #679B3F", +"2# c #6A9B3B", +"3# c #6A9B3C", +"4# c #6A9B3D", +"5# c #67983C", +"6# c #65953B", +"7# c #5F9036", +"8# c #59882F", +"9# c #577B30", +"0# c #517334", +"a# c #4D6D30", +"b# c #557533", +"c# c #708C4B", +"d# c #587037", +"e# c #6B8647", +"f# c #7C9C50", +"g# c #719440", +"h# c #719540", +"i# c #71953F", +"j# c #709441", +"k# c #6F933D", +"l# c #56792E", +"m# c #496929", +"n# c #6B8D45", +"o# c #527528", +"p# c #40631C", +"q# c #406920", +"r# c #436E21", +"s# c #4A7826", +"t# c #4F8129", +"u# c #518729", +"v# c #558C2A", +"w# c #568E2B", +"x# c #568D2B", +"y# c #578F2B", +"z# c #57902C", +"A# c #59912D", +"B# c #59912C", +"C# c #59912E", +"D# c #59902D", +"E# c #5D9228", +"F# c #5C9027", +"G# c #5A8E2A", +"H# c #5A8D2C", +"I# c #56892B", +"J# c #508226", +"K# c #4A7B23", +"L# c #476E21", +"M# c #416721", +"N# c #3F631E", +"O# c #577A2F", +"P# c #6A8A42", +"Q# c #4A6529", +"R# c #5D7C38", +"S# c #709440", +"T# c #6A913A", +"U# c #6B923A", +"V# c #6A923B", +"W# c #699037", +"X# c #507528", +"Y# c #436724", +"Z# c #678C41", +"`# c #5E8533", +" $ c #42671D", +".$ c #3E631D", +"+$ c #3F671D", +"@$ c #456E20", +"#$ c #4A7823", +"$$ c #4C7D23", +"%$ c #518325", +"&$ c #528625", +"*$ c #528923", +"=$ c #548A24", +"-$ c #558C26", +";$ c #568D27", +">$ c #568C25", +",$ c #588B23", +"'$ c #578924", +")$ c #558626", +"!$ c #538328", +"~$ c #4E7D28", +"{$ c #487625", +"]$ c #437020", +"^$ c #3D671B", +"/$ c #3B621B", +"($ c #436920", +"_$ c #618538", +":$ c #66883E", +"<$ c #446126", +"[$ c #597935", +"}$ c #668E36", +"|$ c #668E35", +"1$ c #658D36", +"2$ c #648C33", +"3$ c #4B7225", +"4$ c #416522", +"5$ c #61873B", +"6$ c #658B3B", +"7$ c #52762D", +"8$ c #3E5D1B", +"9$ c #3D5E19", +"0$ c #40641B", +"a$ c #466E1E", +"b$ c #48731E", +"c$ c #4D7921", +"d$ c #4F7F21", +"e$ c #4F821F", +"f$ c #518421", +"g$ c #538622", +"h$ c #538723", +"i$ c #548722", +"j$ c #548724", +"k$ c #548723", +"l$ c #558320", +"m$ c #538122", +"n$ c #517E24", +"o$ c #4D7926", +"p$ c #477326", +"q$ c #416B22", +"r$ c #3B661D", +"s$ c #376117", +"t$ c #39611C", +"u$ c #50772D", +"v$ c #63893A", +"w$ c #60833A", +"x$ c #405E25", +"y$ c #547633", +"z$ c #628A33", +"A$ c #628A32", +"B$ c #608833", +"C$ c #638832", +"D$ c #4E6E28", +"E$ c #436023", +"F$ c #608038", +"G$ c #638835", +"H$ c #5C8334", +"I$ c #446720", +"J$ c #375A16", +"K$ c #3B5F1C", +"L$ c #3F6420", +"M$ c #42681E", +"N$ c #486F1E", +"O$ c #49761E", +"P$ c #497A21", +"Q$ c #4C7D21", +"R$ c #4E8022", +"S$ c #508122", +"T$ c #518222", +"U$ c #528423", +"V$ c #518322", +"W$ c #518324", +"X$ c #518323", +"Y$ c #4F811C", +"Z$ c #50821B", +"`$ c #50821D", +" % c #50821F", +".% c #508221", +"+% c #4F811F", +"@% c #4F8020", +"#% c #517B21", +"$% c #4F7921", +"%% c #4C7522", +"&% c #497122", +"*% c #41691F", +"=% c #3E651E", +"-% c #385F19", +";% c #355D11", +">% c #436A1E", +",% c #5C8132", +"'% c #618535", +")% c #5D7C33", +"!% c #405C1F", +"~% c #52732C", +"{% c #618A33", +"]% c #5D8630", +"^% c #5E8630", +"/% c #5E8530", +"(% c #5C832F", +"_% c #608330", +":% c #4E6A28", +"<% c #425B22", +"[% c #5F7C35", +"}% c #5E832E", +"|% c #5D8432", +"1% c #517829", +"2% c #3B6016", +"3% c #355917", +"4% c #385C1C", +"5% c #3D611B", +"6% c #40661C", +"7% c #426C1C", +"8% c #42711E", +"9% c #45751F", +"0% c #487820", +"a% c #4A7A20", +"b% c #4C7C1F", +"c% c #4D7E21", +"d% c #4D7E22", +"e% c #4B7E18", +"f% c #4B7E17", +"g% c #4B7E19", +"h% c #4B7D1B", +"i% c #4B7C1D", +"j% c #497A1E", +"k% c #49781D", +"l% c #4B721F", +"m% c #49701F", +"n% c #466C1E", +"o% c #3C611B", +"p% c #3B601B", +"q% c #365B16", +"r% c #3E6516", +"s% c #537929", +"t% c #5E8230", +"u% c #608031", +"v% c #5A792F", +"w% c #415B1A", +"x% c #507027", +"y% c #59812B", +"z% c #577E2A", +"A% c #5A7E2B", +"B% c #496523", +"C% c #3E561E", +"D% c #5A7731", +"E% c #597F29", +"F% c #59812C", +"G% c #577E29", +"H% c #4C7322", +"I% c #395D15", +"J% c #335815", +"K% c #355915", +"L% c #375C17", +"M% c #386018", +"N% c #3B6717", +"O% c #3E6B1A", +"P% c #416E1A", +"Q% c #43711C", +"R% c #46731B", +"S% c #47751A", +"T% c #48761C", +"U% c #48771D", +"V% c #467716", +"W% c #467614", +"X% c #467617", +"Y% c #467518", +"Z% c #457318", +"`% c #43711A", +" & c #416E19", +".& c #42681D", +"+& c #3F651B", +"@& c #3C611A", +"#& c #3A5F1A", +"$& c #385C19", +"%& c #345817", +"&& c #395E1A", +"*& c #4D7425", +"=& c #5A8031", +"-& c #5A7E2C", +";& c #5C7D2D", +">& c #57752C", +",& c #3D5817", +"'& c #4C6C24", +")& c #59812A", +"!& c #567E28", +"~& c #557D28", +"{& c #537B27", +"]& c #567A27", +"^& c #466120", +"/& c #3B541B", +"(& c #57742E", +"_& c #567C26", +":& c #567D28", +"<& c #537C22", +"[& c #537A24", +"}& c #486E1E", +"|& c #375D14", +"1& c #315612", +"2& c #305415", +"3& c #325916", +"4& c #355E14", +"5& c #386217", +"6& c #3A6417", +"7& c #3E6819", +"8& c #3F6A18", +"9& c #416C17", +"0& c #436E1A", +"a& c #446F1B", +"b& c #436F1B", +"c& c #456F1C", +"d& c #456F1D", +"e& c #426F16", +"f& c #436F16", +"g& c #426D16", +"h& c #416D19", +"i& c #406A18", +"j& c #3C6619", +"k& c #395D1A", +"l& c #355A17", +"m& c #325714", +"n& c #325614", +"o& c #385D1B", +"p& c #496E29", +"q& c #557C2D", +"r& c #567C2D", +"s& c #557927", +"t& c #58792A", +"u& c #547128", +"v& c #3B5615", +"w& c #496920", +"x& c #557E28", +"y& c #517923", +"z& c #527A24", +"A& c #517924", +"B& c #507623", +"C& c #547724", +"D& c #435F1D", +"E& c #3A531A", +"F& c #55722C", +"G& c #537923", +"H& c #537A25", +"I& c #517822", +"J& c #527A22", +"K& c #507822", +"L& c #486E1F", +"M& c #395E15", +"N& c #2F5311", +"O& c #2F5412", +"P& c #315813", +"Q& c #335A15", +"R& c #365D16", +"S& c #375F15", +"T& c #396015", +"U& c #3B6214", +"V& c #3C6416", +"W& c #3D6517", +"X& c #3F6719", +"Y& c #3F6716", +"Z& c #3D6616", +"`& c #3C6415", +" * c #3A6217", +".* c #395F17", +"+* c #385E17", +"@* c #345818", +"#* c #325615", +"$* c #2D510F", +"%* c #2E530F", +"&* c #395E18", +"** c #486D26", +"=* c #51762E", +"-* c #52782A", +";* c #527828", +">* c #547726", +",* c #547626", +"'* c #516F25", +")* c #395313", +"!* c #45661E", +"~* c #527A23", +"{* c #4D751F", +"]* c #4D751E", +"^* c #4C7320", +"/* c #517421", +"(* c #405C1A", +"_* c #375017", +":* c #516E28", +"<* c #4F741F", +"[* c #4E7523", +"}* c #4C7424", +"|* c #4D7521", +"1* c #4D751D", +"2* c #486F1F", +"3* c #3B6017", +"4* c #2F5411", +"5* c #2C5011", +"6* c #2C500F", +"7* c #305511", +"8* c #315611", +"9* c #335810", +"0* c #345A0F", +"a* c #355B11", +"b* c #355B12", +"c* c #375D13", +"d* c #375D12", +"e* c #355B10", +"f* c #345A12", +"g* c #335812", +"h* c #315512", +"i* c #2F5413", +"j* c #2E5212", +"k* c #2D5210", +"l* c #2C510D", +"m* c #30550F", +"n* c #3C6219", +"o* c #466D20", +"p* c #4C7324", +"q* c #4D7325", +"r* c #4C7325", +"s* c #4E7324", +"t* c #4F7321", +"u* c #517224", +"v* c #4E6C22", +"w* c #36500F", +"x* c #42631A", +"y* c #4A721C", +"z* c #4A711B", +"A* c #4A701D", +"B* c #4D711E", +"C* c #3C5A16", +"D* c #334D12", +"E* c #4D6B23", +"F* c #4A6F1A", +"G* c #4A701E", +"H* c #4A7024", +"I* c #4A701F", +"J* c #4A7119", +"K* c #487017", +"L* c #4B721C", +"M* c #476E1E", +"N* c #40661F", +"O* c #385A1D", +"P* c #2E5112", +"Q* c #2D500F", +"R* c #2B500B", +"S* c #2C500B", +"T* c #2E530B", +"U* c #2E520B", +"V* c #2E520C", +"W* c #2D520B", +"X* c #2F540D", +"Y* c #30540E", +"Z* c #30540D", +"`* c #2F530D", +" = c #2E510B", +".= c #2C4F0B", +"+= c #2C500D", +"@= c #2D5010", +"#= c #2C4E11", +"$= c #2B4F10", +"%= c #305510", +"&= c #395E17", +"*= c #43691F", +"== c #476E20", +"-= c #476E1D", +";= c #49701B", +">= c #4A711D", +",= c #4A6F22", +"'= c #497020", +")= c #4B701D", +"!= c #4E701F", +"~= c #4B6920", +"{= c #324E0C", +"]= c #3F6116", +"^= c #49721B", +"/= c #476F19", +"(= c #466E18", +"_= c #476F1A", +":= c #476E19", +"<= c #385E0E", +"[= c #2E5406", +"}= c #446B18", +"|= c #436B15", +"1= c #456D18", +"2= c #476D1B", +"3= c #476F18", +"4= c #476E1F", +"5= c #446A21", +"6= c #3D621A", +"7= c #385D14", +"8= c #30550C", +"9= c #2D5109", +"0= c #2A4F05", +"a= c #284D09", +"b= c #294D0C", +"c= c #294D0A", +"d= c #294D0B", +"e= c #2B4F0D", +"f= c #294F08", +"g= c #294D08", +"h= c #294E07", +"i= c #284D07", +"j= c #325612", +"k= c #416816", +"l= c #446C19", +"m= c #476E1A", +"n= c #476D19", +"o= c #466F18", +"p= c #486F19", +"q= c #436917", +"r= c #2E5304", +"s= c #3A600E", +"t= c #416913", +"u= c #406812", +"v= c #3C640E", +"w= c #426A14", +"x= c #436B14", +"y= c #426A17", +"z= c #42681B", +"A= c #41671A", +"B= c #3D6316", +"C= c #385E10", +"D= c #2C520C", +"E= c #2B500A", +"F= c #2E530D", +"G= c #2E5409", +"H= c #31560C", +"I= c #3A5F14", +"J= c #3D6317", +"K= c #40661A", +"L= c #42691C", +"M= c #3B630E", +"N= c #3E6610", +"O= c #3F6710", +"P= c #3F6711", +"Q= c #3E6714", +"R= c #3F6617", +"S= c #3D6415", +"T= c #406718", +"U= c #406618", +"V= c #3E6616", +"W= c #3E6515", +"X= c #3B6212", +"Y= c #3B6111", +"Z= c #3D6314", +"`= c #3D6214", +" - c #3D6412", +".- c #3E6413", +"+- c #406715", +"@- c #3E6713", +"#- c #3F6714", +"$- c #406614", +"%- c #406811", +"&- c #3D650F", +"*- c #3B630D", +"=- c #3B630F", +"-- c #3B6211", +";- c #3D6414", +">- c #3E6514", +",- c #3C6312", +"'- c #3D650C", +")- c #3D650D", +"!- c #3D640C", +"~- c #3D650E", +"{- c #3E660E", +"]- c #3E660D", +"^- c #3E660F", +"/- c #3A620C", +"(- c #3B620D", +"_- c #3B620F", +":- c #3B610B", +"<- c #3B630A", +"[- c #3B630B", +"}- c #375F09", +"|- c #375F0A", +"1- c #375F08", +"2- c #375F07", +"3- c #375F0B", +"4- c #345C06", +"5- c #345C07", +"6- c #335C07", +"7- c #355C07", +"8- c #355C05", +"9- c #355C04", +"0- c #355C06", +"a- c #355A09", +"b- c #355B0A", +"c- c #355B09", +"d- c #355B06", +"e- c #355D06", +"f- c #335C06", +"g- c #2E5704", +"h- c #305804", +"i- c #305806", +"j- c #305906", +"k- c #305704", +"l- c #305805", +"m- c #325605", +"n- c #335705", +"o- c #335605", +"p- c #325604", +"q- c #345806", +"r- c #355807", +"s- c #335706", +"t- c #335704", +"u- c #335505", +"v- c #325606", +"w- c #345906", +"x- c #335805", +"y- c #325903", +"z- c #325B01", +"A- c #325B02", +"B- c #315A02", +"C- c #2F5800", +"D- c #305901", +"E- c #305900", +"F- c #335503", +"G- c #355305", +"H- c #355404", +"I- c #2D5601", +"J- c #2E5702", +"K- c #2F5703", +"L- c #305904", +"M- c #2F5804", +"N- c #315502", +"O- c #325603", +"P- c #315503", +"Q- c #315602", +"R- c #305503", +"S- c #315504", +"T- c #305404", +"U- c #325704", +"V- c #315704", +"W- c #325502", +"X- c #305602", +"Y- c #315900", +"Z- c #315901", +"`- c #305701", +" ; c #2E5700", +".; c #2F5700", +"+; c #2E5600", +"@; c #315500", +"#; c #335501", +"$; c #335500", +"%; c #737E40", +"&; c #737D40", +"*; c #717D3E", +"=; c #727C3F", +"-; c #727D40", +";; c #747B3F", +">; c #757C40", +",; c #73793D", +"'; c #71793D", +"); c #72793D", +"!; c #71793C", +"~; c #737A3E", +"{; c #71783C", +"]; c #70773B", +"^; c #71773C", +"/; c #757C3F", +"(; c #747B3E", +"_; c #737C3C", +":; c #737D39", +"<; c #737D3A", +"[; c #727B39", +"}; c #707B38", +"|; c #717B38", +"1; c #717B37", +"2; c #717A36", +"3; c #CAAE84", +"4; c #C9AE83", +"5; c #C7AB80", +"6; c #C3A77D", +"7; c #C4A97D", +"8; c #C6AA80", +"9; c #C5A97E", +"0; c #C9AA80", +"a; c #CAAA81", +"b; c #C9A980", +"c; c #C6A67D", +"d; c #C6A57C", +"e; c #C8A87F", +"f; c #C9AA81", +"g; c #C7A77E", +"h; c #C3A37A", +"i; c #BF9F76", +"j; c #C1A178", +"k; c #C3A379", +"l; c #C2A179", +"m; c #C0A077", +"n; c #C2A279", +"o; c #C09F77", +"p; c #C0A177", +"q; c #C4A47B", +"r; c #C6A67C", +"s; c #C5A67C", +"t; c #CBAB82", +"u; c #CCAB81", +"v; c #CCAB82", +"w; c #CAAB81", +"x; c #C8A77E", +"y; c #C5A57C", +"z; c #C7A67D", +"A; c #C7A87F", +"B; c #C9A97F", +"C; c #C9A87F", +"D; c #C4A37B", +"E; c #C4A478", +"F; c #C2A273", +"G; c #C3A375", +"H; c #C4A475", +"I; c #C0A172", +"J; c #C1A171", +"K; c #C1A173", +"L; c #C1A373", +"M; c #C2A374", +"N; c #C2A373", +"O; c #CC9F6B", +"P; c #D0A370", +"Q; c #D0A36F", +"R; c #CB9E6B", +"S; c #CDA06C", +"T; c #CCA06C", +"U; c #CE9C69", +"V; c #CC9A67", +"W; c #C99765", +"X; c #CB9966", +"Y; c #C79664", +"Z; c #C49260", +"`; c #C89764", +" > c #CA9965", +".> c #C89765", +"+> c #C79563", +"@> c #C2915E", +"#> c #C08F5C", +"$> c #C3925F", +"%> c #BF8F5B", +"&> c #BD8B59", +"*> c #C3915F", +"=> c #C69462", +"-> c #C89664", +";> c #CB9A67", +">> c #CB9968", +",> c #CB9B67", +"'> c #CD9C69", +")> c #CD9B68", +"!> c #CE9D6A", +"~> c #CE9C6A", +"{> c #CA9866", +"]> c #C69562", +"^> c #C1905D", +"/> c #C2905E", +"(> c #C69461", +"_> c #CA9966", +":> c #C59461", +"<> c #C5935F", +"[> c #C28F59", +"}> c #C3915A", +"|> c #C7945E", +"1> c #C5935D", +"2> c #C08E58", +"3> c #BC8853", +"4> c #BB8654", +"5> c #BB8655", +"6> c #BA8655", +"7> c #BC8A4B", +"8> c #C1904F", +"9> c #BF8D4D", +"0> c #C19050", +"a> c #C29050", +"b> c #BE8C4C", +"c> c #C28D4E", +"d> c #C18A4C", +"e> c #BD8649", +"f> c #BD8749", +"g> c #BB8547", +"h> c #B78142", +"i> c #B88244", +"j> c #B68042", +"k> c #B98244", +"l> c #BB8447", +"m> c #BC8648", +"n> c #BA8446", +"o> c #BE874A", +"p> c #BD8648", +"q> c #B68041", +"r> c #B98445", +"s> c #BA8445", +"t> c #B88245", +"u> c #B98344", +"v> c #BE8749", +"w> c #C08A4C", +"x> c #BF894B", +"y> c #BE894B", +"z> c #C0894B", +"A> c #BF884A", +"B> c #BA8546", +"C> c #B78143", +"D> c #B88345", +"E> c #BA8346", +"F> c #B78144", +"G> c #BA8345", +"H> c #BB8546", +"I> c #BB8446", +"J> c #BE884A", +"K> c #BD8546", +"L> c #BC8342", +"M> c #BD8443", +"N> c #C08646", +"O> c #BB8342", +"P> c #B67C3B", +"Q> c #AA702F", +"R> c #A76830", +"S> c #A4622F", +"T> c #A3622F", +"U> c #B78145", +"V> c #C58E52", +"W> c #BF874B", +"X> c #BC8347", +"Y> c #B98345", +"Z> c #B88344", +"`> c #B88146", +" , c #B98146", +"., c #B98045", +"+, c #B98046", +"@, c #BB8348", +"#, c #BA8046", +"$, c #B97E44", +"%, c #BB7F45", +"&, c #B87D43", +"*, c #B87C42", +"=, c #B67B41", +"-, c #B5793E", +";, c #B3783E", +">, c #B2773C", +",, c #B07539", +"', c #AD7236", +"), c #AD7136", +"!, c #AA6E33", +"~, c #AD7237", +"{, c #AE7336", +"], c #AD7135", +"^, c #B67B3F", +"/, c #B87E41", +"(, c #B67C3F", +"_, c #B77C40", +":, c #B77D3F", +"<, c #B67D41", +"[, c #B87F42", +"}, c #B98043", +"|, c #BA8144", +"1, c #BF8449", +"2, c #BD8248", +"3, c #BF8349", +"4, c #BE8348", +"5, c #BB8145", +"6, c #B67C40", +"7, c #B4793C", +"8, c #B77B3F", +"9, c #BA7E42", +"0, c #BC8044", +"a, c #BB7F43", +"b, c #BC8145", +"c, c #B97D41", +"d, c #B6783A", +"e, c #B67636", +"f, c #B67738", +"g, c #B97A3B", +"h, c #BD7D3F", +"i, c #B9783B", +"j, c #AE6E31", +"k, c #AB6330", +"l, c #A95E2F", +"m, c #A95C2D", +"n, c #A6733B", +"o, c #BD874F", +"p, c #C48852", +"q, c #B98044", +"r, c #BD8A4B", +"s, c #C39252", +"t, c #C59557", +"u, c #C59457", +"v, c #C49255", +"w, c #C79256", +"x, c #C99257", +"y, c #C38B51", +"z, c #C58A51", +"A, c #C48853", +"B, c #C48851", +"C, c #C38752", +"D, c #C18650", +"E, c #BD814B", +"F, c #BA7F48", +"G, c #B97E46", +"H, c #B87D45", +"I, c #B47941", +"J, c #B57A42", +"K, c #B2773F", +"L, c #B37840", +"M, c #B87D41", +"N, c #BB8044", +"O, c #BE8347", +"P, c #BF8448", +"Q, c #BA7F43", +"R, c #B27C3E", +"S, c #B47E40", +"T, c #B58042", +"U, c #B68142", +"V, c #B68143", +"W, c #B98346", +"X, c #C18551", +"Y, c #C28651", +"Z, c #C0844E", +"`, c #BD8149", +" ' c #BC8147", +".' c #B57A3E", +"+' c #BB7E43", +"@' c #BF8045", +"#' c #C28449", +"$' c #BF8247", +"%' c #C08348", +"&' c #BD7F40", +"*' c #BD803A", +"=' c #BC7F3D", +"-' c #BE8140", +";' c #BB7E3F", +">' c #B4763A", +",' c #AE6F34", +"'' c #B06E35", +")' c #B67239", +"!' c #B26F36", +"~' c #7F5123", +"{' c #9C6A3D", +"]' c #B2794B", +"^' c #B27541", +"/' c #B87B44", +"(' c #BE864A", +"_' c #C28D4D", +":' c #C18C49", +"<' c #BC8643", +"[' c #BC8441", +"}' c #BE8141", +"|' c #C08243", +"1' c #C18343", +"2' c #BF8041", +"3' c #BC8144", +"4' c #BD8244", +"5' c #BD8144", +"6' c #BC8143", +"7' c #BB8042", +"8' c #B97E42", +"9' c #BA7F47", +"0' c #BD8249", +"a' c #C0854D", +"b' c #C2874F", +"c' c #C38850", +"d' c #C78C51", +"e' c #C88D51", +"f' c #C4894D", +"g' c #C08549", +"h' c #BD8246", +"i' c #BB8144", +"j' c #B77D41", +"k' c #BE8448", +"l' c #BE8446", +"m' c #BD8348", +"n' c #C0844F", +"o' c #C18550", +"p' c #BE824B", +"q' c #BF844A", +"r' c #C1874B", +"s' c #C18749", +"t' c #C08546", +"u' c #BF8145", +"v' c #C08246", +"w' c #C08245", +"x' c #C48649", +"y' c #C4864A", +"z' c #C48646", +"A' c #C38742", +"B' c #C58946", +"C' c #CA8D4C", +"D' c #C18447", +"E' c #B7793D", +"F' c #B07237", +"G' c #B27641", +"H' c #B67A48", +"I' c #B27644", +"J' c #6C4321", +"K' c #744522", +"L' c #8F5933", +"M' c #96592D", +"N' c #A0612F", +"O' c #AF7137", +"P' c #BD8245", +"Q' c #BF8C4D", +"R' c #BF8A4B", +"S' c #BA8043", +"T' c #C18649", +"U' c #C38549", +"V' c #C38647", +"W' c #C08444", +"X' c #BD8141", +"Y' c #BC803F", +"Z' c #BD7F3F", +"`' c #BE8142", +" ) c #BC8142", +".) c #BB8045", +"+) c #B87D42", +"@) c #C2874B", +"#) c #C1864A", +"$) c #B2773B", +"%) c #B6783D", +"&) c #B07136", +"*) c #B07036", +"=) c #B3743A", +"-) c #B5763B", +";) c #B7783D", +">) c #B7793F", +",) c #B47742", +"') c #B77C45", +")) c #B77C43", +"!) c #BA7F44", +"~) c #BD8345", +"{) c #BD8344", +"]) c #BA8040", +"^) c #BA7D3E", +"/) c #B67A3A", +"() c #B47638", +"_) c #B87B3C", +":) c #BB7D3F", +"<) c #BA7C3F", +"[) c #B97C3B", +"}) c #B67937", +"|) c #B37636", +"1) c #B5773A", +"2) c #AD6F34", +"3) c #A96B32", +"4) c #A4662E", +"5) c #986132", +"6) c #A16E42", +"7) c #A06C41", +"8) c #583012", +"9) c #633515", +"0) c #76401E", +"a) c #8C4E26", +"b) c #9A5A2A", +"c) c #AE6F37", +"d) c #B3763A", +"e) c #AC7C34", +"f) c #B18038", +"g) c #B17D37", +"h) c #AD7630", +"i) c #AA722C", +"j) c #A8702A", +"k) c #A96D2B", +"l) c #AF6E35", +"m) c #B37339", +"n) c #B6753C", +"o) c #B9793E", +"p) c #BB7A42", +"q) c #BD7F44", +"r) c #BD8445", +"s) c #C3884A", +"t) c #C48A4B", +"u) c #C58B4C", +"v) c #C78C4E", +"w) c #CA8F53", +"x) c #C98E52", +"y) c #C78C50", +"z) c #C68B4F", +"A) c #C58A4E", +"B) c #C8884D", +"C) c #C5854A", +"D) c #C28248", +"E) c #C07E45", +"F) c #BE7D43", +"G) c #BB7A40", +"H) c #BE7E45", +"I) c #C0854C", +"J) c #C2874C", +"K) c #C08648", +"L) c #C28849", +"M) c #C18745", +"N) c #BC823F", +"O) c #BD803F", +"P) c #BB7E3D", +"Q) c #B77A3A", +"R) c #B87B3B", +"S) c #B67939", +"T) c #B57837", +"U) c #B47739", +"V) c #BA7C40", +"W) c #B97A42", +"X) c #B0723B", +"Y) c #955621", +"Z) c #824C21", +"`) c #814F27", +" ! c #835129", +".! c #5F3210", +"+! c #6E3D19", +"@! c #804722", +"#! c #905128", +"$! c #945626", +"%! c #A16530", +"&! c #A76E36", +"*! c #B57B3D", +"=! c #BD8243", +"-! c #BD8042", +";! c #BE7D40", +">! c #C07E41", +",! c #C47F43", +"'! c #C57F45", +")! c #C17D47", +"!! c #C17F48", +"~! c #C07D46", +"{! c #BF7D46", +"]! c #BC7943", +"^! c #B8753F", +"/! c #AE7535", +"(! c #AF7535", +"_! c #B17737", +":! c #B37939", +"~ c #BA7E38", +",~ c #B97D37", +"'~ c #B57933", +")~ c #B67A34", +"!~ c #BD813B", +"~~ c #C1853F", +"{~ c #C18443", +"]~ c #C6884D", +"^~ c #CB8D52", +"/~ c #CD8E56", +"(~ c #CD8E58", +"_~ c #C0814D", +":~ c #AA6B39", +"<~ c #925222", +"[~ c #8A481A", +"}~ c #8E4C1D", +"|~ c #AE7243", +"1~ c #AC6F3F", +"2~ c #9C5D2B", +"3~ c #B27341", +"4~ c #B37745", +"5~ c #7F4717", +"6~ c #996333", +"7~ c #B48046", +"8~ c #BC864C", +"9~ c #BE864C", +"0~ c #C0874D", +"a~ c #C1874E", +"b~ c #BF864D", +"c~ c #C0844A", +"d~ c #BD813F", +"e~ c #BA7D3C", +"f~ c #BB7F3D", +"g~ c #BC803E", +"h~ c #C38644", +"i~ c #C38A49", +"j~ c #C48F4D", +"k~ c #C99353", +"l~ c #CD9656", +"m~ c #CD9756", +"n~ c #C48E4E", +"o~ c #B98342", +"p~ c #B78045", +"q~ c #BA8149", +"r~ c #B9834B", +"s~ c #B37D47", +"t~ c #AE7942", +"u~ c #AC7741", +"v~ c #AB7943", +"w~ c #AC7A44", +"x~ c #AC7942", +"y~ c #AA7842", +"z~ c #A97641", +"A~ c #AC7944", +"B~ c #A97640", +"C~ c #A7713B", +"D~ c #A9733C", +"E~ c #BF884F", +"F~ c #C99356", +"G~ c #C99553", +"H~ c #CB9653", +"I~ c #CB9751", +"J~ c #CC9351", +"K~ c #C48D4B", +"L~ c #C08746", +"M~ c #C08848", +"N~ c #C28A4B", +"O~ c #C38A4C", +"P~ c #C1884D", +"Q~ c #BC844E", +"R~ c #AF7844", +"S~ c #A46A38", +"T~ c #9C602E", +"U~ c #945320", +"V~ c #97531F", +"W~ c #A35F26", +"X~ c #B16B31", +"Y~ c #B56F34", +"Z~ c #A86332", +"`~ c #A6632F", +" { c #AC6933", +".{ c #A96933", +"+{ c #91521F", +"@{ c #854718", +"#{ c #8D4F25", +"${ c #875221", +"%{ c #85511F", +"&{ c #84501E", +"*{ c #8B5625", +"={ c #925E2D", +"-{ c #94602E", +";{ c #8C5826", +">{ c #895623", +",{ c #8F5B28", +"'{ c #8F5C29", +"){ c #8E5B28", +"!{ c #8C5725", +"~{ c #925E2C", +"{{ c #94612F", +"]{ c #93602D", +"^{ c #966331", +"/{ c #A06E3B", +"({ c #9E6A38", +"_{ c #8B5727", +":{ c #885325", +"<{ c #845225", +"[{ c #855428", +"}{ c #84562B", +"|{ c #7F532A", +"1{ c #82562F", +"2{ c #86562E", +"3{ c #85542C", +"4{ c #84532B", +"5{ c #825129", +"6{ c #7D4C24", +"7{ c #77461E", +"8{ c #6B3912", +"9{ c #633110", +"0{ c #653310", +"a{ c #7B4A22", +"b{ c #89582C", +"c{ c #956634", +"d{ c #9F6F3C", +"e{ c #9E6F39", +"f{ c #986A36", +"g{ c #8A5B28", +"h{ c #825322", +"i{ c #865728", +"j{ c #89592D", +"k{ c #8C5C30", +"l{ c #8C5D33", +"m{ c #8A5D32", +"n{ c #8A5D34", +"o{ c #8E5D31", +"p{ c #9A6232", +"q{ c #AB6A31", +"r{ c #B56E2F", +"s{ c #BC7631", +"t{ c #BF7B34", +"u{ c #BF7B35", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +". . . . . . + @ # $ % & * = - ; ; > , , ' ) ) ) ) ! ~ { { ] ^ / ( / ^ { { { { { { { { { ( ( ( ( _ : < [ } | 1 2 2 2 . . . . . . ", +"3 4 4 4 4 4 5 6 7 8 9 0 a b c d d d d d d e e e f g h i j k l m m n o p p p p p p p p p q r m s t u v w x y z A A B 5 4 4 4 4 5 ", +"C D D D E E F G H I J K L M N O P Q R R R S S S T U V W X Y Z ` ...+.@.@.@.@.@.@.@.@.#.$. .` %.&.*.=.-.;.>.,.'.'.).!.D ~.E E F ", +"{.].].^././.(._.:.<.[.}.|.1.2.3.4.5.6.6.7.7.7.8.9.0.a.b.c.d.e.f.g.h.i.j.j.j.j.j.j.j.j.j.k.g.l.m.n.o.p.q.r.s.t.u.u.v.w.].].]./.].", +"x.y.y.y.z.z.A.B.C.D.E.F.G.H.I.J.K.L.M.M.N.N.N.N.N.O.P.Q.R.S.T.U.V.W.X.Y.Y.Y.Y.Y.Y.Y.Y.X.Z.`. +.+++@+#+$+%+&+*+z.z.=+-+y.-+;+z.u.", +">+,+,+,+'+'+)+!+~+{+]+^+/+(+_+:+<+[+}+}+|+1+2+3+4+3+5+6+7+8+9+0+a+b+c+c+c+c+c+c+c+c+c+c+d+e+f+g+h+i+j+k+l+m+n+'+'+o+p+,+p+o+'+'+", +"q+q+q+r+s+s+t+u+v+w+x+y+z+A+B+C+D+E+F+G+H+I+I+I+J+K+L+M+N+O+P+Q+R+S+T+T+T+T+T+T+U+V+W+X+Y+Z+`+ @.@+@@@#@$@%@&@t+t+*@=@r+=@*@s+*@", +"-@;@;@;@;@;@>@,@'@)@!@~@{@]@^@/@(@_@:@<@[@}@|@1@2@3@3@3@3@3@3@4@4@5@6@7@7@7@7@7@8@9@T+0@a@b@c@d@e@f@g@h@n.i@j@!.!.!.!.!.k@l@m@;@", +"n@o@o@o@o@o@p@q@r@s@t@u@v@w@x@y@z@A@B@C@D@E@F@E@G@G@G@G@G@G@H@I@J@K@L@M@M@M@M@M@L@N@O@P@Q@R@S@T@U@V@W@X@Y@Z@`@ # # # # #.#+#@#p@", +"##$#$#$#$#$#%#%#&#*#=#-#;#>#,#'#)#!#~#{#]#^#/#/#(#(#(#(#(#(#_#:#<#[#}#|#|#|#|#|#1#2#3#4#5#6#7#8#9#0#a#b#c#d#e#f#f#f#f#f#f#$#$#$#", +"g#h#h#h#h#h#i#j#k#l#m#n#o#p#q#r#s#t#u#v#w#x#y#z#A#A#A#A#A#A#A#A#A#B#C#C#C#C#C#C#D#E#F#G#H#I#J#K#L#M#N#O#P#Q#R#h#h#h#h#h#h#h#h#S#", +"T#U#U#U#U#U#U#V#W#X#Y#Z#`# $.$+$@$#$$$%$&$*$=$-$;$;$;$;$;$;$;$;$;$;$;$;$;$;$;$;$>$,$'$)$!$~${$]$^$/$($_$:$<$[$U#U#U#U#U#U#U#U#U#", +"}$}$}$}$}$}$|$1$2$3$4$5$6$7$8$9$0$a$b$c$d$e$f$g$h$i$j$j$j$j$j$j$j$k$k$k$k$k$k$k$g$l$m$n$o$p$q$r$s$t$u$v$w$x$y$}$}$}$}$}$}$}$}$}$", +"z$A$z$z$z$z$A$B$C$D$E$F$G$H$I$J$K$L$M$N$O$P$Q$R$S$T$U$V$W$W$W$W$W$X$Y$Z$`$ %.%+%@%#%$%%%&%*%=%-%;%>%,%'%)%!%~%z$z$z$z$z$z$z$A${%", +"]%^%^%^%^%^%/%(%_%:%<%[%}%|%1%2%3%4%5%6%7%8%9%0%a%b%c%c%d%d%d%d%d%c%e%f%g%h%i%j%k%l%m%n%6%o%p%q%r%s%t%u%v%w%x%^%^%^%^%^%^%^%^%^%", +"y%y%y%y%y%y%y%z%A%B%C%D%E%F%G%H%I%J%K%L%M%N%O%P%Q%R%S%T%U%U%U%U%U%U%V%W%X%Y%Z%`% &.&+&@&#&$&%&&&*&=&-&;&>&,&'&y%y%y%y%y%y%y%)&F%", +"!&!&!&!&!&!&~&{&]&^&/&(&_&:&<&[&}&|&1&2&3&4&5&6&7&8&9&0&a&a&b&c&d&c&e&f&g&h&i&7&j&K$k&l&m&n&o&p&q&r&s&t&u&v&w&!&!&!&!&!&!&!&!&x&", +"y&z&z&z&z&z&A&B&C&D&E&F&G&H&I&J&K&L&M&N&O&P&Q&R&S&T&U&V&W&W&W&X&X&X&Y&Z&`& *.*+*R&@*#*$*%*&***=*-*;*>*,*'*)*!*z&z&z&z&z&z&z&z&~*", +"{*{*{*{*{*{*]*^*/*(*_*:*<*[*}*|*1*{*2*3*4*5*6*7*8*9*0*a*b*b*a*c*|&|&d*e*f*g*h*i*j*k*l*m*n*o*p*q*r*s*t*u*v*w*x*{*{*{*{*{*{*{*{*{*", +"y*y*y*y*y*y*z*A*B*C*D*E*F*G*H*I*J*K*L*M*N*O*P*Q*R*S*T*U*V*V*W*X*Y*Z*`* =.=+=@=#=$=%=&=*===-=;=>=,='=)=!=~={=]=y*y*y*y*y*y*y*y*^=", +"/=/=/=/=/=/=(=_=:=<=[=}=|=1=2=/=3=3=3=/=4=5=6=7=8=9=0=a=b=c=d=e=e=e=f=g=h=i=S*j=+*k=l=m=:=n=/=3=_=_=o=p=q=r=s=/=/=/=/=/=/=/=/=/=", +"|=|=|=|=|=|=|=t=|=u=v=t=w=w=|=|=|=|=|=x=y=z=z=z=A=B=C=9*m*D=E=F=F=V*G=H=e*I=J=K=L=|=|=|=|=|=|=|=|=|=|=|=t=M=N=|=|=|=|=|=|=|=|=|=", +"O=P=P=P=P=P=P=P=P=w=u=P=N=P=P=P=P=P=P=O=Q=R=r%S=T=U=V=R=W=X=Y=Z=Z=`= -.-+-+-@-#-$-%-u=u=N=P=P=P=P=P=P=P=P=u=P=P=P=P=P=P=P=P=P=P=", +"v=&-&-&-&-&-&-&-N=N=*-&-*-&-&-&-&-&-&-&-=-Y=X=--;->-,-v='-)-!-~-{-{-{-]-^-~-~-~-)-&-N=&-&-&-&-&-&-&-&-&-&-/-v=&-&-&-&-&-&-&-&-v=", +"*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-(-_-_-_-_-_-_-:-<-<-<-<-<-<-<-[-[-[-[-[-[-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-", +"}-}-}-}-}-}-}-}-}-}-}-}-}-}-}-}-}-}-}-}-}-|-|-|-|-|-|-1-1-1-1-1-1-2-|-3-3-3-3-3-|-1-}-}-}-}-}-}-}-}-}-}-}-}-}-}-}-}-}-}-}-}-}-}-", +"4-5-5-5-5-5-6-7-7-7-7-7-7-7-7-7-7-7-7-7-8-8-8-8-8-8-9-0-0-0-0-0-0-8-a-b-b-b-b-b-c-d-7-7-7-7-7-7-7-7-7-7-7-7-d-e-e-4-4-4-f-0-7-0-", +"g-h-i-j-k-l-l-m-n-n-o-o-o-p-q-r-q-q-q-q-s-t-n-n-n-n-n-u-o-o-u-n-n-n-n-s-s-s-s-s-v-q-r-q-q-w-w-x-o-n-n-n-n-o-y-z-A-B-C-D-E-F-G-H-", +"I-J-K-L-L-L-M-N-O-O-P-P-P-N-t-n-t-Q-O-O-R-S-S-T-p-U-U-N-P-P-R-O-O-O-O-O-O-O-O-O-N-t-n-t-V-U-U-W-O-O-O-O-O-O-X-Y-Z-`- ;.;+;@;#;$;", +"%;&;*;=;%;%;-;;;>;>;,;';);!;~;;;~;{;!;!;{;~;~;);];{;^;!;);););/;>;>;>;>;>;>;>;>;(;;;;;;;;;;;;;~;>;>;>;>;>;>;_;:;<;[;};|;|;1;1;2;", +"3;4;5;6;7;8;9;0;a;a;b;c;d;e;a;f;0;g;h;i;j;k;l;j;m;n;o;p;q;r;s;e;a;t;u;v;v;w;0;b;x;s;y;e;g;z;A;e;A;B;b;C;y;D;E;F;G;H;I;J;K;L;M;N;", +"O;P;Q;O;R;S;T;U;V;W;X;Y;Z;`; >.>W;+>@>#>$>Z;%>&>%>*>$>@>=>->->;>>>,>'>'>)>!>~>{>]>=>]>*>^>/>$>$>(>`;_>W;:>(><>[>}>|>1>2>3>4>5>6>", +"7>8>9>0>a>b>b>c>d>e>f>g>h>i>j>k>l>m>n>g>o>p>i>q>g>r>i>g>s>t>u>n>v>w>x>x>y>z>A>B>C>D>g>E>C>F>G>H>g>g>I>p>J>f>K>L>M>N>O>P>Q>R>S>T>", +"U>V>W>X>I>Y>Z>`> ,.,+,@,#,$,%,&,*,=,-,;,;,>,,,',),!,~,{,],,,^,/,(,_,:,<,[,},|,|,|,1,2,3,4,5,6,7,8,9,0,a,b,c,d,e,f,g,h,i,j,k,l,m,", +"n,o,p,%,q,r,s,t,u,v,w,x,y,z,A,A,B,C,D,E,F,G,H,I,J,K,L,*,M,N,O,P,Q,_,R,S,T,U,V,F>W,X,Y,Z,`, '/,.'+'@'#'$'%'$'&'*'='-';'>',''')'!'", +"~'{']'^'/'('_':'<'['}'|'1'2'3'4'5'4'6'7'8'9'0'0'a'b'c'd'e'f'g'P,O,h'i'j'6,Q,k'l'm'n'o'p'q'r's't'u'v'w'v'x'y'z'A'B'C'D'E'F'G'H'I'", +"J'K'L'M'N'O'P'b>Q'R'E>S'T'U'V'W'X'Y'Z'`' )b,.)+)_,h'O,@)#)h'M,$),,^,%)&)*)=)-);)>),)')))!)~){)])^)/)()_):)<)[)})|)1)2)3)4)5)6)7)", +"8)9)0)a)b)c)d)e)f)g)h)i)j)k)l)m)m)n)o)p)q)r)t's)t)u)v)w)x)y)y)f'z)A)B)C)D)E)F)G)H)`,I)J)K)L)M)N)O)P)Q)R)R)S)T)|)U)V)W)X)Y)Z)`) !", +".!+!@!#!$!%!&!*!=!-!;!>!,!'!)!!!~!{!]!^!=)/!(!_!:!#~$~h'%~&~*~=~-~;~>~,~'~)~!~~~{~]~^~/~(~_~:~<~[~}~", +"|~1~2~3~4~5~6~7~8~9~0~a~b~c~d~e~f~='g~h~i~j~k~l~m~n~o~p~q~r~r~s~t~u~v~w~x~y~z~A~B~C~D~E~F~G~H~I~J~K~L~M~N~O~P~Q~R~S~T~U~V~W~X~Y~", +"Z~`~ {.{+{@{#{${%{&{*{={-{;{>{,{'{){!{;{~{{{]{^{/{({~{_{:{<{[{}{|{1{2{3{4{5{6{7{8{9{0{a{b{c{d{e{f{g{h{i{j{k{l{m{n{o{p{q{r{s{t{u{"}; diff --git a/demos/mobile/qtbubblelevel/main.cpp b/demos/mobile/qtbubblelevel/main.cpp new file mode 100644 index 00000000..df1393dd --- /dev/null +++ b/demos/mobile/qtbubblelevel/main.cpp @@ -0,0 +1,135 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#include +#include +#include + +#include "accelerometerfilter.h" +#include "settings.h" +#include "taskswitcher.h" + +// Lock orientation in Symbian +#ifdef Q_OS_SYMBIAN + #include + #include + #include + #include +#endif + +QTM_USE_NAMESPACE + + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + +#ifdef Q_OS_SYMBIAN + // Lock orientation to landscape in Symbian + CAknAppUi* appUi = dynamic_cast (CEikonEnv::Static()->AppUi()); + TRAP_IGNORE( + if (appUi) + appUi->SetOrientationL(CAknAppUi::EAppUiOrientationLandscape); + ) +#endif + + //! [0] + QDeclarativeView view; + view.setSource(QUrl("qrc:/qml/BubbleLevel.qml")); + view.setResizeMode(QDeclarativeView::SizeRootObjectToView); + //! [0] + + // ![1] + Settings settings; + + QAccelerometer sensor; + AccelerometerFilter filter; + sensor.addFilter(&filter); + //! [1] + + //! [2] + QObject *rootObject = dynamic_cast(view.rootObject()); + + // Associate Qt / QML signals and slots + QObject::connect(rootObject, SIGNAL(saveCorrectionAngle(const QVariant&)), + &settings, SLOT(saveCorrectionAngle(const QVariant&))); + + QObject::connect(&filter, SIGNAL(rotationChanged(const QVariant&)), + rootObject, SLOT(handleRotation(const QVariant&))); + + QObject::connect(&settings, SIGNAL(correctionAngle(const QVariant&)), + rootObject, SLOT(setCorrectionAngle(const QVariant&))); + + QObject::connect((QObject*)view.engine(), SIGNAL(quit()), + &app, SLOT(quit())); + //! [2] + + //! [3] +#ifdef Q_WS_MAEMO_5 + TaskSwitcher taskSwitcher; + + QObject::connect(rootObject, SIGNAL(minimizeApplication()), + &taskSwitcher, SLOT(minimizeApplication())); + + // Show the task switcher button + rootObject->setProperty("taskSwitcherVisible", true); +#endif + //! [3] + + //! [4] + // Read correction factor from permanent storage and emit it to QML side + settings.loadAndEmitCorrectionAngle(); + + // Begin measuring of the accelerometer sensor + sensor.start(); + //! [4] + + //! [5] +#if defined(Q_WS_MAEMO_5) || defined(Q_OS_SYMBIAN) || defined(Q_WS_SIMULATOR) + view.setGeometry(QApplication::desktop()->screenGeometry()); + view.showFullScreen(); +#else + view.setGeometry((QRect(100, 100, 800, 480))); + view.show(); +#endif + //! [5] + + return app.exec(); +} diff --git a/demos/mobile/qtbubblelevel/qml/BubbleLevel.qml b/demos/mobile/qtbubblelevel/qml/BubbleLevel.qml new file mode 100644 index 00000000..7041ba60 --- /dev/null +++ b/demos/mobile/qtbubblelevel/qml/BubbleLevel.qml @@ -0,0 +1,225 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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 1.0 + +Image { + id: bubbleLevel + + //! [0] + // Signaled when task switcher button is pressed + signal minimizeApplication() + + // Signaled when correction angle is saved + signal saveCorrectionAngle(variant angle) + + // These functions are used as Qt slots + function handleRotation(deg) { + horTube.rawangle = deg + } + + function setCorrectionAngle(deg) { + horTube.angleconstant = deg + } + + // Used to show the task switcher button in Maemo targets + property alias taskSwitcherVisible: taskSwitcher.visible + //! [0] + + anchors.fill: parent + source: "images/board.png" + smooth: true + + MouseArea { + anchors.fill: parent + onClicked: sign.frontSide = true + } + + Button { + id: taskSwitcher + + anchors { + left: parent.left + right: horTube.left + verticalCenter: horTube.verticalCenter + margins: (parent.width - (horTube.x + horTube.width)) / 4 + } + + height: width + source: "images/taskswitcher.png" + mouseAreaScale: 2 + onClicked: bubbleLevel.minimizeApplication() + visible: false + } + + Button { + id: exitButton + + anchors { + left: horTube.right + right: parent.right + verticalCenter: horTube.verticalCenter + margins: (parent.width - (horTube.x + horTube.width)) / 4 + } + + height: width + source: "images/exit.png" + mouseAreaScale: 2 + onClicked: Qt.quit() + } + + //! [1] + Tube { + id: horTube + + property real rawangle: 0 + property real angleconstant: 0 + + anchors.horizontalCenter: parent.horizontalCenter + width: parent.width * 0.775; height: parent.height * 0.15625 + deg: rawangle - angleconstant + } + //! [1] + + Flipable { + id: sign + + property bool frontSide: true + + x: parent.width * 0.185; y: parent.height * 0.669 + width: parent.width * 0.63; height: parent.height * 0.258 + + MouseArea { + anchors.fill: parent + onClicked: sign.frontSide = !sign.frontSide + z: -1 + } + + transform: Rotation { + + origin.x: sign.width / 2; origin.y: sign.height / 2 + axis.x: 1; axis.y: 0; axis.z: 0 + angle: sign.frontSide ? 0 : 180 + + Behavior on angle { + RotationAnimation { + direction: RotationAnimation.Clockwise + easing.type: Easing.InOutCubic; duration: 300 + } + } + } + + front: Image { + anchors.fill: parent + source: "images/signwithtext.png" + smooth: true + } + + back: Image { + anchors.fill: parent + source: "images/signblank.png" + smooth: true + + Text { + id: oldValue + + anchors { + left: parent.left; leftMargin: parent.width * 0.10 + right: saveButton.left; rightMargin: 10 + verticalCenter: parent.verticalCenter + } + + text: "Place the device on a level surface and tap Calibrate." + color: "#302020" + wrapMode: Text.WordWrap + font { bold: false; pixelSize: Math.min(parent.width, parent.height) * 0.19 } + } + + Button { + id: saveButton + + anchors { + right: parent.right; rightMargin: parent.width * 0.09 + verticalCenter: parent.verticalCenter + } + + width: parent.width * 0.25; height: parent.height * 0.65 + border { width: 2; color: "#555555" } + radius: 10 + + onClicked: { + horTube.angleconstant = horTube.rawangle + saveCorrectionAngle(horTube.angleconstant) + } + + gradient: Gradient { + GradientStop { position: 0.0; color: "#999999" } + GradientStop { position: 0.2; color: "#BBBBBB" } + GradientStop { position: 0.8; color: "#BBBBBB" } + GradientStop { position: 1.0; color: "#999999" } + } + + Text { + anchors.centerIn: parent + color: "#302020" + text: "Calibrate" + font { bold: true; pixelSize: parent.width * 0.15 } + smooth: true + } + } + } + } + + Button { + anchors { + left: sign.right + right: parent.right + verticalCenter: sign.verticalCenter + margins: (parent.width - (sign.x + sign.width)) / 4 + } + + height: width + source: "images/calibbutton.png" + mouseAreaScale: 2 + smooth: true + + onClicked: sign.frontSide = !sign.frontSide + } +} diff --git a/demos/mobile/qtbubblelevel/qml/Button.qml b/demos/mobile/qtbubblelevel/qml/Button.qml new file mode 100644 index 00000000..12d1a377 --- /dev/null +++ b/demos/mobile/qtbubblelevel/qml/Button.qml @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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 1.0 + +Rectangle { + id: button + + property alias source: image.source + property alias mouseAreaScale: mouseArea.scale + + signal clicked + + width: 50; height: 50 + color: "transparent" + + Behavior on scale { NumberAnimation { duration: 50 } } + + Image { + id: image + + anchors.fill: parent + smooth: true + } + + MouseArea { + id: mouseArea + + anchors.fill: parent + onClicked: { button.clicked() } + onEntered: { button.scale = 0.9 } + onExited: { button.scale = 1.0 } + } +} diff --git a/demos/mobile/qtbubblelevel/qml/Tube.qml b/demos/mobile/qtbubblelevel/qml/Tube.qml new file mode 100644 index 00000000..609139ec --- /dev/null +++ b/demos/mobile/qtbubblelevel/qml/Tube.qml @@ -0,0 +1,86 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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 1.0 + +//! [0] +Item { + id: tube + + property real deg + + Image { + id: bubble + + property real center: tube.width / 2 + property real bubbleCenter: bubble.width / 2 + + function calX() { + var newX = center + tube.deg / -20 * center + + if((newX - bubbleCenter) < 0) { + return 0 + } + else if((newX + bubbleCenter) > tube.width) { + return tube.width - 2 * bubbleCenter + } + + return newX - bubbleCenter; + } + + x: calX() + width: 0.16129032 * parent.width; height: 0.66666667 * parent.height + source: "images/bubble.png" + smooth: true + } + + Image { + anchors.horizontalCenter: parent.horizontalCenter + width: 0.36451613 * parent.width; height: 0.66666667 * parent.height + source: "images/scale.png" + } + + Image { + width: parent.width; height: 0.32 * parent.height + opacity: 0.8 + source: "images/reflection.png" + } +} +//! [0] diff --git a/demos/mobile/qtbubblelevel/qml/images/board.png b/demos/mobile/qtbubblelevel/qml/images/board.png new file mode 100644 index 00000000..aaed8d01 Binary files /dev/null and b/demos/mobile/qtbubblelevel/qml/images/board.png differ diff --git a/demos/mobile/qtbubblelevel/qml/images/bubble.png b/demos/mobile/qtbubblelevel/qml/images/bubble.png new file mode 100644 index 00000000..e73be9e5 Binary files /dev/null and b/demos/mobile/qtbubblelevel/qml/images/bubble.png differ diff --git a/demos/mobile/qtbubblelevel/qml/images/calibbutton.png b/demos/mobile/qtbubblelevel/qml/images/calibbutton.png new file mode 100644 index 00000000..5f84dad7 Binary files /dev/null and b/demos/mobile/qtbubblelevel/qml/images/calibbutton.png differ diff --git a/demos/mobile/qtbubblelevel/qml/images/exit.png b/demos/mobile/qtbubblelevel/qml/images/exit.png new file mode 100644 index 00000000..64a61634 Binary files /dev/null and b/demos/mobile/qtbubblelevel/qml/images/exit.png differ diff --git a/demos/mobile/qtbubblelevel/qml/images/reflection.png b/demos/mobile/qtbubblelevel/qml/images/reflection.png new file mode 100644 index 00000000..093781ec Binary files /dev/null and b/demos/mobile/qtbubblelevel/qml/images/reflection.png differ diff --git a/demos/mobile/qtbubblelevel/qml/images/scale.png b/demos/mobile/qtbubblelevel/qml/images/scale.png new file mode 100644 index 00000000..c75b21e2 Binary files /dev/null and b/demos/mobile/qtbubblelevel/qml/images/scale.png differ diff --git a/demos/mobile/qtbubblelevel/qml/images/signblank.png b/demos/mobile/qtbubblelevel/qml/images/signblank.png new file mode 100644 index 00000000..03b53cc0 Binary files /dev/null and b/demos/mobile/qtbubblelevel/qml/images/signblank.png differ diff --git a/demos/mobile/qtbubblelevel/qml/images/signwithtext.png b/demos/mobile/qtbubblelevel/qml/images/signwithtext.png new file mode 100644 index 00000000..be9c050f Binary files /dev/null and b/demos/mobile/qtbubblelevel/qml/images/signwithtext.png differ diff --git a/demos/mobile/qtbubblelevel/qml/images/taskswitcher.png b/demos/mobile/qtbubblelevel/qml/images/taskswitcher.png new file mode 100644 index 00000000..89ff7a15 Binary files /dev/null and b/demos/mobile/qtbubblelevel/qml/images/taskswitcher.png differ diff --git a/demos/mobile/qtbubblelevel/qtbubblelevel.pro b/demos/mobile/qtbubblelevel/qtbubblelevel.pro new file mode 100644 index 00000000..3314815b --- /dev/null +++ b/demos/mobile/qtbubblelevel/qtbubblelevel.pro @@ -0,0 +1,59 @@ +QT += core gui declarative +CONFIG += mobility +MOBILITY += sensors + +TARGET = qtbubblelevel +TEMPLATE = app + +VERSION = 1.2.0 + +HEADERS += taskswitcher.h \ + accelerometerfilter.h \ + settings.h + +SOURCES += main.cpp \ + taskswitcher.cpp \ + accelerometerfilter.cpp + +OTHER_FILES += qml/*.qml \ + qml/images/*.png + +RESOURCES = resources.qrc + +maemo5 { + BINDIR = /opt/usr/bin + DATADIR = /usr/share + DEFINES += DATADIR=\\\"$$DATADIR\\\" \ + PKGDATADIR=\\\"$$PKGDATADIR\\\" + INSTALLS += target \ + desktop \ + iconxpm \ + icon26 \ + icon40 \ + icon64 + + target.path = $$BINDIR + desktop.path = $$DATADIR/applications/hildon + desktop.files += $${TARGET}.desktop + + iconxpm.path = $$DATADIR/pixmap + iconxpm.files += icons/xpm/qtbubblelevel.xpm + + icon26.path = $$DATADIR/icons/hicolor/26x26/apps + icon26.files += icons/26x26/qtbubblelevel.png + + icon40.path = $$DATADIR/icons/hicolor/40x40/apps + icon40.files += icons/40x40/qtbubblelevel.png + + icon64.path = $$DATADIR/icons/hicolor/64x64/apps + icon64.files += icons/64x64/qtbubblelevel.png +} + +symbian { + TARGET = QtBubbleLevel + + # To lock the application to landscape orientation + LIBS += -lcone -leikcore -lavkon + + ICON = icons/bubblelevel.svg +} diff --git a/demos/mobile/qtbubblelevel/resources.qrc b/demos/mobile/qtbubblelevel/resources.qrc new file mode 100644 index 00000000..8f57e825 --- /dev/null +++ b/demos/mobile/qtbubblelevel/resources.qrc @@ -0,0 +1,16 @@ + + + qml/BubbleLevel.qml + qml/Tube.qml + qml/Button.qml + qml/images/taskswitcher.png + qml/images/exit.png + qml/images/board.png + qml/images/bubble.png + qml/images/scale.png + qml/images/reflection.png + qml/images/signwithtext.png + qml/images/calibbutton.png + qml/images/signblank.png + + diff --git a/demos/mobile/qtbubblelevel/settings.h b/demos/mobile/qtbubblelevel/settings.h new file mode 100644 index 00000000..0015438a --- /dev/null +++ b/demos/mobile/qtbubblelevel/settings.h @@ -0,0 +1,66 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#ifndef SETTINGS_H +#define SETTINGS_H + +#include + +class Settings : public QObject +{ + Q_OBJECT + +public: + void loadAndEmitCorrectionAngle() { + QSettings settings("Nokia corp", "QtBubbleLevel"); + emit correctionAngle(settings.value("CorrectionAngle", "0.0f")); + } + +signals: + void correctionAngle(const QVariant &angle); + +public slots: + void saveCorrectionAngle(const QVariant &angle) { + QSettings settings("Nokia corp", "QtBubbleLevel"); + settings.setValue("CorrectionAngle", angle); + } +}; + +#endif // SETTINGS_H diff --git a/demos/mobile/qtbubblelevel/taskswitcher.cpp b/demos/mobile/qtbubblelevel/taskswitcher.cpp new file mode 100644 index 00000000..03e70309 --- /dev/null +++ b/demos/mobile/qtbubblelevel/taskswitcher.cpp @@ -0,0 +1,61 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#include "taskswitcher.h" + +// Task Switcher for maemo +#ifdef Q_WS_MAEMO_5 + #include +#endif + + +void TaskSwitcher::minimizeApplication() +{ + //! [0] + #ifdef Q_WS_MAEMO_5 + // Uses DBus to minimize application in Maemo + QDBusConnection connection = QDBusConnection::sessionBus(); + QDBusMessage message = + QDBusMessage::createSignal("/","com.nokia.hildon_desktop", + "exit_app_view"); + connection.send(message); + #endif + //! [0] +} diff --git a/demos/mobile/qtbubblelevel/taskswitcher.h b/demos/mobile/qtbubblelevel/taskswitcher.h new file mode 100644 index 00000000..e2f09509 --- /dev/null +++ b/demos/mobile/qtbubblelevel/taskswitcher.h @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#ifndef TASKSWITCHER_H +#define TASKSWITCHER_H + +#include + +class TaskSwitcher : public QObject +{ + Q_OBJECT + +public slots: + void minimizeApplication(); +}; + +#endif // TASKSWITCHER_H diff --git a/demos/mobile/quickhit/Button.qml b/demos/mobile/quickhit/Button.qml new file mode 100644 index 00000000..edfbebb7 --- /dev/null +++ b/demos/mobile/quickhit/Button.qml @@ -0,0 +1,86 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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 1.0 + +Item { + width: 30 + height: 30 + smooth: true + + property string buttonPath // for example "qrc:/gfx/exit.png" + property int buttonId: 0 + + signal btnClicked(int buttonId) + + property bool animationEnabled: true + + Image { + id: image + anchors.fill: parent + source: buttonPath + fillMode: Image.PreserveAspectFit + smooth: true + } + + SequentialAnimation { + id:anim + PropertyAction { target: image; property: "scale"; value:"0.7"} + PauseAnimation { duration: 200 } + PropertyAction { target: image; property: "scale"; value:"1.0"} + } + + Timer { + id: buttonPressedTimer + interval: 300; running: false; repeat: false + onTriggered: btnClicked(buttonId) + } + + MouseArea { + anchors.fill: parent + onPressed: { + if (animationEnabled && !anim.running) { + anim.restart() + } + buttonPressedTimer.restart() + } + } + +} diff --git a/demos/mobile/quickhit/Game.js b/demos/mobile/quickhit/Game.js new file mode 100644 index 00000000..d1792efd --- /dev/null +++ b/demos/mobile/quickhit/Game.js @@ -0,0 +1,180 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +var levelPlugin = null + +// --------------------------------------------------------------------------- +// hideMissiles +function hideMissiles() { + missile_1.stop() + missile_1.opacity = 0; + + missile_2.stop() + missile_2.opacity = 0; + + missile_3.stop() + missile_3.opacity = 0; + + missile_4.stop() + missile_4.opacity = 0; + + missile_5.stop() + missile_5.opacity = 0; + + enemy_missile_1.opacity = 0; + enemy_missile_2.opacity = 0; +} + +// --------------------------------------------------------------------------- +// GameOver +function gameOver() { + + // Stop GameEngine timers + GameEngine.enableEngineTimer(false) + + // Delete loaded plugin level + deleteLevel() + + // Hiding + myShip.opacity = 0 + btnPause.opacity = 0 +} + +// --------------------------------------------------------------------------- +// Pause game +function pauseGame(doPause) { + missile_1.pause(doPause) + missile_2.pause(doPause) + missile_3.pause(doPause) + missile_4.pause(doPause) + missile_5.pause(doPause) + enemy_missile_1.pause(doPause) + enemy_missile_2.pause(doPause) + + if (doPause) { + btnPause.opacity = 0 + } else { + btnPause.opacity = 1 + } + + GameEngine.pauseLevel(doPause) +} + +// --------------------------------------------------------------------------- +// Fire your missile +function fireMissile(aXpox, aFromYpos, aToYpos) { + if (missile_1.opacity<1) { + missile_1.fire(aXpox,aFromYpos,aToYpos) + } + else if (missile_2.opacity<1) { + missile_2.fire(aXpox,aFromYpos,aToYpos) + } + else if (missile_3.opacity<1) { + missile_3.fire(aXpox,aFromYpos,aToYpos) + } + else if (missile_4.opacity<1) { + missile_4.fire(aXpox,aFromYpos,aToYpos) + } + else if (missile_5.opacity<1) { + missile_5.fire(aXpox,aFromYpos,aToYpos) + } +} + +// --------------------------------------------------------------------------- +// Fire enemy missile +function fireEnemyMissile(aXpox, aFromYpos, aToYpos) { + if (enemy_missile_1.opacity==0) { + enemy_missile_1.enemyFire(aXpox,aFromYpos,aToYpos) + } + else if (enemy_missile_2.opacity==0) { + enemy_missile_2.enemyFire(aXpox,aFromYpos,aToYpos) + } +} + +// --------------------------------------------------------------------------- +// Create level QML component +function createLevel() { + console.log("Creating level "+LevelPlugin.qmlRootPath()+"Level.qml") + var levelComponent = Qt.createComponent("file:/"+LevelPlugin.qmlRootPath()+"Level.qml"); + if (levelComponent.status == Component.Ready) { + if (levelPlugin) { + deleteLevel() + } + levelPlugin = levelComponent.createObject(levelId); + if (levelPlugin != null) { + console.log("Level created") + } else { + console.log("Can not create level") + messageBox.showErrorMessage("ERROR: Can not create level!",6000) + return 1 + } + } else { + console.log("Can not find level, error:"+levelComponent.errorString()) + messageBox.showErrorMessage("ERROR: Can not find level!",6000) + return 1 + } + + missile_1.createGraphicsForLevel() + missile_1.setToDefaultPos() + missile_2.createGraphicsForLevel() + missile_2.setToDefaultPos() + missile_3.createGraphicsForLevel() + missile_3.setToDefaultPos() + missile_4.createGraphicsForLevel() + missile_4.setToDefaultPos() + missile_5.createGraphicsForLevel() + missile_5.setToDefaultPos() + enemy_missile_1.createGraphicsForLevel() + enemy_missile_2.createGraphicsForLevel() + myShip.createGraphicsForLevel() + + return 0 +} + +// --------------------------------------------------------------------------- +// Delete level +function deleteLevel() { + if (levelPlugin) { + GameEngine.clearQmlObjects() + levelPlugin.destroy() + + } + levelPlugin = null; +} diff --git a/demos/mobile/quickhit/Game.qml b/demos/mobile/quickhit/Game.qml new file mode 100644 index 00000000..70f903d1 --- /dev/null +++ b/demos/mobile/quickhit/Game.qml @@ -0,0 +1,439 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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 1.0 +import "Game.js" as GameScript + +Item { + id: gameArea + width: 360; height: 640 // NOTE: have to exists some default sizes + anchors.fill: parent + objectName: "gameArea" + + + // Who win, you or computer + property bool gameOverProperty: false + + // for info message to user + property variant messageBox + + // Level activated signal for Qt side to load activated level + signal levelActivated(int index) + + // Pause whole game, if level is loaded + function pauseGame() { + if (GameScript.levelPlugin) { + GameScript.pauseGame(true) + myShip.focus = false + btnPause.opacity = 0 + menu.showPauseMenu() + } + } + + // Qt side call this for QML take new level into use + function levelReadyForCreation() { + // Hide menu + menu.hideMenu() + // Show message + message.showMessage("Loading Level...",2000) + // Wait before create level + levelCreationTimer.restart() + } + + // Fires ememy missile. Function is called from Qt side + function fireEnemyMissile(aXpox, aFromYpos, aToYpos) { + GameScript.fireEnemyMissile(aXpox, aFromYpos, aToYpos) + } + + // Game Over handling. Function is called from Qt side + function gameOver(youWin) { + // Stop GameEngine timers + GameEngine.enableEngineTimer(false) + gameOverProperty = youWin + GameScript.hideMissiles() + gameOverTimer.restart() + //GameEngine.vibra() + } + + // End game and show menu + function endGame(showMessage) { + backgroundPic.opacity = 1 + // Stop GameEngine timers + GameEngine.enableEngineTimer(false) + // Do game over + GameScript.gameOver() + GameScript.hideMissiles() + // Clear GameEngine QML objects + GameEngine.clearQmlObjects() + myShip.opacity = 0 + myShip.focus = false + btnPause.opacity = 0 + idMainLogo.opacity = 1 + menu.showLevelMenu() + if (showMessage) { + message.showMessage("Game End",2000) + } + } + + // Timer for level creationing + Timer { + id: levelCreationTimer + interval: 1000; running: false; repeat: false + onTriggered: { + btnPause.opacity = 1 + myShip.opacity = 1 + myShip.focus = true + // Create new level + var ret = GameScript.createLevel() + if (ret==0) { + backgroundPic.opacity = 0 + // Find QML object for GameEngine + GameEngine.findQmlObjects() + // Enable GameEngine timer + GameEngine.enableEngineTimer(true) + } else { + // Level cannot be created! + endGame(false) + } + } + } + + // Timer for game over + Timer { + id: gameOverTimer + interval: 1500; running: false; repeat: false + onTriggered: { + backgroundPic.opacity = 1 + idMainLogo.opacity = 1 + // Do game over + GameScript.gameOver() + // Clear GameEngine QML objects + GameEngine.clearQmlObjects() + menu.showLevelMenu() + if (gameOverProperty) { + GameEngine.playInternalSound(4) + message.showMessage("Game Over, You win!",2000) + } else { + GameEngine.playInternalSounds(3,3) + message.showMessage("Game Over, You lose",2000) + } + } + } + + // Menu signal to slot connections + Connections { + target: menu + // Level selected + onLevelSelected: { + // Stop bigship animation + bigShipAnim.stop() + bigShip.opacity = 0 + // Hide logo + idMainLogo.opacity = 0 + // Signal level activated + gameArea.levelActivated(levelIndex) + } + // Level resumed selected + onResumeSelected: { + menu.hideMenu() + GameScript.pauseGame(false) + myShip.focus = true + } + } + + // This component creation completed + Component.onCompleted: { + // Show main Level selection menu + menu.showLevelMenu() + + // Start big ship animation + bigShipAnim.restart() + + // Set variable + messageBox = message + + // Play game start sound + GameEngine.gameStartSound() + + // Fade splash screen + fadeAnim.restart() + // Rotate splash logo + rotAnim.restart() + } + + + // Background image for the game + Image { + id: backgroundPic + z:1 + source: "qrc:/gfx/background2.png" + fillMode: Image.PreserveAspectCrop + smooth: true + anchors.fill: parent + } + + Image { + id: bigShip + source: "qrc:/gfx/bigship.png" + z:1.5 + smooth: true + x: width * -1 + y: parent.height * 0.55 + } + SequentialAnimation { + id: bigShipAnim; + NumberAnimation {target:bigShip; property:"x"; to:gameArea.width; easing.type: Easing.Linear; duration: 80000 } + PropertyAction {target:bigShip; properties: "opacity"; value: 0} + } + + + // Enemies grid + Item { + // This is general level QML plaseholder + // Into this is level QML created in createLevel() + id:levelId + anchors.fill: parent + z:2 + } + + Image { + id: idMainLogo + z:19 + source: "qrc:/gfx/quickhit_logo.png" + smooth: true + anchors.horizontalCenter: gameArea.horizontalCenter + y:gameArea.height / 10 * 1 + } + + // Game menu + Menu { + z:20 + id:menu + width: gameArea.width / 5 * 4 + height: gameArea.height / 10 * 4 + anchors.verticalCenter: gameArea.verticalCenter + anchors.horizontalCenter: gameArea.horizontalCenter + } + + // My ship + MyShip { + z:10 + id: myShip + opacity: 0 + } + + // Mouse area of your ship + MouseArea { + //anchors.fill: parent + width: parent.width + height: myShip.height + x:0 + y:gameArea.height - myShip.height + + drag.target: myShip + drag.axis: Drag.XAxis + drag.minimumX: 0 + drag.maximumX: gameArea.width - myShip.width + + property int startPos: 0 + property int dragCount: 0 + + onPressed: { + startPos = mouseX + dragCount = 0 + } + onPositionChanged: { + //dragCount = Math.abs(mouseX-startPos) + } + onReleased: { + //if (dragCount<20) { + myShip.fire() + //} + } + } + + // Pause button + Button { + id: btnSound + z:12 + //animationEnabled: false + anchors.top: parent.top + anchors.topMargin: 10 + buttonPath: "qrc:/gfx/soundOn.png" + buttonId: 4 + width: gameArea.width / 10 + height: gameArea.width / 10 + x: gameArea.width - width - 15 + opacity: 1 + Connections { + target: btnSound + onBtnClicked: { + if (btnSound.buttonId==4) { + // Sound off + btnSound.buttonPath = "qrc:/gfx/soundOff.png" + btnSound.buttonId = 5 + GameEngine.enableSounds(false) + } else { + // Sound on + btnSound.buttonPath = "qrc:/gfx/soundOn.png" + btnSound.buttonId = 4 + GameEngine.enableSounds(true) + } + } + } + } + + // Pause button + Button { + id: btnPause + z:13 + anchors.top: parent.top + anchors.topMargin: 10 + buttonPath: "qrc:/gfx/pause.png" + buttonId: 3 + width: gameArea.width / 10 + height: gameArea.width / 10 + x: gameArea.width - width - btnPause.width - 15*2 + opacity: 0 + Connections { + target: btnPause + onBtnClicked: { + GameScript.pauseGame(true) + myShip.focus = false + btnPause.opacity = 0 + menu.showPauseMenu() + } + } + } + + + // Hidden missiles ready for to be launched + Missile { + z:3 + id: missile_1 + x:0 + y:10 + } + Missile { + z:4 + id: missile_2 + x: 20 + y:10 + } + Missile { + z:5 + id: missile_3 + x: 40 + y:10 + } + Missile { + z:6 + id: missile_4 + x: 60 + y:10 + } + Missile { + z:7 + id: missile_5 + x: 80 + y:10 + } + Missile { + z:8 + objectName: "enemy_missile" + id: enemy_missile_1 + enemyMissile: true + } + Missile { + z:9 + objectName: "enemy_missile" + id: enemy_missile_2 + enemyMissile: true + } + + // Messages to the user + Message { + id: message + z:21 + } + + + // Splach screen + Rectangle { + id: blackFace + x:-2 + y:0 + width: parent.width + 2 + height: parent.height + z:100 + color: "black" + opacity: 1 + + MouseArea { + anchors.fill: parent + onPressed: { + mouse.accepted = true + fadeAnim.stop() + blackFace.opacity = 0 + } + } + + Image { + id: idLogo + source: "qrc:/gfx/quickhit_logo.png" + smooth: true + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + opacity: 0 + } + NumberAnimation { id: rotAnim; target: idLogo; property: "rotation"; to: 20; duration: 9000 } + + } + // Splach screen animation + SequentialAnimation { + id: fadeAnim + PauseAnimation {duration: 1000 } + NumberAnimation {target: idLogo; property: "opacity"; from: 0; to: 1; duration: 2000 } + PauseAnimation {duration: 2000 } + NumberAnimation {target: idLogo; property: "opacity"; from: 1; to: 0; duration: 2000 } + NumberAnimation {target: blackFace; property: "opacity"; from: 1; to: 0; duration: 2000 } + } + +} diff --git a/demos/mobile/quickhit/InvSounds.cpp b/demos/mobile/quickhit/InvSounds.cpp new file mode 100644 index 00000000..ac926a74 --- /dev/null +++ b/demos/mobile/quickhit/InvSounds.cpp @@ -0,0 +1,189 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#include "InvSounds.h" +#include +#include + +using namespace GE; + +CInvSounds::CInvSounds(QObject *parent) : QObject( parent ) +{ + m_musicInstance = 0; + m_sounds = 0; + m_internalSounds = 0; + m_soundCount = 0; + m_internalSoundCount = 0; + + enableSounds(true); + + m_audioOut = new AudioOut( this, &m_mixer ); + + enableInternalSounds(); +} + +void CInvSounds::enableSounds(bool enable) +{ + if (enable) + m_mixer.setGeneralVolume(0.2f); + else + m_mixer.setGeneralVolume(0); +} + +void CInvSounds::enableInternalSounds() +{ + disableInternalSounds(); + + // Application internal sounda + m_internalSoundPaths.append(":/sound/menu1.wav"); + m_internalSoundPaths.append(":/sound/menu2.wav"); + m_internalSoundPaths.append(":/sound/gamestart.wav"); + m_internalSoundPaths.append(":/sound/gameover.wav"); + m_internalSoundPaths.append(":/sound/youwin.wav"); + + m_internalSoundCount = m_internalSoundPaths.count(); + m_internalSounds = new CAudioBuffer*[m_internalSoundCount]; + + // Load general application sounds + for (int ff=0; ffsetLoopTimes(-1); +} + + +void CInvSounds::beginMusicOff() { + if (!m_musicInstance) return; + m_musicInstance->setLoopTimes(0); // stop when finished + m_musicInstance = 0; +}; + + +void CInvSounds::playSound(int index) { + if (index < m_soundCount && index > -1) { + m_sounds[index]->playWithMixer( m_mixer ); + } +} + +void CInvSounds::playSounds(int index, int count) +{ + if (index < m_soundCount && index > -1) { + CAudioBufferPlayInstance* i = m_sounds[index]->playWithMixer( m_mixer ); + i->setLoopTimes(count); + } +} + +void CInvSounds::playInternalSound(int index) { + if (index < m_internalSoundCount && index > -1) { + m_internalSounds[index]->playWithMixer( m_mixer ); + } +} + +void CInvSounds::playInternalSounds(int index, int count) +{ + if (index < m_internalSoundCount && index > -1) { + CAudioBufferPlayInstance* i = m_internalSounds[index]->playWithMixer( m_mixer ); + i->setLoopTimes(count); + } +} + +void CInvSounds::gameStartSound() { + CAudioBufferPlayInstance* i = m_internalSounds[2]->playWithMixer( m_mixer ); + i->setLoopTimes(2); +}; diff --git a/demos/mobile/quickhit/InvSounds.h b/demos/mobile/quickhit/InvSounds.h new file mode 100644 index 00000000..f5254ed6 --- /dev/null +++ b/demos/mobile/quickhit/InvSounds.h @@ -0,0 +1,91 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#ifndef __CINVSOUNDS__ +#define __CINVSOUNDS__ + +#include +#include + +#include "ga_src/GEAudioBuffer.h" +#include "ga_src/GEAudioOut.h" + +class CInvSounds : public QObject +{ + Q_OBJECT + +public: + CInvSounds(QObject *parent); + ~CInvSounds(); + + void enableInternalSounds(); + void enableSounds(QStringList sounds); + void disableInternalSounds(); + void disableSounds(); + + void beginMusicOn(); + void beginMusicOff(); + + void enableSounds(bool enable); + + + void gameStartSound(); + +public slots: + void playSound(int index); + void playSounds(int index, int count); + void playInternalSound(int index); + void playInternalSounds(int index, int count); + +protected: + QStringList m_soundPaths; + QStringList m_internalSoundPaths; + GE::CAudioBufferPlayInstance *m_musicInstance; + GE::CAudioMixer m_mixer; + GE::AudioOut *m_audioOut; + + GE::CAudioBuffer **m_sounds; + int m_soundCount; + + GE::CAudioBuffer **m_internalSounds; + int m_internalSoundCount; +}; + +#endif diff --git a/demos/mobile/quickhit/Menu.qml b/demos/mobile/quickhit/Menu.qml new file mode 100644 index 00000000..daf3ccff --- /dev/null +++ b/demos/mobile/quickhit/Menu.qml @@ -0,0 +1,163 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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 1.0 +import "Game.js" as GameScript + + +Rectangle { + id: menu + + Text { + id: title + smooth: true + anchors.bottom: menu.top + anchors.horizontalCenter: menu.horizontalCenter + color: "red" + font.pixelSize: gameArea.width / 12 + font.bold: true + horizontalAlignment: Text.AlignHCenter + } + + border.color: "black" + border.width: 2 + radius: 8 + smooth: true + opacity: 0 // transparent by default + + color: "black" +// gradient: Gradient { +// GradientStop { position: 0.0; color: "white" } +// GradientStop { position: 1.0; color: "black" } +// } + + // Signals + signal levelSelected(int levelIndex) + signal resumeSelected() + + // Show level menu + function showLevelMenu() { + menuData.clear() + title.text = "Select Your Level" + var plugins = GameEngine.pluginList() + for (var i = 0; i < plugins.length; i++) { + menuData.append({"name": plugins[i],"type":"0"}) + } + menuData.append({"name": "About","type":"4"}) + menuData.append({"name": "Exit","type":"1"}) + menu.opacity = 0.8 + listView.focus = true + } + + function showPauseMenu() { + menuData.clear() + title.text = "Resume level?" + menuData.append({"name": "Resume","type":"2"}) + menuData.append({"name": "End Game","type":"3"}) + menu.opacity = 0.8 + listView.focus = true + } + + // Hide menu + function hideMenu() { + menu.opacity = 0 + listView.focus = false + } + + function menuItemSelected(index, type) { + switch (type) { + case "0": { + // Level selection + menu.levelSelected(index) + break; + } + case "1": { + // Exit + Qt.quit() + break; + } + case "2": { + // Resume + menu.resumeSelected() + break; + } + case "3": { + // End Game + gameArea.endGame() + break; + } + case "4": { + // Show about + gameArea.messageBox.showInfoMessage() + break; + } + default: { + break; + } + } + } + + ListModel { + id: menuData + } + + ListView { + id: listView + clip: true + anchors.fill: parent + keyNavigationWraps: true + + function doSelect() { + menu.menuItemSelected(listView.currentIndex,menuData.get(listView.currentIndex).type) + } + + model: menuData + + delegate: MenuItem { + id: menuItem + selectedItem: menuItem.ListView.isCurrentItem ? true : false + onItemSelected: { + listView.currentIndex = model.index + listView.doSelect() + } + + } + } +} diff --git a/demos/mobile/quickhit/MenuItem.qml b/demos/mobile/quickhit/MenuItem.qml new file mode 100644 index 00000000..7203c530 --- /dev/null +++ b/demos/mobile/quickhit/MenuItem.qml @@ -0,0 +1,103 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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 1.0 + +Text { + id: menuItem + text: name + color: "white" + opacity: 1 + font.family: "Calibri" + font.pixelSize: menu.width / 8 + x: (parent.width - width )/ 2 + + property bool selectedItem: false + property int type + + signal itemSelected() + + transform: Rotation { id:rotationId; origin.x:width/2; origin.y:height/2; axis { x: 1; y: 0; z: 0 } angle: 0 } + SequentialAnimation { + id: toRotateRightAndCenterAnim + PropertyAnimation { target: rotationId; easing.type: Easing.Linear; + properties: "angle"; from: 0; to: 180; duration: 300 } + PropertyAction { target: menuItem; property: "color"; value:"red"} + PropertyAnimation { target: rotationId; easing.type: Easing.Linear; + properties: "angle"; from: 180; to: 360; duration: 300 } + PropertyAction { target: menuItem; property: "color"; value:"white"} + } + + function selectItem(doSelect) { + if (!toRotateRightAndCenterAnim.running) { + GameEngine.playInternalSound(0) + toRotateRightAndCenterAnim.restart() + if (doSelect) { + GameEngine.playInternalSound(1) + selectionTimer.restart() + } + } + } + + Timer { + id: selectionTimer + interval: 1000; running: false; repeat: false + onTriggered: menuItem.itemSelected() + } + + MouseArea { + id: mouseArea; + anchors.fill: parent + onClicked: { + selectItem(true) + } + } + + Keys.onSpacePressed: { selectItem(true) } + Keys.onSelectPressed: { selectItem(true) } + Keys.onEnterPressed: { selectItem(true) } + Keys.onReleased: { + if (event.key == Qt.Key_Down || event.key == Qt.Key_Up) { + selectItem(false) + } + event.accepted = false + } +} + diff --git a/demos/mobile/quickhit/Message.qml b/demos/mobile/quickhit/Message.qml new file mode 100644 index 00000000..618a1a39 --- /dev/null +++ b/demos/mobile/quickhit/Message.qml @@ -0,0 +1,147 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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 1.0 + +Rectangle { + id: message + border.color: "black" + border.width: 1 + radius: 8 + smooth: true + opacity: 0 // transparent = 0 by default + color: "black" + + property string txt + property int animSpeed + + function showMessage(text,speed) { + message.border.color = "black" + message.y = 50 + message.width = gameArea.width / 5 * 4 + message.height = gameArea.height / 8 * 1 + txt = text + animSpeed = speed + message.opacity = 1 + messageText.font.pixelSize = parent.width / 14 + messageAnim.restart() + } + + function showErrorMessage(text,speed) { + message.border.color = "red" + message.y = 50 + message.width = gameArea.width / 5 * 4 + message.height = gameArea.height / 8 * 1 + txt = text + animSpeed = speed + message.opacity = 1 + messageText.font.pixelSize = parent.width / 14 + messageAnim.restart() + } + + function showInfoMessage() { + message.border.color = "white" + txt = "QuickHit" + + "

" + + "Forum Nokia
" + + "Qt Quick Game Example
" + + "

" + + "

" + + "Sounds were loaded from freesound.org under Creative Commons Sampling Plus 1.0 license.
" + + "

" + + "

" + + "Sounds were created by these nicknames:
" + + "HardPCM
" + + "Matt_G
" + + "klankbeeld
" + + "steveygos93
" + + "joe93barlow
" + + "ljudman
" + + "Jovica
" + + "patchen
" + + "nthompson
" + + "

" + + animSpeed = 9000 + message.opacity = 1 + message.y = 10 + message.height = gameArea.height - message.y - 10 + message.width = gameArea.width - 20 + + messageText.font.pixelSize = parent.width / 16 + messageAnim.restart() + } + + //gradient: Gradient { + // GradientStop { position: 0.0; color: "white" } + // GradientStop { position: 1.0; color: "black" } + //} + + SequentialAnimation { + id: messageAnim + PropertyAnimation { + target: message; properties: "x"; + from: message.width*-1; to: gameArea.width; duration: animSpeed; easing.type: Easing.OutInExpo} + PropertyAction { target: message; properties: "opacity"; value: 0 } + } + + MouseArea { + anchors.fill: parent + onClicked: { + messageAnim.stop() + message.opacity = 0 + } + } + + Text { + id: messageText + anchors.fill: parent + anchors.margins: 10 + text: txt + wrapMode: Text.WordWrap + color: "white" + font.family: "Calibri" + font.pixelSize: parent.width / 14 + font.bold: true + onLinkActivated: { + GameEngine.openLink(link) + } + } +} diff --git a/demos/mobile/quickhit/Missile.qml b/demos/mobile/quickhit/Missile.qml new file mode 100644 index 00000000..57e48c4f --- /dev/null +++ b/demos/mobile/quickhit/Missile.qml @@ -0,0 +1,143 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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 1.0 + +Item { + id: missile + objectName: "missile" + opacity: 0 // transparent by default + + property int fromYpos + property int toYpos + property variant myMissileSize + property bool enemyMissile: false + property int defaultX: 0 + property int defaultY: 0 + + function storeDefaultPos() { + defaultX = missile.x + defaultY = missile.y + } + + function setToDefaultPos() { + missile.x = defaultX + missile.y = defaultY + opacity = 0.5 + } + + function createGraphicsForLevel() { + missile.myMissileSize = LevelPlugin.graphSize(LevelPlugin.pathToMissilePic()) + missile.height = myMissileSize.height; + missile.width = myMissileSize.width; + if (missile.enemyMissile) { + missileImage.source = "file:/"+LevelPlugin.pathToEnemyMissilePic() + } else { + missileImage.source = "file:/"+LevelPlugin.pathToMissilePic() + } + } + + // Execute fire! + function fire(aXpox, aFromYpos, aToYpos) { + missile.x = aXpox - missile.width / 2 + missile.y = aFromYpos + missile.fromYpos = aFromYpos + missile.toYpos = aToYpos + missile.opacity = 1 + GameEngine.playSound(2) // NOTE: 3 for your missile sound + flying.restart() + } + + // Enemy fires! + function enemyFire(aXpox, aFromYpos, aToYpos) { + missile.x = aXpox - missile.width / 2 + missile.y = aFromYpos + missile.fromYpos = aFromYpos + missile.toYpos = aToYpos + missile.opacity = 1 + GameEngine.playSound(3) // NOTE: 3 for enemy missile sound + flyingEnemy.restart() + } + + // Stop missile + function stop() { + flying.stop() + } + + // Pause missile + function pause(doPause) { + if (doPause) { + flying.pause() + flyingEnemy.pause() + } else { + flying.resume() + flyingEnemy.resume() + } + } + + Component.onCompleted: { + if (!enemyMissile) { + storeDefaultPos() + setToDefaultPos() + } + } + + // Animates missile flying to the target + SequentialAnimation { + id: flying + PropertyAnimation {target: missile; properties: "y"; + from: fromYpos; to: toYpos; duration: 2000; easing.type: Easing.InCubic } + //PropertyAction {target: missile; properties: "opacity"; value: 0} + ScriptAction { script: setToDefaultPos() } + } + + SequentialAnimation { + id: flyingEnemy + PropertyAnimation {target: missile; properties: "y"; + from: fromYpos; to: toYpos; duration: 2000; easing.type: Easing.InCubic } + PropertyAction {target: missile; properties: "opacity"; value: 0} + } + + Image { + id: missileImage + smooth: true + } +} + diff --git a/demos/mobile/quickhit/MyShip.qml b/demos/mobile/quickhit/MyShip.qml new file mode 100644 index 00000000..3b02ac51 --- /dev/null +++ b/demos/mobile/quickhit/MyShip.qml @@ -0,0 +1,184 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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 1.0 +import "Game.js" as GameScript + +Item { + id: myShip + objectName: "myShip" + + property variant myShipSize + property int originalY + + // Fires missile if exists + function fire() { + if (myShip.opacity==1) { + GameScript.fireMissile(myShip.x+myShip.width/2,myShip.y,myShip.height*-1) + if (myShip.y+myShip.height < gameArea.height+5) { + goDownAnim.restart() + } + } + } + + function createGraphicsForLevel() { + myShip.myShipSize = LevelPlugin.graphSize(LevelPlugin.pathToMyShipPic()) + myShip.height = myShipSize.height + myShip.width = myShipSize.width + image.source = "file:/"+LevelPlugin.pathToMyShipPic() + myShip.y = gameArea.height - myShip.height - 10 + originalY = myShip.y + myShip.x = (gameArea.width - myShip.width)/ 2 + } + + Image { + id: image + smooth: true + } + + Keys.onSpacePressed: { fire() } + Keys.onSelectPressed: { fire() } + Keys.onRightPressed: { + if (myShip.x < (gameArea.width - myShip.width - 20)) { + toRightAnim.restart() + } + } + Keys.onLeftPressed: { + if (myShip.x > 20) { + toLeftAnim.restart() + } + } + + // To right animation + PropertyAnimation { id: toRightAnim; target: myShip; easing.type: Easing.OutQuint; + properties: "x"; from: myShip.x; to: myShip.x + 20; duration: 500 } + + // To left animation + PropertyAnimation { id: toLeftAnim; target: myShip; easing.type: Easing.OutQuint; + properties: "x"; from: myShip.x; to: myShip.x - 20; duration: 500 } + + // Go down on fire animation + SequentialAnimation { + id: goDownAnim + NumberAnimation { target: myShip; property:"y"; from: myShip.y; to: myShip.y+5; + easing.type: Easing.Linear; duration: 200 } + NumberAnimation { target: myShip; property:"y"; from: myShip.y; to: originalY; + easing.type: Easing.Linear; duration: 200 } + } + + + /* + MouseArea { + anchors.fill: parent + drag.target: myShip + drag.axis: Drag.XAxis + drag.minimumX: 0 + drag.maximumX: gameArea.width - myShip.width + onReleased: { + fire() + } + } + */ + + + /* + property bool isAutoRepeat: false + Keys.onPressed: { + if (event.key == Qt.Key_Right) { + if (event.isAutoRepeat) { + isAutoRepeat = true + toRightAnim.restart() + } else { + isAutoRepeat = false + toRotateRightAndCenterAnim.restart() + } + event.accepted = true + } + else if (event.key == Qt.Key_Left) { + if (event.isAutoRepeat) { + isAutoRepeat = true + toLeftAnim.restart() + } else { + isAutoRepeat = false + toRotateLeftAndCenterAnim.restart() + } + event.accepted = true + } + } + + Keys.onReleased: { + if (isAutoRepeat) { + toRotateRightAndCenterAnim.stop() + toRotateLeftAndCenterAnim.stop() + } else { + toRotateCenter.restart() + } + event.accepted = true + } + + // Rotation on movement animation + transform: Rotation { id:rotationId; origin.x: width/2; origin.y: height/2; axis { x: 0; y: 1; z: 0 } angle: 0 } + SequentialAnimation { + id: toRotateRightAndCenterAnim + PropertyAnimation { target: rotationId; easing.type: Easing.Linear; + properties: "angle"; from: 0; to: 30; duration: 100 } + PropertyAnimation { target: myShip; easing.type: Easing.OutQuint; + properties: "x"; from: myShip.x; to: myShip.x + 20; duration: 500 } + PropertyAnimation { target: rotationId; easing.type: Easing.Linear; + properties: "angle"; to: 0; duration: 100 } + } + SequentialAnimation { + id: toRotateLeftAndCenterAnim + PropertyAnimation { target: rotationId; easing.type: Easing.Linear; + properties: "angle"; from: 0; to: -30; duration: 100 } + PropertyAnimation { target: myShip; easing.type: Easing.OutQuint; + properties: "x"; from: myShip.x; to: myShip.x - 20; duration: 500 } + PropertyAnimation { target: rotationId; easing.type: Easing.Linear; + properties: "angle"; to: 0; duration: 100 } + } + PropertyAnimation { id: toRotateRight; target: rotationId; easing.type: Easing.Linear; + properties: "angle"; from: 0; to: 30; duration: 100 } + PropertyAnimation { id: toRotateCenter; target: rotationId; easing.type: Easing.Linear; + properties: "angle"; to: 0; duration: 100 } + PropertyAnimation { id: toRotateLeft; target: rotationId; easing.type: Easing.Linear; + properties: "angle"; from: 0; to: -30; duration: 100 } +*/ + +} diff --git a/demos/mobile/quickhit/debian/changelog b/demos/mobile/quickhit/debian/changelog new file mode 100644 index 00000000..226e172d --- /dev/null +++ b/demos/mobile/quickhit/debian/changelog @@ -0,0 +1,11 @@ +quickhit (1.1.0) unstable; urgency=low + + * First version + + -- Antonio Aloisio Wed, 5 Jan 2011 10:05:04 +0200 + +quickhit (1.0.0) unstable; urgency=low + + * First version + + -- Antonio Aloisio Tue, 19 Oct 2010 10:05:04 +0200 diff --git a/demos/mobile/quickhit/debian/compat b/demos/mobile/quickhit/debian/compat new file mode 100644 index 00000000..7f8f011e --- /dev/null +++ b/demos/mobile/quickhit/debian/compat @@ -0,0 +1 @@ +7 diff --git a/demos/mobile/quickhit/debian/control b/demos/mobile/quickhit/debian/control new file mode 100644 index 00000000..7253285e --- /dev/null +++ b/demos/mobile/quickhit/debian/control @@ -0,0 +1,11 @@ +Source: quickhit +Section: user/games +Priority: extra +Maintainer: Antonio Aloisio +Standards-Version: 3.7.2 + +Package: quickhit +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: QuickHit + Qt Quick Game example diff --git a/demos/mobile/quickhit/debian/copyright b/demos/mobile/quickhit/debian/copyright new file mode 100644 index 00000000..b0aadafe --- /dev/null +++ b/demos/mobile/quickhit/debian/copyright @@ -0,0 +1,8 @@ +This is quickhit, written and maintained by Forum Nokia Antonio Aloisio +on Tue, 19 Oct 2010 10:05:04 +0200 + + +Copyright Holder: Nokia (c) 2010 + +License: + diff --git a/demos/mobile/quickhit/debian/dirs b/demos/mobile/quickhit/debian/dirs new file mode 100644 index 00000000..80507f10 --- /dev/null +++ b/demos/mobile/quickhit/debian/dirs @@ -0,0 +1,2 @@ +usr/bin +usr/share/applications/hildon diff --git a/demos/mobile/quickhit/debian/postinst b/demos/mobile/quickhit/debian/postinst new file mode 100644 index 00000000..79fb6ddd --- /dev/null +++ b/demos/mobile/quickhit/debian/postinst @@ -0,0 +1,5 @@ +#!/bin/sh -e + +gtk-update-icon-cache -f /usr/share/icons/hicolor + +exit 0 diff --git a/demos/mobile/quickhit/debian/rules b/demos/mobile/quickhit/debian/rules new file mode 100644 index 00000000..b485428f --- /dev/null +++ b/demos/mobile/quickhit/debian/rules @@ -0,0 +1,91 @@ +#!/usr/bin/make -f +# -*- makefile -*- +# Sample debian/rules that uses debhelper. +# This file was originally written by Joey Hess and Craig Small. +# As a special exception, when this file is copied by dh-make into a +# dh-make output file, you may use that output file without restriction. +# This special exception was added by Craig Small in version 0.37 of dh-make. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + + +APPNAME := quickhit + + +configure: configure-stamp +configure-stamp: + dh_testdir + # Add here commands to configure the package. + + touch configure-stamp + + +build: build-stamp + +build-stamp: configure-stamp + dh_testdir + + # Add here commands to compile the package. + $(MAKE) + #docbook-to-man debian/$(APPNAME).sgml > $(APPNAME).1 + + touch $@ + +clean: + dh_testdir + dh_testroot + rm -f build-stamp configure-stamp + + # Add here commands to clean up after the build process. + $(MAKE) clean + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + # Add here commands to install the package into debian/$(APPNAME). + $(MAKE) INSTALL_ROOT="$(CURDIR)"/debian/$(APPNAME) install + + +# Build architecture-independent files here. +binary-indep: build install +# We have nothing to do by default. + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + dh_installchangelogs + dh_installdocs + dh_installexamples +# dh_install +# dh_installmenu +# dh_installdebconf +# dh_installlogrotate +# dh_installemacsen +# dh_installpam +# dh_installmime +# dh_python +# dh_installinit +# dh_installcron +# dh_installinfo + dh_installman + dh_link + # dh_strip + dh_compress + dh_fixperms +# dh_perl + dh_makeshlibs + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install configure diff --git a/demos/mobile/quickhit/freesound.org.licence.txt b/demos/mobile/quickhit/freesound.org.licence.txt new file mode 100644 index 00000000..8714ea04 --- /dev/null +++ b/demos/mobile/quickhit/freesound.org.licence.txt @@ -0,0 +1,24 @@ + +Sounds were loaded from www.freesound.org under Creative Commons Sampling Plus 1.0 license. + +Sounds were created by these nicknames: HardPCM, Matt_G, klankbeeld, steveygos93, joe93barlow, ljudman, Jovica, patchen, nthompson + +78677__joe93barlow__strike2.wav +47251__nthompson__rocket.wav +3378__patchen__Rhino_03.wav +3258__Jovica__Dronetail_02.wav +30351__Matt_G__Space_Fighter_Pass.wav +32954__HardPCM__Chip054.wav +32985__HardPCM__Alarm001.wav +33245__ljudman__grenade.wav +78678__joe93barlow__swing0.wav +80401__steveygos93__Explosion2.wav +109438__klankbeeld__intro_brass_01.wav + + + + + + + + diff --git a/demos/mobile/quickhit/ga_src/GEAudioBuffer.cpp b/demos/mobile/quickhit/ga_src/GEAudioBuffer.cpp new file mode 100644 index 00000000..4a5f55dd --- /dev/null +++ b/demos/mobile/quickhit/ga_src/GEAudioBuffer.cpp @@ -0,0 +1,391 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#include +#include +#include "GEAudioBuffer.h" + +using namespace GE; + + +struct SWavHeader { + char chunkID[4]; + unsigned int chunkSize; + char format[4]; + + unsigned char subchunk1id[4]; + unsigned int subchunk1size; + unsigned short audioFormat; + unsigned short nofChannels; + unsigned int sampleRate; + unsigned int byteRate; + + unsigned short blockAlign; + unsigned short bitsPerSample; + + unsigned char subchunk2id[4]; + unsigned int subchunk2size; + +}; + +CAudioBuffer::CAudioBuffer() { + m_data = 0; + m_dataLength = 0; + m_sampleFunction = 0; +}; + + +CAudioBuffer::~CAudioBuffer() { + reallocate(0); +} + +void CAudioBuffer::reallocate( int length ) { + if (m_data) delete [] ((char*)m_data); + m_dataLength = length; + if (m_dataLength>0) { + m_data = new char[ m_dataLength ]; + } else m_data = 0; +}; + + +CAudioBuffer* CAudioBuffer::loadWav( QString fileName ) { + QFile *wavFile = new QFile( fileName ); + + + if (wavFile->open(QIODevice::ReadOnly)) { + SWavHeader header; + + wavFile->read( header.chunkID, 4 ); + if (header.chunkID[0]!='R' || header.chunkID[1]!='I' || header.chunkID[2]!='F' || header.chunkID[3]!='F') return 0; // incorrect header + + wavFile->read( (char*)&header.chunkSize,4 ); + wavFile->read( (char*)&header.format,4 ); + + if (header.format[0]!='W' || header.format[1]!='A' || header.format[2]!='V' || header.format[3]!='E') return 0; // incorrect header + + wavFile->read( (char*)&header.subchunk1id,4 ); + if (header.subchunk1id[0]!='f' || header.subchunk1id[1]!='m' || header.subchunk1id[2]!='t' || header.subchunk1id[3]!=' ') return 0; // incorrect header + + wavFile->read( (char*)&header.subchunk1size,4 ); + wavFile->read( (char*)&header.audioFormat,2 ); + wavFile->read( (char*)&header.nofChannels,2 ); + wavFile->read( (char*)&header.sampleRate,4 ); + wavFile->read( (char*)&header.byteRate,4 ); + wavFile->read( (char*)&header.blockAlign,2 ); + wavFile->read( (char*)&header.bitsPerSample,2 ); + + qDebug() << fileName << " opened"; + + while (1) { + if (wavFile->read( (char*)&header.subchunk2id,4 ) != 4) return 0; + if (wavFile->read( (char*)&header.subchunk2size,4 ) != 4) return 0; + //int deb_size = header.subchunk2size; + //char tes[4]; + //memcpy(tes, header.subchunk2id, 4 ); + //if (header.subchunk2id[0]!='d' || header.subchunk2id[1]!='a' || header.subchunk2id[2]!='t' || header.subchunk2id[3]!='a') return 0; // incorrect header + if (header.subchunk2id[0]=='d' && header.subchunk2id[1]=='a' && header.subchunk2id[2]=='t' && header.subchunk2id[3]=='a') break; // found the data, chunk + // this was not the data-chunk. skip it + if (header.subchunk2size<1) return 0; // error in file + char *unused = new char[header.subchunk2size]; + wavFile->read( unused, header.subchunk2size ); + delete [] unused; + } + + + + // the data follows. + if (header.subchunk2size<1) return 0; + + CAudioBuffer *rval = new CAudioBuffer; + rval->m_nofChannels = header.nofChannels; + rval->m_bitsPerSample = header.bitsPerSample; + rval->m_samplesPerSec = header.sampleRate; + rval->m_signedData = 0; // where to know this? + rval->reallocate( header.subchunk2size ); + + wavFile->read( (char*)rval->m_data, header.subchunk2size ); + + // choose a good sampling function. + rval->m_sampleFunction = 0; + if (rval->m_nofChannels==1) { + if (rval->m_bitsPerSample == 8) rval->m_sampleFunction = sampleFunction8bitMono; + if (rval->m_bitsPerSample == 16) rval->m_sampleFunction = sampleFunction16bitMono; + } else { + if (rval->m_bitsPerSample == 8) rval->m_sampleFunction = sampleFunction8bitStereo; + if (rval->m_bitsPerSample == 16) rval->m_sampleFunction = sampleFunction16bitStereo; + } + + return rval; + + + } else { + qDebug() << fileName << " NOT opened"; + return 0; + } + + delete wavFile; +}; + + +CAudioBuffer* CAudioBuffer::loadWav( FILE *wavFile ) { + // read the header. + SWavHeader header; + fread( header.chunkID, 4, 1, wavFile ); + if (header.chunkID[0]!='R' || header.chunkID[1]!='I' || header.chunkID[2]!='F' || header.chunkID[3]!='F') return 0; // incorrect header + + fread( &header.chunkSize, 4, 1, wavFile ); + fread( header.format, 4, 1, wavFile ); + if (header.format[0]!='W' || header.format[1]!='A' || header.format[2]!='V' || header.format[3]!='E') return 0; // incorrect header + + fread( header.subchunk1id, 4, 1, wavFile ); + if (header.subchunk1id[0]!='f' || header.subchunk1id[1]!='m' || header.subchunk1id[2]!='t' || header.subchunk1id[3]!=' ') return 0; // incorrect header + + fread( &header.subchunk1size, 4, 1, wavFile ); + fread( &header.audioFormat, 2, 1, wavFile ); + fread( &header.nofChannels, 2, 1, wavFile ); + fread( &header.sampleRate, 4, 1, wavFile ); + fread( &header.byteRate, 4, 1, wavFile ); + + fread( &header.blockAlign, 2, 1, wavFile ); + fread( &header.bitsPerSample, 2, 1, wavFile ); + + fread( header.subchunk2id, 4, 1, wavFile ); + if (header.subchunk2id[0]!='d' || header.subchunk2id[1]!='a' || header.subchunk2id[2]!='t' || header.subchunk2id[3]!='a') return 0; // incorrect header + fread( &header.subchunk2size, 4, 1, wavFile ); + + + // the data follows. + if (header.subchunk2size<1) return 0; + + CAudioBuffer *rval = new CAudioBuffer; + rval->m_nofChannels = header.nofChannels; + rval->m_bitsPerSample = header.bitsPerSample; + rval->m_samplesPerSec = header.sampleRate; + rval->m_signedData = 0; // where to know this? + rval->reallocate( header.subchunk2size ); + + fread( rval->m_data, 1, header.subchunk2size, wavFile ); + + + + // choose a good sampling function. + rval->m_sampleFunction = 0; + if (rval->m_nofChannels==1) { + if (rval->m_bitsPerSample == 8) rval->m_sampleFunction = sampleFunction8bitMono; + if (rval->m_bitsPerSample == 16) rval->m_sampleFunction = sampleFunction16bitMono; + } else { + if (rval->m_bitsPerSample == 8) rval->m_sampleFunction = sampleFunction8bitStereo; + if (rval->m_bitsPerSample == 16) rval->m_sampleFunction = sampleFunction16bitStereo; + } + + return rval; +}; + + + +AUDIO_SAMPLE_TYPE CAudioBuffer::sampleFunction8bitMono( CAudioBuffer *abuffer, int pos, int channel ) { + return (AUDIO_SAMPLE_TYPE)(((unsigned char*)(abuffer->m_data))[pos]-128)<<8; +}; + +AUDIO_SAMPLE_TYPE CAudioBuffer::sampleFunction16bitMono( CAudioBuffer *abuffer, int pos, int channel ) { + return (AUDIO_SAMPLE_TYPE)(((short*)(abuffer->m_data))[pos]); +}; + +AUDIO_SAMPLE_TYPE CAudioBuffer::sampleFunction8bitStereo( CAudioBuffer *abuffer, int pos, int channel ) { + return ((AUDIO_SAMPLE_TYPE)(((char*)(abuffer->m_data))[pos*abuffer->m_nofChannels + channel])<<8); +}; + + +AUDIO_SAMPLE_TYPE CAudioBuffer::sampleFunction16bitStereo( CAudioBuffer *abuffer, int pos, int channel ) { + return (AUDIO_SAMPLE_TYPE)(((short*)(abuffer->m_data))[pos*abuffer->m_nofChannels + channel]); +}; + +CAudioBufferPlayInstance *CAudioBuffer::playWithMixer( CAudioMixer &mixer ) { + CAudioBufferPlayInstance *i = (CAudioBufferPlayInstance*)mixer.addAudioSource( new CAudioBufferPlayInstance( this )); + return i; +}; + + +CAudioBufferPlayInstance::CAudioBufferPlayInstance() { + m_fixedPos = 0; + m_fixedInc = 0; + m_buffer = 0; + m_fixedLeftVolume = 4096; + m_fixedRightVolume = 4096; + m_destroyWhenFinished = true; + m_finished = false; +}; + +CAudioBufferPlayInstance::CAudioBufferPlayInstance( CAudioBuffer *startPlaying ) { + m_fixedPos = 0; + m_fixedInc = 0; + m_fixedLeftVolume = 4096; + m_fixedRightVolume = 4096; + m_destroyWhenFinished = true; + m_finished = false; + playBuffer( startPlaying, 1.0f, 1.0f ); +}; + +void CAudioBufferPlayInstance::playBuffer( CAudioBuffer *startPlaying, float volume, float speed, int loopTimes ) { + m_buffer = startPlaying; + m_fixedLeftVolume = (int)(4096.0f*volume); + m_fixedRightVolume = m_fixedLeftVolume; + m_fixedPos = 0; + //m_fixedInc = ( startPlaying->getSamplesPerSec() * (int)(4096.0f*speed)) / AUDIO_FREQUENCY; + setSpeed( speed ); + m_loopTimes = loopTimes; + +}; + +CAudioBufferPlayInstance::~CAudioBufferPlayInstance() { + +}; + + +void CAudioBufferPlayInstance::stop() { + m_buffer = 0; + m_finished = true; +}; + +void CAudioBufferPlayInstance::setSpeed( float speed ) { + if (!m_buffer) return; + m_fixedInc = (int)( ((float)m_buffer->getSamplesPerSec() * 4096.0f*speed) / (float)AUDIO_FREQUENCY ); +}; + +void CAudioBufferPlayInstance::setLeftVolume( float vol ) { + m_fixedLeftVolume = (int)(4096.0f*vol); +}; + +void CAudioBufferPlayInstance::setRightVolume( float vol ) { + m_fixedRightVolume = (int)(4096.0f*vol); +}; + +bool CAudioBufferPlayInstance::canBeDestroyed() { + if (m_finished==true && + m_destroyWhenFinished==true) return true; else return false; +}; + + + +// Does not do any bound-checking. Must be checked before called. +int CAudioBufferPlayInstance::mixBlock( AUDIO_SAMPLE_TYPE *target, int samplesToMix ) { + SAMPLE_FUNCTION_TYPE sampleFunction = m_buffer->getSampleFunction(); + if (!sampleFunction) return 0; // unsupported sampletype + AUDIO_SAMPLE_TYPE *t_target = target+samplesToMix*2; + int sourcepos; + //int tempCounter = 0; + + if (m_buffer->getNofChannels() == 2) { // stereo + while (target!=t_target) { + sourcepos = m_fixedPos>>12; + target[0] = (((((sampleFunction)( m_buffer, sourcepos, 0) * (4096-(m_fixedPos&4095)) + (sampleFunction)( m_buffer, sourcepos+1, 0) * (m_fixedPos&4095) ) >> 12) * m_fixedLeftVolume) >> 12); + target[1] = (((((sampleFunction)( m_buffer, sourcepos, 1) * (4096-(m_fixedPos&4095)) + (sampleFunction)( m_buffer, sourcepos+1, 1) * (m_fixedPos&4095) ) >> 12) * m_fixedRightVolume) >> 12); + m_fixedPos+=m_fixedInc; + target+=2; + //tempCounter++; + }; + } else { // mono + int temp; + while (target!=t_target) { + sourcepos = m_fixedPos>>12; + temp = (((sampleFunction)( m_buffer, sourcepos, 0 ) * (4096-(m_fixedPos&4095)) + (sampleFunction)( m_buffer, sourcepos+1, 0 ) * (m_fixedPos&4095) ) >> 12); + target[0] = ((temp*m_fixedLeftVolume)>>12); + target[1] = ((temp*m_fixedRightVolume)>>12); + m_fixedPos+=m_fixedInc; + target+=2; + //tempCounter++; + }; + + }; + + return samplesToMix; +}; + + + +int CAudioBufferPlayInstance::pullAudio( AUDIO_SAMPLE_TYPE *target, int bufferLength ) { + if (!m_buffer) return 0; // no sample associated to mix.. + + int channelLength = ((m_buffer->getDataLength()) / (m_buffer->getNofChannels()*m_buffer->getBytesPerSample()))-2; + + int samplesToWrite = bufferLength/2; + int amount; + int totalMixed = 0; + + + while (samplesToWrite>0) { + int samplesLeft = channelLength - (m_fixedPos>>12); + int maxMixAmount = (int)(((long long int)(samplesLeft)<<12) / m_fixedInc ); // This is how much we can mix at least + //int maxMixAmount = (int)((float)samplesLeft / ((float)m_fixedInc/4096.0f)); + //if (maxMixAmount<1) maxMixAmount = 1; // NOTE, THIS MIGHT CAUSE PROBLEMS. NEEDS CHECKING + if (maxMixAmount>samplesToWrite) { + maxMixAmount=samplesToWrite; + } + + if (maxMixAmount > 0) { + amount=mixBlock(target+totalMixed * 2, maxMixAmount); + + if (amount == 0) + { + // Error! + break; + } + + totalMixed+=amount; + } else { + amount = 0; + m_fixedPos = channelLength<<12; + } + + // sample is ended,.. check the looping variables and see what to do. + if ((m_fixedPos>>12)>=channelLength) { + m_fixedPos -= (channelLength<<12); + if (m_loopTimes>0) m_loopTimes--; + if (m_loopTimes==0) { + stop(); + return totalMixed; + } + } + + samplesToWrite-=amount; + if (samplesToWrite<1) break; + }; + return totalMixed*2; +}; diff --git a/demos/mobile/quickhit/ga_src/GEAudioBuffer.h b/demos/mobile/quickhit/ga_src/GEAudioBuffer.h new file mode 100644 index 00000000..b8c0cf57 --- /dev/null +++ b/demos/mobile/quickhit/ga_src/GEAudioBuffer.h @@ -0,0 +1,137 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#ifndef __GE_IGA_AUDIOBUFFER__ +#define __GE_IGA_AUDIOBUFFER__ + +#include +#include "GEInterfaces.h" + + +namespace GE { + + class CAudioBufferPlayInstance; + class CAudioBuffer; // forward declaration + typedef AUDIO_SAMPLE_TYPE(*SAMPLE_FUNCTION_TYPE)(CAudioBuffer *abuffer, int pos, int channel); + + class CAudioBuffer { // container for a sound + public: + CAudioBuffer(); + virtual ~CAudioBuffer(); + + static CAudioBuffer* loadWav( QString fileName ); + static CAudioBuffer* loadWav( FILE *wavFile ); // support for stdio + void reallocate( int length ); + + + inline void* getRawData() { return m_data; } + inline int getDataLength() { return m_dataLength; } + + inline int getBytesPerSample() { return (m_bitsPerSample>>3); } + inline int getBitsPerSample() { return m_bitsPerSample; } + inline int getSamplesPerSec() { return m_samplesPerSec; } + inline short getNofChannels() { return m_nofChannels; } + inline SAMPLE_FUNCTION_TYPE getSampleFunction() { return m_sampleFunction; } + + + // static implementations of sample functions + static AUDIO_SAMPLE_TYPE sampleFunction8bitMono( CAudioBuffer *abuffer, int pos, int channel ); + static AUDIO_SAMPLE_TYPE sampleFunction16bitMono( CAudioBuffer *abuffer, int pos, int channel ); + static AUDIO_SAMPLE_TYPE sampleFunction8bitStereo( CAudioBuffer *abuffer, int pos, int channel ); + static AUDIO_SAMPLE_TYPE sampleFunction16bitStereo( CAudioBuffer *abuffer, int pos, int channel ); + + CAudioBufferPlayInstance *playWithMixer( GE::CAudioMixer &mixer ); + + protected: + SAMPLE_FUNCTION_TYPE m_sampleFunction; + short m_nofChannels; + void *m_data; + int m_dataLength; // in bytes + short m_bitsPerSample; + bool m_signedData; + int m_samplesPerSec; + }; + + + + class CAudioBufferPlayInstance : public IAudioSource { + public: + CAudioBufferPlayInstance(); + CAudioBufferPlayInstance( CAudioBuffer *start_playing ); + virtual ~CAudioBufferPlayInstance(); + void playBuffer( CAudioBuffer *startPlaying, float volume, float fixedSpeed, int loopTimes = 0 ); // looptimes -1 = loop forever + + void setSpeed( float speed ); + void setLeftVolume( float lvol ); + void setRightVolume( float rvol ); + + + inline void setLoopTimes( int ltimes ) { m_loopTimes = ltimes; } + void stop(); + + + + int pullAudio( AUDIO_SAMPLE_TYPE *target, int bufferLength ); + bool canBeDestroyed(); + + bool isPlaying() { if (m_buffer) return true; else return false; } + inline bool isFinished() { return m_finished; } + inline bool destroyWhenFinished() { return m_destroyWhenFinished; } + inline void setDestroyWhenFinished( bool set ) { m_destroyWhenFinished = set; } + + protected: + int mixBlock( AUDIO_SAMPLE_TYPE *target, int bufferLength ); + bool m_finished; + bool m_destroyWhenFinished; + int m_fixedPos; + int m_fixedInc; + + int m_fixedLeftVolume; + int m_fixedRightVolume; + int m_fixedCenter; + int m_loopTimes; + CAudioBuffer *m_buffer; + }; + +}; + + + +#endif diff --git a/demos/mobile/quickhit/ga_src/GEAudioOut.cpp b/demos/mobile/quickhit/ga_src/GEAudioOut.cpp new file mode 100644 index 00000000..a7772649 --- /dev/null +++ b/demos/mobile/quickhit/ga_src/GEAudioOut.cpp @@ -0,0 +1,144 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#include +#include + +#include "GEAudioOut.h" + +using namespace GE; +//using namespace QTM_NAMESPACE; + +/* +#ifndef Q_OS_WIN32 +QTM_USE_NAMESPACE +#endif +*/ + +const int CHANNELS = 2; +const QString CODEC = "audio/pcm"; +const QAudioFormat::Endian BYTEORDER = QAudioFormat::LittleEndian; +const QAudioFormat::SampleType SAMTYPE = QAudioFormat::SignedInt; + + + +AudioOut::AudioOut( QObject *parent, GE::IAudioSource *source ) : QThread(parent) { // qobject + m_source = source; + QAudioFormat format; + format.setFrequency(AUDIO_FREQUENCY); + format.setChannels(CHANNELS); + format.setSampleSize(AUDIO_SAMPLE_BITS); + format.setCodec(CODEC); + format.setByteOrder(BYTEORDER); + format.setSampleType(SAMTYPE); + + QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice()); + if (!info.isFormatSupported(format)) + format = info.nearestFormat(format); + + + m_audioOutput = new QAudioOutput(info,format); + +#ifdef Q_WS_MAEMO_5 + m_audioOutput->setBufferSize(20000); + m_sendBufferSize = 5000; +#else + m_audioOutput->setBufferSize(16000); + m_sendBufferSize = 4000; +#endif + + m_outTarget = m_audioOutput->start(); + + + m_sendBuffer = new AUDIO_SAMPLE_TYPE[ m_sendBufferSize ]; + m_samplesMixed = 0; + + m_runstate=0; + +#ifndef Q_OS_SYMBIAN + start(); +#else + m_audioOutput->setNotifyInterval(5); + connect(m_audioOutput,SIGNAL(notify()),SLOT(audioNotify())); +#endif + +}; + + +AudioOut::~AudioOut() { + if (m_runstate==0) m_runstate = 1; + if (QThread::isRunning() == false) m_runstate = 2; + while (m_runstate!=2) { msleep(50); } // wait until the thread is finished + m_audioOutput->stop(); + delete m_audioOutput; + delete [] m_sendBuffer; +}; + + +void AudioOut::audioNotify() { + tick(); +}; + +void AudioOut::tick() { + // fill data to buffer as much as free space is available.. + int samplesToWrite = m_audioOutput->bytesFree() / (CHANNELS*AUDIO_SAMPLE_BITS/8); + samplesToWrite*=2; + + if (samplesToWrite > m_sendBufferSize) samplesToWrite = m_sendBufferSize; + if (samplesToWrite<=0) return; + int mixedSamples = m_source->pullAudio( m_sendBuffer, samplesToWrite ); + m_outTarget->write( (char*)m_sendBuffer, mixedSamples*2 ); + +}; + + +void AudioOut::run() { + if (!m_source) { m_runstate=2; return; } + int sleepTime = m_sendBufferSize * 340 / AUDIO_FREQUENCY; + if (sleepTime<2) sleepTime = 2; + + while (m_runstate==0) { + tick(); + msleep(sleepTime); + }; + m_runstate = 2; +}; + + diff --git a/demos/mobile/quickhit/ga_src/GEAudioOut.h b/demos/mobile/quickhit/ga_src/GEAudioOut.h new file mode 100644 index 00000000..2a3e3953 --- /dev/null +++ b/demos/mobile/quickhit/ga_src/GEAudioOut.h @@ -0,0 +1,89 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#ifndef __GE_QTAUDIOOUT__ +#define __GE_QTAUDIOOUT__ + +#include +#include +#include +#include +#include +#include + +#include "GEInterfaces.h" + + +class QAudioOutput; + +namespace GE { + + + + class AudioOut : public QThread { + Q_OBJECT + + public: + AudioOut(QObject *parent, GE::IAudioSource *source); + virtual ~AudioOut(); + + + + private slots: + void audioNotify(); // for internal notify "solution" + + + protected: + void tick(); + virtual void run(); // this is for the threaded mode only + + + qint64 m_samplesMixed; + + QAudioOutput *m_audioOutput; + QIODevice *m_outTarget; + GE::IAudioSource *m_source; + int m_runstate; + AUDIO_SAMPLE_TYPE *m_sendBuffer; + int m_sendBufferSize; + }; +} + +#endif diff --git a/demos/mobile/quickhit/ga_src/GEInterfaces.cpp b/demos/mobile/quickhit/ga_src/GEInterfaces.cpp new file mode 100644 index 00000000..7771f58c --- /dev/null +++ b/demos/mobile/quickhit/ga_src/GEInterfaces.cpp @@ -0,0 +1,177 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#include +#include "GEInterfaces.h" + + +using namespace GE; + +/** + * CAudioSource + * common functionality + * + */ +IAudioSource::IAudioSource() { + m_next = 0; +}; + +IAudioSource::~IAudioSource() { + + +}; + +/** + * CAudioMixer + * + */ +CAudioMixer::CAudioMixer() { + m_sourceList = 0; + m_mixingBuffer = 0; + m_mixingBufferLength = 0; + m_fixedGeneralVolume = 4096; +}; + + +CAudioMixer::~CAudioMixer() { + destroyList(); + if (m_mixingBuffer) { + delete [] m_mixingBuffer; + m_mixingBuffer = 0; + }; +}; + +void CAudioMixer::destroyList() { + m_mutex.lock(); + IAudioSource *l = m_sourceList; + while (l) { + IAudioSource *n = l->m_next; + delete l; + l = n; + }; + m_sourceList = 0; + m_mutex.unlock(); +}; + + +IAudioSource* CAudioMixer::addAudioSource( IAudioSource *source ) { + m_mutex.lock(); + source->m_next = 0; + if (m_sourceList) { + IAudioSource *l = m_sourceList; + while (l->m_next) l = l->m_next; + l->m_next = source; + } else m_sourceList = source; + m_mutex.unlock(); + return source; + +}; + + +bool CAudioMixer::removeAudioSource( IAudioSource *source ) { + return true; +}; + +void CAudioMixer::setGeneralVolume( float vol ) { + m_fixedGeneralVolume = (4096.0f*vol); +}; + +int CAudioMixer::pullAudio( AUDIO_SAMPLE_TYPE *target, int bufferLength ) { + + if (!m_sourceList) return 0; + + m_mutex.lock(); + + + if (m_mixingBufferLengthm_next; + + // process l + int mixed = l->pullAudio( m_mixingBuffer, bufferLength ); + if (mixed>0) { + // mix to main.. + t = target; + t_target = t+mixed; + s = m_mixingBuffer; + while (t!=t_target) { + *t +=(((*s)*m_fixedGeneralVolume)>>12); + t++; + s++; + }; + }; + + + + // autodestroy + if (l->canBeDestroyed() == true) { // NOTE, IS UNDER TESTING,... MIGHT CAUSE UNPREDICTABLE CRASHING WITH SOME USE CASES!!! + if (!prev) + m_sourceList = next; + else prev->m_next = next; + delete l; + l = 0; + }; + + + + + prev = l; + l = next; + }; + m_mutex.unlock(); + return bufferLength; +}; + + + + diff --git a/demos/mobile/quickhit/ga_src/GEInterfaces.h b/demos/mobile/quickhit/ga_src/GEInterfaces.h new file mode 100644 index 00000000..552f554b --- /dev/null +++ b/demos/mobile/quickhit/ga_src/GEInterfaces.h @@ -0,0 +1,88 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#ifndef __GE_IGA_INTERFACES__ +#define __GE_IGA_INTERFACES__ + +#include + +namespace GE { + +#define AUDIO_FREQUENCY 22050 +#define AUDIO_SAMPLE_TYPE short +#define AUDIO_SAMPLE_BITS 16 + + class IAudioSource { + public: + IAudioSource(); + virtual ~IAudioSource(); + + virtual int pullAudio( AUDIO_SAMPLE_TYPE *target, int bufferLength ) = 0; + virtual bool canBeDestroyed() { return false; } + + IAudioSource *m_next; // for listing, do not touch if you don't know what you are doing. + }; + + + class CAudioMixer : public IAudioSource { + public: + CAudioMixer(); + virtual ~CAudioMixer(); + void destroyList(); // destroy all the sources in the list + + + IAudioSource* addAudioSource( IAudioSource *s ); // add new audio source to the list + bool removeAudioSource( IAudioSource *s ); // remove an audio source from the list + int pullAudio( AUDIO_SAMPLE_TYPE *target, int bufferLength ); + void setGeneralVolume( float vol ); + + + protected: + QMutex m_mutex; + int m_fixedGeneralVolume; + AUDIO_SAMPLE_TYPE *m_mixingBuffer; + int m_mixingBufferLength; + IAudioSource *m_sourceList; + }; + +}; + + +#endif diff --git a/demos/mobile/quickhit/gameengine.cpp b/demos/mobile/quickhit/gameengine.cpp new file mode 100644 index 00000000..4763268f --- /dev/null +++ b/demos/mobile/quickhit/gameengine.cpp @@ -0,0 +1,592 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#include "gameengine.h" +#include "plugins/levelplugininterface.h" +#include "InvSounds.h" + +#include +#include +#include +#include + +const int TIMER_SPEED = 80; + +GameEngine::GameEngine(QObject* parent) + :QObject(parent) +{ + m_timerId = 0; + m_doEnemyMissile = 1500 / TIMER_SPEED; + m_GameGml = 0; + m_gameLevel = 0; + + clearQmlObjects(); + + // For random + QTime time = QTime::currentTime(); + qsrand((uint)time.msec()); + + // Sound engine + m_soundEngine = new CInvSounds(this); + + // Device profile + m_silent = false; + +#ifdef Q_OS_SYMBIAN + iVibrate = CHWRMVibra::NewL(); +#endif + + // Get device profile, is it silent? +#if defined Q_OS_SYMBIAN || defined Q_WS_MAEMO_5 + m_systemDeviceInfo = new QSystemDeviceInfo(this); + QObject::connect(m_systemDeviceInfo,SIGNAL(currentProfileChanged(QSystemDeviceInfo::Profile)),this, + SLOT(currentProfileChanged(QSystemDeviceInfo::Profile))); + QSystemDeviceInfo::Profile p = m_systemDeviceInfo->currentProfile(); + if (p == QSystemDeviceInfo::SilentProfile) { + m_silent = true; + } +#endif + +} + + +GameEngine::~GameEngine() +{ +#ifdef Q_OS_SYMBIAN + delete iVibrate; +#endif + +} + +void GameEngine::gameStartSound() +{ + if (!m_silent) + m_soundEngine->gameStartSound(); +} + +#if defined Q_OS_SYMBIAN || defined Q_WS_MAEMO_5 +void GameEngine::currentProfileChanged(QSystemDeviceInfo::Profile p) +{ + if (p == QSystemDeviceInfo::SilentProfile) { + enableSounds(QVariant(false)); + } else { + enableSounds(QVariant(true)); + } +} +#endif + +void GameEngine::enableSounds(QVariant enable) +{ + m_silent = !enable.toBool(); + + if (m_silent) + this->m_soundEngine->enableSounds(false); + else + this->m_soundEngine->enableSounds(true); + +} + +QVariant GameEngine::randInt(QVariant low, QVariant high) +{ + // Random number between low and high + return qrand() % ((high.toInt() + 1) - low.toInt()) + low.toInt(); +} + +void GameEngine::setGameLevel(LevelPluginInterface* level) +{ + // Set used game level + m_gameLevel = level; + + if (m_gameLevel) { + // Set used sound from the level into sound engine + m_soundEngine->enableSounds(m_gameLevel->levelSounds()); + // Invoke QML to take new level in use + QMetaObject::invokeMethod(m_GameGml, "levelReadyForCreation", Qt::AutoConnection); + + m_doEnemyMissile = m_gameLevel->enemyFireSpeed().toInt() / TIMER_SPEED; + } +} + +void GameEngine::setPluginList(QList plugins) +{ + m_pluginList = plugins; +} + +QVariant GameEngine::pluginList() +{ + QStringList list; + QPluginLoader* loader; + foreach (loader,m_pluginList) { + QString s = loader->fileName(); + s = s.mid(s.lastIndexOf("/")+1); + s = s.left(s.lastIndexOf(".")); + s = s.toUpper(); +#ifdef Q_WS_MAEMO_5 + if (s.contains("LIB")) { + s = s.right(s.length() - (s.indexOf("LIB")+3)); + } +#endif + list.append(s); + } + return QVariant(list); +} + +void GameEngine::pauseLevel(QVariant doPause) +{ + bool enableTimer = !doPause.toBool(); + enableEngineTimer(QVariant(enableTimer)); + QMetaObject::invokeMethod(m_levelQml, "pause", Qt::AutoConnection,Q_ARG(QVariant, doPause)); +} + + +void GameEngine::findQmlObjects() +{ + if (m_GameGml) { + qDebug() << "GameEngine::findQmlObjects()"; + + // Find Missiles objects + m_missileList.clear(); + m_enemyMissileList.clear(); + findMissiles(m_GameGml); + + // Set QMLs + setLevelQml(m_GameGml->findChild("level")); + setEnemiesGridQml(m_GameGml->findChild("enemiesGrid")); + setMyShipQml(m_GameGml->findChild("myShip")); + + // Find Enemies objects + m_enemyList.clear(); + qDebug() << "GameEngine::findQmlObjects() find enemies from: level QML"; + findEnemies(m_levelQml); + + + } else { + qDebug() << "GameEngine::findQmlObjects() rootObject NULL"; + } +} + +void GameEngine::clearQmlObjects() +{ + m_missileList.clear(); + m_enemyMissileList.clear(); + m_enemyList.clear(); + m_levelQml = 0; + m_enemiesGridGml = 0; + m_myShipGml = 0; + //m_GameGml = 0; // NOTE: Do not delete this +} + + +void GameEngine::findMissiles(QObject *rootObject) +{ + if (rootObject) { + QObjectList list = rootObject->children(); + QObject* item; + foreach (item,list) { + if (item->children().count()>0) { + findMissiles(item); + } else { + if (rootObject->objectName()=="missile") { + QDeclarativeItem* missile = static_cast(rootObject); + m_missileList.append(missile); + } else if (rootObject->objectName()=="enemy_missile") { + QDeclarativeItem* enemyMissile = static_cast(rootObject); + m_enemyMissileList.append(enemyMissile); + } + } + } + } else { + qDebug() << "GameEngine::findMissiles() rootObject NULL"; + } +} + +void GameEngine::findEnemies(QObject *rootObject) +{ + if (rootObject) { + QObjectList list = rootObject->children(); + QObject* item; + foreach (item,list) { + if (item->children().count()>0 && item->objectName()!="enemy") { + //qDebug() << "Enemy children found from: " << item->objectName(); + findEnemies(item); + } else { + if (item->objectName()=="enemy") { + //qDebug() << "Enemy child founds: " << item->objectName(); + QDeclarativeItem* enemy = static_cast(item); + m_enemyList.append(enemy); + } + } + } + } else { + qDebug() << "GameEngine::findEnemies() rootObject NULL"; + } +} + +void GameEngine::setEnemiesGridQml(QObject* o) +{ + m_enemiesGridGml = static_cast(o); +} + +void GameEngine::setMyShipQml(QObject* o) +{ + m_myShipGml = static_cast(o); +} + +void GameEngine::setGameQml(QObject* o) +{ + m_GameGml = static_cast(o); +} + + +void GameEngine::timerEvent(QTimerEvent *e) +{ + if (e->timerId()==m_timerId) { + // Do hit test + doHitTest(); + + m_doEnemyMissile--; + + if (m_gameLevel && m_doEnemyMissile<0) { + m_doEnemyMissile = m_gameLevel->enemyFireSpeed().toInt() / TIMER_SPEED; + // Do emeny missile launch + doEnemyMissile(); + } + } +} + +void GameEngine::enableEngineTimer(QVariant enable) +{ + if (m_gameLevel) { + if (m_timerId==0 && enable.toBool()) { + m_timerId = QObject::startTimer(TIMER_SPEED); + } + else if (m_timerId != 0 && !enable.toBool()) { + QObject::killTimer(m_timerId); + m_timerId = 0; + } + } +} + +void GameEngine::selectVisibleEnemy(int& start, int& end) +{ + QDeclarativeItem* enemy = 0; + for (int i=0 ; iopacity()==1) { + start = i; + break; + } + } + enemy = 0; + for (int e=m_enemyList.count()-1 ; e>0 ; e--) { + enemy = m_enemyList[e]; + if (enemy->opacity()==1) { + end = e; + break; + } + } +} + +void GameEngine::doEnemyMissile() +{ + QMutexLocker locker(&m_enemyListMutex); + + QDeclarativeItem* missile = 0; + QDeclarativeItem* enemy = 0; + + // Find free missile + foreach (missile, m_enemyMissileList) { + if (missile->opacity()==0){ + // Random select enemy who fire + int start=0; int end=0; + selectVisibleEnemy(start,end); + int whoWillFire = randInt(QVariant(start),QVariant(end)).toInt(); + if (m_enemyList.count() < whoWillFire+1) + break; + + enemy = m_enemyList.at(whoWillFire); + if (enemy && enemy->opacity()==1) { + QPointF enemyP = enemy->pos(); + if (m_enemiesGridGml) { + enemyP += m_enemiesGridGml->pos(); + } + //qDebug() << "QMetaObject::invokeMethod() - fireEnemyMissile"; + QMetaObject::invokeMethod(m_GameGml, "fireEnemyMissile", Qt::AutoConnection, + Q_ARG(QVariant, enemyP.x()+enemy->boundingRect().width()/4), + Q_ARG(QVariant, enemyP.y()+enemy->boundingRect().height()), + Q_ARG(QVariant, m_GameGml->boundingRect().height())); + } + break; + } + } +} + +void GameEngine::doHitTest() +{ + QMutexLocker locker(&m_enemyListMutex); + + QDeclarativeItem* missile = 0; + QDeclarativeItem* enemy = 0; + + // No enemies? + if (m_enemyList.count()==0) { + enableEngineTimer(QVariant(false)); + qDebug() << "No enemies left"; + gameOver(true); + return; + } + + if (!m_myShipGml) { + return; + } + + // Check ship collision + if (m_myShipGml->opacity()==1) { + for (int e=0; eopacity()==0) { + break; + } + QPointF enemyP = enemy->pos(); + if (m_enemiesGridGml) { + enemyP += m_enemiesGridGml->pos(); + } + QRectF enemyR(enemyP,QSize(enemy->boundingRect().width(),enemy->boundingRect().height())); + // Collision? + if (enemyR.contains(m_myShipGml->pos())) { + enableEngineTimer(QVariant(false)); + + // Collision explosion + QPointF myP = m_myShipGml->pos(); + playSound(1); + QMetaObject::invokeMethod(m_levelQml, "explode", Qt::AutoConnection, + Q_ARG(QVariant, myP.x()+m_myShipGml->boundingRect().width()/2), + Q_ARG(QVariant, myP.y()+m_myShipGml->boundingRect().height())); + m_myShipGml->setOpacity(0); + + gameOver(false); + qDebug() << "Collision"; + return; + } + // Enemy too deep? + else if (enemyR.bottomLeft().y() > m_myShipGml->pos().y()+m_myShipGml->pos().y()*0.1) { + enableEngineTimer(QVariant(false)); + + // Enemy too deep explosion + QPointF myP = m_myShipGml->pos(); + playSound(1); + QMetaObject::invokeMethod(m_levelQml, "explode", Qt::AutoConnection, + Q_ARG(QVariant, myP.x()+m_myShipGml->boundingRect().width()/2), + Q_ARG(QVariant, myP.y()+m_myShipGml->boundingRect().height())); + m_myShipGml->setOpacity(0); + + gameOver(false); + qDebug() << "Enemy too deep"; + return; + } + } + } + + // Check your missiles hit to enemies + foreach (missile, m_missileList) { + if (missile->opacity()==1){ + for (int e=0; eopacity()<1) { + break; + } + QPointF missileP = missile->pos(); + missileP.setX(missileP.rx() + missile->boundingRect().width()/2); + + QPointF enemyP = enemy->pos(); + if (m_enemiesGridGml) { + enemyP += m_enemiesGridGml->pos(); + } + + QRectF r(enemyP,QSize(enemy->boundingRect().width(),enemy->boundingRect().height())); + if (r.contains(missileP)) { + // Hit ! + playSound(0); + //qDebug() << "QMetaObject::invokeMethod() - explode"; + QMetaObject::invokeMethod(m_levelQml, "explode", Qt::AutoConnection, + Q_ARG(QVariant, enemyP.x()+enemy->boundingRect().width()/2), + Q_ARG(QVariant, enemyP.y()+enemy->boundingRect().height())); + missile->setOpacity(0); + //fastVibra(); + if (m_enemiesGridGml) { + // Set transparent placeholder for enemy when using GridView + enemy->setProperty("source",QVariant("file:/"+m_gameLevel->pathToTransparentEnemyPic().toString())); + } else { + // Hide enemy after explode + enemy->setOpacity(0); + } + + // Remove enemy from list + m_enemyList.removeAt(e); + e--; + } + enemy = 0; + } + } + } + + // Check enemies missiles hit to you + if (m_myShipGml->opacity()==1) { + foreach (missile, m_enemyMissileList) { + if (missile->opacity()==1){ + QPointF missileP = missile->pos(); + missileP.setX(missileP.rx() + missile->boundingRect().width()/2); + + QPointF myP = m_myShipGml->pos(); + + QRectF r(myP,QSize(m_myShipGml->boundingRect().width(),m_myShipGml->boundingRect().height())); + if (r.contains(missileP)) { + // Hit ! + playSound(1); + //qDebug() << "QMetaObject::invokeMethod() - explode"; + QMetaObject::invokeMethod(m_levelQml, "explode", Qt::AutoConnection, + Q_ARG(QVariant, myP.x()+m_myShipGml->boundingRect().width()/2), + Q_ARG(QVariant, myP.y()+m_myShipGml->boundingRect().height())); + missile->setOpacity(0); + m_myShipGml->setOpacity(0); + break; + } + } + } + } else { + // You was killed + enableEngineTimer(QVariant(false)); + gameOver(false); + qDebug() << "You was killed by enemy missile"; + } + +} + + +void GameEngine::playSound(QVariant index) +{ + if (!m_silent) { + int i = index.toInt(); + m_soundEngine->playSound(i); + } +} + +void GameEngine::playSounds(QVariant index, QVariant count) +{ + if (!m_silent) { + m_soundEngine->playSounds(index.toInt(),count.toInt()); + } +} + +void GameEngine::playInternalSound(QVariant index) +{ + if (!m_silent) { + m_soundEngine->playInternalSound(index.toInt()); + } +} + +void GameEngine::playInternalSounds(QVariant index, QVariant count) +{ + if (!m_silent) { + m_soundEngine->playInternalSounds(index.toInt(),count.toInt()); + } +} + +void GameEngine::gameOver(bool youWin) +{ + qDebug() << "GameEngine::gameOver() "<< youWin; + QMetaObject::invokeMethod(m_GameGml, "gameOver", Qt::AutoConnection,Q_ARG(QVariant, youWin)); +} + +void GameEngine::pauseGame() { + QMetaObject::invokeMethod(m_GameGml, "pauseGame", Qt::AutoConnection); +} + + +QVariant GameEngine::isSymbian() +{ +#ifdef Q_OS_SYMBIAN + return QVariant(true); +#else + return QVariant(false); +#endif +} + +QVariant GameEngine::isMaemo() +{ +#ifdef Q_WS_MAEMO_5 + return QVariant(true); +#else + return QVariant(false); +#endif +} + +QVariant GameEngine::isWindows() +{ +#ifdef Q_OS_WIN + return QVariant(true); +#else + return QVariant(false); +#endif +} + +void GameEngine::vibra() +{ +#ifdef Q_OS_SYMBIAN + if (iVibrate){ + TRAPD(err, iVibrate->StartVibraL(4000,KHWRMVibraMaxIntensity)); + } +#endif +} + +void GameEngine::fastVibra() +{ +#ifdef Q_OS_SYMBIAN + if (iVibrate){ + TRAPD(err, iVibrate->StartVibraL(100,KHWRMVibraMaxIntensity)); + } +#endif +} + +void GameEngine::openLink(QVariant link) +{ +QDesktopServices::openUrl(QUrl(link.toString())); +} + diff --git a/demos/mobile/quickhit/gameengine.h b/demos/mobile/quickhit/gameengine.h new file mode 100644 index 00000000..79811d2b --- /dev/null +++ b/demos/mobile/quickhit/gameengine.h @@ -0,0 +1,148 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#ifndef GAMEENGINE_H +#define GAMEENGINE_H + +#include +#include +#include +#include +#include + +#ifdef Q_OS_SYMBIAN +#include +#endif + +// QtMobility +#if defined Q_OS_SYMBIAN || defined Q_WS_MAEMO_5 +#include +QTM_USE_NAMESPACE +#endif + +class CInvSounds; +class LevelPluginInterface; +class GameEngine : public QObject +{ + Q_OBJECT + +public: + GameEngine(QObject* parent); + ~GameEngine(); + void timerEvent(QTimerEvent *); + void setGameLevel(LevelPluginInterface* level); + void setPluginList(QList plugins); + void pauseGame(); + +public: + Q_INVOKABLE void enableEngineTimer(QVariant enable); + Q_INVOKABLE QVariant randInt(QVariant low, QVariant high); + Q_INVOKABLE void enableSounds(QVariant enable); + Q_INVOKABLE void playSound(QVariant index); + Q_INVOKABLE void playSounds(QVariant index, QVariant count); + Q_INVOKABLE void playInternalSound(QVariant index); + Q_INVOKABLE void playInternalSounds(QVariant index, QVariant count); + Q_INVOKABLE QVariant pluginList(); + Q_INVOKABLE void findQmlObjects(); + Q_INVOKABLE void clearQmlObjects(); + Q_INVOKABLE void pauseLevel(QVariant doPause); + Q_INVOKABLE void gameStartSound(); + + Q_INVOKABLE QVariant isSymbian(); + Q_INVOKABLE QVariant isMaemo(); + Q_INVOKABLE QVariant isWindows(); + + Q_INVOKABLE void vibra(); + Q_INVOKABLE void fastVibra(); + + Q_INVOKABLE void openLink(QVariant link); + + +private slots: +#if defined Q_OS_SYMBIAN || defined Q_WS_MAEMO_5 + void currentProfileChanged (QSystemDeviceInfo::Profile); +#endif + +public: + void setGameQml(QObject* o); + +private: + void findMissiles(QObject* rootObject); + void findEnemies(QObject* rootObject); + void setLevelQml(QObject* o) {m_levelQml = o;} + void setEnemiesGridQml(QObject* o); + void setMyShipQml(QObject* o); + void gameOver(bool youWin); + void selectVisibleEnemy(int& start, int& end); + +private: + void doHitTest(); + void doEnemyMissile(); + +private: + bool m_enableEnemyMissiles; + QMutex m_enemyListMutex; + QList m_enemyList; + QList m_missileList; + QList m_enemyMissileList; + QObject* m_levelQml; + QDeclarativeItem* m_enemiesGridGml; + QDeclarativeItem* m_myShipGml; + QDeclarativeItem* m_GameGml; + + LevelPluginInterface* m_gameLevel; + CInvSounds* m_soundEngine; + QList m_pluginList; + + int m_timerId; + int m_doEnemyMissile; + +#if defined Q_OS_SYMBIAN || defined Q_WS_MAEMO_5 + QSystemDeviceInfo* m_systemDeviceInfo; +#endif + bool m_silent; + +#ifdef Q_OS_SYMBIAN + CHWRMVibra* iVibrate; +#endif + +}; + +#endif // GAMEENGINE_H diff --git a/demos/mobile/quickhit/gfx/back.png b/demos/mobile/quickhit/gfx/back.png new file mode 100644 index 00000000..bb66f740 Binary files /dev/null and b/demos/mobile/quickhit/gfx/back.png differ diff --git a/demos/mobile/quickhit/gfx/background2.png b/demos/mobile/quickhit/gfx/background2.png new file mode 100644 index 00000000..c81875ac Binary files /dev/null and b/demos/mobile/quickhit/gfx/background2.png differ diff --git a/demos/mobile/quickhit/gfx/bigship.png b/demos/mobile/quickhit/gfx/bigship.png new file mode 100644 index 00000000..b88dc321 Binary files /dev/null and b/demos/mobile/quickhit/gfx/bigship.png differ diff --git a/demos/mobile/quickhit/gfx/exit.png b/demos/mobile/quickhit/gfx/exit.png new file mode 100644 index 00000000..a45abd6f Binary files /dev/null and b/demos/mobile/quickhit/gfx/exit.png differ diff --git a/demos/mobile/quickhit/gfx/pause.png b/demos/mobile/quickhit/gfx/pause.png new file mode 100644 index 00000000..05709087 Binary files /dev/null and b/demos/mobile/quickhit/gfx/pause.png differ diff --git a/demos/mobile/quickhit/gfx/quickhit_logo.png b/demos/mobile/quickhit/gfx/quickhit_logo.png new file mode 100644 index 00000000..0b505c70 Binary files /dev/null and b/demos/mobile/quickhit/gfx/quickhit_logo.png differ diff --git a/demos/mobile/quickhit/gfx/soundOff.png b/demos/mobile/quickhit/gfx/soundOff.png new file mode 100644 index 00000000..fed8520a Binary files /dev/null and b/demos/mobile/quickhit/gfx/soundOff.png differ diff --git a/demos/mobile/quickhit/gfx/soundOn.png b/demos/mobile/quickhit/gfx/soundOn.png new file mode 100644 index 00000000..03bd80e9 Binary files /dev/null and b/demos/mobile/quickhit/gfx/soundOn.png differ diff --git a/demos/mobile/quickhit/icon.svg b/demos/mobile/quickhit/icon.svg new file mode 100644 index 00000000..3795e8d9 --- /dev/null +++ b/demos/mobile/quickhit/icon.svg @@ -0,0 +1,305 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/demos/mobile/quickhit/main.cpp b/demos/mobile/quickhit/main.cpp new file mode 100644 index 00000000..e6e021da --- /dev/null +++ b/demos/mobile/quickhit/main.cpp @@ -0,0 +1,101 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#include +#include +#include "mainwindow.h" + +// Lock S60 orientation +#ifdef Q_OS_SYMBIAN +#include +#include +#include +#include +#endif + +#ifndef QT_NO_OPENGL + #include +#endif + + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + + // Lock S60 orientation +#ifdef Q_OS_SYMBIAN + CAknAppUi* appUi = dynamic_cast (CEikonEnv::Static()->AppUi()); + TRAPD(error, + if (appUi) { + appUi->SetOrientationL(CAknAppUi::EAppUiOrientationPortrait); + } + ); +#endif + + MainWindow w; + +#ifndef QT_NO_OPENGL + // Use QGLWidget to get the opengl support if available + QGLFormat format = QGLFormat::defaultFormat(); + format.setSampleBuffers(false); + + QGLWidget *glWidget = new QGLWidget(format); + glWidget->setAutoFillBackground(false); + w.setViewport(glWidget); // ownership of glWidget is taken +#endif + + QObject *rootObject = dynamic_cast(w.rootObject()); + + // For Qt.exit() from QML + QObject::connect((QObject*)w.engine(), SIGNAL(quit()), &a, SLOT(quit())); + // Level activation signal from QML + QObject::connect(rootObject, SIGNAL(levelActivated(int)), &w, SLOT(levelActivated(int))); + +#if defined (Q_OS_SYMBIAN) || defined (Q_WS_MAEMO_5) + w.setGeometry(QApplication::desktop()->screenGeometry()); + w.showFullScreen(); +#else + w.setGeometry(100,100,360,640); + w.setFixedSize(360,640); + w.show(); +#endif + + return a.exec(); +} diff --git a/demos/mobile/quickhit/mainwindow.cpp b/demos/mobile/quickhit/mainwindow.cpp new file mode 100644 index 00000000..1d146aa6 --- /dev/null +++ b/demos/mobile/quickhit/mainwindow.cpp @@ -0,0 +1,248 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#include "mainwindow.h" +#include "gameengine.h" +#include "plugins/levelplugininterface.h" + +#include +#include +#include +#include +#include +#include + +MainWindow::MainWindow(QWidget *parent) + : QDeclarativeView(parent) +{ + +#ifdef Q_WS_MAEMO_5 + window()->setAttribute(Qt::WA_Maemo5PortraitOrientation, true); +#endif + + // Game engine + m_gameEngine = new GameEngine(this); + + // Load all levels plugins + m_levelPlugin = 0; + loadLevelPlugins(); + + // QML main window + engine()->addImportPath("./imports"); + setResizeMode(QDeclarativeView::SizeRootObjectToView); + + // Set game engine visible to QML + rootContext()->setContextProperty("GameEngine", m_gameEngine); + + // Set QML source + setSource(QUrl("qrc:/Game.qml")); + //setSource(QUrl("../QuickHit/Game.qml")); + + // Store QML root object for game engine + QObject *ro = static_cast(rootObject()); + m_gameEngine->setGameQml(ro); + m_gameEngine->findQmlObjects(); + + // Application foreground / background event filter for filterin incoming call (window) + // when game will be paused + m_eventFilter = new MyEventFilter(this); + QObject::connect(m_eventFilter,SIGNAL(activationChangeFiltered()),this,SLOT(activationChangeFiltered())); + qApp->installEventFilter(m_eventFilter); + + // Remove context menu from the all widgets + QWidgetList widgets = QApplication::allWidgets(); + QWidget* w = 0; + foreach (w,widgets){ + w->setContextMenuPolicy(Qt::NoContextMenu); + } +} + +MainWindow::~MainWindow() +{ + for (int i=0;iunload(); + } + m_plugins.clear(); + +} + +void MainWindow::activationChangeFiltered() +{ + m_gameEngine->pauseGame(); +} + +void MainWindow::levelActivated(int index) +{ + // Set level for the game engine + createPlugin(index); + rootContext()->setContextProperty("LevelPlugin", m_levelPlugin); + m_gameEngine->setGameLevel(m_levelPlugin); +} + +void MainWindow::loadLevelPlugins() +{ +#if defined (Q_OS_SYMBIAN) + bool exists_c = loadPlugins("c", "quickhitlevels"); + bool exists_e = loadPlugins("e", "quickhitlevels"); + bool exists_f = loadPlugins("f", "quickhitlevels"); + if (exists_c || exists_e || exists_f) { + m_gameEngine->setPluginList(m_plugins); + createPlugin(); + } + else { + //QMessageBox::information(this, "QuickHit", "Could not load any of the quickhitlevels"); + } +#else + if (loadPlugins("c", "quickhitlevels")) { + m_gameEngine->setPluginList(m_plugins); + createPlugin(); + } + else { + //QMessageBox::information(this, "QuickHit", "Could not load any of the quickhitlevels"); + } + + +#endif +} + +bool MainWindow::loadPlugins(QString drive, QString pluginDir) +{ +#if defined (Q_OS_SYMBIAN) + QDir pluginsDir(drive + ":" + QLibraryInfo::location(QLibraryInfo::PluginsPath)); +#elif defined Q_OS_WIN32 + QDir pluginsDir = QDir::currentPath(); +#else + QDir pluginsDir(QLibraryInfo::location(QLibraryInfo::PluginsPath)); +#endif + pluginsDir.cd(pluginDir); + + qDebug() << "Loads plugins from : " << pluginsDir.path(); + + bool newPluginsLoaded = false; + + foreach (QString fileName, pluginsDir.entryList(QDir::Files)) + { + // Accept only plugin files +#if defined (Q_OS_SYMBIAN) + if (fileName.contains(".qtplugin",Qt::CaseInsensitive)) { +#elif defined (Q_WS_MAEMO_5) + if (fileName.contains(".so",Qt::CaseInsensitive)) { +#else + if (fileName.contains(".dll",Qt::CaseInsensitive)) { +#endif + + // Create plugin loader + QPluginLoader* pluginLoader = new QPluginLoader(pluginsDir.absoluteFilePath(fileName)); + // Load plugin + bool ret = pluginLoader->load(); + if (!ret) { + // Loading failed + qDebug() << "Could not load plugin " << fileName; + } else { + // Loading done + // Test creating plugin + QObject *plugin = 0; + LevelPluginInterface* pluginIF = 0; + plugin = pluginLoader->instance(); + pluginIF = qobject_cast (plugin); + if (pluginIF) { + qDebug() << "Plugin can be created"; + // Store loader to array + m_plugins.append(pluginLoader); + newPluginsLoaded = true; + } else { + pluginLoader->unload(); + qDebug() << "Plugin can NOT be created!"; + } + } + } + } + + return newPluginsLoaded; +} + + +void MainWindow::createPlugin(int index) +{ + if (index == -1) { + return; + } + + m_levelPlugin = 0; + + // Try to create plugin instance + QPluginLoader* pluginLoader = m_plugins[index]; + QObject *plugin = pluginLoader->instance(); + if (plugin) { + // Plugin instance created + // Cast plugin to LevelPluginInterface, that is common for all plugins + LevelPluginInterface* pluginIF = qobject_cast (plugin); + m_levelPlugin = pluginIF; + qDebug() << "Plugin created: " << index; + } + else { + qDebug() << "Creating plugin failed!"; + QMessageBox::information(this, "QuickHit", "Could not create quickhitlevels"); + } +} + +void MainWindow::printObjectTree(QObject* parent) +{ + if (parent) { + qDebug() << "className:" << parent->metaObject()->className(); + qDebug() << "objectName:" << parent->objectName(); + + QObjectList list = parent->children(); + QObject* item; + foreach (item,list) { + if (item->children().count()>0) { + qDebug() << "--Childrens found--"; + printObjectTree(item); + } else { + qDebug() << "className:" << item->metaObject()->className(); + qDebug() << "objectName:" << item->objectName(); + } + } + } else { + qDebug() << "object NULL"; + } + +} + diff --git a/demos/mobile/quickhit/mainwindow.h b/demos/mobile/quickhit/mainwindow.h new file mode 100644 index 00000000..a77c16b2 --- /dev/null +++ b/demos/mobile/quickhit/mainwindow.h @@ -0,0 +1,85 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "myeventfilter.h" + +class GameEngine; +class LevelPluginInterface; + +class MainWindow : public QDeclarativeView +{ + Q_OBJECT + +public: + MainWindow(QWidget *parent = 0); + ~MainWindow(); + +public slots: + void levelActivated(int); + void activationChangeFiltered(); + +private: + void printObjectTree(QObject* parent); + void loadLevelPlugins(); + bool loadPlugins(QString drive, QString pluginDir); + void createPlugin(int index = -1); + +private: + GameEngine* m_gameEngine; + LevelPluginInterface* m_levelPlugin; + QList m_plugins; + + MyEventFilter* m_eventFilter; +}; + +#endif // MAINWINDOW_H diff --git a/demos/mobile/quickhit/myeventfilter.cpp b/demos/mobile/quickhit/myeventfilter.cpp new file mode 100644 index 00000000..09ae77db --- /dev/null +++ b/demos/mobile/quickhit/myeventfilter.cpp @@ -0,0 +1,67 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#include +#include "myeventfilter.h" + +MyEventFilter::MyEventFilter(QObject *parent) : + QObject(parent) +{ +} + +MyEventFilter::~MyEventFilter() +{ +} + +bool MyEventFilter::eventFilter(QObject *obj, QEvent *event) +{ + // http://doc.trolltech.com/4.7/qevent.html#QEvent + + // QEvent::ActivationChange : The application has been made available to the user. + + if (event->type() == QEvent::ActivationChange) { + emit activationChangeFiltered(); + qDebug() << "ActivationChangeFiltered()"; + return false; + } else { + // standard event processing + return QObject::eventFilter(obj, event); + } +} diff --git a/demos/mobile/quickhit/myeventfilter.h b/demos/mobile/quickhit/myeventfilter.h new file mode 100644 index 00000000..4d2a43e0 --- /dev/null +++ b/demos/mobile/quickhit/myeventfilter.h @@ -0,0 +1,63 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#ifndef KEYEVENTLISTENER_H +#define KEYEVENTLISTENER_H + +#include +#include + +class MyEventFilter : public QObject +{ + Q_OBJECT + +public: + MyEventFilter(QObject *parent = 0); + ~MyEventFilter(); + +protected: + bool eventFilter(QObject *obj, QEvent *event); + +signals: + void activationChangeFiltered(); + +}; + +#endif // KEYEVENTLISTENER_H diff --git a/demos/mobile/quickhit/plugins/LevelOne/Level.qml b/demos/mobile/quickhit/plugins/LevelOne/Level.qml new file mode 100644 index 00000000..d5eaf02e --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelOne/Level.qml @@ -0,0 +1,214 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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 1.0 +import Qt.labs.particles 1.0 + +Rectangle { + id: enemies + anchors.fill: parent + color: "black" + + + // Background image for the level + Image { + id: background1 + source: "file:/"+LevelPlugin.pictureRootPath()+"background3.png" + fillMode: Image.PreserveAspectCrop + smooth: true + //anchors.fill: parent + width: parent.width + height: parent.height + } + + + // *************************************************** + // *** NOTE: This is mandatory for all level QML files + function pause(doPause) { + if (doPause) { + rightLeftAnim.pause() + upToDownAnim.pause() + } else { + rightLeftAnim.resume() + upToDownAnim.resume() + } + } + + + // *************************************************** + // *** NOTE: This is mandatory for all level QML files + objectName: "level" + + property int enemySpeed: LevelPlugin.enemySpeed() + property int enemyMaxWidth + + // Create enemies dynamically + function createEnemies(amount) { + var b = false; + for (var i=0;i gameArea.width) { + enemyMaxWidth = gameArea.width / (enemyCountInCol + 1); + } + else { + enemyMaxWidth = LevelPlugin.graphSize(LevelPlugin.pictureRootPath()+"enemy1.png").width; + } + } + + + Component.onCompleted: { + // Calculate enemy max width + calEnemyMaxWidth() + + // Create enemies dynamically after component created + createEnemies(LevelPlugin.enemyCount()) + + // Start animations + enemiesGrid.y = enemiesGrid.height * -1 + rightLeftAnim.restart() + upToDownAnim.restart() + + // Flying stars animation, not in Maemo + if (!GameEngine.isMaemo()) { + starBurstTimer.restart() + } + + GameEngine.playSound(4) // NOTE: Level start sound + } + + + Timer { + id: starBurstTimer + interval: starParticles.lifeSpan+GameEngine.randInt(100,2000); running: false; repeat: true + onTriggered: { + starParticles.burst(GameEngine.randInt(4,10)) + } + } + + + // Right-left animation + SequentialAnimation { + id: rightLeftAnim + loops: Animation.Infinite + NumberAnimation { target:enemiesGrid; property:"x"; from: 0; to:gameArea.width - enemiesGrid.width; easing.type: Easing.OutQuad; duration: 3000 } + NumberAnimation { target:enemiesGrid; property:"x"; to: 0; easing.type: Easing.OutQuad; duration: 3000 } + } + + // Up to down animation + PropertyAnimation { id: upToDownAnim; target:enemiesGrid; property:"y"; to: gameArea.height; + easing.type: Easing.Linear; duration: enemies.enemySpeed } + + Grid { + id: enemiesGrid + objectName: "enemiesGrid" + columns: LevelPlugin.enemyCount() / LevelPlugin.enemyRowCount() + spacing: 8 + } + + // *************************************************** + // *** NOTE: This is mandatory for all level QML files + // Execute explode particle effect + function explode(x,y) { + explodeParticles.x = x + explodeParticles.y = y + explodeParticles.burst(20) + explodeParticles.opacity = 1 + } + // *************************************************** + // *** NOTE: This is mandatory for all level QML files + // Explode particle effect + Particles { + id: explodeParticles + opacity: 0 + width: 1 + height: 1 + emissionRate: 0 + source: "file:/"+LevelPlugin.pictureRootPath()+"red_fire.png" + lifeSpan: 500 + lifeSpanDeviation: 2000 + count: -1 + angle: 270 + angleDeviation: 65 + velocity: 100 + velocityDeviation: 100 + ParticleMotionGravity { + yattractor: 1000 + xattractor: 300 + acceleration: 50 + } + } + + Particles { + id: starParticles + y: -50 + x: 0 + width: parent.width + height: 50 + emissionRate: 0 + source: "file:/"+LevelPlugin.pictureRootPath()+"star3.png" + lifeSpan: 3000 + count: -1 + angle: 90 + velocity: 100 + ParticleMotionGravity { + yattractor: 1000 + xattractor: 500 + } + } + + +} + + + + + diff --git a/demos/mobile/quickhit/plugins/LevelOne/debian/changelog b/demos/mobile/quickhit/plugins/LevelOne/debian/changelog new file mode 100644 index 00000000..de7ac989 --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelOne/debian/changelog @@ -0,0 +1,11 @@ +levelone (1.1.0) unstable; urgency=low + + * Final graphics + + -- Antonio Aloisio Wed, 5 Jan 2011 10:05:04 +0200 + +levelone (1.0.0) unstable; urgency=low + + * First version + + -- Antonio Aloisio Tue, 19 Oct 2010 10:05:04 +0200 diff --git a/demos/mobile/quickhit/plugins/LevelOne/debian/compat b/demos/mobile/quickhit/plugins/LevelOne/debian/compat new file mode 100644 index 00000000..7f8f011e --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelOne/debian/compat @@ -0,0 +1 @@ +7 diff --git a/demos/mobile/quickhit/plugins/LevelOne/debian/control b/demos/mobile/quickhit/plugins/LevelOne/debian/control new file mode 100644 index 00000000..c46afefb --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelOne/debian/control @@ -0,0 +1,11 @@ +Source: levelone +Section: user/games +Priority: extra +Maintainer: Antonio Aloisio +Standards-Version: 3.7.2 + +Package: levelone +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: QuickHit - LevelOne + QuickHit - LevelOne diff --git a/demos/mobile/quickhit/plugins/LevelOne/debian/copyright b/demos/mobile/quickhit/plugins/LevelOne/debian/copyright new file mode 100644 index 00000000..fb9e5a8e --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelOne/debian/copyright @@ -0,0 +1,8 @@ +This is qmultiwinexample, written and maintained by Forum Nokia Antonio Aloisio +on Tue, 19 Oct 2010 10:05:04 +0200 + + +Copyright Holder: Nokia (c) 2010 + +License: + diff --git a/demos/mobile/quickhit/plugins/LevelOne/debian/dirs b/demos/mobile/quickhit/plugins/LevelOne/debian/dirs new file mode 100644 index 00000000..80507f10 --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelOne/debian/dirs @@ -0,0 +1,2 @@ +usr/bin +usr/share/applications/hildon diff --git a/demos/mobile/quickhit/plugins/LevelOne/debian/postinst b/demos/mobile/quickhit/plugins/LevelOne/debian/postinst new file mode 100644 index 00000000..79fb6ddd --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelOne/debian/postinst @@ -0,0 +1,5 @@ +#!/bin/sh -e + +gtk-update-icon-cache -f /usr/share/icons/hicolor + +exit 0 diff --git a/demos/mobile/quickhit/plugins/LevelOne/debian/rules b/demos/mobile/quickhit/plugins/LevelOne/debian/rules new file mode 100644 index 00000000..53a1d2ea --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelOne/debian/rules @@ -0,0 +1,91 @@ +#!/usr/bin/make -f +# -*- makefile -*- +# Sample debian/rules that uses debhelper. +# This file was originally written by Joey Hess and Craig Small. +# As a special exception, when this file is copied by dh-make into a +# dh-make output file, you may use that output file without restriction. +# This special exception was added by Craig Small in version 0.37 of dh-make. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + + +APPNAME := levelone + + +configure: configure-stamp +configure-stamp: + dh_testdir + # Add here commands to configure the package. + + touch configure-stamp + + +build: build-stamp + +build-stamp: configure-stamp + dh_testdir + + # Add here commands to compile the package. + $(MAKE) + #docbook-to-man debian/$(APPNAME).sgml > $(APPNAME).1 + + touch $@ + +clean: + dh_testdir + dh_testroot + rm -f build-stamp configure-stamp + + # Add here commands to clean up after the build process. + $(MAKE) clean + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + # Add here commands to install the package into debian/$(APPNAME). + $(MAKE) INSTALL_ROOT="$(CURDIR)"/debian/$(APPNAME) install + + +# Build architecture-independent files here. +binary-indep: build install +# We have nothing to do by default. + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + dh_installchangelogs + dh_installdocs + dh_installexamples +# dh_install +# dh_installmenu +# dh_installdebconf +# dh_installlogrotate +# dh_installemacsen +# dh_installpam +# dh_installmime +# dh_python +# dh_installinit +# dh_installcron +# dh_installinfo + dh_installman + dh_link + # dh_strip + dh_compress + dh_fixperms +# dh_perl + dh_makeshlibs + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install configure diff --git a/demos/mobile/quickhit/plugins/LevelOne/gfx/background3.png b/demos/mobile/quickhit/plugins/LevelOne/gfx/background3.png new file mode 100644 index 00000000..c81875ac Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelOne/gfx/background3.png differ diff --git a/demos/mobile/quickhit/plugins/LevelOne/gfx/enemy1.png b/demos/mobile/quickhit/plugins/LevelOne/gfx/enemy1.png new file mode 100644 index 00000000..94f149bd Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelOne/gfx/enemy1.png differ diff --git a/demos/mobile/quickhit/plugins/LevelOne/gfx/enemy2.png b/demos/mobile/quickhit/plugins/LevelOne/gfx/enemy2.png new file mode 100644 index 00000000..448f8ca6 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelOne/gfx/enemy2.png differ diff --git a/demos/mobile/quickhit/plugins/LevelOne/gfx/enemy_missile2.png b/demos/mobile/quickhit/plugins/LevelOne/gfx/enemy_missile2.png new file mode 100644 index 00000000..c0b28d86 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelOne/gfx/enemy_missile2.png differ diff --git a/demos/mobile/quickhit/plugins/LevelOne/gfx/fire.png b/demos/mobile/quickhit/plugins/LevelOne/gfx/fire.png new file mode 100644 index 00000000..84010340 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelOne/gfx/fire.png differ diff --git a/demos/mobile/quickhit/plugins/LevelOne/gfx/fire2.png b/demos/mobile/quickhit/plugins/LevelOne/gfx/fire2.png new file mode 100644 index 00000000..139aa611 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelOne/gfx/fire2.png differ diff --git a/demos/mobile/quickhit/plugins/LevelOne/gfx/missile2.png b/demos/mobile/quickhit/plugins/LevelOne/gfx/missile2.png new file mode 100644 index 00000000..dacd6106 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelOne/gfx/missile2.png differ diff --git a/demos/mobile/quickhit/plugins/LevelOne/gfx/red_fire.png b/demos/mobile/quickhit/plugins/LevelOne/gfx/red_fire.png new file mode 100644 index 00000000..464d603d Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelOne/gfx/red_fire.png differ diff --git a/demos/mobile/quickhit/plugins/LevelOne/gfx/ship.png b/demos/mobile/quickhit/plugins/LevelOne/gfx/ship.png new file mode 100644 index 00000000..cb7851c4 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelOne/gfx/ship.png differ diff --git a/demos/mobile/quickhit/plugins/LevelOne/gfx/star3.png b/demos/mobile/quickhit/plugins/LevelOne/gfx/star3.png new file mode 100644 index 00000000..f37a3917 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelOne/gfx/star3.png differ diff --git a/demos/mobile/quickhit/plugins/LevelOne/gfx/transparent.png b/demos/mobile/quickhit/plugins/LevelOne/gfx/transparent.png new file mode 100644 index 00000000..3aa1e413 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelOne/gfx/transparent.png differ diff --git a/demos/mobile/quickhit/plugins/LevelOne/levelone.cpp b/demos/mobile/quickhit/plugins/LevelOne/levelone.cpp new file mode 100644 index 00000000..99451003 --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelOne/levelone.cpp @@ -0,0 +1,120 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#include "levelone.h" +#include + + +LevelOne::LevelOne() +{ +} + +LevelOne::~LevelOne() +{ +} + +QString LevelOne::pathPrefix() +{ + /* +QDir::rootPath() +For Unix operating systems this returns "/". +For Windows file systems this normally returns "c:/". +On Symbian this typically returns "c:/data", +*/ + +#ifdef Q_WS_MAEMO_5 + return "/home/user/."; +#elif defined Q_OS_WIN32 + return QDir::rootPath(); +#else + //return QDir::rootPath()+"/"; + return "c:/System/"; +#endif +} + +QStringList LevelOne::levelSounds() +{ + QStringList list; + + // NOTE: Mandatory sounds/indexs for the all levels + // 0 = Enemy explode + list.append(LevelOne::pathPrefix()+"quickhitdata/levelone/sound/rocket_explosion.wav"); + // 1 = You explode + list.append(LevelOne::pathPrefix()+"quickhitdata/levelone/sound/crash.wav"); + // 2 = Missile fires + list.append(LevelOne::pathPrefix()+"quickhitdata/levelone/sound/rocket_explosion.wav"); + // 3 = Emeny Missile fires + list.append(LevelOne::pathPrefix()+"quickhitdata/levelone/sound/rocket.wav"); + + // Additional sounds + // Level starts + list.append(LevelOne::pathPrefix()+"quickhitdata/levelone/sound/levelonestart.wav"); + + return list; +} + +QVariant LevelOne::getData(QVariant key) +{ + QVariant ret; + switch (key.toInt()) { + case 1: { + // Any data what you need for this key + // Set your data into QVariant (ret) + break; + } + default: { + break; + } + } + return ret; +} + +QVariant LevelOne::graphSize(QVariant pathToGraph) +{ + QVariant ret; + m_imageReader.setFileName(pathToGraph.toString()); + QSize imageSize = m_imageReader.size(); + ret.setValue(imageSize); + return ret; +} + +// This Qt macro exports the plugin class LevelOne with the name levelplugins. +// There should be exactly one occurrence of this LevelOne macro in a Qt plugin's source code. +Q_EXPORT_PLUGIN2(levelplugins, LevelOne); diff --git a/demos/mobile/quickhit/plugins/LevelOne/levelone.h b/demos/mobile/quickhit/plugins/LevelOne/levelone.h new file mode 100644 index 00000000..39240023 --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelOne/levelone.h @@ -0,0 +1,91 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#ifndef LEVELONE_H +#define LEVELONE_H + +#include +#include +#include + +#include "levelplugininterface.h" + +class LevelOne : public LevelPluginInterface +{ + Q_OBJECT + + // This macro tells Qt which interfaces the class implements. + // This is used when implementing plugins. + Q_INTERFACES(LevelPluginInterface) + +public: + LevelOne(); + ~LevelOne(); + + static QString pathPrefix(); + +public: // From LevelPluginInterface + + QStringList levelSounds(); + + Q_INVOKABLE QVariant getData(QVariant key); + + Q_INVOKABLE QVariant graphSize(QVariant pathToGraph); + + Q_INVOKABLE QVariant enemyCount() { return QVariant(30); } // 6x5=30 + Q_INVOKABLE QVariant enemyRowCount() { return QVariant(6); } // 6 rows of enemies + Q_INVOKABLE QVariant enemySpeed() { return QVariant(36000); } + Q_INVOKABLE QVariant enemyFireSpeed() { return QVariant(200); } + + // Root paths for the QML, Pictures and Sounds + Q_INVOKABLE QVariant qmlRootPath() { return QVariant(LevelOne::pathPrefix()+"quickhitdata/levelone/"); } + Q_INVOKABLE QVariant pictureRootPath() { return QVariant(LevelOne::pathPrefix()+"quickhitdata/levelone/gfx/"); } + + // Full paths + Q_INVOKABLE QVariant pathToTransparentEnemyPic() {return QVariant(LevelOne::pathPrefix()+"quickhitdata/levelone/gfx/transparent.png");} + Q_INVOKABLE QVariant pathToMissilePic() {return QVariant(LevelOne::pathPrefix()+"quickhitdata/levelone/gfx/missile2.png");} + Q_INVOKABLE QVariant pathToEnemyMissilePic() {return QVariant(LevelOne::pathPrefix()+"quickhitdata/levelone/gfx/enemy_missile2.png");} + Q_INVOKABLE QVariant pathToMyShipPic() {return QVariant(LevelOne::pathPrefix()+"quickhitdata/levelone/gfx/ship.png");} + +protected: + QImageReader m_imageReader; +}; + +#endif // LEVELONE_H diff --git a/demos/mobile/quickhit/plugins/LevelOne/levelone.pro b/demos/mobile/quickhit/plugins/LevelOne/levelone.pro new file mode 100644 index 00000000..23bd275a --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelOne/levelone.pro @@ -0,0 +1,97 @@ +TEMPLATE = lib + +#VERSION = 1.1.0 + +CONFIG += plugin + +INCLUDEPATH += ../ + +HEADERS = levelone.h + +SOURCES = levelone.cpp + +TARGET = $$qtLibraryTarget(levelone) + +OTHER_FILES += Level.qml + + +# SYMBIAN --------------------------- +symbian: { +# Load predefined include paths (e.g. QT_PLUGINS_BASE_DIR) to be used in the pro-files +load(data_caging_paths) + +# EPOCALLOWDLLDATA have to set true because Qt macros has initialised global data +TARGET.EPOCALLOWDLLDATA=1 +TARGET.UID3 = 0xE07dfb66 + +TARGET.CAPABILITY = NetworkServices \ + Location \ + ReadUserData \ + WriteUserData \ + LocalServices \ + UserEnvironment + +# Defines plugin stub file into Symbian .pkg package +pluginDep.sources = levelone.dll +pluginDep.path = $$QT_PLUGINS_BASE_DIR/quickhitlevels +DEPLOYMENT += pluginDep + +# Graphics and Sounds for the plugin +BLD_INF_RULES.prj_exports += "gfx/background3.png ../winscw/c/Data/gfx/background3.png" \ +"gfx/enemy1.png ../winscw/c/Data/gfx/enemy1.png" \ +"gfx/enemy2.png ../winscw/c/Data/gfx/enemy2.png" \ +"gfx/red_fire.png ../winscw/c/Data/gfx/red_fire.png" \ +"gfx/missile2.png ../winscw/c/Data/gfx/missile2.png" \ +"gfx/enemy_missile2.png ../winscw/c/Data/gfx/enemy_missile2.png" \ +"gfx/ship.png ../winscw/c/Data/gfx/ship.png" \ +"gfx/transparent.png ../winscw/c/Data/gfx/transparent.png" \ +"gfx/star3.png ../winscw/c/Data/gfx/star3.png" \ +"sound/crash.wav ../winscw/c/Data/sound/crash.wav" \ +"sound/rocket.wav ../winscw/c/Data/sound/rocket.wav" \ +"sound/rocket_explosion.wav ../winscw/c/Data/sound/rocket_explosion.wav" \ +"sound/levelonestart.wav ../winscw/c/Data/sound/levelonestart.wav" \ +"Level.qml ../winscw/c/Data/Level.qml" + + +myQml.sources = level.qml +myQml.path = c:/system/quickhitdata/levelone +myGraphic.sources = gfx/* +myGraphic.path = c:/system/quickhitdata/levelone/gfx +mySound.sources = sound/* +mySound.path = c:/system/quickhitdata/levelone/sound +# Takes qml, graphics and sounds into Symbian SIS package file (.pkg) +DEPLOYMENT += myQml myGraphic mySound + +target.path += $$[QT_INSTALL_PLUGINS]/quickhitlevels +# Installs binaries +INSTALLS += target +} + +# WINDOWS --------------------------- +win32: { +# Copy level sounds and graphics into right destination +system(mkdir c:\\quickhitdata\\levelone) +system(mkdir c:\\quickhitdata\\levelone\\gfx) +system(mkdir c:\\quickhitdata\\levelone\\sound) +system(copy *.qml c:\\quickhitdata\\levelone) +system(copy gfx\\*.* c:\\quickhitdata\\levelone\\gfx) +system(copy sound\\*.* c:\\quickhitdata\\levelone\\sound) + +# Installs binaries +target.path += $$[QT_INSTALL_PLUGINS]/quickhitlevels +INSTALLS += target +} + +# MAEMO_5 --------------------------- +maemo5: { +myQml.path = /home/user/.quickhitdata/levelone/ +myQml.files += Level.qml +myGraphic.path = /home/user/.quickhitdata/levelone/gfx/ +myGraphic.files += gfx/* +mySound.path = /home/user/.quickhitdata/levelone/sound/ +mySound.files += sound/* + +target.path += /usr/lib/qt4/plugins/quickhitlevels +# Installs qml, binaries, sounds and graphics +INSTALLS += target myGraphic mySound myQml +} diff --git a/demos/mobile/quickhit/plugins/LevelOne/sound/crash.wav b/demos/mobile/quickhit/plugins/LevelOne/sound/crash.wav new file mode 100644 index 00000000..8076f0f6 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelOne/sound/crash.wav differ diff --git a/demos/mobile/quickhit/plugins/LevelOne/sound/levelonestart.wav b/demos/mobile/quickhit/plugins/LevelOne/sound/levelonestart.wav new file mode 100644 index 00000000..e9e3ac03 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelOne/sound/levelonestart.wav differ diff --git a/demos/mobile/quickhit/plugins/LevelOne/sound/rocket.wav b/demos/mobile/quickhit/plugins/LevelOne/sound/rocket.wav new file mode 100644 index 00000000..8c0dee9a Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelOne/sound/rocket.wav differ diff --git a/demos/mobile/quickhit/plugins/LevelOne/sound/rocket_explosion.wav b/demos/mobile/quickhit/plugins/LevelOne/sound/rocket_explosion.wav new file mode 100644 index 00000000..d2b451cc Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelOne/sound/rocket_explosion.wav differ diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/debian/changelog b/demos/mobile/quickhit/plugins/LevelTemplate/debian/changelog new file mode 100644 index 00000000..a5e0a1bd --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTemplate/debian/changelog @@ -0,0 +1,11 @@ +leveltemplate (1.1.0) unstable; urgency=low + + * Final graphics + + -- Antonio Aloisio Wed, 5 Jan 2011 10:05:04 +0200 + +leveltemplate (1.0.0) unstable; urgency=low + + * First version + + -- Antonio Aloisio Tue, 19 Oct 2010 10:05:04 +0200 diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/debian/compat b/demos/mobile/quickhit/plugins/LevelTemplate/debian/compat new file mode 100644 index 00000000..7f8f011e --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTemplate/debian/compat @@ -0,0 +1 @@ +7 diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/debian/control b/demos/mobile/quickhit/plugins/LevelTemplate/debian/control new file mode 100644 index 00000000..68742fdf --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTemplate/debian/control @@ -0,0 +1,11 @@ +Source: leveltemplate +Section: user/games +Priority: extra +Maintainer: Antonio Aloisio +Standards-Version: 3.7.2 + +Package: leveltemplate +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: QuickHit - Level Template + QuickHit - Level Template diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/debian/copyright b/demos/mobile/quickhit/plugins/LevelTemplate/debian/copyright new file mode 100644 index 00000000..f9ee8e22 --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTemplate/debian/copyright @@ -0,0 +1,8 @@ +This is leveltemplate, written and maintained by Forum Nokia Antonio Aloisio +on Tue, 19 Oct 2010 10:05:04 +0200 + + +Copyright Holder: Nokia (c) 2010 + +License: + diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/debian/dirs b/demos/mobile/quickhit/plugins/LevelTemplate/debian/dirs new file mode 100644 index 00000000..80507f10 --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTemplate/debian/dirs @@ -0,0 +1,2 @@ +usr/bin +usr/share/applications/hildon diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/debian/levelone.tarlist b/demos/mobile/quickhit/plugins/LevelTemplate/debian/levelone.tarlist new file mode 100644 index 00000000..f3146fa1 --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTemplate/debian/levelone.tarlist @@ -0,0 +1,41 @@ +755 root root . home / +755 root root . home/maemo / +755 root root . home/maemo/quickhitdata / +755 root root . home/maemo/quickhitdata/levelone / +644 root root . home/maemo/quickhitdata/levelone/Level.qml debian/levelone/home/maemo/quickhitdata/levelone/Level.qml +755 root root . home/maemo/quickhitdata/leveltwo / +755 root root . home/maemo/quickhitdata/leveltwo/gfx / +644 root root . home/maemo/quickhitdata/leveltwo/gfx/background3.png debian/levelone/home/maemo/quickhitdata/leveltwo/gfx/background3.png +644 root root . home/maemo/quickhitdata/leveltwo/gfx/blue_fire.png debian/levelone/home/maemo/quickhitdata/leveltwo/gfx/blue_fire.png +644 root root . home/maemo/quickhitdata/leveltwo/gfx/enemy1.png debian/levelone/home/maemo/quickhitdata/leveltwo/gfx/enemy1.png +644 root root . home/maemo/quickhitdata/leveltwo/gfx/enemy2.png debian/levelone/home/maemo/quickhitdata/leveltwo/gfx/enemy2.png +644 root root . home/maemo/quickhitdata/leveltwo/gfx/enemy_missile2.png debian/levelone/home/maemo/quickhitdata/leveltwo/gfx/enemy_missile2.png +644 root root . home/maemo/quickhitdata/leveltwo/gfx/fire.png debian/levelone/home/maemo/quickhitdata/leveltwo/gfx/fire.png +644 root root . home/maemo/quickhitdata/leveltwo/gfx/fire2.png debian/levelone/home/maemo/quickhitdata/leveltwo/gfx/fire2.png +644 root root . home/maemo/quickhitdata/leveltwo/gfx/missile.png debian/levelone/home/maemo/quickhitdata/leveltwo/gfx/missile.png +644 root root . home/maemo/quickhitdata/leveltwo/gfx/missile2.png debian/levelone/home/maemo/quickhitdata/leveltwo/gfx/missile2.png +644 root root . home/maemo/quickhitdata/leveltwo/gfx/moon.png debian/levelone/home/maemo/quickhitdata/leveltwo/gfx/moon.png +644 root root . home/maemo/quickhitdata/leveltwo/gfx/ship.png debian/levelone/home/maemo/quickhitdata/leveltwo/gfx/ship.png +644 root root . home/maemo/quickhitdata/leveltwo/gfx/star3.png debian/levelone/home/maemo/quickhitdata/leveltwo/gfx/star3.png +644 root root . home/maemo/quickhitdata/leveltwo/gfx/transparent.png debian/levelone/home/maemo/quickhitdata/leveltwo/gfx/transparent.png +755 root root . home/maemo/quickhitdata/leveltwo/sound / +644 root root . home/maemo/quickhitdata/leveltwo/sound/crash.wav debian/levelone/home/maemo/quickhitdata/leveltwo/sound/crash.wav +644 root root . home/maemo/quickhitdata/leveltwo/sound/enemy_explosion.wav debian/levelone/home/maemo/quickhitdata/leveltwo/sound/enemy_explosion.wav +644 root root . home/maemo/quickhitdata/leveltwo/sound/laser.wav debian/levelone/home/maemo/quickhitdata/leveltwo/sound/laser.wav +644 root root . home/maemo/quickhitdata/leveltwo/sound/myship_explosion.wav debian/levelone/home/maemo/quickhitdata/leveltwo/sound/myship_explosion.wav +644 root root . home/maemo/quickhitdata/leveltwo/sound/rocket.wav debian/levelone/home/maemo/quickhitdata/leveltwo/sound/rocket.wav +644 root root . home/maemo/quickhitdata/leveltwo/sound/rocket_explosion.wav debian/levelone/home/maemo/quickhitdata/leveltwo/sound/rocket_explosion.wav +755 root root . usr / +755 root root . usr/bin / +755 root root . usr/lib / +755 root root . usr/lib/qt4 / +755 root root . usr/lib/qt4/plugins / +755 root root . usr/lib/qt4/plugins/quickhitlevels / +644 root root . usr/lib/qt4/plugins/quickhitlevels/libleveltwo.so debian/levelone/usr/lib/qt4/plugins/quickhitlevels/libleveltwo.so +755 root root . usr/share / +755 root root . usr/share/applications / +755 root root . usr/share/applications/hildon / +755 root root . usr/share/doc / +755 root root . usr/share/doc/levelone / +644 root root . usr/share/doc/levelone/changelog.gz debian/levelone/usr/share/doc/levelone/changelog.gz +644 root root . usr/share/doc/levelone/copyright debian/levelone/usr/share/doc/levelone/copyright diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/debian/postinst b/demos/mobile/quickhit/plugins/LevelTemplate/debian/postinst new file mode 100644 index 00000000..79fb6ddd --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTemplate/debian/postinst @@ -0,0 +1,5 @@ +#!/bin/sh -e + +gtk-update-icon-cache -f /usr/share/icons/hicolor + +exit 0 diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/debian/rules b/demos/mobile/quickhit/plugins/LevelTemplate/debian/rules new file mode 100644 index 00000000..7f30ca37 --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTemplate/debian/rules @@ -0,0 +1,91 @@ +#!/usr/bin/make -f +# -*- makefile -*- +# Sample debian/rules that uses debhelper. +# This file was originally written by Joey Hess and Craig Small. +# As a special exception, when this file is copied by dh-make into a +# dh-make output file, you may use that output file without restriction. +# This special exception was added by Craig Small in version 0.37 of dh-make. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + + +APPNAME := leveltemplate + + +configure: configure-stamp +configure-stamp: + dh_testdir + # Add here commands to configure the package. + + touch configure-stamp + + +build: build-stamp + +build-stamp: configure-stamp + dh_testdir + + # Add here commands to compile the package. + $(MAKE) + #docbook-to-man debian/$(APPNAME).sgml > $(APPNAME).1 + + touch $@ + +clean: + dh_testdir + dh_testroot + rm -f build-stamp configure-stamp + + # Add here commands to clean up after the build process. + $(MAKE) clean + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + # Add here commands to install the package into debian/$(APPNAME). + $(MAKE) INSTALL_ROOT="$(CURDIR)"/debian/$(APPNAME) install + + +# Build architecture-independent files here. +binary-indep: build install +# We have nothing to do by default. + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + dh_installchangelogs + dh_installdocs + dh_installexamples +# dh_install +# dh_installmenu +# dh_installdebconf +# dh_installlogrotate +# dh_installemacsen +# dh_installpam +# dh_installmime +# dh_python +# dh_installinit +# dh_installcron +# dh_installinfo + dh_installman + dh_link + # dh_strip + dh_compress + dh_fixperms +# dh_perl + dh_makeshlibs + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install configure diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/gfx/blue_fire.png b/demos/mobile/quickhit/plugins/LevelTemplate/gfx/blue_fire.png new file mode 100644 index 00000000..8667a397 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTemplate/gfx/blue_fire.png differ diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/gfx/enemy1.png b/demos/mobile/quickhit/plugins/LevelTemplate/gfx/enemy1.png new file mode 100644 index 00000000..94f149bd Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTemplate/gfx/enemy1.png differ diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/gfx/enemy2.png b/demos/mobile/quickhit/plugins/LevelTemplate/gfx/enemy2.png new file mode 100644 index 00000000..448f8ca6 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTemplate/gfx/enemy2.png differ diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/gfx/enemy_missile2.png b/demos/mobile/quickhit/plugins/LevelTemplate/gfx/enemy_missile2.png new file mode 100644 index 00000000..c0b28d86 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTemplate/gfx/enemy_missile2.png differ diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/gfx/missile2.png b/demos/mobile/quickhit/plugins/LevelTemplate/gfx/missile2.png new file mode 100644 index 00000000..dacd6106 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTemplate/gfx/missile2.png differ diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/gfx/ship.png b/demos/mobile/quickhit/plugins/LevelTemplate/gfx/ship.png new file mode 100644 index 00000000..cb7851c4 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTemplate/gfx/ship.png differ diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/gfx/transparent.png b/demos/mobile/quickhit/plugins/LevelTemplate/gfx/transparent.png new file mode 100644 index 00000000..3aa1e413 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTemplate/gfx/transparent.png differ diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/leveltemplate.cpp b/demos/mobile/quickhit/plugins/LevelTemplate/leveltemplate.cpp new file mode 100644 index 00000000..e430dc1d --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTemplate/leveltemplate.cpp @@ -0,0 +1,126 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#include "leveltemplate.h" +#include + + +LevelTemplate::LevelTemplate() +{ +} + +LevelTemplate::~LevelTemplate() +{ +} + +QString LevelTemplate::pathPrefix() +{ +/* +QDir::rootPath() +For Unix operating systems this returns "/". +For Windows file systems this normally returns "c:/". +On Symbian this typically returns "c:/data", +*/ + +#ifdef Q_WS_MAEMO_5 + return "/home/user/."; +#elif defined Q_OS_WIN32 + return QDir::rootPath(); +#else + //return QDir::rootPath()+"/"; + return "c:/System/"; +#endif +} + +QStringList LevelTemplate::levelSounds() +{ + QStringList list; + + + // NOTE: Mandatory sounds/indexs for the all levels + // 0 = Enemy explode + list.append(LevelTemplate::pathPrefix()+"quickhitdata/"+LEVEL_NAME+"/sound/enemy_explosion.wav"); + // 1 = You explode + list.append(LevelTemplate::pathPrefix()+"quickhitdata/"+LEVEL_NAME+"/sound/myship_explosion.wav"); + // 2 = Missile fires + list.append(LevelTemplate::pathPrefix()+"quickhitdata/"+LEVEL_NAME+"/sound/laser.wav"); + // 3 = Emeny Missile fires + list.append(LevelTemplate::pathPrefix()+"quickhitdata/"+LEVEL_NAME+"/sound/rocket.wav"); + + // Additional sounds + list.append(LevelTemplate::pathPrefix()+"quickhitdata/"+LEVEL_NAME+"/sound/enableship.wav"); + list.append(LevelTemplate::pathPrefix()+"quickhitdata/"+LEVEL_NAME+"/sound/level2.wav"); + + + return list; +} + +QVariant LevelTemplate::getData(QVariant key) +{ + QVariant ret; + switch (key.toInt()) { + case 1: { + // Any data what you need for this key + // Set your data into QVariant (ret) + break; + } + default: { + break; + } + } + return ret; +} + +QVariant LevelTemplate::graphSize(QVariant pathToGraph) +{ + QVariant ret; + m_imageReader.setFileName(pathToGraph.toString()); + QSize imageSize = m_imageReader.size(); + ret.setValue(imageSize); + return ret; +} + +// This Qt macro exports the plugin class level with the name levelplugins. +// There should be exactly one occurrence of this macro in a Qt plugin's source code. +Q_EXPORT_PLUGIN2(levelplugins, LevelTemplate); + + + + diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/leveltemplate.h b/demos/mobile/quickhit/plugins/LevelTemplate/leveltemplate.h new file mode 100644 index 00000000..413da49d --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTemplate/leveltemplate.h @@ -0,0 +1,95 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#ifndef LevelTemplate_H +#define LevelTemplate_H + +#include +#include +#include + +// Common interface header for all level plugins +#include "levelplugininterface.h" + +// Level name +#define LEVEL_NAME "leveltemplate" + +class LevelTemplate : public LevelPluginInterface +{ + Q_OBJECT + + // This macro tells Qt which interfaces the class implements. + // This is used when implementing plugins. + Q_INTERFACES(LevelPluginInterface) + +public: + LevelTemplate(); + ~LevelTemplate(); + + static QString pathPrefix(); + +public: // From LevelPluginInterface + + QStringList levelSounds(); + + Q_INVOKABLE QVariant getData(QVariant key); + + Q_INVOKABLE QVariant graphSize(QVariant pathToGraph); + + Q_INVOKABLE QVariant enemyCount() { return QVariant(1); } + Q_INVOKABLE QVariant enemyRowCount() { return QVariant(0); } + Q_INVOKABLE QVariant enemySpeed() { return QVariant(20000); } + Q_INVOKABLE QVariant enemyFireSpeed() { return QVariant(2000); } + + // Root paths for the QML, Pictures and Sounds + Q_INVOKABLE QVariant qmlRootPath() { return QVariant(LevelTemplate::pathPrefix()+"quickhitdata/"+LEVEL_NAME+"/"); } + Q_INVOKABLE QVariant pictureRootPath() { return QVariant(LevelTemplate::pathPrefix()+"quickhitdata/"+LEVEL_NAME+"/gfx/"); } + + // Full paths + Q_INVOKABLE QVariant pathToTransparentEnemyPic() {return QVariant(LevelTemplate::pathPrefix()+"quickhitdata/"+LEVEL_NAME+"/gfx/transparent.png");} + Q_INVOKABLE QVariant pathToMissilePic() {return QVariant(LevelTemplate::pathPrefix()+"quickhitdata/"+LEVEL_NAME+"/gfx/missile2.png");} + Q_INVOKABLE QVariant pathToEnemyMissilePic() {return QVariant(LevelTemplate::pathPrefix()+"quickhitdata/"+LEVEL_NAME+"/gfx/enemy_missile2.png");} + Q_INVOKABLE QVariant pathToMyShipPic() {return QVariant(LevelTemplate::pathPrefix()+"quickhitdata/"+LEVEL_NAME+"/gfx/ship.png");} + +protected: + QImageReader m_imageReader; +}; + +#endif // LevelTemplate_H diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/leveltemplate.pro b/demos/mobile/quickhit/plugins/LevelTemplate/leveltemplate.pro new file mode 100644 index 00000000..0eecca7e --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTemplate/leveltemplate.pro @@ -0,0 +1,100 @@ +TEMPLATE = lib + +#VERSION = 1.1.0 + +CONFIG += plugin + +INCLUDEPATH += ../ + +HEADERS = leveltemplate.h + +SOURCES = leveltemplate.cpp + +TARGET = $$qtLibraryTarget(leveltemplate) + +OTHER_FILES += qml/Level.qml \ + qml/Enemy.qml \ + qml/Level.js + + +# SYMBIAN --------------------------- +symbian: { +# Load predefined include paths (e.g. QT_PLUGINS_BASE_DIR) to be used in the pro-files +load(data_caging_paths) + +# EPOCALLOWDLLDATA have to set true because Qt macros has initialised global data +TARGET.EPOCALLOWDLLDATA=1 +TARGET.UID3 = 0xE07dfb68 + +TARGET.CAPABILITY = NetworkServices \ + Location \ + ReadUserData \ + WriteUserData \ + LocalServices \ + UserEnvironment + +# Defines plugin stub file into Symbian .pkg package +pluginDep.sources = leveltemplate.dll +pluginDep.path = $$QT_PLUGINS_BASE_DIR/quickhitlevels +DEPLOYMENT += pluginDep + +# Graphics and Sounds for the plugin +BLD_INF_RULES.prj_exports += "gfx/enemy1.png ../winscw/c/Data/gfx/enemy1.png" \ +"gfx/enemy2.png ../winscw/c/Data/gfx/enemy2.png" \ +"gfx/missile2.png ../winscw/c/Data/gfx/missile2.png" \ +"gfx/enemy_missile2.png ../winscw/c/Data/gfx/enemy_missile2.png" \ +"gfx/ship.png ../winscw/c/Data/gfx/ship.png" \ +"gfx/transparent.png ../winscw/c/Data/gfx/transparent.png" \ +"gfx/blue_fire.png ../winscw/c/Data/gfx/blue_fire.png" \ +"sound/enemy_explosion.wav ../winscw/c/Data/sound/enemy_explosion.wav" \ +"sound/myship_explosion.wav ../winscw/c/Data/sound/myship_explosion.wav" \ +"sound/enableship.wav ../winscw/c/Data/sound/enableship.wav" \ +"sound/laser.wav ../winscw/c/Data/sound/laser.wav" \ +"sound/level2.wav ../winscw/c/Data/sound/level2.wav" \ +"qml/Level.qml ../winscw/c/Data/Level.qml" \ +"qml/Level.js ../winscw/c/Data/Level.js" \ +"qml/Enemy.qml ../winscw/c/Data/Enemy.qml" + + +myQml.sources = qml/* +myQml.path = c:/system/quickhitdata/leveltemplate +myGraphic.sources = gfx/* +myGraphic.path = c:/system/quickhitdata/leveltemplate/gfx +mySound.sources = sound/* +mySound.path = c:/system/quickhitdata/leveltemplate/sound +# Takes qml, graphics and sounds into Symbian SIS package file (.pkg) +DEPLOYMENT += myQml myGraphic mySound + +target.path += $$[QT_INSTALL_PLUGINS]/quickhitlevels +# Installs binaries +INSTALLS += target +} + +# WINDOWS --------------------------- +win32: { +# Copy level sounds and graphics into right destination +system(mkdir c:\quickhitdata\leveltemplate) +system(mkdir c:\quickhitdata\leveltemplate\gfx) +system(mkdir c:\quickhitdata\leveltemplate\sound) +system(copy qml\*.* c:\quickhitdata\leveltemplate) +system(copy gfx\*.* c:\quickhitdata\leveltemplate\gfx) +system(copy sound\*.* c:\quickhitdata\leveltemplate\sound) + +# Installs binaries +target.path += $$[QT_INSTALL_PLUGINS]/quickhitlevels +INSTALLS += target +} + +# MAEMO_5 --------------------------- +maemo5: { +myQml.path = /home/user/.quickhitdata/leveltemplate/ +myQml.files += qml/* +myGraphic.path = /home/user/.quickhitdata/leveltemplate/gfx/ +myGraphic.files += gfx/* +mySound.path = /home/user/.quickhitdata/leveltemplate/sound/ +mySound.files += sound/* + +target.path += /usr/lib/qt4/plugins/quickhitlevels +# Installs qml, binaries, sounds and graphics +INSTALLS += target myGraphic mySound myQml +} diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/qml/Enemy.qml b/demos/mobile/quickhit/plugins/LevelTemplate/qml/Enemy.qml new file mode 100644 index 00000000..05c39718 --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTemplate/qml/Enemy.qml @@ -0,0 +1,61 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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 1.0 + +Image { + id: enemy + + // *************************************************** + // *** NOTE: This "enemy "is mandatory enemy object name for all enemy QML files + objectName: "enemy" + + smooth:true + opacity: 0 // 0=hidden by default + fillMode:Image.PreserveAspectFit + source:"file:/"+LevelPlugin.pictureRootPath()+"enemy1.png" + + property int enemySpeed: LevelPlugin.enemySpeed() + + // *************************************************** + // *** NOTE: This "pause(bool)" function is mandatory for all enemies QML files + function pause(doPause) { + } +} diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/qml/Level.js b/demos/mobile/quickhit/plugins/LevelTemplate/qml/Level.js new file mode 100644 index 00000000..e2aef689 --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTemplate/qml/Level.js @@ -0,0 +1,42 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +var hiddenEnemies = new Array() + diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/qml/Level.qml b/demos/mobile/quickhit/plugins/LevelTemplate/qml/Level.qml new file mode 100644 index 00000000..256e6862 --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTemplate/qml/Level.qml @@ -0,0 +1,103 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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 1.0 +import Qt.labs.particles 1.0 + +// Level own JavaScript file +import "Level.js" as LevelScript + +Rectangle { + id: enemies + anchors.fill: parent + property int enemiesCreated: 0 + property int enemiesEnabled: 0 + color: "black" + + // *************************************************** + // *** NOTE: This "pause(bool)" function is mandatory for all level QML files + function pause(doPause) { + } + + // *************************************************** + // *** NOTE: Level object name "level" is mandatory for all level QML files + objectName: "level" + + // Enemy placeholder. Have to exist at least one enemy for prevent to level be stopped + Enemy { + x: parent.width / 2 + y: parent.height / 2 + opacity: 1 + } + + // *************************************************** + // *** NOTE: This is mandatory for all level QML files + // Execute explode particle effect + function explode(x,y) { + explodeParticles.x = x + explodeParticles.y = y + explodeParticles.burst(20) + explodeParticles.opacity = 1 + } + + // *************************************************** + // *** NOTE: This is mandatory for all level QML files + // Explode particle effect + Particles { + id: explodeParticles + opacity: 0 + width: 1 + height: 1 + emissionRate: 0 + source: "file:/"+LevelPlugin.pictureRootPath()+"blue_fire.png" + lifeSpan: 500 + lifeSpanDeviation: 2000 + count: -1 + angle: 270 + angleDeviation: 65 + velocity: 100 + velocityDeviation: 100 + ParticleMotionGravity { + yattractor: 1000 + xattractor: 300 + acceleration: 50 + } + } +} diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/sound/crash.wav b/demos/mobile/quickhit/plugins/LevelTemplate/sound/crash.wav new file mode 100644 index 00000000..8076f0f6 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTemplate/sound/crash.wav differ diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/sound/enableship.wav b/demos/mobile/quickhit/plugins/LevelTemplate/sound/enableship.wav new file mode 100644 index 00000000..6fe5fe84 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTemplate/sound/enableship.wav differ diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/sound/enemy_explosion.wav b/demos/mobile/quickhit/plugins/LevelTemplate/sound/enemy_explosion.wav new file mode 100644 index 00000000..fd338e6b Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTemplate/sound/enemy_explosion.wav differ diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/sound/laser.wav b/demos/mobile/quickhit/plugins/LevelTemplate/sound/laser.wav new file mode 100644 index 00000000..c3b58b20 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTemplate/sound/laser.wav differ diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/sound/level2.wav b/demos/mobile/quickhit/plugins/LevelTemplate/sound/level2.wav new file mode 100644 index 00000000..24d39174 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTemplate/sound/level2.wav differ diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/sound/myship_explosion.wav b/demos/mobile/quickhit/plugins/LevelTemplate/sound/myship_explosion.wav new file mode 100644 index 00000000..e22d030e Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTemplate/sound/myship_explosion.wav differ diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/sound/rocket.wav b/demos/mobile/quickhit/plugins/LevelTemplate/sound/rocket.wav new file mode 100644 index 00000000..8c0dee9a Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTemplate/sound/rocket.wav differ diff --git a/demos/mobile/quickhit/plugins/LevelTemplate/sound/rocket_explosion.wav b/demos/mobile/quickhit/plugins/LevelTemplate/sound/rocket_explosion.wav new file mode 100644 index 00000000..d2b451cc Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTemplate/sound/rocket_explosion.wav differ diff --git a/demos/mobile/quickhit/plugins/LevelTwo/debian/changelog b/demos/mobile/quickhit/plugins/LevelTwo/debian/changelog new file mode 100644 index 00000000..106ef66d --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTwo/debian/changelog @@ -0,0 +1,11 @@ +leveltwo (1.1.0) unstable; urgency=low + + * Final graphics + + -- Antonio Aloisio Wed, 5 Jan 2011 10:05:04 +0200 + +leveltwo (1.0.0) unstable; urgency=low + + * First version + + -- Antonio Aloisio Tue, 19 Oct 2010 10:05:04 +0200 diff --git a/demos/mobile/quickhit/plugins/LevelTwo/debian/compat b/demos/mobile/quickhit/plugins/LevelTwo/debian/compat new file mode 100644 index 00000000..7f8f011e --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTwo/debian/compat @@ -0,0 +1 @@ +7 diff --git a/demos/mobile/quickhit/plugins/LevelTwo/debian/control b/demos/mobile/quickhit/plugins/LevelTwo/debian/control new file mode 100644 index 00000000..8f9d05e4 --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTwo/debian/control @@ -0,0 +1,11 @@ +Source: leveltwo +Section: user/games +Priority: extra +Maintainer: Antonio Aloisio +Standards-Version: 3.7.2 + +Package: leveltwo +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: QuickHit - LevelTwo + QuickHit - LevelTwo diff --git a/demos/mobile/quickhit/plugins/LevelTwo/debian/copyright b/demos/mobile/quickhit/plugins/LevelTwo/debian/copyright new file mode 100644 index 00000000..fb9e5a8e --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTwo/debian/copyright @@ -0,0 +1,8 @@ +This is qmultiwinexample, written and maintained by Forum Nokia Antonio Aloisio +on Tue, 19 Oct 2010 10:05:04 +0200 + + +Copyright Holder: Nokia (c) 2010 + +License: + diff --git a/demos/mobile/quickhit/plugins/LevelTwo/debian/dirs b/demos/mobile/quickhit/plugins/LevelTwo/debian/dirs new file mode 100644 index 00000000..80507f10 --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTwo/debian/dirs @@ -0,0 +1,2 @@ +usr/bin +usr/share/applications/hildon diff --git a/demos/mobile/quickhit/plugins/LevelTwo/debian/levelone.tarlist b/demos/mobile/quickhit/plugins/LevelTwo/debian/levelone.tarlist new file mode 100644 index 00000000..f3146fa1 --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTwo/debian/levelone.tarlist @@ -0,0 +1,41 @@ +755 root root . home / +755 root root . home/maemo / +755 root root . home/maemo/quickhitdata / +755 root root . home/maemo/quickhitdata/levelone / +644 root root . home/maemo/quickhitdata/levelone/Level.qml debian/levelone/home/maemo/quickhitdata/levelone/Level.qml +755 root root . home/maemo/quickhitdata/leveltwo / +755 root root . home/maemo/quickhitdata/leveltwo/gfx / +644 root root . home/maemo/quickhitdata/leveltwo/gfx/background3.png debian/levelone/home/maemo/quickhitdata/leveltwo/gfx/background3.png +644 root root . home/maemo/quickhitdata/leveltwo/gfx/blue_fire.png debian/levelone/home/maemo/quickhitdata/leveltwo/gfx/blue_fire.png +644 root root . home/maemo/quickhitdata/leveltwo/gfx/enemy1.png debian/levelone/home/maemo/quickhitdata/leveltwo/gfx/enemy1.png +644 root root . home/maemo/quickhitdata/leveltwo/gfx/enemy2.png debian/levelone/home/maemo/quickhitdata/leveltwo/gfx/enemy2.png +644 root root . home/maemo/quickhitdata/leveltwo/gfx/enemy_missile2.png debian/levelone/home/maemo/quickhitdata/leveltwo/gfx/enemy_missile2.png +644 root root . home/maemo/quickhitdata/leveltwo/gfx/fire.png debian/levelone/home/maemo/quickhitdata/leveltwo/gfx/fire.png +644 root root . home/maemo/quickhitdata/leveltwo/gfx/fire2.png debian/levelone/home/maemo/quickhitdata/leveltwo/gfx/fire2.png +644 root root . home/maemo/quickhitdata/leveltwo/gfx/missile.png debian/levelone/home/maemo/quickhitdata/leveltwo/gfx/missile.png +644 root root . home/maemo/quickhitdata/leveltwo/gfx/missile2.png debian/levelone/home/maemo/quickhitdata/leveltwo/gfx/missile2.png +644 root root . home/maemo/quickhitdata/leveltwo/gfx/moon.png debian/levelone/home/maemo/quickhitdata/leveltwo/gfx/moon.png +644 root root . home/maemo/quickhitdata/leveltwo/gfx/ship.png debian/levelone/home/maemo/quickhitdata/leveltwo/gfx/ship.png +644 root root . home/maemo/quickhitdata/leveltwo/gfx/star3.png debian/levelone/home/maemo/quickhitdata/leveltwo/gfx/star3.png +644 root root . home/maemo/quickhitdata/leveltwo/gfx/transparent.png debian/levelone/home/maemo/quickhitdata/leveltwo/gfx/transparent.png +755 root root . home/maemo/quickhitdata/leveltwo/sound / +644 root root . home/maemo/quickhitdata/leveltwo/sound/crash.wav debian/levelone/home/maemo/quickhitdata/leveltwo/sound/crash.wav +644 root root . home/maemo/quickhitdata/leveltwo/sound/enemy_explosion.wav debian/levelone/home/maemo/quickhitdata/leveltwo/sound/enemy_explosion.wav +644 root root . home/maemo/quickhitdata/leveltwo/sound/laser.wav debian/levelone/home/maemo/quickhitdata/leveltwo/sound/laser.wav +644 root root . home/maemo/quickhitdata/leveltwo/sound/myship_explosion.wav debian/levelone/home/maemo/quickhitdata/leveltwo/sound/myship_explosion.wav +644 root root . home/maemo/quickhitdata/leveltwo/sound/rocket.wav debian/levelone/home/maemo/quickhitdata/leveltwo/sound/rocket.wav +644 root root . home/maemo/quickhitdata/leveltwo/sound/rocket_explosion.wav debian/levelone/home/maemo/quickhitdata/leveltwo/sound/rocket_explosion.wav +755 root root . usr / +755 root root . usr/bin / +755 root root . usr/lib / +755 root root . usr/lib/qt4 / +755 root root . usr/lib/qt4/plugins / +755 root root . usr/lib/qt4/plugins/quickhitlevels / +644 root root . usr/lib/qt4/plugins/quickhitlevels/libleveltwo.so debian/levelone/usr/lib/qt4/plugins/quickhitlevels/libleveltwo.so +755 root root . usr/share / +755 root root . usr/share/applications / +755 root root . usr/share/applications/hildon / +755 root root . usr/share/doc / +755 root root . usr/share/doc/levelone / +644 root root . usr/share/doc/levelone/changelog.gz debian/levelone/usr/share/doc/levelone/changelog.gz +644 root root . usr/share/doc/levelone/copyright debian/levelone/usr/share/doc/levelone/copyright diff --git a/demos/mobile/quickhit/plugins/LevelTwo/debian/postinst b/demos/mobile/quickhit/plugins/LevelTwo/debian/postinst new file mode 100644 index 00000000..79fb6ddd --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTwo/debian/postinst @@ -0,0 +1,5 @@ +#!/bin/sh -e + +gtk-update-icon-cache -f /usr/share/icons/hicolor + +exit 0 diff --git a/demos/mobile/quickhit/plugins/LevelTwo/debian/rules b/demos/mobile/quickhit/plugins/LevelTwo/debian/rules new file mode 100644 index 00000000..5dac6e09 --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTwo/debian/rules @@ -0,0 +1,91 @@ +#!/usr/bin/make -f +# -*- makefile -*- +# Sample debian/rules that uses debhelper. +# This file was originally written by Joey Hess and Craig Small. +# As a special exception, when this file is copied by dh-make into a +# dh-make output file, you may use that output file without restriction. +# This special exception was added by Craig Small in version 0.37 of dh-make. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + + +APPNAME := leveltwo + + +configure: configure-stamp +configure-stamp: + dh_testdir + # Add here commands to configure the package. + + touch configure-stamp + + +build: build-stamp + +build-stamp: configure-stamp + dh_testdir + + # Add here commands to compile the package. + $(MAKE) + #docbook-to-man debian/$(APPNAME).sgml > $(APPNAME).1 + + touch $@ + +clean: + dh_testdir + dh_testroot + rm -f build-stamp configure-stamp + + # Add here commands to clean up after the build process. + $(MAKE) clean + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + # Add here commands to install the package into debian/$(APPNAME). + $(MAKE) INSTALL_ROOT="$(CURDIR)"/debian/$(APPNAME) install + + +# Build architecture-independent files here. +binary-indep: build install +# We have nothing to do by default. + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + dh_installchangelogs + dh_installdocs + dh_installexamples +# dh_install +# dh_installmenu +# dh_installdebconf +# dh_installlogrotate +# dh_installemacsen +# dh_installpam +# dh_installmime +# dh_python +# dh_installinit +# dh_installcron +# dh_installinfo + dh_installman + dh_link + # dh_strip + dh_compress + dh_fixperms +# dh_perl + dh_makeshlibs + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install configure diff --git a/demos/mobile/quickhit/plugins/LevelTwo/gfx/background2.png b/demos/mobile/quickhit/plugins/LevelTwo/gfx/background2.png new file mode 100644 index 00000000..8fbf2f46 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTwo/gfx/background2.png differ diff --git a/demos/mobile/quickhit/plugins/LevelTwo/gfx/background_loop.png b/demos/mobile/quickhit/plugins/LevelTwo/gfx/background_loop.png new file mode 100644 index 00000000..3a135d2c Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTwo/gfx/background_loop.png differ diff --git a/demos/mobile/quickhit/plugins/LevelTwo/gfx/blue_fire.png b/demos/mobile/quickhit/plugins/LevelTwo/gfx/blue_fire.png new file mode 100644 index 00000000..8667a397 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTwo/gfx/blue_fire.png differ diff --git a/demos/mobile/quickhit/plugins/LevelTwo/gfx/enemy1.png b/demos/mobile/quickhit/plugins/LevelTwo/gfx/enemy1.png new file mode 100644 index 00000000..94f149bd Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTwo/gfx/enemy1.png differ diff --git a/demos/mobile/quickhit/plugins/LevelTwo/gfx/enemy_missile2.png b/demos/mobile/quickhit/plugins/LevelTwo/gfx/enemy_missile2.png new file mode 100644 index 00000000..5011d755 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTwo/gfx/enemy_missile2.png differ diff --git a/demos/mobile/quickhit/plugins/LevelTwo/gfx/fire.png b/demos/mobile/quickhit/plugins/LevelTwo/gfx/fire.png new file mode 100644 index 00000000..84010340 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTwo/gfx/fire.png differ diff --git a/demos/mobile/quickhit/plugins/LevelTwo/gfx/fire2.png b/demos/mobile/quickhit/plugins/LevelTwo/gfx/fire2.png new file mode 100644 index 00000000..139aa611 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTwo/gfx/fire2.png differ diff --git a/demos/mobile/quickhit/plugins/LevelTwo/gfx/missile.png b/demos/mobile/quickhit/plugins/LevelTwo/gfx/missile.png new file mode 100644 index 00000000..86bb41bc Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTwo/gfx/missile.png differ diff --git a/demos/mobile/quickhit/plugins/LevelTwo/gfx/missile2.png b/demos/mobile/quickhit/plugins/LevelTwo/gfx/missile2.png new file mode 100644 index 00000000..dacd6106 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTwo/gfx/missile2.png differ diff --git a/demos/mobile/quickhit/plugins/LevelTwo/gfx/ship.png b/demos/mobile/quickhit/plugins/LevelTwo/gfx/ship.png new file mode 100644 index 00000000..cb7851c4 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTwo/gfx/ship.png differ diff --git a/demos/mobile/quickhit/plugins/LevelTwo/gfx/star3.png b/demos/mobile/quickhit/plugins/LevelTwo/gfx/star3.png new file mode 100644 index 00000000..70af0f3c Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTwo/gfx/star3.png differ diff --git a/demos/mobile/quickhit/plugins/LevelTwo/gfx/transparent.png b/demos/mobile/quickhit/plugins/LevelTwo/gfx/transparent.png new file mode 100644 index 00000000..3aa1e413 Binary files /dev/null and b/demos/mobile/quickhit/plugins/LevelTwo/gfx/transparent.png differ diff --git a/demos/mobile/quickhit/plugins/LevelTwo/leveltwo.cpp b/demos/mobile/quickhit/plugins/LevelTwo/leveltwo.cpp new file mode 100644 index 00000000..cf1c5bca --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTwo/leveltwo.cpp @@ -0,0 +1,122 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#include "leveltwo.h" +#include + + +LevelTwo::LevelTwo() +{ +} + +LevelTwo::~LevelTwo() +{ +} + +QString LevelTwo::pathPrefix() +{ + /* +QDir::rootPath() +For Unix operating systems this returns "/". +For Windows file systems this normally returns "c:/". +On Symbian this typically returns "c:/data", +*/ + +#ifdef Q_WS_MAEMO_5 + return "/home/user/."; +#elif defined Q_OS_WIN32 + return QDir::rootPath(); +#else + //return QDir::rootPath()+"/"; + return "c:/System/"; +#endif +} + +QStringList LevelTwo::levelSounds() +{ + QStringList list; + + + // NOTE: Mandatory sounds/indexs for the all levels + // 0 = Enemy explode + list.append(LevelTwo::pathPrefix()+"quickhitdata/leveltwo/sound/enemy_explosion.wav"); + // 1 = You explode + list.append(LevelTwo::pathPrefix()+"quickhitdata/leveltwo/sound/myship_explosion.wav"); + // 2 = Missile fires + list.append(LevelTwo::pathPrefix()+"quickhitdata/leveltwo/sound/laser.wav"); + // 3 = Emeny Missile fires + list.append(LevelTwo::pathPrefix()+"quickhitdata/leveltwo/sound/rocket.wav"); + + // Additional sounds + list.append(LevelTwo::pathPrefix()+"quickhitdata/leveltwo/sound/enableship.wav"); + list.append(LevelTwo::pathPrefix()+"quickhitdata/leveltwo/sound/level2.wav"); + + + return list; +} + +QVariant LevelTwo::getData(QVariant key) +{ + QVariant ret; + switch (key.toInt()) { + case 1: { + // Any data what you need for this key + // Set your data into QVariant (ret) + break; + } + default: { + break; + } + } + return ret; +} + +QVariant LevelTwo::graphSize(QVariant pathToGraph) +{ + QVariant ret; + m_imageReader.setFileName(pathToGraph.toString()); + QSize imageSize = m_imageReader.size(); + ret.setValue(imageSize); + return ret; +} + +// This Qt macro exports the plugin class LevelTwo with the name levelplugins. +// There should be exactly one occurrence of this LevelTwo macro in a Qt plugin's source code. +Q_EXPORT_PLUGIN2(levelplugins, LevelTwo); diff --git a/demos/mobile/quickhit/plugins/LevelTwo/leveltwo.h b/demos/mobile/quickhit/plugins/LevelTwo/leveltwo.h new file mode 100644 index 00000000..1f32a268 --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTwo/leveltwo.h @@ -0,0 +1,91 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +#ifndef LevelTwo_H +#define LevelTwo_H + +#include +#include +#include + +#include "levelplugininterface.h" + +class LevelTwo : public LevelPluginInterface +{ + Q_OBJECT + + // This macro tells Qt which interfaces the class implements. + // This is used when implementing plugins. + Q_INTERFACES(LevelPluginInterface) + +public: + LevelTwo(); + ~LevelTwo(); + + static QString pathPrefix(); + +public: // From LevelPluginInterface + + QStringList levelSounds(); + + Q_INVOKABLE QVariant getData(QVariant key); + + Q_INVOKABLE QVariant graphSize(QVariant pathToGraph); + + Q_INVOKABLE QVariant enemyCount() { return QVariant(35); } + Q_INVOKABLE QVariant enemyRowCount() { return QVariant(0); } + Q_INVOKABLE QVariant enemySpeed() { return QVariant(20000); } + Q_INVOKABLE QVariant enemyFireSpeed() { return QVariant(500); } + + // Root paths for the QML, Pictures and Sounds + Q_INVOKABLE QVariant qmlRootPath() { return QVariant(LevelTwo::pathPrefix()+"quickhitdata/leveltwo/"); } + Q_INVOKABLE QVariant pictureRootPath() { return QVariant(LevelTwo::pathPrefix()+"quickhitdata/leveltwo/gfx/"); } + + // Full paths + Q_INVOKABLE QVariant pathToTransparentEnemyPic() {return QVariant(LevelTwo::pathPrefix()+"quickhitdata/leveltwo/gfx/transparent.png");} + Q_INVOKABLE QVariant pathToMissilePic() {return QVariant(LevelTwo::pathPrefix()+"quickhitdata/leveltwo/gfx/missile2.png");} + Q_INVOKABLE QVariant pathToEnemyMissilePic() {return QVariant(LevelTwo::pathPrefix()+"quickhitdata/leveltwo/gfx/enemy_missile2.png");} + Q_INVOKABLE QVariant pathToMyShipPic() {return QVariant(LevelTwo::pathPrefix()+"quickhitdata/leveltwo/gfx/ship.png");} + +protected: + QImageReader m_imageReader; +}; + +#endif // LevelTwo_H diff --git a/demos/mobile/quickhit/plugins/LevelTwo/leveltwo.pro b/demos/mobile/quickhit/plugins/LevelTwo/leveltwo.pro new file mode 100644 index 00000000..6395989b --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTwo/leveltwo.pro @@ -0,0 +1,105 @@ +TEMPLATE = lib + +#VERSION = 1.1.0 + +CONFIG += plugin + +INCLUDEPATH += ../ + +HEADERS = leveltwo.h + +SOURCES = leveltwo.cpp + +TARGET = $$qtLibraryTarget(leveltwo) + +OTHER_FILES += qml/Level.qml \ + qml/Enemy.qml \ + qml/Level.js + + +# SYMBIAN --------------------------- +symbian: { +# Load predefined include paths (e.g. QT_PLUGINS_BASE_DIR) to be used in the pro-files +load(data_caging_paths) + +# EPOCALLOWDLLDATA have to set true because Qt macros has initialised global data +TARGET.EPOCALLOWDLLDATA=1 +TARGET.UID3 = 0xE07dfb67 + +TARGET.CAPABILITY = NetworkServices \ + Location \ + ReadUserData \ + WriteUserData \ + LocalServices \ + UserEnvironment + +# Defines plugin stub file into Symbian .pkg package +pluginDep.sources = leveltwo.dll +pluginDep.path = $$QT_PLUGINS_BASE_DIR/quickhitlevels +DEPLOYMENT += pluginDep + +# Graphics and Sounds for the plugin +BLD_INF_RULES.prj_exports += "gfx/background2.png ../winscw/c/Data/gfx/background2.png" \ +"gfx/background_loop.png ../winscw/c/Data/gfx/background_loop.png" \ +"gfx/enemy1.png ../winscw/c/Data/gfx/enemy1.png" \ +"gfx/fire2.png ../winscw/c/Data/gfx/fire2.png" \ +"gfx/fire.png ../winscw/c/Data/gfx/fire.png" \ +"gfx/missile2.png ../winscw/c/Data/gfx/missile2.png" \ +"gfx/enemy_missile2.png ../winscw/c/Data/gfx/enemy_missile2.png" \ +"gfx/ship.png ../winscw/c/Data/gfx/ship.png" \ +"gfx/transparent.png ../winscw/c/Data/gfx/transparent.png" \ +"gfx/star3.png ../winscw/c/Data/gfx/star3.png" \ +"gfx/blue_fire.png ../winscw/c/Data/gfx/blue_fire.png" \ +"sound/enemy_explosion.wav ../winscw/c/Data/sound/enemy_explosion.wav" \ +"sound/myship_explosion.wav ../winscw/c/Data/sound/myship_explosion.wav" \ +"sound/enableship.wav ../winscw/c/Data/sound/enableship.wav" \ +"sound/laser.wav ../winscw/c/Data/sound/laser.wav" \ +"sound/level2.wav ../winscw/c/Data/sound/level2.wav" \ +"qml/Level.qml ../winscw/c/Data/Level.qml" \ +"qml/Level.js ../winscw/c/Data/Level.js" \ +"qml/Enemy.qml ../winscw/c/Data/Enemy.qml" + + +myQml.sources = qml/* +myQml.path = c:/system/quickhitdata/leveltwo +myGraphic.sources = gfx/* +myGraphic.path = c:/system/quickhitdata/leveltwo/gfx +mySound.sources = sound/* +mySound.path = c:/system/quickhitdata/leveltwo/sound +# Takes qml, graphics and sounds into Symbian SIS package file (.pkg) +DEPLOYMENT += myQml myGraphic mySound + +target.path += $$[QT_INSTALL_PLUGINS]/quickhitlevels +# Installs binaries +INSTALLS += target +} + +# WINDOWS --------------------------- +win32: { + +# Copy level sounds and graphics into right destination +system(mkdir c:\quickhitdata\leveltwo) +system(mkdir c:\quickhitdata\leveltwo\gfx) +system(mkdir c:\quickhitdata\leveltwo\sound) +system(copy qml\*.* c:\quickhitdata\leveltwo) +system(copy gfx\*.* c:\quickhitdata\leveltwo\gfx) +system(copy sound\*.* c:\quickhitdata\leveltwo\sound) + +# Installs binaries +target.path += $$[QT_INSTALL_PLUGINS]/quickhitlevels +INSTALLS += target +} + +# MAEMO_5 --------------------------- +maemo5: { +myQml.path = /home/user/.quickhitdata/leveltwo/ +myQml.files += qml/* +myGraphic.path = /home/user/.quickhitdata/leveltwo/gfx/ +myGraphic.files += gfx/* +mySound.path = /home/user/.quickhitdata/leveltwo/sound/ +mySound.files += sound/* + +target.path += /usr/lib/qt4/plugins/quickhitlevels +# Installs qml, binaries, sounds and graphics +INSTALLS += target myGraphic mySound myQml +} diff --git a/demos/mobile/quickhit/plugins/LevelTwo/qml/Enemy.qml b/demos/mobile/quickhit/plugins/LevelTwo/qml/Enemy.qml new file mode 100644 index 00000000..55703269 --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTwo/qml/Enemy.qml @@ -0,0 +1,84 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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 1.0 + +Image { + id: enemy + objectName: "enemy" + smooth:true + opacity: 0 // 0=hidden by default + fillMode:Image.PreserveAspectFit + source:"file:/"+LevelPlugin.pictureRootPath()+"enemy1.png" + + property int enemySpeed: LevelPlugin.enemySpeed() + + function pause(doPause) { + if (doPause) { + upToDownAnim.pause() + rightLeftAnim.pause() + } else { + upToDownAnim.resume() + rightLeftAnim.resume() + } + } + + function startMovingAnim() { + upToDownAnim.restart() + rightLeftAnim.restart() + } + + // Right-left animation + SequentialAnimation { + id: rightLeftAnim + loops: Animation.Infinite + NumberAnimation { target:enemy; property:"x"; + to:gameArea.width - enemy.width; easing.type: Easing.OutQuad; duration: 3000 } + NumberAnimation { target:enemy; property:"x"; to:0; easing.type: Easing.OutQuad; duration: 3000 } + } + + // Up to down animation + SequentialAnimation { + id: upToDownAnim + PropertyAnimation { target:enemy; property:"y"; to: gameArea.height; + easing.type: Easing.Linear; duration: enemy.enemySpeed } + PropertyAction { target: enemy; properties: "opacity"; value: 0 } + } +} diff --git a/demos/mobile/quickhit/plugins/LevelTwo/qml/Level.js b/demos/mobile/quickhit/plugins/LevelTwo/qml/Level.js new file mode 100644 index 00000000..e2aef689 --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTwo/qml/Level.js @@ -0,0 +1,42 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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$ +** +****************************************************************************/ + +var hiddenEnemies = new Array() + diff --git a/demos/mobile/quickhit/plugins/LevelTwo/qml/Level.qml b/demos/mobile/quickhit/plugins/LevelTwo/qml/Level.qml new file mode 100644 index 00000000..f509aa64 --- /dev/null +++ b/demos/mobile/quickhit/plugins/LevelTwo/qml/Level.qml @@ -0,0 +1,228 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module 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 1.0 +import Qt.labs.particles 1.0 +import "Level.js" as LevelScript + +Item { + id: enemies + anchors.fill: parent + + property int enemiesCreated: 0 + property int enemiesEnabled: 0 + + property int backOneTop + property int backTwoTop + + // Long background 2 + Image { + id: longBackground_2 + source: "file:/"+LevelPlugin.pictureRootPath()+"background_loop.png" + fillMode: Image.Stretch + smooth: false + width: gameArea.width + height: gameArea.height + } + + // Long background 1 + Image { + id: longBackground_1 + source: "file:/"+LevelPlugin.pictureRootPath()+"background_loop.png" + fillMode: Image.Stretch + smooth: false + width: gameArea.width + height: gameArea.height + } + + // Long background Up to down animation + ParallelAnimation { + id: backgroundAnim; + loops: Animation.Infinite + PropertyAnimation { target:longBackground_1; property:"y"; + from:backOneTop; to:gameArea.height; easing.type:Easing.Linear; duration:10000 } + PropertyAnimation { target:longBackground_2; property:"y"; + from:backTwoTop; to:backOneTop; easing.type:Easing.Linear; duration:10000 } + } + + + + // *************************************************** + // *** NOTE: This is mandatory for all level QML files + function pause(doPause) { + if (doPause) { + enemyCreationTimer.stop() + backgroundAnim.stop() + } else { + enemyCreationTimer.restart() + backgroundAnim.restart() + } + for (var i=0;i