From f37a39cf77bc20770211e05fbb4570a4a2aacaa7 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Tue, 1 Mar 2011 09:43:00 +0100 Subject: Add a bunch of new mobile demos from INdT --- CoffeeTweed/Add.qml | 38 ++ CoffeeTweed/CoffeeTweed.qml | 82 +++++ CoffeeTweed/CoffeeTweed.qmlproject | 16 + CoffeeTweed/Counter_cupsDown.qml | 58 ++++ CoffeeTweed/Counter_toGo.qml | 58 ++++ CoffeeTweed/Cup.qml | 112 ++++++ CoffeeTweed/Remove.qml | 39 +++ CoffeeTweed/Taskbar.qml | 6 + CoffeeTweed/Tray.qml | 64 ++++ CoffeeTweed/Tray_model.qml | 20 ++ CoffeeTweed/images/.DS_Store | Bin 0 -> 6148 bytes CoffeeTweed/images/bg.png | Bin 0 -> 92671 bytes CoffeeTweed/images/bt_add_off.png | Bin 0 -> 48598 bytes CoffeeTweed/images/bt_add_on.png | Bin 0 -> 53703 bytes CoffeeTweed/images/bt_remove_off.png | Bin 0 -> 49733 bytes CoffeeTweed/images/bt_remove_on.png | Bin 0 -> 54801 bytes CoffeeTweed/images/coffee_plate.png | Bin 0 -> 18309 bytes CoffeeTweed/images/cup_back.png | Bin 0 -> 5327 bytes CoffeeTweed/images/cup_blur.png | Bin 0 -> 28242 bytes CoffeeTweed/images/cup_content.png | Bin 0 -> 1568 bytes CoffeeTweed/images/cup_empty.png | Bin 0 -> 21819 bytes CoffeeTweed/images/cup_front.png | Bin 0 -> 21612 bytes CoffeeTweed/images/cup_full.png | Bin 0 -> 22368 bytes CoffeeTweed/images/cup_smoke.png | Bin 0 -> 11413 bytes CoffeeTweed/images/empty_row1.png | Bin 0 -> 6030 bytes CoffeeTweed/images/empty_row2.png | Bin 0 -> 5906 bytes CoffeeTweed/images/empty_row3.png | Bin 0 -> 5379 bytes CoffeeTweed/images/taskbar_bg.png | Bin 0 -> 22414 bytes CoffeeTweed/images/taskbar_close_bt.png | Bin 0 -> 2243 bytes CoffeeTweed/images/taskbar_division.png | Bin 0 -> 249 bytes CoffeeTweed/images/taskbar_home_bt.png | Bin 0 -> 992 bytes CoffeeTweed/images/taskbar_options_bt.png | Bin 0 -> 301 bytes CoffeeTweed/images/taskbar_placeholder.png | Bin 0 -> 37381 bytes RadioTuner/README.rtf | 7 + RadioTuner/RadioModel.qml | 5 + RadioTuner/RadioTuner.qml | 145 ++++++++ RadioTuner/RadioTuner.qmlproject | 16 + RadioTuner/RangeStation.qml | 69 ++++ RadioTuner/StationsModel.qml | 77 +++++ RadioTuner/images/.DS_Store | Bin 0 -> 6148 bytes RadioTuner/images/bottom.png | Bin 0 -> 24545 bytes RadioTuner/images/bt_next.png | Bin 0 -> 5946 bytes RadioTuner/images/bt_next_down.png | Bin 0 -> 6074 bytes RadioTuner/images/bt_prev.png | Bin 0 -> 7583 bytes RadioTuner/images/bt_prev_down.png | Bin 0 -> 7443 bytes RadioTuner/images/bt_rdsname_arrow.png | Bin 0 -> 375 bytes RadioTuner/images/high_tick.png | Bin 0 -> 398 bytes RadioTuner/images/low_tick.png | Bin 0 -> 302 bytes RadioTuner/images/medium_tick.png | Bin 0 -> 375 bytes RadioTuner/images/placeholder_n900_bar.png | Bin 0 -> 22357 bytes RadioTuner/images/scala_bg.png | Bin 0 -> 88354 bytes RadioTuner/images/scala_glass.png | Bin 0 -> 6581 bytes RadioTuner/images/scala_needle.png | Bin 0 -> 14308 bytes RadioTuner/images/scala_rdslabel.png | Bin 0 -> 369 bytes RadioTuner/images/scala_ticks.png | Bin 0 -> 1130 bytes RadioTuner/images/top.png | Bin 0 -> 2246 bytes RadioTuner/rangemodel.js | 93 +++++ qtflyingbus/core/AboutMenu.qml | 65 ++++ qtflyingbus/core/Background.qml | 78 +++++ qtflyingbus/core/Balloon.qml | 113 ++++++ qtflyingbus/core/Base.qml | 199 +++++++++++ qtflyingbus/core/Button.qml | 58 ++++ qtflyingbus/core/CompleteMenu.qml | 60 ++++ qtflyingbus/core/DigitLabel.qml | 70 ++++ qtflyingbus/core/FinalSplash.qml | 128 +++++++ qtflyingbus/core/FinalSplashItem.qml | 76 ++++ qtflyingbus/core/FrameSprite.qml | 58 ++++ qtflyingbus/core/GameOverMenu.qml | 61 ++++ qtflyingbus/core/HelpScreen.qml | 144 ++++++++ qtflyingbus/core/LeaveMenu.qml | 75 ++++ qtflyingbus/core/LevelModel.qml | 55 +++ qtflyingbus/core/Main.qml | 81 +++++ qtflyingbus/core/Menu.qml | 202 +++++++++++ qtflyingbus/core/MenuAnimation.qml | 52 +++ qtflyingbus/core/PlayMenu.qml | 83 +++++ qtflyingbus/core/Player.qml | 235 +++++++++++++ qtflyingbus/core/Score.qml | 78 +++++ qtflyingbus/core/ScoreMenu.qml | 113 ++++++ qtflyingbus/core/Splash.qml | 70 ++++ qtflyingbus/core/Sprite.qml | 61 ++++ qtflyingbus/core/YouWinMenu.qml | 61 ++++ qtflyingbus/core/engine.js | 385 +++++++++++++++++++++ qtflyingbus/core/images/LICENSE.txt | 63 ++++ qtflyingbus/core/images/balloons/blue/1.png | Bin 0 -> 1133 bytes qtflyingbus/core/images/balloons/blue/2.png | Bin 0 -> 2090 bytes qtflyingbus/core/images/balloons/blue/3.png | Bin 0 -> 2557 bytes qtflyingbus/core/images/balloons/blue/4.png | Bin 0 -> 3384 bytes qtflyingbus/core/images/balloons/blue/5.png | Bin 0 -> 2529 bytes qtflyingbus/core/images/balloons/blue/6.png | Bin 0 -> 1547 bytes qtflyingbus/core/images/balloons/green/1.png | Bin 0 -> 1171 bytes qtflyingbus/core/images/balloons/green/2.png | Bin 0 -> 2284 bytes qtflyingbus/core/images/balloons/green/3.png | Bin 0 -> 2880 bytes qtflyingbus/core/images/balloons/green/4.png | Bin 0 -> 4027 bytes qtflyingbus/core/images/balloons/green/5.png | Bin 0 -> 2468 bytes qtflyingbus/core/images/balloons/green/6.png | Bin 0 -> 1505 bytes qtflyingbus/core/images/balloons/line.png | Bin 0 -> 161 bytes qtflyingbus/core/images/balloons/pink/1.png | Bin 0 -> 1164 bytes qtflyingbus/core/images/balloons/pink/2.png | Bin 0 -> 2232 bytes qtflyingbus/core/images/balloons/pink/3.png | Bin 0 -> 2818 bytes qtflyingbus/core/images/balloons/pink/4.png | Bin 0 -> 3931 bytes qtflyingbus/core/images/balloons/pink/5.png | Bin 0 -> 2437 bytes qtflyingbus/core/images/balloons/pink/6.png | Bin 0 -> 1501 bytes qtflyingbus/core/images/balloons/red/1.png | Bin 0 -> 1170 bytes qtflyingbus/core/images/balloons/red/2.png | Bin 0 -> 2244 bytes qtflyingbus/core/images/balloons/red/3.png | Bin 0 -> 2874 bytes qtflyingbus/core/images/balloons/red/4.png | Bin 0 -> 4018 bytes qtflyingbus/core/images/balloons/red/5.png | Bin 0 -> 2479 bytes qtflyingbus/core/images/balloons/red/6.png | Bin 0 -> 1501 bytes qtflyingbus/core/images/balloons/yellow/1.png | Bin 0 -> 1142 bytes qtflyingbus/core/images/balloons/yellow/2.png | Bin 0 -> 2063 bytes qtflyingbus/core/images/balloons/yellow/3.png | Bin 0 -> 2567 bytes qtflyingbus/core/images/balloons/yellow/4.png | Bin 0 -> 3447 bytes qtflyingbus/core/images/balloons/yellow/5.png | Bin 0 -> 2539 bytes qtflyingbus/core/images/balloons/yellow/6.png | Bin 0 -> 1557 bytes qtflyingbus/core/images/buttons/back.png | Bin 0 -> 9312 bytes qtflyingbus/core/images/buttons/back2.png | Bin 0 -> 9341 bytes qtflyingbus/core/images/buttons/close.png | Bin 0 -> 9364 bytes qtflyingbus/core/images/buttons/close2.png | Bin 0 -> 9383 bytes qtflyingbus/core/images/buttons/pause.png | Bin 0 -> 9138 bytes qtflyingbus/core/images/buttons/pause2.png | Bin 0 -> 9140 bytes qtflyingbus/core/images/buttons/play.png | Bin 0 -> 9426 bytes qtflyingbus/core/images/buttons/play2.png | Bin 0 -> 9411 bytes qtflyingbus/core/images/digits/0.png | Bin 0 -> 915 bytes qtflyingbus/core/images/digits/1.png | Bin 0 -> 511 bytes qtflyingbus/core/images/digits/2.png | Bin 0 -> 1024 bytes qtflyingbus/core/images/digits/3.png | Bin 0 -> 1112 bytes qtflyingbus/core/images/digits/4.png | Bin 0 -> 847 bytes qtflyingbus/core/images/digits/5.png | Bin 0 -> 937 bytes qtflyingbus/core/images/digits/6.png | Bin 0 -> 939 bytes qtflyingbus/core/images/digits/7.png | Bin 0 -> 814 bytes qtflyingbus/core/images/digits/8.png | Bin 0 -> 1015 bytes qtflyingbus/core/images/digits/9.png | Bin 0 -> 919 bytes qtflyingbus/core/images/digits/minus.png | Bin 0 -> 186 bytes qtflyingbus/core/images/help/background.png | Bin 0 -> 295357 bytes qtflyingbus/core/images/help/balloon.png | Bin 0 -> 27157 bytes qtflyingbus/core/images/help/bird.png | Bin 0 -> 21177 bytes qtflyingbus/core/images/help/cloud.png | Bin 0 -> 18479 bytes qtflyingbus/core/images/help/ladybug.png | Bin 0 -> 20025 bytes qtflyingbus/core/images/help/peace.png | Bin 0 -> 27279 bytes qtflyingbus/core/images/help/playnow.png | Bin 0 -> 32905 bytes qtflyingbus/core/images/help/pop.png | Bin 0 -> 65976 bytes qtflyingbus/core/images/help/rock.png | Bin 0 -> 22433 bytes qtflyingbus/core/images/help/tap.png | Bin 0 -> 66069 bytes qtflyingbus/core/images/help/title.png | Bin 0 -> 15060 bytes qtflyingbus/core/images/help/tree.png | Bin 0 -> 25152 bytes qtflyingbus/core/images/life.png | Bin 0 -> 2841 bytes qtflyingbus/core/images/menu/about.png | Bin 0 -> 52940 bytes qtflyingbus/core/images/menu/button/about.png | Bin 0 -> 10888 bytes .../core/images/menu/button/about_pressed.png | Bin 0 -> 10681 bytes qtflyingbus/core/images/menu/button/exit.png | Bin 0 -> 5936 bytes .../core/images/menu/button/exit_pressed.png | Bin 0 -> 5503 bytes qtflyingbus/core/images/menu/button/help.png | Bin 0 -> 6039 bytes .../core/images/menu/button/help_pressed.png | Bin 0 -> 5696 bytes qtflyingbus/core/images/menu/button/menu.png | Bin 0 -> 7310 bytes .../core/images/menu/button/menu_pressed.png | Bin 0 -> 7043 bytes qtflyingbus/core/images/menu/button/next_level.png | Bin 0 -> 48022 bytes .../core/images/menu/button/next_level_pressed.png | Bin 0 -> 34362 bytes qtflyingbus/core/images/menu/button/no.png | Bin 0 -> 19245 bytes qtflyingbus/core/images/menu/button/no_pressed.png | Bin 0 -> 13328 bytes qtflyingbus/core/images/menu/button/play.png | Bin 0 -> 39761 bytes .../core/images/menu/button/play_pressed.png | Bin 0 -> 28656 bytes qtflyingbus/core/images/menu/button/restart.png | Bin 0 -> 50099 bytes .../core/images/menu/button/restart_pressed.png | Bin 0 -> 35475 bytes qtflyingbus/core/images/menu/button/retry.png | Bin 0 -> 32966 bytes .../core/images/menu/button/retry_pressed.png | Bin 0 -> 23878 bytes qtflyingbus/core/images/menu/button/yes.png | Bin 0 -> 28426 bytes .../core/images/menu/button/yes_pressed.png | Bin 0 -> 20505 bytes qtflyingbus/core/images/menu/complete_title.png | Bin 0 -> 19074 bytes qtflyingbus/core/images/menu/details.png | Bin 0 -> 1764 bytes qtflyingbus/core/images/menu/dot.png | Bin 0 -> 313 bytes qtflyingbus/core/images/menu/highscore.png | Bin 0 -> 3525 bytes qtflyingbus/core/images/menu/leave_title.png | Bin 0 -> 10368 bytes qtflyingbus/core/images/menu/menu.png | Bin 0 -> 40598 bytes qtflyingbus/core/images/menu/menu_div.png | Bin 0 -> 747 bytes qtflyingbus/core/images/menu/menu_gameover.png | Bin 0 -> 67483 bytes qtflyingbus/core/images/menu/menu_youwin.png | Bin 0 -> 93986 bytes qtflyingbus/core/images/menu/yourscore.png | Bin 0 -> 3670 bytes .../core/images/scene/elements/bigmountain1.png | Bin 0 -> 491177 bytes .../core/images/scene/elements/bigmountain2.png | Bin 0 -> 358848 bytes qtflyingbus/core/images/scene/elements/bush.png | Bin 0 -> 95922 bytes qtflyingbus/core/images/scene/elements/cloud1.png | Bin 0 -> 462204 bytes qtflyingbus/core/images/scene/elements/cloud2.png | Bin 0 -> 144793 bytes qtflyingbus/core/images/scene/elements/cloud3.png | Bin 0 -> 144476 bytes qtflyingbus/core/images/scene/elements/cloud4.png | Bin 0 -> 451713 bytes qtflyingbus/core/images/scene/elements/cloud5.png | Bin 0 -> 450221 bytes qtflyingbus/core/images/scene/elements/grass.png | Bin 0 -> 56924 bytes qtflyingbus/core/images/scene/elements/ground.png | Bin 0 -> 6766 bytes qtflyingbus/core/images/scene/elements/moon.png | Bin 0 -> 135261 bytes .../core/images/scene/elements/mountain.png | Bin 0 -> 14849 bytes qtflyingbus/core/images/scene/elements/road.png | Bin 0 -> 4676 bytes qtflyingbus/core/images/scene/elements/sand.png | Bin 0 -> 115516 bytes qtflyingbus/core/images/scene/elements/street.png | Bin 0 -> 67908 bytes qtflyingbus/core/images/scene/elements/sun.png | Bin 0 -> 370436 bytes .../core/images/scene/elements/sunlight.png | Bin 0 -> 6370 bytes qtflyingbus/core/images/scene/elements/water.png | Bin 0 -> 298008 bytes qtflyingbus/core/images/scene/sky/dark.png | Bin 0 -> 209320 bytes qtflyingbus/core/images/scene/sky/gray.png | Bin 0 -> 181134 bytes qtflyingbus/core/images/scene/sky/light.png | Bin 0 -> 77115 bytes qtflyingbus/core/images/score.png | Bin 0 -> 14666 bytes qtflyingbus/core/images/splash/background.png | Bin 0 -> 256512 bytes qtflyingbus/core/images/splash/finalbackground.png | Bin 0 -> 667903 bytes qtflyingbus/core/images/splash/n8.png | Bin 0 -> 72479 bytes qtflyingbus/core/images/splash/note.png | Bin 0 -> 97923 bytes qtflyingbus/core/images/splash/tablet.png | Bin 0 -> 92278 bytes qtflyingbus/core/images/splash/van.png | Bin 0 -> 154288 bytes .../core/images/sprites/elements/balloon.png | Bin 0 -> 10042 bytes qtflyingbus/core/images/sprites/elements/bird1.png | Bin 0 -> 7877 bytes qtflyingbus/core/images/sprites/elements/bird2.png | Bin 0 -> 7626 bytes qtflyingbus/core/images/sprites/elements/bird3.png | Bin 0 -> 6567 bytes qtflyingbus/core/images/sprites/elements/bird4.png | Bin 0 -> 5571 bytes qtflyingbus/core/images/sprites/elements/bird5.png | Bin 0 -> 6025 bytes .../core/images/sprites/elements/cloud1.png | Bin 0 -> 3695 bytes .../core/images/sprites/elements/cloud2.png | Bin 0 -> 3420 bytes .../core/images/sprites/elements/cloud3.png | Bin 0 -> 4136 bytes .../core/images/sprites/elements/cloud4.png | Bin 0 -> 4704 bytes .../core/images/sprites/elements/cloud5.png | Bin 0 -> 5352 bytes .../core/images/sprites/elements/cloud6.png | Bin 0 -> 5305 bytes .../core/images/sprites/elements/cloud7.png | Bin 0 -> 4532 bytes .../core/images/sprites/elements/ladybug1.png | Bin 0 -> 7389 bytes .../core/images/sprites/elements/ladybug2.png | Bin 0 -> 7706 bytes .../core/images/sprites/elements/ladybug3.png | Bin 0 -> 7558 bytes .../core/images/sprites/elements/peace1.png | Bin 0 -> 11403 bytes .../core/images/sprites/elements/peace2.png | Bin 0 -> 11252 bytes .../core/images/sprites/elements/peace3.png | Bin 0 -> 11218 bytes .../core/images/sprites/elements/peace4.png | Bin 0 -> 10606 bytes .../core/images/sprites/elements/peace5.png | Bin 0 -> 10311 bytes qtflyingbus/core/images/sprites/elements/stone.png | Bin 0 -> 7146 bytes qtflyingbus/core/images/sprites/elements/tree1.png | Bin 0 -> 11200 bytes qtflyingbus/core/images/sprites/elements/tree2.png | Bin 0 -> 11578 bytes qtflyingbus/core/images/sprites/elements/tree3.png | Bin 0 -> 12716 bytes qtflyingbus/core/images/sprites/elements/tree4.png | Bin 0 -> 13006 bytes qtflyingbus/core/images/sprites/elements/tree5.png | Bin 0 -> 12837 bytes qtflyingbus/core/images/sprites/elements/tree6.png | Bin 0 -> 13006 bytes qtflyingbus/core/images/sprites/elements/tree7.png | Bin 0 -> 12828 bytes qtflyingbus/core/images/sprites/qml.png | Bin 0 -> 8302 bytes qtflyingbus/core/images/sprites/star.png | Bin 0 -> 8696 bytes qtflyingbus/core/images/sprites/std.png | Bin 0 -> 7466 bytes .../core/images/sprites/van/inflating/1.png | Bin 0 -> 35964 bytes .../core/images/sprites/van/inflating/2.png | Bin 0 -> 31803 bytes .../core/images/sprites/van/inflating/3.png | Bin 0 -> 30591 bytes .../core/images/sprites/van/inflating/4.png | Bin 0 -> 34358 bytes .../core/images/sprites/van/inflating/5.png | Bin 0 -> 38299 bytes .../core/images/sprites/van/inflating/6.png | Bin 0 -> 36907 bytes qtflyingbus/core/images/sprites/van/running/1.png | Bin 0 -> 37122 bytes qtflyingbus/core/images/sprites/van/running/2.png | Bin 0 -> 37186 bytes qtflyingbus/core/images/sprites/van/running/3.png | Bin 0 -> 37184 bytes qtflyingbus/core/images/sprites/van/running/4.png | Bin 0 -> 37239 bytes qtflyingbus/core/images/sprites/van/running/5.png | Bin 0 -> 37282 bytes qtflyingbus/core/images/sprites/van/running/6.png | Bin 0 -> 37207 bytes qtflyingbus/core/levels/1.xml | 153 ++++++++ qtflyingbus/core/levels/2.xml | 127 +++++++ qtflyingbus/core/levels/3.xml | 156 +++++++++ qtflyingbus/core/resource.qrc | 206 +++++++++++ qtflyingbus/core/sprites/Balloon.qml | 54 +++ qtflyingbus/core/sprites/Bird.qml | 65 ++++ qtflyingbus/core/sprites/Cloud.qml | 78 +++++ qtflyingbus/core/sprites/LadyBug.qml | 59 ++++ qtflyingbus/core/sprites/Peace.qml | 62 ++++ qtflyingbus/core/sprites/Stone.qml | 53 +++ qtflyingbus/core/sprites/Tree.qml | 53 +++ qtflyingbus/main_640_360.qml | 55 +++ qtflyingbus/main_800_480.qml | 55 +++ qtflyingbus/main_864_480.qml | 55 +++ qtflyingbus/qtflyingbus | 0 weather-qml/.DS_Store | Bin 0 -> 6148 bytes weather-qml/.gitignore | 19 + weather-qml/CityModel.qml | 183 ++++++++++ weather-qml/CityPanel.qml | 154 +++++++++ weather-qml/Cloudy.qml | 106 ++++++ weather-qml/Fog.qml | 67 ++++ weather-qml/ForecastLabel.qml | 70 ++++ weather-qml/ForecastView.qml | 60 ++++ weather-qml/Haze.qml | 67 ++++ weather-qml/HungItem.qml | 28 ++ weather-qml/LargeCloud.qml | 11 + weather-qml/MediumCloud.qml | 11 + weather-qml/Mist.qml | 119 +++++++ weather-qml/MostlyCloudy.qml | 91 +++++ weather-qml/MostlySunny.qml | 75 ++++ weather-qml/ParallaxView.qml | 60 ++++ weather-qml/PartlyCloudy.qml | 75 ++++ weather-qml/README.rtf | 7 + weather-qml/Rain.qml | 119 +++++++ weather-qml/RainItem.qml | 15 + weather-qml/ScrollBar.qml | 27 ++ weather-qml/SmallCloud.qml | 11 + weather-qml/SplashScreen.qml | 53 +++ weather-qml/Storm.qml | 119 +++++++ weather-qml/Sunny.qml | 31 ++ weather-qml/Throbber.qml | 14 + weather-qml/Thunderstorm.qml | 119 +++++++ weather-qml/UnknownForecast.qml | 30 ++ weather-qml/Weather.qmlproject | 19 + weather-qml/default.qml | 73 ++++ weather-qml/images/bg_bottom_options.png | Bin 0 -> 23540 bytes weather-qml/images/bg_day_clear.png | Bin 0 -> 67412 bytes weather-qml/images/bg_day_heavyrain.png | Bin 0 -> 70658 bytes weather-qml/images/bg_day_rain.png | Bin 0 -> 76568 bytes weather-qml/images/bg_loading.png | Bin 0 -> 39649 bytes weather-qml/images/bg_night_clear.png | Bin 0 -> 50357 bytes weather-qml/images/bg_night_rain.png | Bin 0 -> 52185 bytes weather-qml/images/bt_options_bg.png | Bin 0 -> 23540 bytes weather-qml/images/button_list_delete.png | Bin 0 -> 1204 bytes weather-qml/images/centigrades.png | Bin 0 -> 1755 bytes weather-qml/images/city_name_background_bigger.png | Bin 0 -> 31290 bytes weather-qml/images/city_panel_bg.png | Bin 0 -> 1195 bytes weather-qml/images/cloud_1.png | Bin 0 -> 41678 bytes weather-qml/images/cloud_1_line.png | Bin 0 -> 293 bytes weather-qml/images/cloud_2.png | Bin 0 -> 24353 bytes weather-qml/images/cloud_2_line.png | Bin 0 -> 316 bytes weather-qml/images/cloud_3.png | Bin 0 -> 17637 bytes weather-qml/images/cloud_3_line.png | Bin 0 -> 326 bytes weather-qml/images/cloud_rain_1.png | Bin 0 -> 37844 bytes weather-qml/images/cloud_rain_1_line.png | Bin 0 -> 220 bytes weather-qml/images/cloud_rain_2.png | Bin 0 -> 24909 bytes weather-qml/images/cloud_rain_2_line.png | Bin 0 -> 217 bytes weather-qml/images/cloud_rain_3.png | Bin 0 -> 17375 bytes weather-qml/images/cloud_rain_3_line.png | Bin 0 -> 205 bytes weather-qml/images/cloud_storm_1.png | Bin 0 -> 38960 bytes weather-qml/images/cloud_storm_1_line.png | Bin 0 -> 190 bytes weather-qml/images/cloud_storm_2.png | Bin 0 -> 20736 bytes weather-qml/images/cloud_storm_2_line.png | Bin 0 -> 211 bytes weather-qml/images/cloud_storm_3.png | Bin 0 -> 14377 bytes weather-qml/images/cloud_storm_3_line.png | Bin 0 -> 218 bytes weather-qml/images/cloud_tstorm_1.png | Bin 0 -> 49152 bytes weather-qml/images/cloud_tstorm_1_line.png | Bin 0 -> 190 bytes weather-qml/images/cloud_tstorm_2.png | Bin 0 -> 28085 bytes weather-qml/images/cloud_tstorm_2_line.png | Bin 0 -> 211 bytes weather-qml/images/cold_sun.png | Bin 0 -> 14860 bytes weather-qml/images/cold_sun_line.png | Bin 0 -> 385 bytes weather-qml/images/division_line.png | Bin 0 -> 145 bytes weather-qml/images/fog.png | Bin 0 -> 3706 bytes weather-qml/images/haze.png | Bin 0 -> 3545 bytes weather-qml/images/icon_max.png | Bin 0 -> 344 bytes weather-qml/images/icon_min.png | Bin 0 -> 337 bytes weather-qml/images/list_item_bg.png | Bin 0 -> 9100 bytes weather-qml/images/list_item_pressed_bg.png | Bin 0 -> 17315 bytes weather-qml/images/list_item_selected_bg.png | Bin 0 -> 19575 bytes weather-qml/images/list_top.png | Bin 0 -> 1058 bytes weather-qml/images/loading_1.png | Bin 0 -> 1206 bytes weather-qml/images/loading_10.png | Bin 0 -> 1174 bytes weather-qml/images/loading_11.png | Bin 0 -> 1162 bytes weather-qml/images/loading_12.png | Bin 0 -> 1165 bytes weather-qml/images/loading_13.png | Bin 0 -> 1180 bytes weather-qml/images/loading_14.png | Bin 0 -> 1211 bytes weather-qml/images/loading_15.png | Bin 0 -> 1156 bytes weather-qml/images/loading_16.png | Bin 0 -> 1195 bytes weather-qml/images/loading_17.png | Bin 0 -> 1158 bytes weather-qml/images/loading_18.png | Bin 0 -> 1170 bytes weather-qml/images/loading_19.png | Bin 0 -> 1221 bytes weather-qml/images/loading_2.png | Bin 0 -> 1166 bytes weather-qml/images/loading_20.png | Bin 0 -> 1181 bytes weather-qml/images/loading_21.png | Bin 0 -> 1176 bytes weather-qml/images/loading_22.png | Bin 0 -> 1156 bytes weather-qml/images/loading_23.png | Bin 0 -> 1186 bytes weather-qml/images/loading_24.png | Bin 0 -> 1205 bytes weather-qml/images/loading_25.png | Bin 0 -> 1156 bytes weather-qml/images/loading_3.png | Bin 0 -> 1164 bytes weather-qml/images/loading_4.png | Bin 0 -> 1122 bytes weather-qml/images/loading_5.png | Bin 0 -> 1175 bytes weather-qml/images/loading_6.png | Bin 0 -> 1166 bytes weather-qml/images/loading_7.png | Bin 0 -> 1129 bytes weather-qml/images/loading_8.png | Bin 0 -> 1160 bytes weather-qml/images/loading_9.png | Bin 0 -> 1163 bytes weather-qml/images/minus_sign.png | Bin 0 -> 259 bytes weather-qml/images/mist_01.png | Bin 0 -> 29211 bytes weather-qml/images/mist_02.png | Bin 0 -> 26915 bytes weather-qml/images/mist_03.png | Bin 0 -> 28047 bytes weather-qml/images/mist_04.png | Bin 0 -> 35158 bytes weather-qml/images/mist_05.png | Bin 0 -> 29677 bytes weather-qml/images/moon.png | Bin 0 -> 9824 bytes weather-qml/images/moon_line.png | Bin 0 -> 211 bytes weather-qml/images/na_icon.png | Bin 0 -> 2687 bytes weather-qml/images/na_icon_line.png | Bin 0 -> 211 bytes weather-qml/images/rain_01.png | Bin 0 -> 40505 bytes weather-qml/images/rain_02.png | Bin 0 -> 36909 bytes weather-qml/images/rain_03.png | Bin 0 -> 33674 bytes weather-qml/images/rain_04.png | Bin 0 -> 39423 bytes weather-qml/images/rain_05.png | Bin 0 -> 39821 bytes weather-qml/images/scroll.png | Bin 0 -> 217 bytes weather-qml/images/scroll_knob.png | Bin 0 -> 236 bytes weather-qml/images/star_01.png | Bin 0 -> 1425 bytes weather-qml/images/star_02.png | Bin 0 -> 1223 bytes weather-qml/images/star_03.png | Bin 0 -> 727 bytes weather-qml/images/storm_01.png | Bin 0 -> 43473 bytes weather-qml/images/storm_02.png | Bin 0 -> 38353 bytes weather-qml/images/storm_03.png | Bin 0 -> 34302 bytes weather-qml/images/storm_04.png | Bin 0 -> 41249 bytes weather-qml/images/storm_05.png | Bin 0 -> 43272 bytes weather-qml/images/sun.png | Bin 0 -> 43738 bytes weather-qml/images/sun_line.png | Bin 0 -> 402 bytes weather-qml/images/thunder.png | Bin 0 -> 7510 bytes weather-qml/images/umbrella.png | Bin 0 -> 34987 bytes 393 files changed, 6693 insertions(+) create mode 100644 CoffeeTweed/Add.qml create mode 100644 CoffeeTweed/CoffeeTweed.qml create mode 100644 CoffeeTweed/CoffeeTweed.qmlproject create mode 100644 CoffeeTweed/Counter_cupsDown.qml create mode 100644 CoffeeTweed/Counter_toGo.qml create mode 100644 CoffeeTweed/Cup.qml create mode 100644 CoffeeTweed/Remove.qml create mode 100644 CoffeeTweed/Taskbar.qml create mode 100644 CoffeeTweed/Tray.qml create mode 100644 CoffeeTweed/Tray_model.qml create mode 100755 CoffeeTweed/images/.DS_Store create mode 100755 CoffeeTweed/images/bg.png create mode 100755 CoffeeTweed/images/bt_add_off.png create mode 100755 CoffeeTweed/images/bt_add_on.png create mode 100755 CoffeeTweed/images/bt_remove_off.png create mode 100755 CoffeeTweed/images/bt_remove_on.png create mode 100755 CoffeeTweed/images/coffee_plate.png create mode 100755 CoffeeTweed/images/cup_back.png create mode 100755 CoffeeTweed/images/cup_blur.png create mode 100755 CoffeeTweed/images/cup_content.png create mode 100755 CoffeeTweed/images/cup_empty.png create mode 100755 CoffeeTweed/images/cup_front.png create mode 100755 CoffeeTweed/images/cup_full.png create mode 100755 CoffeeTweed/images/cup_smoke.png create mode 100755 CoffeeTweed/images/empty_row1.png create mode 100755 CoffeeTweed/images/empty_row2.png create mode 100755 CoffeeTweed/images/empty_row3.png create mode 100755 CoffeeTweed/images/taskbar_bg.png create mode 100755 CoffeeTweed/images/taskbar_close_bt.png create mode 100755 CoffeeTweed/images/taskbar_division.png create mode 100755 CoffeeTweed/images/taskbar_home_bt.png create mode 100755 CoffeeTweed/images/taskbar_options_bt.png create mode 100755 CoffeeTweed/images/taskbar_placeholder.png create mode 100644 RadioTuner/README.rtf create mode 100644 RadioTuner/RadioModel.qml create mode 100644 RadioTuner/RadioTuner.qml create mode 100644 RadioTuner/RadioTuner.qmlproject create mode 100644 RadioTuner/RangeStation.qml create mode 100644 RadioTuner/StationsModel.qml create mode 100644 RadioTuner/images/.DS_Store create mode 100755 RadioTuner/images/bottom.png create mode 100755 RadioTuner/images/bt_next.png create mode 100755 RadioTuner/images/bt_next_down.png create mode 100755 RadioTuner/images/bt_prev.png create mode 100755 RadioTuner/images/bt_prev_down.png create mode 100755 RadioTuner/images/bt_rdsname_arrow.png create mode 100644 RadioTuner/images/high_tick.png create mode 100644 RadioTuner/images/low_tick.png create mode 100644 RadioTuner/images/medium_tick.png create mode 100644 RadioTuner/images/placeholder_n900_bar.png create mode 100755 RadioTuner/images/scala_bg.png create mode 100755 RadioTuner/images/scala_glass.png create mode 100755 RadioTuner/images/scala_needle.png create mode 100755 RadioTuner/images/scala_rdslabel.png create mode 100755 RadioTuner/images/scala_ticks.png create mode 100755 RadioTuner/images/top.png create mode 100644 RadioTuner/rangemodel.js create mode 100644 qtflyingbus/core/AboutMenu.qml create mode 100644 qtflyingbus/core/Background.qml create mode 100644 qtflyingbus/core/Balloon.qml create mode 100644 qtflyingbus/core/Base.qml create mode 100644 qtflyingbus/core/Button.qml create mode 100644 qtflyingbus/core/CompleteMenu.qml create mode 100644 qtflyingbus/core/DigitLabel.qml create mode 100644 qtflyingbus/core/FinalSplash.qml create mode 100644 qtflyingbus/core/FinalSplashItem.qml create mode 100644 qtflyingbus/core/FrameSprite.qml create mode 100644 qtflyingbus/core/GameOverMenu.qml create mode 100644 qtflyingbus/core/HelpScreen.qml create mode 100644 qtflyingbus/core/LeaveMenu.qml create mode 100644 qtflyingbus/core/LevelModel.qml create mode 100644 qtflyingbus/core/Main.qml create mode 100644 qtflyingbus/core/Menu.qml create mode 100644 qtflyingbus/core/MenuAnimation.qml create mode 100644 qtflyingbus/core/PlayMenu.qml create mode 100644 qtflyingbus/core/Player.qml create mode 100644 qtflyingbus/core/Score.qml create mode 100644 qtflyingbus/core/ScoreMenu.qml create mode 100644 qtflyingbus/core/Splash.qml create mode 100644 qtflyingbus/core/Sprite.qml create mode 100644 qtflyingbus/core/YouWinMenu.qml create mode 100644 qtflyingbus/core/engine.js create mode 100644 qtflyingbus/core/images/LICENSE.txt create mode 100644 qtflyingbus/core/images/balloons/blue/1.png create mode 100644 qtflyingbus/core/images/balloons/blue/2.png create mode 100644 qtflyingbus/core/images/balloons/blue/3.png create mode 100644 qtflyingbus/core/images/balloons/blue/4.png create mode 100644 qtflyingbus/core/images/balloons/blue/5.png create mode 100644 qtflyingbus/core/images/balloons/blue/6.png create mode 100644 qtflyingbus/core/images/balloons/green/1.png create mode 100644 qtflyingbus/core/images/balloons/green/2.png create mode 100644 qtflyingbus/core/images/balloons/green/3.png create mode 100644 qtflyingbus/core/images/balloons/green/4.png create mode 100644 qtflyingbus/core/images/balloons/green/5.png create mode 100644 qtflyingbus/core/images/balloons/green/6.png create mode 100644 qtflyingbus/core/images/balloons/line.png create mode 100644 qtflyingbus/core/images/balloons/pink/1.png create mode 100644 qtflyingbus/core/images/balloons/pink/2.png create mode 100644 qtflyingbus/core/images/balloons/pink/3.png create mode 100644 qtflyingbus/core/images/balloons/pink/4.png create mode 100644 qtflyingbus/core/images/balloons/pink/5.png create mode 100644 qtflyingbus/core/images/balloons/pink/6.png create mode 100644 qtflyingbus/core/images/balloons/red/1.png create mode 100644 qtflyingbus/core/images/balloons/red/2.png create mode 100644 qtflyingbus/core/images/balloons/red/3.png create mode 100644 qtflyingbus/core/images/balloons/red/4.png create mode 100644 qtflyingbus/core/images/balloons/red/5.png create mode 100644 qtflyingbus/core/images/balloons/red/6.png create mode 100644 qtflyingbus/core/images/balloons/yellow/1.png create mode 100644 qtflyingbus/core/images/balloons/yellow/2.png create mode 100644 qtflyingbus/core/images/balloons/yellow/3.png create mode 100644 qtflyingbus/core/images/balloons/yellow/4.png create mode 100644 qtflyingbus/core/images/balloons/yellow/5.png create mode 100644 qtflyingbus/core/images/balloons/yellow/6.png create mode 100644 qtflyingbus/core/images/buttons/back.png create mode 100644 qtflyingbus/core/images/buttons/back2.png create mode 100644 qtflyingbus/core/images/buttons/close.png create mode 100644 qtflyingbus/core/images/buttons/close2.png create mode 100644 qtflyingbus/core/images/buttons/pause.png create mode 100644 qtflyingbus/core/images/buttons/pause2.png create mode 100644 qtflyingbus/core/images/buttons/play.png create mode 100644 qtflyingbus/core/images/buttons/play2.png create mode 100644 qtflyingbus/core/images/digits/0.png create mode 100644 qtflyingbus/core/images/digits/1.png create mode 100644 qtflyingbus/core/images/digits/2.png create mode 100644 qtflyingbus/core/images/digits/3.png create mode 100644 qtflyingbus/core/images/digits/4.png create mode 100644 qtflyingbus/core/images/digits/5.png create mode 100644 qtflyingbus/core/images/digits/6.png create mode 100644 qtflyingbus/core/images/digits/7.png create mode 100644 qtflyingbus/core/images/digits/8.png create mode 100644 qtflyingbus/core/images/digits/9.png create mode 100644 qtflyingbus/core/images/digits/minus.png create mode 100644 qtflyingbus/core/images/help/background.png create mode 100644 qtflyingbus/core/images/help/balloon.png create mode 100644 qtflyingbus/core/images/help/bird.png create mode 100644 qtflyingbus/core/images/help/cloud.png create mode 100644 qtflyingbus/core/images/help/ladybug.png create mode 100644 qtflyingbus/core/images/help/peace.png create mode 100644 qtflyingbus/core/images/help/playnow.png create mode 100644 qtflyingbus/core/images/help/pop.png create mode 100644 qtflyingbus/core/images/help/rock.png create mode 100644 qtflyingbus/core/images/help/tap.png create mode 100644 qtflyingbus/core/images/help/title.png create mode 100644 qtflyingbus/core/images/help/tree.png create mode 100644 qtflyingbus/core/images/life.png create mode 100644 qtflyingbus/core/images/menu/about.png create mode 100644 qtflyingbus/core/images/menu/button/about.png create mode 100644 qtflyingbus/core/images/menu/button/about_pressed.png create mode 100644 qtflyingbus/core/images/menu/button/exit.png create mode 100644 qtflyingbus/core/images/menu/button/exit_pressed.png create mode 100644 qtflyingbus/core/images/menu/button/help.png create mode 100644 qtflyingbus/core/images/menu/button/help_pressed.png create mode 100644 qtflyingbus/core/images/menu/button/menu.png create mode 100644 qtflyingbus/core/images/menu/button/menu_pressed.png create mode 100644 qtflyingbus/core/images/menu/button/next_level.png create mode 100644 qtflyingbus/core/images/menu/button/next_level_pressed.png create mode 100644 qtflyingbus/core/images/menu/button/no.png create mode 100644 qtflyingbus/core/images/menu/button/no_pressed.png create mode 100644 qtflyingbus/core/images/menu/button/play.png create mode 100644 qtflyingbus/core/images/menu/button/play_pressed.png create mode 100644 qtflyingbus/core/images/menu/button/restart.png create mode 100644 qtflyingbus/core/images/menu/button/restart_pressed.png create mode 100644 qtflyingbus/core/images/menu/button/retry.png create mode 100644 qtflyingbus/core/images/menu/button/retry_pressed.png create mode 100644 qtflyingbus/core/images/menu/button/yes.png create mode 100644 qtflyingbus/core/images/menu/button/yes_pressed.png create mode 100644 qtflyingbus/core/images/menu/complete_title.png create mode 100644 qtflyingbus/core/images/menu/details.png create mode 100644 qtflyingbus/core/images/menu/dot.png create mode 100644 qtflyingbus/core/images/menu/highscore.png create mode 100644 qtflyingbus/core/images/menu/leave_title.png create mode 100644 qtflyingbus/core/images/menu/menu.png create mode 100644 qtflyingbus/core/images/menu/menu_div.png create mode 100644 qtflyingbus/core/images/menu/menu_gameover.png create mode 100644 qtflyingbus/core/images/menu/menu_youwin.png create mode 100644 qtflyingbus/core/images/menu/yourscore.png create mode 100644 qtflyingbus/core/images/scene/elements/bigmountain1.png create mode 100644 qtflyingbus/core/images/scene/elements/bigmountain2.png create mode 100644 qtflyingbus/core/images/scene/elements/bush.png create mode 100644 qtflyingbus/core/images/scene/elements/cloud1.png create mode 100644 qtflyingbus/core/images/scene/elements/cloud2.png create mode 100644 qtflyingbus/core/images/scene/elements/cloud3.png create mode 100644 qtflyingbus/core/images/scene/elements/cloud4.png create mode 100644 qtflyingbus/core/images/scene/elements/cloud5.png create mode 100644 qtflyingbus/core/images/scene/elements/grass.png create mode 100644 qtflyingbus/core/images/scene/elements/ground.png create mode 100644 qtflyingbus/core/images/scene/elements/moon.png create mode 100644 qtflyingbus/core/images/scene/elements/mountain.png create mode 100644 qtflyingbus/core/images/scene/elements/road.png create mode 100644 qtflyingbus/core/images/scene/elements/sand.png create mode 100644 qtflyingbus/core/images/scene/elements/street.png create mode 100644 qtflyingbus/core/images/scene/elements/sun.png create mode 100644 qtflyingbus/core/images/scene/elements/sunlight.png create mode 100644 qtflyingbus/core/images/scene/elements/water.png create mode 100644 qtflyingbus/core/images/scene/sky/dark.png create mode 100644 qtflyingbus/core/images/scene/sky/gray.png create mode 100644 qtflyingbus/core/images/scene/sky/light.png create mode 100644 qtflyingbus/core/images/score.png create mode 100644 qtflyingbus/core/images/splash/background.png create mode 100644 qtflyingbus/core/images/splash/finalbackground.png create mode 100644 qtflyingbus/core/images/splash/n8.png create mode 100644 qtflyingbus/core/images/splash/note.png create mode 100644 qtflyingbus/core/images/splash/tablet.png create mode 100644 qtflyingbus/core/images/splash/van.png create mode 100644 qtflyingbus/core/images/sprites/elements/balloon.png create mode 100644 qtflyingbus/core/images/sprites/elements/bird1.png create mode 100644 qtflyingbus/core/images/sprites/elements/bird2.png create mode 100644 qtflyingbus/core/images/sprites/elements/bird3.png create mode 100644 qtflyingbus/core/images/sprites/elements/bird4.png create mode 100644 qtflyingbus/core/images/sprites/elements/bird5.png create mode 100644 qtflyingbus/core/images/sprites/elements/cloud1.png create mode 100644 qtflyingbus/core/images/sprites/elements/cloud2.png create mode 100644 qtflyingbus/core/images/sprites/elements/cloud3.png create mode 100644 qtflyingbus/core/images/sprites/elements/cloud4.png create mode 100644 qtflyingbus/core/images/sprites/elements/cloud5.png create mode 100644 qtflyingbus/core/images/sprites/elements/cloud6.png create mode 100644 qtflyingbus/core/images/sprites/elements/cloud7.png create mode 100644 qtflyingbus/core/images/sprites/elements/ladybug1.png create mode 100644 qtflyingbus/core/images/sprites/elements/ladybug2.png create mode 100644 qtflyingbus/core/images/sprites/elements/ladybug3.png create mode 100644 qtflyingbus/core/images/sprites/elements/peace1.png create mode 100644 qtflyingbus/core/images/sprites/elements/peace2.png create mode 100644 qtflyingbus/core/images/sprites/elements/peace3.png create mode 100644 qtflyingbus/core/images/sprites/elements/peace4.png create mode 100644 qtflyingbus/core/images/sprites/elements/peace5.png create mode 100644 qtflyingbus/core/images/sprites/elements/stone.png create mode 100644 qtflyingbus/core/images/sprites/elements/tree1.png create mode 100644 qtflyingbus/core/images/sprites/elements/tree2.png create mode 100644 qtflyingbus/core/images/sprites/elements/tree3.png create mode 100644 qtflyingbus/core/images/sprites/elements/tree4.png create mode 100644 qtflyingbus/core/images/sprites/elements/tree5.png create mode 100644 qtflyingbus/core/images/sprites/elements/tree6.png create mode 100644 qtflyingbus/core/images/sprites/elements/tree7.png create mode 100644 qtflyingbus/core/images/sprites/qml.png create mode 100644 qtflyingbus/core/images/sprites/star.png create mode 100644 qtflyingbus/core/images/sprites/std.png create mode 100644 qtflyingbus/core/images/sprites/van/inflating/1.png create mode 100644 qtflyingbus/core/images/sprites/van/inflating/2.png create mode 100644 qtflyingbus/core/images/sprites/van/inflating/3.png create mode 100644 qtflyingbus/core/images/sprites/van/inflating/4.png create mode 100644 qtflyingbus/core/images/sprites/van/inflating/5.png create mode 100644 qtflyingbus/core/images/sprites/van/inflating/6.png create mode 100644 qtflyingbus/core/images/sprites/van/running/1.png create mode 100644 qtflyingbus/core/images/sprites/van/running/2.png create mode 100644 qtflyingbus/core/images/sprites/van/running/3.png create mode 100644 qtflyingbus/core/images/sprites/van/running/4.png create mode 100644 qtflyingbus/core/images/sprites/van/running/5.png create mode 100644 qtflyingbus/core/images/sprites/van/running/6.png create mode 100644 qtflyingbus/core/levels/1.xml create mode 100644 qtflyingbus/core/levels/2.xml create mode 100644 qtflyingbus/core/levels/3.xml create mode 100644 qtflyingbus/core/resource.qrc create mode 100644 qtflyingbus/core/sprites/Balloon.qml create mode 100644 qtflyingbus/core/sprites/Bird.qml create mode 100644 qtflyingbus/core/sprites/Cloud.qml create mode 100644 qtflyingbus/core/sprites/LadyBug.qml create mode 100644 qtflyingbus/core/sprites/Peace.qml create mode 100644 qtflyingbus/core/sprites/Stone.qml create mode 100644 qtflyingbus/core/sprites/Tree.qml create mode 100644 qtflyingbus/main_640_360.qml create mode 100644 qtflyingbus/main_800_480.qml create mode 100644 qtflyingbus/main_864_480.qml create mode 100644 qtflyingbus/qtflyingbus create mode 100644 weather-qml/.DS_Store create mode 100644 weather-qml/.gitignore create mode 100644 weather-qml/CityModel.qml create mode 100644 weather-qml/CityPanel.qml create mode 100644 weather-qml/Cloudy.qml create mode 100644 weather-qml/Fog.qml create mode 100644 weather-qml/ForecastLabel.qml create mode 100644 weather-qml/ForecastView.qml create mode 100644 weather-qml/Haze.qml create mode 100644 weather-qml/HungItem.qml create mode 100644 weather-qml/LargeCloud.qml create mode 100644 weather-qml/MediumCloud.qml create mode 100644 weather-qml/Mist.qml create mode 100644 weather-qml/MostlyCloudy.qml create mode 100644 weather-qml/MostlySunny.qml create mode 100644 weather-qml/ParallaxView.qml create mode 100644 weather-qml/PartlyCloudy.qml create mode 100644 weather-qml/README.rtf create mode 100644 weather-qml/Rain.qml create mode 100644 weather-qml/RainItem.qml create mode 100644 weather-qml/ScrollBar.qml create mode 100644 weather-qml/SmallCloud.qml create mode 100644 weather-qml/SplashScreen.qml create mode 100644 weather-qml/Storm.qml create mode 100644 weather-qml/Sunny.qml create mode 100644 weather-qml/Throbber.qml create mode 100644 weather-qml/Thunderstorm.qml create mode 100644 weather-qml/UnknownForecast.qml create mode 100644 weather-qml/Weather.qmlproject create mode 100644 weather-qml/default.qml create mode 100644 weather-qml/images/bg_bottom_options.png create mode 100644 weather-qml/images/bg_day_clear.png create mode 100644 weather-qml/images/bg_day_heavyrain.png create mode 100644 weather-qml/images/bg_day_rain.png create mode 100644 weather-qml/images/bg_loading.png create mode 100644 weather-qml/images/bg_night_clear.png create mode 100644 weather-qml/images/bg_night_rain.png create mode 100644 weather-qml/images/bt_options_bg.png create mode 100755 weather-qml/images/button_list_delete.png create mode 100644 weather-qml/images/centigrades.png create mode 100644 weather-qml/images/city_name_background_bigger.png create mode 100644 weather-qml/images/city_panel_bg.png create mode 100644 weather-qml/images/cloud_1.png create mode 100644 weather-qml/images/cloud_1_line.png create mode 100644 weather-qml/images/cloud_2.png create mode 100644 weather-qml/images/cloud_2_line.png create mode 100644 weather-qml/images/cloud_3.png create mode 100644 weather-qml/images/cloud_3_line.png create mode 100644 weather-qml/images/cloud_rain_1.png create mode 100644 weather-qml/images/cloud_rain_1_line.png create mode 100644 weather-qml/images/cloud_rain_2.png create mode 100644 weather-qml/images/cloud_rain_2_line.png create mode 100644 weather-qml/images/cloud_rain_3.png create mode 100644 weather-qml/images/cloud_rain_3_line.png create mode 100644 weather-qml/images/cloud_storm_1.png create mode 100644 weather-qml/images/cloud_storm_1_line.png create mode 100644 weather-qml/images/cloud_storm_2.png create mode 100644 weather-qml/images/cloud_storm_2_line.png create mode 100644 weather-qml/images/cloud_storm_3.png create mode 100644 weather-qml/images/cloud_storm_3_line.png create mode 100644 weather-qml/images/cloud_tstorm_1.png create mode 100644 weather-qml/images/cloud_tstorm_1_line.png create mode 100644 weather-qml/images/cloud_tstorm_2.png create mode 100644 weather-qml/images/cloud_tstorm_2_line.png create mode 100644 weather-qml/images/cold_sun.png create mode 100644 weather-qml/images/cold_sun_line.png create mode 100644 weather-qml/images/division_line.png create mode 100644 weather-qml/images/fog.png create mode 100644 weather-qml/images/haze.png create mode 100644 weather-qml/images/icon_max.png create mode 100644 weather-qml/images/icon_min.png create mode 100644 weather-qml/images/list_item_bg.png create mode 100644 weather-qml/images/list_item_pressed_bg.png create mode 100644 weather-qml/images/list_item_selected_bg.png create mode 100644 weather-qml/images/list_top.png create mode 100644 weather-qml/images/loading_1.png create mode 100644 weather-qml/images/loading_10.png create mode 100644 weather-qml/images/loading_11.png create mode 100644 weather-qml/images/loading_12.png create mode 100644 weather-qml/images/loading_13.png create mode 100644 weather-qml/images/loading_14.png create mode 100644 weather-qml/images/loading_15.png create mode 100644 weather-qml/images/loading_16.png create mode 100644 weather-qml/images/loading_17.png create mode 100644 weather-qml/images/loading_18.png create mode 100644 weather-qml/images/loading_19.png create mode 100644 weather-qml/images/loading_2.png create mode 100644 weather-qml/images/loading_20.png create mode 100644 weather-qml/images/loading_21.png create mode 100644 weather-qml/images/loading_22.png create mode 100644 weather-qml/images/loading_23.png create mode 100644 weather-qml/images/loading_24.png create mode 100644 weather-qml/images/loading_25.png create mode 100644 weather-qml/images/loading_3.png create mode 100644 weather-qml/images/loading_4.png create mode 100644 weather-qml/images/loading_5.png create mode 100644 weather-qml/images/loading_6.png create mode 100644 weather-qml/images/loading_7.png create mode 100644 weather-qml/images/loading_8.png create mode 100644 weather-qml/images/loading_9.png create mode 100644 weather-qml/images/minus_sign.png create mode 100644 weather-qml/images/mist_01.png create mode 100644 weather-qml/images/mist_02.png create mode 100644 weather-qml/images/mist_03.png create mode 100644 weather-qml/images/mist_04.png create mode 100644 weather-qml/images/mist_05.png create mode 100644 weather-qml/images/moon.png create mode 100644 weather-qml/images/moon_line.png create mode 100644 weather-qml/images/na_icon.png create mode 100644 weather-qml/images/na_icon_line.png create mode 100644 weather-qml/images/rain_01.png create mode 100644 weather-qml/images/rain_02.png create mode 100644 weather-qml/images/rain_03.png create mode 100644 weather-qml/images/rain_04.png create mode 100644 weather-qml/images/rain_05.png create mode 100644 weather-qml/images/scroll.png create mode 100644 weather-qml/images/scroll_knob.png create mode 100644 weather-qml/images/star_01.png create mode 100644 weather-qml/images/star_02.png create mode 100644 weather-qml/images/star_03.png create mode 100644 weather-qml/images/storm_01.png create mode 100644 weather-qml/images/storm_02.png create mode 100644 weather-qml/images/storm_03.png create mode 100644 weather-qml/images/storm_04.png create mode 100644 weather-qml/images/storm_05.png create mode 100644 weather-qml/images/sun.png create mode 100644 weather-qml/images/sun_line.png create mode 100644 weather-qml/images/thunder.png create mode 100644 weather-qml/images/umbrella.png diff --git a/CoffeeTweed/Add.qml b/CoffeeTweed/Add.qml new file mode 100644 index 0000000..5a16af9 --- /dev/null +++ b/CoffeeTweed/Add.qml @@ -0,0 +1,38 @@ +import Qt 4.7 + +Item { + id: bt_add + width: 188; height: 188 + + signal addClicked + + Image { + id: bt_add_off; + source: "images/bt_add_off.png"; + } + + Image { + id: bt_add_on; + source: "images/bt_add_on.png"; + opacity: 0; + Behavior on opacity { NumberAnimation { duration: 150; } } + } + + MouseArea { + anchors.fill: parent + onPressed: { bt_add.state = "pressed" } + onReleased: { bt_add.state = "released"; bt_add.addClicked() } + + } + + states: [ + State { + name: "pressed" + PropertyChanges{ target: bt_add_on; opacity: 1; } + }, + State { + name: "released" + PropertyChanges{ target: bt_add_on; opacity: 0; } + } + ] +} diff --git a/CoffeeTweed/CoffeeTweed.qml b/CoffeeTweed/CoffeeTweed.qml new file mode 100644 index 0000000..ed2fdae --- /dev/null +++ b/CoffeeTweed/CoffeeTweed.qml @@ -0,0 +1,82 @@ +import Qt 4.6 + +Rectangle { + id: root + width: 800; height: 480 + + property int coffee_count: 0 + property int coffee_total: 12 + + function add_one() { + if (coffee_count < coffee_total) { + root.coffee_count += 1, + counter_toGo.state = "add_count", + counter_cupsDown.state = "add_count", + cup.state = "less_one", + tray.add_cup(coffee_count) + } + } + function remove_one() { + if (coffee_count > 0) { + root.coffee_count -= 1, + counter_toGo.state = "remove_count", + counter_cupsDown.state = "remove_count", + tray.remove_cup(coffee_count) + } + } + + Image { + source: "images/bg.png" + } + + Taskbar { + anchors.top: root.top + } + + Counter_toGo { + id: counter_toGo + x: 130; y: 120; + } + + Counter_cupsDown { + id: counter_cupsDown + x: 260; y: 86; + } + + Text { + id: toGo; + y: 120; x: 345; + text: "to go"; font.pixelSize: 100; font.letterSpacing: 90; color: "#FFF" + } + Text { + id: cupsDown + y: 86; x: 390; + text: "cups down"; font.pixelSize: 50; font.letterSpacing: 90; color: "#999" + } + + Tray { + id: tray + x: 335; y: 280; + } + + Tray_model{ + id: traymodel + } + + Cup { + id: cup + x: 175; y: 0; + } + + Add { + id: add_btn + x: -7; y: 200 + onAddClicked: add_one() + } + + Remove { + id: remove_btn + x: 619; y: 200 + onRemoveClicked: remove_one() + } +} diff --git a/CoffeeTweed/CoffeeTweed.qmlproject b/CoffeeTweed/CoffeeTweed.qmlproject new file mode 100644 index 0000000..86a5669 --- /dev/null +++ b/CoffeeTweed/CoffeeTweed.qmlproject @@ -0,0 +1,16 @@ +// File generated by QtCreator + +import QmlProject 1.0 + +Project { + // Scan current directory for .qml, .js, and image files + QmlFiles { + directory: "." + } + JavaScriptFiles { + directory: "." + } + ImageFiles { + directory: "." + } +} diff --git a/CoffeeTweed/Counter_cupsDown.qml b/CoffeeTweed/Counter_cupsDown.qml new file mode 100644 index 0000000..9507390 --- /dev/null +++ b/CoffeeTweed/Counter_cupsDown.qml @@ -0,0 +1,58 @@ +import Qt 4.7 + +Item { + width: 100; height: 90; + state: "default" + + Text { + id: cupsDown_counter + x: 20; y: 0 + width: parent.width + + text: "0" + color: "#999"; font.bold: true; font.pixelSize: 50; smooth: true; horizontalAlignment: "AlignRight" + + Behavior on opacity { + NumberAnimation { duration: 300;} + } + } + + function reset_counter_state() { + counter_cupsDown.state = "default" + } + + states: [ + State { + name: "default" + }, + State { + name: "add_count" + }, + State { + name: "remove_count" + } + ] + + transitions: [ + Transition { + from: "default"; to: "add_count" + SequentialAnimation { + PropertyAnimation { target: cupsDown_counter; property: "opacity"; to: 0; } + PropertyAction{ target: cupsDown_counter; property: "text"; value: coffee_count } + PauseAnimation { duration: 1500; } + PropertyAnimation { target: cupsDown_counter; property: "opacity"; to: 1; } + ScriptAction { script: reset_counter_state() } + } + }, + Transition { + from: "default"; to: "remove_count" + SequentialAnimation { + PropertyAnimation { target: cupsDown_counter; property: "opacity"; to: 0; } + PropertyAction{ target: cupsDown_counter; property: "text"; value: coffee_count } + PauseAnimation { duration: 300; } + PropertyAnimation { target: cupsDown_counter; property: "opacity"; to: 1; } + ScriptAction { script: reset_counter_state() } + } + } + ] +} diff --git a/CoffeeTweed/Counter_toGo.qml b/CoffeeTweed/Counter_toGo.qml new file mode 100644 index 0000000..2bf8d88 --- /dev/null +++ b/CoffeeTweed/Counter_toGo.qml @@ -0,0 +1,58 @@ +import Qt 4.7 + +Item { + width: 170; height: 90; + state: "default" + + Text { + id: toGo_counter + x: 20; y: 0 + width: parent.width + + text: coffee_total + color: "#FFF"; font.bold: true; font.pixelSize: 100; smooth: true; horizontalAlignment: "AlignRight" + + Behavior on opacity { + NumberAnimation { duration: 300;} + } + } + + function reset_counter_state() { + counter_toGo.state = "default" + } + + states: [ + State { + name: "default" + }, + State { + name: "add_count" + }, + State { + name: "remove_count" + } + ] + + transitions: [ + Transition { + from: "default"; to: "add_count" + SequentialAnimation { + PropertyAnimation { target: toGo_counter; property: "opacity"; to: 0; } + PropertyAction{ target: toGo_counter; property: "text"; value: coffee_total - coffee_count } + PauseAnimation { duration: 1500; } + PropertyAnimation { target: toGo_counter; property: "opacity"; to: 1; } + ScriptAction { script: reset_counter_state() } + } + }, + Transition { + from: "default"; to: "remove_count" + SequentialAnimation { + PropertyAnimation { target: toGo_counter; property: "opacity"; to: 0; } + PropertyAction{ target: toGo_counter; property: "text"; value: coffee_total - coffee_count } + PauseAnimation { duration: 300; } + PropertyAnimation { target: toGo_counter; property: "opacity"; to: 1; } + ScriptAction { script: reset_counter_state() } + } + } + ] +} diff --git a/CoffeeTweed/Cup.qml b/CoffeeTweed/Cup.qml new file mode 100644 index 0000000..93fc385 --- /dev/null +++ b/CoffeeTweed/Cup.qml @@ -0,0 +1,112 @@ +import Qt 4.7 + +Item { + id: coffee_cup + width: 190; height: 480 + + function return_to_ashes() { + coffee_cup.state = ""; + } + + Image { + id: cup_plate + source: "images/coffee_plate.png"; y: 365 + } + + Item { + id: cup_full + width: 135; height: 138; x: 7; y: 280 + Image { source: "images/cup_back.png"; } + + Item { id: cup_content; Image { source: "images/cup_content.png"; } } + Item { id: cup_front; Image { source: "images/cup_front.png"; } } + } + + Item { + id: cup_empty + width: 135; height: 138; x: 7; y: 280; opacity: 0 + Image { source: "images/cup_empty.png"; } + } + + Item { + id: cup_smoke + width: 233; height: 258; y: 45; x: -13; opacity: 1 + Image { source: "images/cup_smoke.png" } + } + + Item { + id: cup_running + width: 135; height: 188; x: 7; y: -228; opacity: 0 + Image { source: "images/cup_blur.png"; } + } + + states: [ + State{ + name: "less_one" + } + ] + + transitions: [ + Transition { + from: "" + to: "less_one" + + SequentialAnimation{ + + // Empty the cup and fade the smoke + ParallelAnimation { + PropertyAnimation { target: cup_smoke; property: "opacity"; to: 0; duration: 500; } + PropertyAnimation { target: cup_content; property: "y"; to: 25; duration: 500; } + } + + // Change the full cup composition by the empty cup + PropertyAction { target: cup_empty; property: "opacity"; value: 1 } + PropertyAction { target: cup_full; property: "opacity"; value: 0; } + + // Pause for coffee + PauseAnimation { duration: 100; } + + // Fade out the empty cup + PropertyAnimation { target: cup_empty; property: "opacity"; to: 0; duration: 200; } + + // Send the empty cup to the top and update the number + PropertyAction { target: cup_empty; property: "y"; value: -188; } + + // Turn on the blur and empty cups + PropertyAction { target: cup_running; property: "opacity"; value: 1; } + PropertyAction { target: cup_empty; property: "opacity"; value: 1; } + + // Clean cup coming! + ParallelAnimation { + PropertyAnimation { target: cup_running; property: "y"; to: 235; duration: 300; } + PropertyAnimation { target: cup_empty; property: "y"; to: 285; duration: 300; } + } + + // Landing in the plate + ParallelAnimation { + PropertyAnimation { target: cup_empty; property: "y"; to: 280; duration: 150; } + PropertyAnimation { target: cup_running; property: "opacity"; to: 0; duration: 200; } + } + + // Get the blured cup to the original place + PropertyAction { target: cup_running; property: "y"; value: -228; } + + // Wait for the waiter + PauseAnimation { duration: 500; } + + // Change the empty cup by the full cup composition + PropertyAction { target: cup_full; property: "opacity"; value: 1; } + PropertyAction { target: cup_empty; property: "opacity"; value: 0; } + + // Here is your coffee, sir + PropertyAnimation { target: cup_content; property: "y"; to: 0; duration: 400; } + PropertyAnimation { target: cup_smoke; property: "opacity"; to: 1; duration: 700; } + + // Ready for the next turn + ScriptAction { script: return_to_ashes() } + } + + } + ] + +} diff --git a/CoffeeTweed/Remove.qml b/CoffeeTweed/Remove.qml new file mode 100644 index 0000000..66c35f1 --- /dev/null +++ b/CoffeeTweed/Remove.qml @@ -0,0 +1,39 @@ +import Qt 4.7 + +Item { + id: bt_remove + width: 188; height: 188 + + signal removeClicked + + Image { + id: bt_remove_off; + source: "images/bt_remove_off.png"; + } + + Image { + id: bt_remove_on; + source: "images/bt_remove_on.png"; + opacity: 0; + Behavior on opacity { NumberAnimation { duration: 150; } } + } + + MouseArea { + anchors.fill: parent + onPressed: { bt_remove.state = "pressed" } + onReleased: { bt_remove.state = "released"; bt_remove.removeClicked() } + + } + + states: [ + State { + name: "pressed" + PropertyChanges{ target: bt_remove_on; opacity: 1; } + }, + State { + name: "released" + PropertyChanges{ target: bt_remove_on; opacity: 0; } + } + ] + +} diff --git a/CoffeeTweed/Taskbar.qml b/CoffeeTweed/Taskbar.qml new file mode 100644 index 0000000..f64ae17 --- /dev/null +++ b/CoffeeTweed/Taskbar.qml @@ -0,0 +1,6 @@ +import Qt 4.7 + +Rectangle { + width: 800; height: 55 + Image { source: "images/taskbar_placeholder.png" } +} diff --git a/CoffeeTweed/Tray.qml b/CoffeeTweed/Tray.qml new file mode 100644 index 0000000..608317a --- /dev/null +++ b/CoffeeTweed/Tray.qml @@ -0,0 +1,64 @@ +import Qt 4.7 + +Item { + id:cuptray + width: 330; height: 110; + + Tray_model{ + id: traymodel + } + + function add_cup(indx) { + var cupindx = indx -1; + traymodel.set(cupindx, { cupstate: "display" }); + } + + function remove_cup(indx) { + var cupindx = indx; + traymodel.set(cupindx, { cupstate: "hide" }); + } + + Component { + id: emptycup + Item { + id: empty_cup + width: 69; height: 67 + x: pos_x; y: pos_y; z: pos_z + opacity: 0 + state: cupstate + + Image { source: img_src } + + Behavior on opacity { NumberAnimation { duration: 400 } } + + states: [ + State { + name: "display" + }, + State { + name: "hide" + } + ] + transitions: [ + Transition { + from: "*"; to: "hide" + SequentialAnimation { + PropertyAnimation { target: empty_cup; property: "opacity"; to: 0; } + } + }, + Transition { + from: "hide"; to: "display" + SequentialAnimation { + PropertyAnimation { target: empty_cup; property: "opacity"; to: 1; } + } + } + ] + } + } + + Repeater { + model: traymodel + delegate: emptycup + } + +} diff --git a/CoffeeTweed/Tray_model.qml b/CoffeeTweed/Tray_model.qml new file mode 100644 index 0000000..bbbcb38 --- /dev/null +++ b/CoffeeTweed/Tray_model.qml @@ -0,0 +1,20 @@ +import Qt 4.7 + +ListModel { + id: tray_model + + ListElement { cupstate: "hide"; img_src: "images/empty_row1.png"; pos_x: 64; pos_y: 40; pos_z: 3 } + ListElement { cupstate: "hide"; img_src: "images/empty_row1.png"; pos_x: 124; pos_y: 40; pos_z: 3 } + ListElement { cupstate: "hide"; img_src: "images/empty_row1.png"; pos_x: 184; pos_y: 40; pos_z: 3 } + ListElement { cupstate: "hide"; img_src: "images/empty_row1.png"; pos_x: 244; pos_y: 40; pos_z: 3 } + + ListElement { cupstate: "hide"; img_src: "images/empty_row2.png"; pos_x: 32; pos_y: 20; pos_z: 2 } + ListElement { cupstate: "hide"; img_src: "images/empty_row2.png"; pos_x: 92; pos_y: 20; pos_z: 2 } + ListElement { cupstate: "hide"; img_src: "images/empty_row2.png"; pos_x: 152; pos_y: 20; pos_z: 2 } + ListElement { cupstate: "hide"; img_src: "images/empty_row2.png"; pos_x: 212; pos_y: 20; pos_z: 2 } + + ListElement { cupstate: "hide"; img_src: "images/empty_row3.png"; pos_x: 0; pos_y: 0; pos_z: 1 } + ListElement { cupstate: "hide"; img_src: "images/empty_row3.png"; pos_x: 60; pos_y: 0; pos_z: 1 } + ListElement { cupstate: "hide"; img_src: "images/empty_row3.png"; pos_x: 120; pos_y: 0; pos_z: 1 } + ListElement { cupstate: "hide"; img_src: "images/empty_row3.png"; pos_x: 180; pos_y: 0; pos_z: 1 } +} diff --git a/CoffeeTweed/images/.DS_Store b/CoffeeTweed/images/.DS_Store new file mode 100755 index 0000000..5008ddf Binary files /dev/null and b/CoffeeTweed/images/.DS_Store differ diff --git a/CoffeeTweed/images/bg.png b/CoffeeTweed/images/bg.png new file mode 100755 index 0000000..ef08d0e Binary files /dev/null and b/CoffeeTweed/images/bg.png differ diff --git a/CoffeeTweed/images/bt_add_off.png b/CoffeeTweed/images/bt_add_off.png new file mode 100755 index 0000000..b317af6 Binary files /dev/null and b/CoffeeTweed/images/bt_add_off.png differ diff --git a/CoffeeTweed/images/bt_add_on.png b/CoffeeTweed/images/bt_add_on.png new file mode 100755 index 0000000..593cf2e Binary files /dev/null and b/CoffeeTweed/images/bt_add_on.png differ diff --git a/CoffeeTweed/images/bt_remove_off.png b/CoffeeTweed/images/bt_remove_off.png new file mode 100755 index 0000000..c5bd438 Binary files /dev/null and b/CoffeeTweed/images/bt_remove_off.png differ diff --git a/CoffeeTweed/images/bt_remove_on.png b/CoffeeTweed/images/bt_remove_on.png new file mode 100755 index 0000000..2b6c9e2 Binary files /dev/null and b/CoffeeTweed/images/bt_remove_on.png differ diff --git a/CoffeeTweed/images/coffee_plate.png b/CoffeeTweed/images/coffee_plate.png new file mode 100755 index 0000000..4abbfb9 Binary files /dev/null and b/CoffeeTweed/images/coffee_plate.png differ diff --git a/CoffeeTweed/images/cup_back.png b/CoffeeTweed/images/cup_back.png new file mode 100755 index 0000000..c553027 Binary files /dev/null and b/CoffeeTweed/images/cup_back.png differ diff --git a/CoffeeTweed/images/cup_blur.png b/CoffeeTweed/images/cup_blur.png new file mode 100755 index 0000000..2add637 Binary files /dev/null and b/CoffeeTweed/images/cup_blur.png differ diff --git a/CoffeeTweed/images/cup_content.png b/CoffeeTweed/images/cup_content.png new file mode 100755 index 0000000..848a691 Binary files /dev/null and b/CoffeeTweed/images/cup_content.png differ diff --git a/CoffeeTweed/images/cup_empty.png b/CoffeeTweed/images/cup_empty.png new file mode 100755 index 0000000..6201666 Binary files /dev/null and b/CoffeeTweed/images/cup_empty.png differ diff --git a/CoffeeTweed/images/cup_front.png b/CoffeeTweed/images/cup_front.png new file mode 100755 index 0000000..81c5da6 Binary files /dev/null and b/CoffeeTweed/images/cup_front.png differ diff --git a/CoffeeTweed/images/cup_full.png b/CoffeeTweed/images/cup_full.png new file mode 100755 index 0000000..7470d53 Binary files /dev/null and b/CoffeeTweed/images/cup_full.png differ diff --git a/CoffeeTweed/images/cup_smoke.png b/CoffeeTweed/images/cup_smoke.png new file mode 100755 index 0000000..aa98b3b Binary files /dev/null and b/CoffeeTweed/images/cup_smoke.png differ diff --git a/CoffeeTweed/images/empty_row1.png b/CoffeeTweed/images/empty_row1.png new file mode 100755 index 0000000..9023f93 Binary files /dev/null and b/CoffeeTweed/images/empty_row1.png differ diff --git a/CoffeeTweed/images/empty_row2.png b/CoffeeTweed/images/empty_row2.png new file mode 100755 index 0000000..2a8fa2f Binary files /dev/null and b/CoffeeTweed/images/empty_row2.png differ diff --git a/CoffeeTweed/images/empty_row3.png b/CoffeeTweed/images/empty_row3.png new file mode 100755 index 0000000..211a6d7 Binary files /dev/null and b/CoffeeTweed/images/empty_row3.png differ diff --git a/CoffeeTweed/images/taskbar_bg.png b/CoffeeTweed/images/taskbar_bg.png new file mode 100755 index 0000000..0658fbf Binary files /dev/null and b/CoffeeTweed/images/taskbar_bg.png differ diff --git a/CoffeeTweed/images/taskbar_close_bt.png b/CoffeeTweed/images/taskbar_close_bt.png new file mode 100755 index 0000000..70a1e66 Binary files /dev/null and b/CoffeeTweed/images/taskbar_close_bt.png differ diff --git a/CoffeeTweed/images/taskbar_division.png b/CoffeeTweed/images/taskbar_division.png new file mode 100755 index 0000000..0e481a4 Binary files /dev/null and b/CoffeeTweed/images/taskbar_division.png differ diff --git a/CoffeeTweed/images/taskbar_home_bt.png b/CoffeeTweed/images/taskbar_home_bt.png new file mode 100755 index 0000000..f4c61d8 Binary files /dev/null and b/CoffeeTweed/images/taskbar_home_bt.png differ diff --git a/CoffeeTweed/images/taskbar_options_bt.png b/CoffeeTweed/images/taskbar_options_bt.png new file mode 100755 index 0000000..f68a4f4 Binary files /dev/null and b/CoffeeTweed/images/taskbar_options_bt.png differ diff --git a/CoffeeTweed/images/taskbar_placeholder.png b/CoffeeTweed/images/taskbar_placeholder.png new file mode 100755 index 0000000..824f1b3 Binary files /dev/null and b/CoffeeTweed/images/taskbar_placeholder.png differ diff --git a/RadioTuner/README.rtf b/RadioTuner/README.rtf new file mode 100644 index 0000000..3891a00 --- /dev/null +++ b/RadioTuner/README.rtf @@ -0,0 +1,7 @@ +{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\paperw11900\paperh16840\margl1440\margr1440\vieww9000\viewh8400\viewkind0 +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural + +\f0\fs24 \cf0 Just need to run the "RadioTuner.qml" file.} \ No newline at end of file diff --git a/RadioTuner/RadioModel.qml b/RadioTuner/RadioModel.qml new file mode 100644 index 0000000..e6974ef --- /dev/null +++ b/RadioTuner/RadioModel.qml @@ -0,0 +1,5 @@ +import Qt 4.7 + +ListModel { + id: radioModel + } diff --git a/RadioTuner/RadioTuner.qml b/RadioTuner/RadioTuner.qml new file mode 100644 index 0000000..39db455 --- /dev/null +++ b/RadioTuner/RadioTuner.qml @@ -0,0 +1,145 @@ +import Qt 4.7 + +Item { + id: root + width: 800 + height: 480 + + Script { + source: "rangemodel.js"; + } + + Image { + id: tunerBg + x: 81 + y: 86 + source: "images/scala_bg.png" + } + + StationsModel{ + id:stationsModel; + } + + ListView { + id: radiosList; + x: 68; + y: 86; + width: 638; + height: 270; + orientation: "Horizontal" + model: createModel(stationsModel); + delegate: scaleDelegate; + highlightMoveSpeed: -1; + highlightRangeMode: "StrictlyEnforceRange" + //interactive: false; + } + + Component { + id: scaleDelegate; + RangeStation { + width: 29; + height: 266; + stationRange: model.stationRange; + kind: model.kind; + station: model.station; + stationName: model.stationName; + } + } + + Image { + id: buttonNext; + x: 719 + y: 86 + source: "images/bt_next.png" + + MouseArea { + anchors.fill: parent; + onClicked: { + gotoNextStation(radiosList, stationName, stationDial); + } + } + } + + Image { + id: buttonPrevious; + x: 0 + y: 86 + source: "images/bt_prev.png" + + MouseArea { + anchors.fill: parent; + onClicked: { + gotoPreviousStation(radiosList, stationName, stationDial); + } + } + } + + Image { + id: bottomBar; + x: 0 + y: 355 + source: "images/bottom.png" + } + + Image { + id: topBar; + x: 0 + y: 58 + source: "images/top.png" + } + + Image { + id: placeHolder; + x: 0 + y: 0 + source: "images/placeholder_n900_bar.png" + } + + Image { + id: image1 + x: 81 + y: 86 + source: "images/scala_glass.png" + } + + Image { + id: image2 + x: 198 + y: 117 + source: "images/scala_needle.png" + } + + Text { + id: stationName + x: 198 + y: 377 + width: 404 + height: 46 + color: "#ffffff" + styleColor: "#ffffff" + horizontalAlignment: "AlignHCenter" + font.pointSize: 35 + font.family: "Nokia Sans" + } + + Text { + id: stationDial + x: 290 + y: 422 + width: 220 + height: 32 + color: "#eaeaeb" + font.pointSize: 25 + font.family: "Nokia Sans" + styleColor: "#eaeaeb" + horizontalAlignment: "AlignHCenter" + } + + + Component.onCompleted:{ + radiosList.currentIndex = gotoradioIndex(0); + radiosList.highlightMoveSpeed = 1000; + stationName.text = setStationName(0); + stationDial.text = setStationDial(0); + } +} diff --git a/RadioTuner/RadioTuner.qmlproject b/RadioTuner/RadioTuner.qmlproject new file mode 100644 index 0000000..86a5669 --- /dev/null +++ b/RadioTuner/RadioTuner.qmlproject @@ -0,0 +1,16 @@ +// File generated by QtCreator + +import QmlProject 1.0 + +Project { + // Scan current directory for .qml, .js, and image files + QmlFiles { + directory: "." + } + JavaScriptFiles { + directory: "." + } + ImageFiles { + directory: "." + } +} diff --git a/RadioTuner/RangeStation.qml b/RadioTuner/RangeStation.qml new file mode 100644 index 0000000..4ce6e37 --- /dev/null +++ b/RadioTuner/RangeStation.qml @@ -0,0 +1,69 @@ +import Qt 4.6 + +Item { + id: range; + width: 266; + height: 272; + property real stationRange; + property int roundedRange : parseInt(stationRange) + property string kind; + property string stationName; + property real station; + + onKindChanged:{ + if(kind == "high") + background.source = "images/high_tick.png"; + + else if(kind == "medium") + background.source = "images/medium_tick.png"; + + else if(kind == "low") + background.source = "images/low_tick.png"; + } + + onStationChanged:{ + if(station != -1){ + bgText.visible = true; + } + + } + + Image { + id: background; + anchors.fill: parent; + anchors.topMargin: 30; + fillMode: "PreserveAspectFit"; + } + + Image { + id: bgText; + visible: false; + fillMode: "PreserveAspectFit"; + source:"images/scala_rdslabel.png"; + + Text { + id: name; + text: stationName; + rotation: 270; + anchors.fill:parent; + anchors.leftMargin:70; + anchors.topMargin:170; + color: "#514C4A"; + font.pixelSize: 23; + font.family: "Nokia Sans"; + } + + } + + Text { + id: rangeText; + text: parent.roundedRange; + width: 50; + x:-10; + color: "#000000"; + font.pixelSize: 25; + font.family: "Nokia Sans"; + horizontalAlignment: "AlignHCenter"; + visible: parseInt(stationRange * 10) % 10 == 0; + } +} diff --git a/RadioTuner/StationsModel.qml b/RadioTuner/StationsModel.qml new file mode 100644 index 0000000..c979c17 --- /dev/null +++ b/RadioTuner/StationsModel.qml @@ -0,0 +1,77 @@ +import Qt 4.7 + +ListModel { + id: stationsModel + ListElement { + name: "NME Radio" + dial: 87.7 + } + ListElement { + name: "BBC Radio 2" + dial: 89.1 + } + ListElement { + name: "BBC Radio 3" + dial: 91.3 + } + ListElement { + name: "BBC Radio 4" + dial: 93.5 + } + ListElement { + name: "BBC London" + dial: 94.9 + } + ListElement { + name: "Capital FM" + dial: 95.8 + } + ListElement { + name: "The Eagle" + dial: 96.4 + } + ListElement { + name: "Herts Mercury" + dial: 87.7 + } + ListElement { + name: "BBC Radio Kent" + dial: 96.6 + } + ListElement { + name: "Choice FM" + dial: 96.9 + } + ListElement { + name: "LBC" + dial: 97.3 + } + ListElement { + name: "Chiltern FM" + dial: 97.6 + } + ListElement { + name: "BBC Radio 1" + dial: 98.8 + } + ListElement { + name: "Kiss FM" + dial: 100.0 + } + ListElement { + name: "Classic FM" + dial: 100.9 + } + ListElement { + name: "Mercury FM" + dial: 101.6 + } + ListElement { + name: "Smooth FM" + dial: 102.2 + } + ListElement { + name: "Essex FM" + dial: 102.7 + } + } diff --git a/RadioTuner/images/.DS_Store b/RadioTuner/images/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/RadioTuner/images/.DS_Store differ diff --git a/RadioTuner/images/bottom.png b/RadioTuner/images/bottom.png new file mode 100755 index 0000000..854266d Binary files /dev/null and b/RadioTuner/images/bottom.png differ diff --git a/RadioTuner/images/bt_next.png b/RadioTuner/images/bt_next.png new file mode 100755 index 0000000..8951976 Binary files /dev/null and b/RadioTuner/images/bt_next.png differ diff --git a/RadioTuner/images/bt_next_down.png b/RadioTuner/images/bt_next_down.png new file mode 100755 index 0000000..1a476df Binary files /dev/null and b/RadioTuner/images/bt_next_down.png differ diff --git a/RadioTuner/images/bt_prev.png b/RadioTuner/images/bt_prev.png new file mode 100755 index 0000000..754f9e9 Binary files /dev/null and b/RadioTuner/images/bt_prev.png differ diff --git a/RadioTuner/images/bt_prev_down.png b/RadioTuner/images/bt_prev_down.png new file mode 100755 index 0000000..1e0d353 Binary files /dev/null and b/RadioTuner/images/bt_prev_down.png differ diff --git a/RadioTuner/images/bt_rdsname_arrow.png b/RadioTuner/images/bt_rdsname_arrow.png new file mode 100755 index 0000000..62a85ec Binary files /dev/null and b/RadioTuner/images/bt_rdsname_arrow.png differ diff --git a/RadioTuner/images/high_tick.png b/RadioTuner/images/high_tick.png new file mode 100644 index 0000000..6f966c6 Binary files /dev/null and b/RadioTuner/images/high_tick.png differ diff --git a/RadioTuner/images/low_tick.png b/RadioTuner/images/low_tick.png new file mode 100644 index 0000000..f4aa2c1 Binary files /dev/null and b/RadioTuner/images/low_tick.png differ diff --git a/RadioTuner/images/medium_tick.png b/RadioTuner/images/medium_tick.png new file mode 100644 index 0000000..f03aa10 Binary files /dev/null and b/RadioTuner/images/medium_tick.png differ diff --git a/RadioTuner/images/placeholder_n900_bar.png b/RadioTuner/images/placeholder_n900_bar.png new file mode 100644 index 0000000..ae34d72 Binary files /dev/null and b/RadioTuner/images/placeholder_n900_bar.png differ diff --git a/RadioTuner/images/scala_bg.png b/RadioTuner/images/scala_bg.png new file mode 100755 index 0000000..3c63cb6 Binary files /dev/null and b/RadioTuner/images/scala_bg.png differ diff --git a/RadioTuner/images/scala_glass.png b/RadioTuner/images/scala_glass.png new file mode 100755 index 0000000..639c2b7 Binary files /dev/null and b/RadioTuner/images/scala_glass.png differ diff --git a/RadioTuner/images/scala_needle.png b/RadioTuner/images/scala_needle.png new file mode 100755 index 0000000..3a14938 Binary files /dev/null and b/RadioTuner/images/scala_needle.png differ diff --git a/RadioTuner/images/scala_rdslabel.png b/RadioTuner/images/scala_rdslabel.png new file mode 100755 index 0000000..a2ec211 Binary files /dev/null and b/RadioTuner/images/scala_rdslabel.png differ diff --git a/RadioTuner/images/scala_ticks.png b/RadioTuner/images/scala_ticks.png new file mode 100755 index 0000000..0e8dc81 Binary files /dev/null and b/RadioTuner/images/scala_ticks.png differ diff --git a/RadioTuner/images/top.png b/RadioTuner/images/top.png new file mode 100755 index 0000000..defa47c Binary files /dev/null and b/RadioTuner/images/top.png differ diff --git a/RadioTuner/rangemodel.js b/RadioTuner/rangemodel.js new file mode 100644 index 0000000..88aa557 --- /dev/null +++ b/RadioTuner/rangemodel.js @@ -0,0 +1,93 @@ +var startRange = 860; +var finalRange = 2090; +var middleRange = 11; +var k = 0; +var actualItem = 0; +var stationsArray = []; +var indexArray = []; + +function createModel(stationsModel){ + createArray(stationsModel); + + var component = createComponent("RadioModel.qml"); + var object = component.createObject(); + populateModel(object); + + return object +} + +function populateModel(model){ + for(var i=startRange;i<=finalRange;i++) { + var range = i/10.0; + var stationName = "none"; + var stationDial = hasStation(range, k); + if(stationDial != -1) + stationName = stationsArray[range]; + var object = {stationRange:range, kind:setKind(i), station:stationDial, stationName:stationName} + model.append(object); + k++ + } +} + +function createArray(model){ + for(var i=0;i<=model.count-1;i++) { + var object = new Object(); + stationsArray[model.get(i).dial] = model.get(i).name; + } + +} + +function setKind(index){ + + if(index%10 == 0) { + return "high" + } + else if(index%5 == 0) { + return "medium" + } + + return "low" +} + +function hasStation(range, k){ + if(stationsArray[range] != undefined){ + var object = new Object(); + object.index = k; + object.dial = range; + object.name = stationsArray[range] + indexArray.push(object); + return range + } + return -1 +} + +function gotoradioIndex(index){ + return indexArray[index].index - middleRange +} + +function setStationName(index){ + return indexArray[index].name +} + +function setStationDial(index){ + return indexArray[index].dial +} + +function gotoNextStation(list, stationText, dialText){ + actualItem++ + if(actualItem > indexArray.length-1) + actualItem = indexArray.length-1 + list.currentIndex = indexArray[actualItem].index - middleRange; + stationText.text = setStationName(actualItem); + dialText.text = setStationDial(actualItem); +} + +function gotoPreviousStation(list, stationText, dialText){ + actualItem-- + if(actualItem < 0) + actualItem = 0 + list.currentIndex = indexArray[actualItem].index - middleRange; + stationText.text = setStationName(actualItem); + dialText.text = setStationDial(actualItem); +} + diff --git a/qtflyingbus/core/AboutMenu.qml b/qtflyingbus/core/AboutMenu.qml new file mode 100644 index 0000000..c07520f --- /dev/null +++ b/qtflyingbus/core/AboutMenu.qml @@ -0,0 +1,65 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 + +Image { + id: about + source: "images/menu/about.png" + + signal clicked(); + + MouseArea { + anchors.fill: parent + onClicked: about.clicked(); + } + + MouseArea { + x: 141 + y: 64 + width: 266 + height: 61 + rotation: -9 + onClicked: { + Qt.openUrlExternally("http://qt.nokia.com") + } + } +} diff --git a/qtflyingbus/core/Background.qml b/qtflyingbus/core/Background.qml new file mode 100644 index 0000000..ee5c7a1 --- /dev/null +++ b/qtflyingbus/core/Background.qml @@ -0,0 +1,78 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 + +Item { + id: background + + Component { + id: itemComponent + + Image { + id: item + property real iniX : 0.0 + property real iniY : 0.0 + property real speed : 1.0 + property real vspeed : 1.0 + property bool tile : false + + Binding { + target: item + when: item.tile + property: "width" + value: canvas.sceneWidth + } + + fillMode: Image.TileHorizontally + x: item.iniX + canvas.sceneX * item.speed + y: item.iniY - canvas.sceneY * item.vspeed + } + } + + function createItem(image, x, y) { + var object = itemComponent.createObject(background); + object.source = Qt.resolvedUrl(image); + object.iniY = background.height - parseInt(y); + object.iniX = parseInt(x) * background.width / 640.0; + return object; + } +} diff --git a/qtflyingbus/core/Balloon.qml b/qtflyingbus/core/Balloon.qml new file mode 100644 index 0000000..4054c0b --- /dev/null +++ b/qtflyingbus/core/Balloon.qml @@ -0,0 +1,113 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 + +FrameSprite { + id: balloon + + signal clicked(); + + property string color + property bool full : false + property int lineHeight : 80 + property int balloonTop : 0 + property int balloonBottom : 0 + property int animationPhase : 0 + property int maxAnimationPhase : 8 + + visible: false + + frameImages: [ + "images/balloons/" + color + "/1.png", + "images/balloons/" + color + "/2.png", + "images/balloons/" + color + "/3.png", + "images/balloons/" + color + "/4.png", + "images/balloons/" + color + "/5.png", + "images/balloons/" + color + "/6.png", + ] + + MouseArea { + anchors.fill: parent + onClicked: balloon.clicked(); + } + + Image { + y: 50 + z: -1 + height: lineHeight + fillMode: Image.TileVertically + source: "images/balloons/line.png"; + anchors.horizontalCenter : parent.horizontalCenter + } + + onFullChanged: { + visible = true; + animationPhase = 0; + + if (full) { + frameIndex = 0; + y = balloonBottom; + maxAnimationPhase = 8; + } else { + frameIndex = 3; + y = balloonTop; + maxAnimationPhase = 4; + } + } + + function advance(phase) { + if (animationPhase >= maxAnimationPhase) + return; + + animationPhase++; + var progress = animationPhase / maxAnimationPhase; + + if (full) { + frameIndex = 3 * progress; + y = balloonBottom + (balloonTop - balloonBottom) * progress; + } else { + frameIndex = 4 + progress; + if (progress >= 1.0) + visible = false; + } + } +} diff --git a/qtflyingbus/core/Base.qml b/qtflyingbus/core/Base.qml new file mode 100644 index 0000000..5b93b09 --- /dev/null +++ b/qtflyingbus/core/Base.qml @@ -0,0 +1,199 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 +import "engine.js" as Engine + +Item { + id: screen + property int score : 0 + property int highScore : 0 + property bool ready : false + property bool paused : true + + signal levelLoaded(); + + LevelModel { + id: levelModel + onStatusChanged: { + if (status == XmlListModel.Ready) { + levelLoaded(); + Engine.startGame(ready); + ready = true; + } + } + } + + Item { + id: canvas + anchors.fill: parent + + property real sceneX: 0.0 + property real sceneY: Math.min(player.balloonTop, 0) + property real sceneWidth: 0.0 + property real sceneHeight: canvas.height * 6.0 + + Background { + id: background + anchors.fill: parent + } + + Score { + life: player.life + value: screen.score + anchors.top: parent.top + anchors.left: parent.left + } + + Item { + id: foreground + y: -canvas.sceneY + width: canvas.width + height: canvas.sceneHeight + + Player { id: player; z: 1; } + } + } + + Rectangle { + id: overlay + color: "black" + opacity: 0.7 + anchors.fill: canvas + anchors.leftMargin: -2 + + MouseArea { + // block mouse event + anchors.fill: parent + } + } + + Menu { + id: menu + y: screen.height / 2 - menu.height / 2 + anchors.horizontalCenter: parent.horizontalCenter + + onHelpClicked: screen.state = "help"; + onPlayClicked: Engine.resumeGame(); + onRestartClicked: Engine.restartGame(); + onNextLevelClicked: Engine.gotoNextLevel(); + } + + Button { + id: pauseButton + visible: false + anchors.top: parent.top + anchors.right: parent.right + normalImage: "images/buttons/pause.png" + pressedImage: "images/buttons/pause2.png" + onClicked: { + menu.setState("default"); + screen.state = ""; + } + } + + Button { + id: closeButton + anchors.top: parent.top + anchors.right: parent.right + normalImage: "images/buttons/close.png" + pressedImage: "images/buttons/close2.png" + onClicked: menu.setState("leave"); + } + + HelpScreen { + id: helpScreen + visible: false + anchors.fill: parent + onBackClicked: screen.state = ""; + } + + FinalSplash { + id: finalSplash + anchors.fill: parent + + onDialogRequest: { + menu.setState("youwon", false); + screen.state = ""; + } + } + + Timer { + id: timer + repeat: true + interval: 30 + running: false + onTriggered: Engine.tick(); + } + + states : [ + State { + name: "running" + PropertyChanges { target: timer; running: true; } + PropertyChanges { target: pauseButton; visible: true; } + PropertyChanges { target: closeButton; visible: false; } + PropertyChanges { target: menu; visible: false; opacity: 0.0; + y: screen.height / 2 - menu.height / 2 - 20; } + PropertyChanges { target: overlay; visible: false; opacity: 0.0; } + }, + State { + name: "help" + PropertyChanges { target: canvas; visible: false; } + PropertyChanges { target: helpScreen; visible: true; } + PropertyChanges { target: closeButton; visible: false; } + PropertyChanges { target: menu; visible: false; opacity: 0.0; } + PropertyChanges { target: overlay; visible: false; opacity: 0.0; } + } + ] + + transitions: [ + Transition { + from: "running"; to: ""; reversible: true; + PropertyAction { target: menu; property: "visible"; } + NumberAnimation { target: menu; properties: "y,opacity"; duration: 200; } + } + ] + + Component.onCompleted: { + Engine.loadDatabase(); + Engine.loadLevel(0); + } +} diff --git a/qtflyingbus/core/Button.qml b/qtflyingbus/core/Button.qml new file mode 100644 index 0000000..6809575 --- /dev/null +++ b/qtflyingbus/core/Button.qml @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 + +Image { + id: button + property url normalImage + property url pressedImage + + signal clicked(); + + source: mouseArea.pressed ? pressedImage : normalImage + + MouseArea { + id: mouseArea + anchors.fill: parent + onClicked: button.clicked(); + } +} diff --git a/qtflyingbus/core/CompleteMenu.qml b/qtflyingbus/core/CompleteMenu.qml new file mode 100644 index 0000000..69f5984 --- /dev/null +++ b/qtflyingbus/core/CompleteMenu.qml @@ -0,0 +1,60 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 + +ScoreMenu { + signal nextLevelClicked(); + + Image { + x: 140 + y: 21 + source: "images/menu/complete_title.png" + } + + Button { + x: 90 + y: 90 + normalImage: "images/menu/button/next_level.png" + pressedImage: "images/menu/button/next_level_pressed.png" + onClicked: nextLevelClicked(); + } +} diff --git a/qtflyingbus/core/DigitLabel.qml b/qtflyingbus/core/DigitLabel.qml new file mode 100644 index 0000000..921d11b --- /dev/null +++ b/qtflyingbus/core/DigitLabel.qml @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 + +Row { + id: label + property int value + + spacing: 2 + + Component { + id: digitComponent + Image { smooth: true; } + } + + onValueChanged: { + var digits = label.children; + for (var i = 0; i < digits.length; i++) + digits[i].destroy(); + + if (digitComponent.status != Component.Ready) + return; + + var str = value.toString(); + for (var i = 0; i < str.length; i++) { + var object = digitComponent.createObject(label); + var symbol = (str[i] == "-") ? "minus" : str[i]; + object.source = "images/digits/" + symbol + ".png"; + } + } +} diff --git a/qtflyingbus/core/FinalSplash.qml b/qtflyingbus/core/FinalSplash.qml new file mode 100644 index 0000000..ab2e842 --- /dev/null +++ b/qtflyingbus/core/FinalSplash.qml @@ -0,0 +1,128 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 + +Item { + id: splash + visible: false + + signal dialogRequest(); + + MouseArea { + // block mouse events + anchors.fill: parent + } + + Image { + id: world + visible: false + source: "images/splash/finalbackground.png" + anchors.bottom: parent.bottom + + FinalSplashItem { + jumpSize: 20 + jumpDelay: 40 + x: 300 + sceneY: world.height - 314 + active: world.visible + source: "images/splash/tablet.png" + } + FinalSplashItem { + jumpSize: 40 + jumpDelay: 20 + x: 520 + sceneY: world.height - 276 + active: world.visible + source: "images/splash/n8.png" + } + FinalSplashItem { + jumpSize: 25 + jumpDelay: 50 + x: 350 + sceneY: world.height - 224 + active: world.visible + source: "images/splash/note.png" + } + Image { + x: 0 + y: world.height - 150 + source: "images/sprites/van/running/1.png" + } + } + + Rectangle { + id: overlay + opacity: 0.0 + color: "black" + anchors.fill: parent + } + + function display() { + animation.start(); + } + + SequentialAnimation { + id: animation + + PropertyAction { target: splash; property: "visible"; value: true; } + NumberAnimation { target: overlay; property: "opacity"; + from: 0.0; to: 1.0; duration: 800; } + PropertyAction { target: world; property: "visible"; value: true; } + + ParallelAnimation { + NumberAnimation { target: overlay; property: "opacity"; + from: 1.0; to: 0.0; duration: 1400; } + NumberAnimation { target: world; property: "x"; from: -170; to: 0; + duration: 1400; easing.type: Easing.OutSine; } + } + + ScriptAction { script: splash.dialogRequest(); } + PauseAnimation { duration: 3000; } + + NumberAnimation { target: overlay; property: "opacity"; + from: 0.0; to: 1.0; duration: 800; } + PropertyAction { target: world; property: "visible"; value: false; } + NumberAnimation { target: overlay; property: "opacity"; + from: 1.0; to: 0.0; duration: 800; } + PropertyAction { target: splash; property: "visible"; value: false; } + } +} diff --git a/qtflyingbus/core/FinalSplashItem.qml b/qtflyingbus/core/FinalSplashItem.qml new file mode 100644 index 0000000..b8aa793 --- /dev/null +++ b/qtflyingbus/core/FinalSplashItem.qml @@ -0,0 +1,76 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 + +Image { + id: item + + property int sceneY: 0 + property int jumpSize : 40 + property int jumpDelay : 40 + property bool active : false + + SequentialAnimation { + running: active + loops: Animation.Infinite + + PauseAnimation { + duration: jumpDelay + } + NumberAnimation { + target: item + property: "y" + from: sceneY + to: sceneY - jumpSize + duration: 200 + easing.type: Easing.OutSine + } + NumberAnimation { + target: item + property: "y" + from: sceneY - jumpSize + to: sceneY + duration: 200 + easing.type: Easing.InSine + } + } +} diff --git a/qtflyingbus/core/FrameSprite.qml b/qtflyingbus/core/FrameSprite.qml new file mode 100644 index 0000000..abb6ae2 --- /dev/null +++ b/qtflyingbus/core/FrameSprite.qml @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 + +Sprite { + property int frameIndex : -1 + property variant frameImages : [] + + image: (frameIndex >= 0 && + frameIndex < frameImages.length) ? frameImages[frameIndex] : "" + + function advance(phase) { + frameIndex = (frameIndex + 1) % frameImages.length; + } + + onFrameImagesChanged: { + frameIndex = (frameImages.length > 0) ? 0 : -1; + } +} diff --git a/qtflyingbus/core/GameOverMenu.qml b/qtflyingbus/core/GameOverMenu.qml new file mode 100644 index 0000000..49f413d --- /dev/null +++ b/qtflyingbus/core/GameOverMenu.qml @@ -0,0 +1,61 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 + +ScoreMenu { + signal retryClicked(); + + special: true + + Image { + z: -1 + source: "images/menu/menu_gameover.png" + } + + Button { + x: 80 + y: 100 + normalImage: "images/menu/button/retry.png" + pressedImage: "images/menu/button/retry_pressed.png" + onClicked: retryClicked(); + } +} diff --git a/qtflyingbus/core/HelpScreen.qml b/qtflyingbus/core/HelpScreen.qml new file mode 100644 index 0000000..b53b8f4 --- /dev/null +++ b/qtflyingbus/core/HelpScreen.qml @@ -0,0 +1,144 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 + +Item { + id: helpScreen + + signal backClicked(); + + Image { + source: "images/help/background.png" + anchors.bottom: parent.bottom + anchors.horizontalCenter: parent.horizontalCenter + } + + Flickable { + id: flickable + anchors.fill: parent + contentWidth: 3300 + contentHeight: helpScreen.height + boundsBehavior: Flickable.StopAtBounds + + Item { + width: flickable.contentWidth + height: flickable.height + + Image { + x: 40 + anchors.bottom: parent.bottom + source: "images/help/tap.png" + } + Image { + x: 440 + anchors.bottom: parent.bottom + source: "images/help/pop.png" + } + Image { + x: 840 + anchors.bottom: parent.bottom + anchors.bottomMargin: 70 + source: "images/help/peace.png" + } + Image { + x: 1140 + anchors.bottom: parent.bottom + anchors.bottomMargin: 50 + source: "images/help/rock.png" + } + Image { + x: 1440 + anchors.bottom: parent.bottom + anchors.bottomMargin: 50 + source: "images/help/bird.png" + } + Image { + x: 1740 + anchors.bottom: parent.bottom + anchors.bottomMargin: 48 + source: "images/help/ladybug.png" + } + Image { + x: 2040 + anchors.bottom: parent.bottom + anchors.bottomMargin: 48 + source: "images/help/cloud.png" + } + Image { + x: 2340 + anchors.bottom: parent.bottom + anchors.bottomMargin: 44 + source: "images/help/tree.png" + } + Image { + x: 2640 + anchors.bottom: parent.bottom + anchors.bottomMargin: 44 + source: "images/help/balloon.png" + } + Image { + x: 2940 + anchors.bottom: parent.bottom + anchors.bottomMargin: 70 + source: "images/help/playnow.png" + MouseArea { + anchors.fill: parent + onClicked: screen.state = "running" + } + } + } + } + + Image { + anchors.top: parent.top + anchors.left: parent.left + source: "images/help/title.png" + } + + Button { + anchors.top: parent.top + anchors.right: parent.right + normalImage: "images/buttons/back.png" + pressedImage: "images/buttons/back2.png" + onClicked: helpScreen.backClicked(); + } +} diff --git a/qtflyingbus/core/LeaveMenu.qml b/qtflyingbus/core/LeaveMenu.qml new file mode 100644 index 0000000..aa8f3d6 --- /dev/null +++ b/qtflyingbus/core/LeaveMenu.qml @@ -0,0 +1,75 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 + +Item { + signal yesClicked(); + signal noClicked(); + + Image { + x: 160 + y: 21 + source: "images/menu/leave_title.png" + } + + Image { + x: 330 + y: 170 + source: "images/menu/menu_div.png" + } + + Button { + x: 100 + y: 140 + normalImage: "images/menu/button/yes.png" + pressedImage: "images/menu/button/yes_pressed.png" + onClicked: yesClicked(); + } + + Button { + x: 370 + y: 110 + normalImage: "images/menu/button/no.png" + pressedImage: "images/menu/button/no_pressed.png" + onClicked: noClicked(); + } +} diff --git a/qtflyingbus/core/LevelModel.qml b/qtflyingbus/core/LevelModel.qml new file mode 100644 index 0000000..ae6b605 --- /dev/null +++ b/qtflyingbus/core/LevelModel.qml @@ -0,0 +1,55 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 + +XmlListModel { + id: levelModel + query: "/level/object" + + XmlRole { name: "x"; query: "x/number()" } + XmlRole { name: "y"; query: "y/number()" } + XmlRole { name: "name"; query: "name/string()" } + XmlRole { name: "type"; query: "type/number()" } + XmlRole { name: "image"; query: "image/string()" } + XmlRole { name: "speed"; query: "speed/number()" } + XmlRole { name: "vspeed"; query: "vspeed/number()" } +} diff --git a/qtflyingbus/core/Main.qml b/qtflyingbus/core/Main.qml new file mode 100644 index 0000000..c0dfa89 --- /dev/null +++ b/qtflyingbus/core/Main.qml @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 + +Item { + id: main + property bool doLoad : false + + Loader { + id: gameLoader + anchors.fill: parent + } + + Loader { + id: splashLoader + anchors.fill: parent + source: "Splash.qml" + onLoaded: gameLoader.source = "Base.qml"; + } + + Connections { + id: gameConnection + target: gameLoader.item + onLevelLoaded: unlock(); + } + + Connections { + id: splashConnection + target: splashLoader.item + onTimeout: unlock(); + } + + function unlock() { + if (doLoad) { + splashLoader.source = ""; + gameConnection.target = null; + splashConnection.target = null; + } + + doLoad = true; + } +} diff --git a/qtflyingbus/core/Menu.qml b/qtflyingbus/core/Menu.qml new file mode 100644 index 0000000..1646117 --- /dev/null +++ b/qtflyingbus/core/Menu.qml @@ -0,0 +1,202 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 + +Item { + id: menu + width: background.width + height: background.height + + signal playClicked(); + signal helpClicked(); + signal restartClicked(); + signal nextLevelClicked(); + + state: "default" + + Image { + id: background + source: "images/menu/menu.png" + } + + PlayMenu { + id: playMenu + anchors.fill: parent + + onPlayClicked: menu.playClicked(); + onHelpClicked: menu.helpClicked(); + onExitClicked: menu.state = "leave"; + onMoreInfoClicked: menu.state = "about"; + } + + AboutMenu { + id: aboutMenu + x: 110 + y: 106 + opacity: 0.0 + visible: false + + onClicked: menu.state = "default"; + } + + LeaveMenu { + id: leaveMenu + opacity: 0.0 + visible: false + anchors.fill: parent + + onYesClicked: Qt.quit(); + onNoClicked: menu.state = "default"; + } + + CompleteMenu { + id: completeMenu + opacity: 0.0 + visible: false + anchors.fill: parent + playerScore: screen.score + highScore: screen.highScore + + onMenuClicked: menu.state = "default"; + onNextLevelClicked: menu.nextLevelClicked(); + } + + YouWinMenu { + id: youWinMenu + opacity: 0.0 + visible: false + anchors.fill: parent + playerScore: screen.score + highScore: screen.highScore + + onMenuClicked: menu.state = "default"; + onRestartClicked: menu.restartClicked(); + } + + GameOverMenu { + id: gameOverMenu + opacity: 0.0 + visible: false + anchors.fill: parent + playerScore: screen.score + highScore: screen.highScore + + onMenuClicked: menu.state = "default"; + onRetryClicked: menu.restartClicked(); + } + + states : [ + State { + name: "default" + PropertyChanges { target: playMenu; opacity: 1.0; visible: true; } + }, + State { + name: "about" + PropertyChanges { target: playMenu; opacity: 0.0; visible: false; } + PropertyChanges { target: aboutMenu; opacity: 1.0; visible: true; } + }, + State { + name: "leave" + PropertyChanges { target: playMenu; opacity: 0.0; visible: false; } + PropertyChanges { target: leaveMenu; opacity: 1.0; visible: true; } + }, + State { + name: "nextlevel" + PropertyChanges { target: playMenu; opacity: 0.0; visible: false; } + PropertyChanges { target: completeMenu; opacity: 1.0; visible: true; } + }, + State { + name: "youwon" + PropertyChanges { target: playMenu; opacity: 0.0; visible: false; } + PropertyChanges { target: youWinMenu; opacity: 1.0; visible: true; } + }, + State { + name: "gameover" + PropertyChanges { target: playMenu; opacity: 0.0; visible: false; } + PropertyChanges { target: background; opacity: 0.0; } + PropertyChanges { target: gameOverMenu; opacity: 1.0; visible: true; } + } + ] + + transitions: [ + Transition { + from: "default"; to: "about"; reversible: true; + MenuAnimation { first: playMenu; second: aboutMenu; } + }, + Transition { + from: "default"; to: "leave"; reversible: true; + MenuAnimation { first: playMenu; second: leaveMenu; } + }, + Transition { + from: "default"; to: "nextlevel"; reversible: true; + MenuAnimation { first: playMenu; second: completeMenu; } + }, + Transition { + from: "default"; to: "youwon"; reversible: true; + MenuAnimation { first: playMenu; second: youWinMenu; } + }, + Transition { + from: "default"; to: "gameover"; reversible: true; + SequentialAnimation { + PropertyAction { target: gameOverMenu; property: "visible"; } + ParallelAnimation { + NumberAnimation { target: playMenu; property: "opacity"; + duration: 300; } + NumberAnimation { target: background; property: "opacity"; + duration: 300; } + } + NumberAnimation { target: gameOverMenu; property: "opacity"; + duration: 300; } + PropertyAction { target: playMenu; property: "visible"; } + } + } + ] + + function setState(state, animated) { + if (!animated) { + // XXX: workaround to avoid transition + // There is a pending suggestion to avoid this (QTBUG-14488) + menu.state = "undefined"; + } + menu.state = state; + } +} diff --git a/qtflyingbus/core/MenuAnimation.qml b/qtflyingbus/core/MenuAnimation.qml new file mode 100644 index 0000000..ba13b11 --- /dev/null +++ b/qtflyingbus/core/MenuAnimation.qml @@ -0,0 +1,52 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 + +SequentialAnimation { + property Item first + property Item second + + PropertyAction { target: second; property: "visible"; } + NumberAnimation { target: first; property: "opacity"; duration: 300; } + NumberAnimation { target: second; property: "opacity"; duration: 300; } + PropertyAction { target: first; property: "visible"; } +} diff --git a/qtflyingbus/core/PlayMenu.qml b/qtflyingbus/core/PlayMenu.qml new file mode 100644 index 0000000..31fac64 --- /dev/null +++ b/qtflyingbus/core/PlayMenu.qml @@ -0,0 +1,83 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 + +Item { + signal playClicked(); + signal helpClicked(); + signal moreInfoClicked(); + signal exitClicked(); + + Image { + x: 390 + y: 138 + source: "images/menu/details.png" + } + Button { + x: 86 + y: 116 + normalImage: "images/menu/button/play.png" + pressedImage: "images/menu/button/play_pressed.png" + onClicked: playClicked(); + } + Button { + x: 415 + y: 90 + normalImage: "images/menu/button/help.png" + pressedImage: "images/menu/button/help_pressed.png" + onClicked: helpClicked(); + } + Button { + x: 416 + y: 150 + normalImage: "images/menu/button/about.png" + pressedImage: "images/menu/button/about_pressed.png" + onClicked: moreInfoClicked(); + } + Button { + x: 436 + y: 206 + normalImage: "images/menu/button/exit.png" + pressedImage: "images/menu/button/exit_pressed.png" + onClicked: exitClicked(); + } +} diff --git a/qtflyingbus/core/Player.qml b/qtflyingbus/core/Player.qml new file mode 100644 index 0000000..bb29ec6 --- /dev/null +++ b/qtflyingbus/core/Player.qml @@ -0,0 +1,235 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 + +FrameSprite { + id: player + property int life : 3 + property bool imune : false + property int imunePhase : 0 + property int balloonCount : 0 + property int oldBalloonCount : 0 + property int balloonStep: 160 + property int balloonTop: y - 120 + property bool inflating : false + + frameImages : [ + "images/sprites/van/running/1.png", + "images/sprites/van/running/2.png", + "images/sprites/van/running/3.png", + "images/sprites/van/running/4.png", + "images/sprites/van/running/5.png", + "images/sprites/van/running/6.png", + "images/sprites/van/inflating/1.png", + "images/sprites/van/inflating/2.png", + "images/sprites/van/inflating/3.png", + "images/sprites/van/inflating/4.png", + "images/sprites/van/inflating/5.png", + "images/sprites/van/inflating/6.png" + ] + + property variant balloons : [ + balloon3, balloon2, balloon5, balloon1, balloon4 + ] + + topOffset: 7 + rightOffset: 6 + bottomOffset: 16 + + Behavior on y { + enabled: !screen.paused + NumberAnimation { + duration: 450 + easing.type: Easing.OutSine + } + } + + Balloon { + id: balloon1 + color: "yellow" + x: 0 + z: -1 + lineHeight: 25 + balloonTop: -50 + balloonBottom: -18 + onClicked: explodeBalloon(balloon1); + } + + Balloon { + id: balloon2 + color: "green" + x: 30 + z: -1 + lineHeight: 45 + balloonTop: -80 + balloonBottom: -34 + onClicked: explodeBalloon(balloon2); + } + + Balloon { + id: balloon3 + color: "blue" + x: 84 + z: -1 + lineHeight: 72 + balloonTop: -112 + balloonBottom: -40 + onClicked: explodeBalloon(balloon3); + } + + Balloon { + id: balloon4 + color: "red" + x: 62 + z: -1 + lineHeight: 45 + balloonTop: -82 + balloonBottom: -36 + onClicked: explodeBalloon(balloon4); + } + + Balloon { + id: balloon5 + color: "pink" + x: 108 + z: -1 + lineHeight: 40 + balloonTop: -82 + balloonBottom: -36 + onClicked: explodeBalloon(balloon5); + } + + MouseArea { + anchors.fill: parent + onClicked: fillBalloon(); + } + + onImuneChanged: { + if (imune) + imunePhase = 0; + else + opacity = 1.0; + } + + onBalloonCountChanged: { + if (balloonCount > oldBalloonCount) { + frameIndex = 6; + inflating = true; + } + + player.y = (canvas.height - player.height - 6) + - balloonCount * balloonStep; + + oldBalloonCount = balloonCount; + } + + function reset() { + life = 3; + imune = false; + balloonCount = 0; + x = -player.width; + y = (canvas.height - player.height - 6); + for (var i = 0; i < balloons.length; i++) + balloons[i].full = false; + } + + function fillBalloon() { + if (balloonCount > 4) + return false; + + for (var i = 0; i < balloons.length; i++) { + if (!balloons[i].full) { + balloonCount++; + balloons[i].full = true; + return true; + } + } + + return false; + } + + function explodeBalloon(balloon) { + if (balloonCount > 0 && balloon.full) { + balloonCount--; + balloon.full = false; + return true; + } + return false; + } + + function explodeAnyBalloon() { + if (balloonCount <= 0) + return; + + for (var i = 0; i < balloons.length; i++) { + if (explodeBalloon(balloons[i])) + break; + } + } + + function advance(phase) { + if (phase % 2 == 0) { + if (balloonCount == 0) + frameIndex = (frameIndex + 1) % 6; + else if (inflating) { + if (frameIndex < 10) + frameIndex++; + else { + frameIndex = 0; + inflating = false; + } + } + } + + if (imune) { + imunePhase++; + var MAX_IMUNE_PHASE = 100; + if (imunePhase > MAX_IMUNE_PHASE) + imune = false; + else + opacity = (parseInt(phase / 4) % 2 == 0) ? 0.6 : 1.0; + } + + for (var i = 0; i < balloons.length; i++) + balloons[i].advance(phase); + } +} diff --git a/qtflyingbus/core/Score.qml b/qtflyingbus/core/Score.qml new file mode 100644 index 0000000..4e18a46 --- /dev/null +++ b/qtflyingbus/core/Score.qml @@ -0,0 +1,78 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 + +Item { + id: score + property int life : 0 + property int value : 0 + + Image { + id: image + source: "images/score.png" + + Text { + text: score.value + font.family: "Nokia Sans" + font.pixelSize: 42 + font.bold: true + color: "#693d3f" + anchors.fill: parent + anchors.bottomMargin: 20 + anchors.rightMargin: 30 + verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignRight + } + } + + Row { + x: 180 + y: 10 + spacing: 2 + Repeater { + model: life + Image { + source: "images/life.png" + } + } + } +} diff --git a/qtflyingbus/core/ScoreMenu.qml b/qtflyingbus/core/ScoreMenu.qml new file mode 100644 index 0000000..137cfc4 --- /dev/null +++ b/qtflyingbus/core/ScoreMenu.qml @@ -0,0 +1,113 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 + +Item { + signal menuClicked(); + + property int highScore : -1 + property int playerScore : -1 + property bool special : false + + Image { + x: 140 + y: 220 + source: "images/menu/dot.png" + } + + Image { + x: 240 + y: 208 + source: "images/menu/dot.png" + } + + Image { + x: 100 + y: 230 + source: "images/menu/yourscore.png" + } + + Image { + x: 198 + y: 240 + source: "images/menu/menu_div.png" + } + + Image { + x: 220 + y: 215 + source: "images/menu/highscore.png" + } + + DigitLabel { + x: 100 + y: 268 + rotation: -7 + value: playerScore + } + + DigitLabel { + x: 220 + y: 251 + rotation: -7 + value: highScore + } + + Item { + x: special ? 450 : 410 + y: special ? 230 : 198 + rotation: special ? 18 : 0 + + Image { + x: 40 + y: -16 + source: "images/menu/dot.png" + } + + Button { + smooth: true + normalImage: "images/menu/button/menu.png" + pressedImage: "images/menu/button/menu_pressed.png" + onClicked: menuClicked(); + } + } +} diff --git a/qtflyingbus/core/Splash.qml b/qtflyingbus/core/Splash.qml new file mode 100644 index 0000000..1c3e63a --- /dev/null +++ b/qtflyingbus/core/Splash.qml @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 + +Item { + id: splash + signal timeout(); + + MouseArea { + // block mouse events + anchors.fill: parent + } + + Image { + source: "images/splash/background.png" + anchors.bottom: parent.bottom + anchors.horizontalCenter: parent.horizontalCenter + } + + Image { + source: "images/splash/van.png" + anchors.verticalCenter: parent.verticalCenter + anchors.horizontalCenter: parent.horizontalCenter + } + + Timer { + running: true + interval: 1500 + onTriggered: splash.timeout(); + } +} diff --git a/qtflyingbus/core/Sprite.qml b/qtflyingbus/core/Sprite.qml new file mode 100644 index 0000000..5e926ef --- /dev/null +++ b/qtflyingbus/core/Sprite.qml @@ -0,0 +1,61 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 + +Image { + id: sprite + source: image + + property int type : 0 + property string image : "" + property int damage : 1 + property real velocity : 0 + + property real topOffset : 0 + property real leftOffset : 0 + property real rightOffset : 0 + property real bottomOffset : 0 + + function advance(phase) { + + } +} diff --git a/qtflyingbus/core/YouWinMenu.qml b/qtflyingbus/core/YouWinMenu.qml new file mode 100644 index 0000000..c6ea98c --- /dev/null +++ b/qtflyingbus/core/YouWinMenu.qml @@ -0,0 +1,61 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 + +ScoreMenu { + signal restartClicked() + + Image { + x: 5 + y: -30 + z: -1 + source: "images/menu/menu_youwin.png" + } + + Button { + x: 90 + y: 90 + normalImage: "images/menu/button/restart.png" + pressedImage: "images/menu/button/restart_pressed.png" + onClicked: restartClicked() + } +} diff --git a/qtflyingbus/core/engine.js b/qtflyingbus/core/engine.js new file mode 100644 index 0000000..457fe0a --- /dev/null +++ b/qtflyingbus/core/engine.js @@ -0,0 +1,385 @@ +/**************************************************************************** +** +** This file is part of QtFlyingVan +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +var BONUS_SCORE = 100; + +var ENEMY_TYPE = 1; +var BONUS_TYPE = 2; +var BACKGROUND_ITEM_TYPE = 98; +var BACKGROUND_TILE_TYPE = 99; + +var levelSpeed = 3.2; +var leftMargin = 120; +var sprites = new Array(); +var components = new Array(); +var backgroundItems = new Array(); + +var db = null; +var phase = 0; +var currentLevel = -1; +var levelFiles = ["levels/1.xml", "levels/2.xml", "levels/3.xml"]; + +/* + Load the scene according to the level model. When level model changes + (see Base.qml), it will call this method to reload the scene elements. +*/ +function startGame(doRun) +{ + screen.paused = true; + + var info, object; + var totalWidth = 0; + + reset(); + + // read level description + for (var i = 0; i < levelModel.count; i++) { + info = levelModel.get(i); + + if (info.type == BACKGROUND_ITEM_TYPE || + info.type == BACKGROUND_TILE_TYPE) { + // create background element + object = background.createItem(info.image, info.x, info.y); + object.speed = info.speed; + object.vspeed = info.vspeed; + object.tile = (info.type == BACKGROUND_TILE_TYPE); + backgroundItems.push(object); + } else { + // create sprite element (bonus or enemy) + object = createObject("sprites/" + info.name + ".qml", foreground); + + if (object != null) { + object.x = info.x; + object.y = canvas.height - info.y; + sprites.push(object); + totalWidth = Math.max(totalWidth, object.x + object.width); + } + } + } + + screen.paused = false; + canvas.sceneWidth = totalWidth; + + if (doRun) + screen.state = "running"; +} + +/* + Delete all scene sprites and reset scene parameters. +*/ +function reset() +{ + player.reset(); + + phase = 0; + canvas.sceneX = 0; + canvas.sceneWidth = 0; + + var obj; + + for (var i = 0; i < sprites.length; i++) { + obj = sprites[i]; + if (obj != null) { + obj.visible = false; + obj.image = ""; // workaround to avoid leak + obj.destroy(); + } + } + + for (var i = 0; i < backgroundItems.length; i++) { + obj = backgroundItems[i]; + if (obj != null) { + obj.visible = false; + obj.source = ""; // workaround to avoid leak + obj.destroy(); + } + } + + sprites.splice(0); + backgroundItems.splice(0); +} + +/* + Creates an object given its QML file name. +*/ +function createObject(name, parent) +{ + var component; + + if (name in components) + component = components[name]; + else { + component = Qt.createComponent(name); + + if (component == null || component.status != Component.Ready) { + console.log("error loading '" + name + "' component"); + console.log(component.errorString()); + return null; + } + + components[name] = component; + } + + var object = component.createObject(parent); + + if (object == null) { + console.log("error creating object for: " + name); + console.log(component.errorString()); + return null; + } + + return object; +} + +/* + A timer triggers this method (see Base.qml) using a fixed time interval. + This method will handle all the game logic like scene movement, sprite + collisions and game state changes. +*/ +function tick() +{ + if (!screen.paused) { + phase = (phase + 1) % 0xfffffff; + + advanceSprites(); + checkCollisions(); + checkGameEnd(); + } +} + +/* + Change sprites positions and advance their states. +*/ +function advanceSprites() +{ + player.advance(phase); + + var fx = canvas.sceneX - levelSpeed; + var limit = Math.min(0, canvas.width - canvas.sceneWidth); + var moveSprites = (player.x >= leftMargin && fx > limit); + + if (!moveSprites) { + player.x += levelSpeed; + } else { + canvas.sceneX = fx; + } + + for (var i = 0; i < sprites.length; i++) { + var obj = sprites[i] + + if (obj == null) + continue; + + if (obj.x + obj.width < 0) { + obj.destroy(); + sprites[i] = null; + } else { + obj.x -= obj.velocity; + + if (moveSprites) + obj.x -= levelSpeed; + + if (obj.x <= canvas.width) + obj.advance(phase); + } + } +} + +/* + Handle all player collisions (this includes enemy and bonus item collisions). +*/ +function checkCollisions() +{ + var imune = player.imune; + var obj, collides, damage = 0; + + // check collision with all scene sprites + for (var i = 0; i < sprites.length; i++) { + obj = sprites[i]; + + // skip damage if player is imune + if (obj == null || obj.type == ENEMY_TYPE && imune) + continue; + + // check for simple bounding rect collision + collides = (player.y + player.height - player.bottomOffset >= obj.y + obj.topOffset + && player.y + player.topOffset <= obj.y + obj.height - obj.bottomOffset + && player.x + player.width - player.rightOffset >= obj.x + obj.leftOffset + && player.x + player.leftOffset <= obj.x + obj.width - obj.rightOffset); + + if (collides) { + // player has collided with the sprite + if (obj.type == ENEMY_TYPE) { + imune = true; + damage = obj.damage; + } else if (obj.type == BONUS_TYPE) { + screen.score += BONUS_SCORE; + obj.destroy(); + sprites[i] = null; + } + } + } + + // if player has collided, set imunity and update score + if (damage > 0) { + player.imune = true; + player.life = Math.max(player.life - 1, 0); + + if (damage > 1) + player.explodeAnyBalloon(); + + if (player.life == 0) { + saveScoreToDisk(); + menu.setState("gameover", false); + screen.state = ""; + } + } +} + +/* + Check if the level has ended. If the level has ended, it will show a menu to go + to the next level or it will show the final score if it's already in the last level. +*/ +function checkGameEnd() +{ + // check if player finished the level + if (player.x > canvas.width && !screen.paused) { + screen.paused = true; + saveScoreToDisk(); + + // check if it's in the final level + if (currentLevel < levelFiles.length - 1) { + menu.setState("nextlevel", false); + screen.state = ""; + } else { + finalSplash.display(); + } + } +} + +/* + Change the current level and reload model data. +*/ +function loadLevel(level) +{ + if (level >= 0 && level < levelFiles.length) { + if (currentLevel == level) { + Engine.startGame(true); + } else { + currentLevel = level; + levelModel.source = levelFiles[level]; + } + } +} + +/* + Resume level or go to a new level. +*/ +function resumeGame() +{ + if (player.life == 0) { + restartGame(); + return; + } + + // if it's playing, just resume + if (!screen.paused) { + screen.state = "running"; + return; + } + + // go to next level or restart + if (currentLevel < levelFiles.length - 1) + gotoNextLevel(); + else + restartGame(); +} + +// Load the first level +function restartGame() +{ + screen.highScore = Math.max(screen.highScore, + screen.score) + screen.score = 0; + loadLevel(0); +} + +// Load the next level +function gotoNextLevel() +{ + loadLevel(currentLevel + 1); +} + +// Load score database +function loadDatabase() +{ + if (db) + return; + + db = openDatabaseSync("QtFlyingVan", "1.0", "QtFlyingVan", 1000000); + + if (!db) + return; + + var rs; + db.transaction(function(tx) { + tx.executeSql('CREATE TABLE IF NOT EXISTS scores(score INT, date DATETIME)'); + rs = tx.executeSql('SELECT * FROM scores ORDER BY score DESC LIMIT 1'); + }); + + if (rs.rows.length > 0) { + var record = rs.rows.item(0); + screen.highScore = record.score; + } +} + +// Update score database +function saveScoreToDisk() +{ + if (!db) { + console.log("Warning: Database is not open"); + return; + } + + db.transaction(function(tx) { + tx.executeSql("INSERT INTO scores VALUES(?, date('now'))", [screen.score]); + }); +} diff --git a/qtflyingbus/core/images/LICENSE.txt b/qtflyingbus/core/images/LICENSE.txt new file mode 100644 index 0000000..9deebda --- /dev/null +++ b/qtflyingbus/core/images/LICENSE.txt @@ -0,0 +1,63 @@ +License + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + +1. Definitions + + 1. "Collective Work" means a work, such as a periodical issue, anthology or encyclopedia, in which the Work in its entirety in unmodified form, along with a number of other contributions, constituting separate and independent works in themselves, are assembled into a collective whole. A work that constitutes a Collective Work will not be considered a Derivative Work (as defined below) for the purposes of this License. + 2. "Derivative Work" means a work based upon the Work or upon the Work and other pre-existing works, such as a translation, musical arrangement, dramatization, fictionalization, motion picture version, sound recording, art reproduction, abridgment, condensation, or any other form in which the Work may be recast, transformed, or adapted, except that a work that constitutes a Collective Work will not be considered a Derivative Work for the purpose of this License. For the avoidance of doubt, where the Work is a musical composition or sound recording, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered a Derivative Work for the purpose of this License. + 3. "Licensor" means the individual or entity that offers the Work under the terms of this License. + 4. "Original Author" means the individual or entity who created the Work. + 5. "Work" means the copyrightable work of authorship offered under the terms of this License. + 6. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. + +2. Fair Use Rights. Nothing in this license is intended to reduce, limit, or restrict any rights arising from fair use, first sale or other limitations on the exclusive rights of the copyright owner under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: + + 1. to reproduce the Work, to incorporate the Work into one or more Collective Works, and to reproduce the Work as incorporated in the Collective Works; + 2. to create and reproduce Derivative Works; + 3. to distribute copies or phonorecords of, display publicly, perform publicly, and perform publicly by means of a digital audio transmission the Work including as incorporated in Collective Works; + 4. to distribute copies or phonorecords of, display publicly, perform publicly, and perform publicly by means of a digital audio transmission Derivative Works. + 5. + + For the avoidance of doubt, where the work is a musical composition: + 1. Performance Royalties Under Blanket Licenses. Licensor waives the exclusive right to collect, whether individually or via a performance rights society (e.g. ASCAP, BMI, SESAC), royalties for the public performance or public digital performance (e.g. webcast) of the Work. + 2. Mechanical Rights and Statutory Royalties. Licensor waives the exclusive right to collect, whether individually or via a music rights agency or designated agent (e.g. Harry Fox Agency), royalties for any phonorecord You create from the Work ("cover version") and distribute, subject to the compulsory license created by 17 USC Section 115 of the US Copyright Act (or the equivalent in other jurisdictions). + 6. Webcasting Rights and Statutory Royalties. For the avoidance of doubt, where the Work is a sound recording, Licensor waives the exclusive right to collect, whether individually or via a performance-rights society (e.g. SoundExchange), royalties for the public digital performance (e.g. webcast) of the Work, subject to the compulsory license created by 17 USC Section 114 of the US Copyright Act (or the equivalent in other jurisdictions). + +The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. All rights not expressly granted by Licensor are hereby reserved. + +4. Restrictions.The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: + + 1. You may distribute, publicly display, publicly perform, or publicly digitally perform the Work only under the terms of this License, and You must include a copy of, or the Uniform Resource Identifier for, this License with every copy or phonorecord of the Work You distribute, publicly display, publicly perform, or publicly digitally perform. You may not offer or impose any terms on the Work that alter or restrict the terms of this License or the recipients' exercise of the rights granted hereunder. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties. You may not distribute, publicly display, publicly perform, or publicly digitally perform the Work with any technological measures that control access or use of the Work in a manner inconsistent with the terms of this License Agreement. The above applies to the Work as incorporated in a Collective Work, but this does not require the Collective Work apart from the Work itself to be made subject to the terms of this License. If You create a Collective Work, upon notice from any Licensor You must, to the extent practicable, remove from the Collective Work any credit as required by clause 4(b), as requested. If You create a Derivative Work, upon notice from any Licensor You must, to the extent practicable, remove from the Derivative Work any credit as required by clause 4(b), as requested. + 2. If you distribute, publicly display, publicly perform, or publicly digitally perform the Work or any Derivative Works or Collective Works, You must keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or (ii) if the Original Author and/or Licensor designate another party or parties (e.g. a sponsor institute, publishing entity, journal) for attribution in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; the title of the Work if supplied; to the extent reasonably practicable, the Uniform Resource Identifier, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and in the case of a Derivative Work, a credit identifying the use of the Work in the Derivative Work (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). Such credit may be implemented in any reasonable manner; provided, however, that in the case of a Derivative Work or Collective Work, at a minimum such credit will appear where any other comparable authorship credit appears and in a manner at least as prominent as such other comparable authorship credit. + +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + + 1. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Derivative Works or Collective Works from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. + 2. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. + +8. Miscellaneous + + 1. Each time You distribute or publicly digitally perform the Work or a Collective Work, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. + 2. Each time You distribute or publicly digitally perform a Derivative Work, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. + 3. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. + 4. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. + 5. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. + + +Creative Commons is not a party to this License, and makes no warranty whatsoever in connection with the Work. Creative Commons will not be liable to You or any party on any legal theory for any damages whatsoever, including without limitation any general, special, incidental or consequential damages arising in connection to this license. Notwithstanding the foregoing two (2) sentences, if Creative Commons has expressly identified itself as the Licensor hereunder, it shall have all rights and obligations of Licensor. + +Except for the limited purpose of indicating to the public that the Work is licensed under the CCPL, neither party will use the trademark "Creative Commons" or any related trademark or logo of Creative Commons without the prior written consent of Creative Commons. Any permitted use will be in compliance with Creative Commons' then-current trademark usage guidelines, as may be published on its website or otherwise made available upon request from time to time. + +Creative Commons may be contacted at http://creativecommons.org/. + diff --git a/qtflyingbus/core/images/balloons/blue/1.png b/qtflyingbus/core/images/balloons/blue/1.png new file mode 100644 index 0000000..4f421bb Binary files /dev/null and b/qtflyingbus/core/images/balloons/blue/1.png differ diff --git a/qtflyingbus/core/images/balloons/blue/2.png b/qtflyingbus/core/images/balloons/blue/2.png new file mode 100644 index 0000000..eb3c16c Binary files /dev/null and b/qtflyingbus/core/images/balloons/blue/2.png differ diff --git a/qtflyingbus/core/images/balloons/blue/3.png b/qtflyingbus/core/images/balloons/blue/3.png new file mode 100644 index 0000000..5205c8a Binary files /dev/null and b/qtflyingbus/core/images/balloons/blue/3.png differ diff --git a/qtflyingbus/core/images/balloons/blue/4.png b/qtflyingbus/core/images/balloons/blue/4.png new file mode 100644 index 0000000..331b712 Binary files /dev/null and b/qtflyingbus/core/images/balloons/blue/4.png differ diff --git a/qtflyingbus/core/images/balloons/blue/5.png b/qtflyingbus/core/images/balloons/blue/5.png new file mode 100644 index 0000000..aa41f15 Binary files /dev/null and b/qtflyingbus/core/images/balloons/blue/5.png differ diff --git a/qtflyingbus/core/images/balloons/blue/6.png b/qtflyingbus/core/images/balloons/blue/6.png new file mode 100644 index 0000000..7c7e831 Binary files /dev/null and b/qtflyingbus/core/images/balloons/blue/6.png differ diff --git a/qtflyingbus/core/images/balloons/green/1.png b/qtflyingbus/core/images/balloons/green/1.png new file mode 100644 index 0000000..613c0d1 Binary files /dev/null and b/qtflyingbus/core/images/balloons/green/1.png differ diff --git a/qtflyingbus/core/images/balloons/green/2.png b/qtflyingbus/core/images/balloons/green/2.png new file mode 100644 index 0000000..a12f0c5 Binary files /dev/null and b/qtflyingbus/core/images/balloons/green/2.png differ diff --git a/qtflyingbus/core/images/balloons/green/3.png b/qtflyingbus/core/images/balloons/green/3.png new file mode 100644 index 0000000..32ddddd Binary files /dev/null and b/qtflyingbus/core/images/balloons/green/3.png differ diff --git a/qtflyingbus/core/images/balloons/green/4.png b/qtflyingbus/core/images/balloons/green/4.png new file mode 100644 index 0000000..925b925 Binary files /dev/null and b/qtflyingbus/core/images/balloons/green/4.png differ diff --git a/qtflyingbus/core/images/balloons/green/5.png b/qtflyingbus/core/images/balloons/green/5.png new file mode 100644 index 0000000..6501be6 Binary files /dev/null and b/qtflyingbus/core/images/balloons/green/5.png differ diff --git a/qtflyingbus/core/images/balloons/green/6.png b/qtflyingbus/core/images/balloons/green/6.png new file mode 100644 index 0000000..2324294 Binary files /dev/null and b/qtflyingbus/core/images/balloons/green/6.png differ diff --git a/qtflyingbus/core/images/balloons/line.png b/qtflyingbus/core/images/balloons/line.png new file mode 100644 index 0000000..ef12508 Binary files /dev/null and b/qtflyingbus/core/images/balloons/line.png differ diff --git a/qtflyingbus/core/images/balloons/pink/1.png b/qtflyingbus/core/images/balloons/pink/1.png new file mode 100644 index 0000000..d047777 Binary files /dev/null and b/qtflyingbus/core/images/balloons/pink/1.png differ diff --git a/qtflyingbus/core/images/balloons/pink/2.png b/qtflyingbus/core/images/balloons/pink/2.png new file mode 100644 index 0000000..fc28cd4 Binary files /dev/null and b/qtflyingbus/core/images/balloons/pink/2.png differ diff --git a/qtflyingbus/core/images/balloons/pink/3.png b/qtflyingbus/core/images/balloons/pink/3.png new file mode 100644 index 0000000..cdbd2b7 Binary files /dev/null and b/qtflyingbus/core/images/balloons/pink/3.png differ diff --git a/qtflyingbus/core/images/balloons/pink/4.png b/qtflyingbus/core/images/balloons/pink/4.png new file mode 100644 index 0000000..2b877d6 Binary files /dev/null and b/qtflyingbus/core/images/balloons/pink/4.png differ diff --git a/qtflyingbus/core/images/balloons/pink/5.png b/qtflyingbus/core/images/balloons/pink/5.png new file mode 100644 index 0000000..1a68f88 Binary files /dev/null and b/qtflyingbus/core/images/balloons/pink/5.png differ diff --git a/qtflyingbus/core/images/balloons/pink/6.png b/qtflyingbus/core/images/balloons/pink/6.png new file mode 100644 index 0000000..0458b76 Binary files /dev/null and b/qtflyingbus/core/images/balloons/pink/6.png differ diff --git a/qtflyingbus/core/images/balloons/red/1.png b/qtflyingbus/core/images/balloons/red/1.png new file mode 100644 index 0000000..386dbb7 Binary files /dev/null and b/qtflyingbus/core/images/balloons/red/1.png differ diff --git a/qtflyingbus/core/images/balloons/red/2.png b/qtflyingbus/core/images/balloons/red/2.png new file mode 100644 index 0000000..f16b7fb Binary files /dev/null and b/qtflyingbus/core/images/balloons/red/2.png differ diff --git a/qtflyingbus/core/images/balloons/red/3.png b/qtflyingbus/core/images/balloons/red/3.png new file mode 100644 index 0000000..3ee81f0 Binary files /dev/null and b/qtflyingbus/core/images/balloons/red/3.png differ diff --git a/qtflyingbus/core/images/balloons/red/4.png b/qtflyingbus/core/images/balloons/red/4.png new file mode 100644 index 0000000..2af49c6 Binary files /dev/null and b/qtflyingbus/core/images/balloons/red/4.png differ diff --git a/qtflyingbus/core/images/balloons/red/5.png b/qtflyingbus/core/images/balloons/red/5.png new file mode 100644 index 0000000..f9392a7 Binary files /dev/null and b/qtflyingbus/core/images/balloons/red/5.png differ diff --git a/qtflyingbus/core/images/balloons/red/6.png b/qtflyingbus/core/images/balloons/red/6.png new file mode 100644 index 0000000..8534cf7 Binary files /dev/null and b/qtflyingbus/core/images/balloons/red/6.png differ diff --git a/qtflyingbus/core/images/balloons/yellow/1.png b/qtflyingbus/core/images/balloons/yellow/1.png new file mode 100644 index 0000000..8c950e6 Binary files /dev/null and b/qtflyingbus/core/images/balloons/yellow/1.png differ diff --git a/qtflyingbus/core/images/balloons/yellow/2.png b/qtflyingbus/core/images/balloons/yellow/2.png new file mode 100644 index 0000000..b17a8fd Binary files /dev/null and b/qtflyingbus/core/images/balloons/yellow/2.png differ diff --git a/qtflyingbus/core/images/balloons/yellow/3.png b/qtflyingbus/core/images/balloons/yellow/3.png new file mode 100644 index 0000000..e449379 Binary files /dev/null and b/qtflyingbus/core/images/balloons/yellow/3.png differ diff --git a/qtflyingbus/core/images/balloons/yellow/4.png b/qtflyingbus/core/images/balloons/yellow/4.png new file mode 100644 index 0000000..5c2b2c7 Binary files /dev/null and b/qtflyingbus/core/images/balloons/yellow/4.png differ diff --git a/qtflyingbus/core/images/balloons/yellow/5.png b/qtflyingbus/core/images/balloons/yellow/5.png new file mode 100644 index 0000000..65160f5 Binary files /dev/null and b/qtflyingbus/core/images/balloons/yellow/5.png differ diff --git a/qtflyingbus/core/images/balloons/yellow/6.png b/qtflyingbus/core/images/balloons/yellow/6.png new file mode 100644 index 0000000..7cfc73e Binary files /dev/null and b/qtflyingbus/core/images/balloons/yellow/6.png differ diff --git a/qtflyingbus/core/images/buttons/back.png b/qtflyingbus/core/images/buttons/back.png new file mode 100644 index 0000000..a2c41af Binary files /dev/null and b/qtflyingbus/core/images/buttons/back.png differ diff --git a/qtflyingbus/core/images/buttons/back2.png b/qtflyingbus/core/images/buttons/back2.png new file mode 100644 index 0000000..9923292 Binary files /dev/null and b/qtflyingbus/core/images/buttons/back2.png differ diff --git a/qtflyingbus/core/images/buttons/close.png b/qtflyingbus/core/images/buttons/close.png new file mode 100644 index 0000000..44c6a40 Binary files /dev/null and b/qtflyingbus/core/images/buttons/close.png differ diff --git a/qtflyingbus/core/images/buttons/close2.png b/qtflyingbus/core/images/buttons/close2.png new file mode 100644 index 0000000..c30bf4b Binary files /dev/null and b/qtflyingbus/core/images/buttons/close2.png differ diff --git a/qtflyingbus/core/images/buttons/pause.png b/qtflyingbus/core/images/buttons/pause.png new file mode 100644 index 0000000..3fc56b9 Binary files /dev/null and b/qtflyingbus/core/images/buttons/pause.png differ diff --git a/qtflyingbus/core/images/buttons/pause2.png b/qtflyingbus/core/images/buttons/pause2.png new file mode 100644 index 0000000..c9c5b7d Binary files /dev/null and b/qtflyingbus/core/images/buttons/pause2.png differ diff --git a/qtflyingbus/core/images/buttons/play.png b/qtflyingbus/core/images/buttons/play.png new file mode 100644 index 0000000..f2b6872 Binary files /dev/null and b/qtflyingbus/core/images/buttons/play.png differ diff --git a/qtflyingbus/core/images/buttons/play2.png b/qtflyingbus/core/images/buttons/play2.png new file mode 100644 index 0000000..76dadbd Binary files /dev/null and b/qtflyingbus/core/images/buttons/play2.png differ diff --git a/qtflyingbus/core/images/digits/0.png b/qtflyingbus/core/images/digits/0.png new file mode 100644 index 0000000..2dfc479 Binary files /dev/null and b/qtflyingbus/core/images/digits/0.png differ diff --git a/qtflyingbus/core/images/digits/1.png b/qtflyingbus/core/images/digits/1.png new file mode 100644 index 0000000..caaa9aa Binary files /dev/null and b/qtflyingbus/core/images/digits/1.png differ diff --git a/qtflyingbus/core/images/digits/2.png b/qtflyingbus/core/images/digits/2.png new file mode 100644 index 0000000..919ae78 Binary files /dev/null and b/qtflyingbus/core/images/digits/2.png differ diff --git a/qtflyingbus/core/images/digits/3.png b/qtflyingbus/core/images/digits/3.png new file mode 100644 index 0000000..9b768dc Binary files /dev/null and b/qtflyingbus/core/images/digits/3.png differ diff --git a/qtflyingbus/core/images/digits/4.png b/qtflyingbus/core/images/digits/4.png new file mode 100644 index 0000000..bc2acd0 Binary files /dev/null and b/qtflyingbus/core/images/digits/4.png differ diff --git a/qtflyingbus/core/images/digits/5.png b/qtflyingbus/core/images/digits/5.png new file mode 100644 index 0000000..bd4eaf7 Binary files /dev/null and b/qtflyingbus/core/images/digits/5.png differ diff --git a/qtflyingbus/core/images/digits/6.png b/qtflyingbus/core/images/digits/6.png new file mode 100644 index 0000000..5abab68 Binary files /dev/null and b/qtflyingbus/core/images/digits/6.png differ diff --git a/qtflyingbus/core/images/digits/7.png b/qtflyingbus/core/images/digits/7.png new file mode 100644 index 0000000..1475998 Binary files /dev/null and b/qtflyingbus/core/images/digits/7.png differ diff --git a/qtflyingbus/core/images/digits/8.png b/qtflyingbus/core/images/digits/8.png new file mode 100644 index 0000000..d3ef574 Binary files /dev/null and b/qtflyingbus/core/images/digits/8.png differ diff --git a/qtflyingbus/core/images/digits/9.png b/qtflyingbus/core/images/digits/9.png new file mode 100644 index 0000000..729354b Binary files /dev/null and b/qtflyingbus/core/images/digits/9.png differ diff --git a/qtflyingbus/core/images/digits/minus.png b/qtflyingbus/core/images/digits/minus.png new file mode 100644 index 0000000..aea83d6 Binary files /dev/null and b/qtflyingbus/core/images/digits/minus.png differ diff --git a/qtflyingbus/core/images/help/background.png b/qtflyingbus/core/images/help/background.png new file mode 100644 index 0000000..ec6ce9d Binary files /dev/null and b/qtflyingbus/core/images/help/background.png differ diff --git a/qtflyingbus/core/images/help/balloon.png b/qtflyingbus/core/images/help/balloon.png new file mode 100644 index 0000000..16492ea Binary files /dev/null and b/qtflyingbus/core/images/help/balloon.png differ diff --git a/qtflyingbus/core/images/help/bird.png b/qtflyingbus/core/images/help/bird.png new file mode 100644 index 0000000..26949f7 Binary files /dev/null and b/qtflyingbus/core/images/help/bird.png differ diff --git a/qtflyingbus/core/images/help/cloud.png b/qtflyingbus/core/images/help/cloud.png new file mode 100644 index 0000000..738922a Binary files /dev/null and b/qtflyingbus/core/images/help/cloud.png differ diff --git a/qtflyingbus/core/images/help/ladybug.png b/qtflyingbus/core/images/help/ladybug.png new file mode 100644 index 0000000..b214495 Binary files /dev/null and b/qtflyingbus/core/images/help/ladybug.png differ diff --git a/qtflyingbus/core/images/help/peace.png b/qtflyingbus/core/images/help/peace.png new file mode 100644 index 0000000..bf37f10 Binary files /dev/null and b/qtflyingbus/core/images/help/peace.png differ diff --git a/qtflyingbus/core/images/help/playnow.png b/qtflyingbus/core/images/help/playnow.png new file mode 100644 index 0000000..cec958c Binary files /dev/null and b/qtflyingbus/core/images/help/playnow.png differ diff --git a/qtflyingbus/core/images/help/pop.png b/qtflyingbus/core/images/help/pop.png new file mode 100644 index 0000000..3a14362 Binary files /dev/null and b/qtflyingbus/core/images/help/pop.png differ diff --git a/qtflyingbus/core/images/help/rock.png b/qtflyingbus/core/images/help/rock.png new file mode 100644 index 0000000..f3e8deb Binary files /dev/null and b/qtflyingbus/core/images/help/rock.png differ diff --git a/qtflyingbus/core/images/help/tap.png b/qtflyingbus/core/images/help/tap.png new file mode 100644 index 0000000..c2bbd9f Binary files /dev/null and b/qtflyingbus/core/images/help/tap.png differ diff --git a/qtflyingbus/core/images/help/title.png b/qtflyingbus/core/images/help/title.png new file mode 100644 index 0000000..23cdd39 Binary files /dev/null and b/qtflyingbus/core/images/help/title.png differ diff --git a/qtflyingbus/core/images/help/tree.png b/qtflyingbus/core/images/help/tree.png new file mode 100644 index 0000000..823907d Binary files /dev/null and b/qtflyingbus/core/images/help/tree.png differ diff --git a/qtflyingbus/core/images/life.png b/qtflyingbus/core/images/life.png new file mode 100644 index 0000000..7a3e56f Binary files /dev/null and b/qtflyingbus/core/images/life.png differ diff --git a/qtflyingbus/core/images/menu/about.png b/qtflyingbus/core/images/menu/about.png new file mode 100644 index 0000000..8b7bfb4 Binary files /dev/null and b/qtflyingbus/core/images/menu/about.png differ diff --git a/qtflyingbus/core/images/menu/button/about.png b/qtflyingbus/core/images/menu/button/about.png new file mode 100644 index 0000000..28aa4d6 Binary files /dev/null and b/qtflyingbus/core/images/menu/button/about.png differ diff --git a/qtflyingbus/core/images/menu/button/about_pressed.png b/qtflyingbus/core/images/menu/button/about_pressed.png new file mode 100644 index 0000000..a5b06dc Binary files /dev/null and b/qtflyingbus/core/images/menu/button/about_pressed.png differ diff --git a/qtflyingbus/core/images/menu/button/exit.png b/qtflyingbus/core/images/menu/button/exit.png new file mode 100644 index 0000000..ac3579b Binary files /dev/null and b/qtflyingbus/core/images/menu/button/exit.png differ diff --git a/qtflyingbus/core/images/menu/button/exit_pressed.png b/qtflyingbus/core/images/menu/button/exit_pressed.png new file mode 100644 index 0000000..be90fc7 Binary files /dev/null and b/qtflyingbus/core/images/menu/button/exit_pressed.png differ diff --git a/qtflyingbus/core/images/menu/button/help.png b/qtflyingbus/core/images/menu/button/help.png new file mode 100644 index 0000000..cf5d13b Binary files /dev/null and b/qtflyingbus/core/images/menu/button/help.png differ diff --git a/qtflyingbus/core/images/menu/button/help_pressed.png b/qtflyingbus/core/images/menu/button/help_pressed.png new file mode 100644 index 0000000..925bd3e Binary files /dev/null and b/qtflyingbus/core/images/menu/button/help_pressed.png differ diff --git a/qtflyingbus/core/images/menu/button/menu.png b/qtflyingbus/core/images/menu/button/menu.png new file mode 100644 index 0000000..0756d98 Binary files /dev/null and b/qtflyingbus/core/images/menu/button/menu.png differ diff --git a/qtflyingbus/core/images/menu/button/menu_pressed.png b/qtflyingbus/core/images/menu/button/menu_pressed.png new file mode 100644 index 0000000..57abc06 Binary files /dev/null and b/qtflyingbus/core/images/menu/button/menu_pressed.png differ diff --git a/qtflyingbus/core/images/menu/button/next_level.png b/qtflyingbus/core/images/menu/button/next_level.png new file mode 100644 index 0000000..66c6572 Binary files /dev/null and b/qtflyingbus/core/images/menu/button/next_level.png differ diff --git a/qtflyingbus/core/images/menu/button/next_level_pressed.png b/qtflyingbus/core/images/menu/button/next_level_pressed.png new file mode 100644 index 0000000..d060072 Binary files /dev/null and b/qtflyingbus/core/images/menu/button/next_level_pressed.png differ diff --git a/qtflyingbus/core/images/menu/button/no.png b/qtflyingbus/core/images/menu/button/no.png new file mode 100644 index 0000000..20c18db Binary files /dev/null and b/qtflyingbus/core/images/menu/button/no.png differ diff --git a/qtflyingbus/core/images/menu/button/no_pressed.png b/qtflyingbus/core/images/menu/button/no_pressed.png new file mode 100644 index 0000000..e062302 Binary files /dev/null and b/qtflyingbus/core/images/menu/button/no_pressed.png differ diff --git a/qtflyingbus/core/images/menu/button/play.png b/qtflyingbus/core/images/menu/button/play.png new file mode 100644 index 0000000..b217802 Binary files /dev/null and b/qtflyingbus/core/images/menu/button/play.png differ diff --git a/qtflyingbus/core/images/menu/button/play_pressed.png b/qtflyingbus/core/images/menu/button/play_pressed.png new file mode 100644 index 0000000..919aa55 Binary files /dev/null and b/qtflyingbus/core/images/menu/button/play_pressed.png differ diff --git a/qtflyingbus/core/images/menu/button/restart.png b/qtflyingbus/core/images/menu/button/restart.png new file mode 100644 index 0000000..1049299 Binary files /dev/null and b/qtflyingbus/core/images/menu/button/restart.png differ diff --git a/qtflyingbus/core/images/menu/button/restart_pressed.png b/qtflyingbus/core/images/menu/button/restart_pressed.png new file mode 100644 index 0000000..9e64680 Binary files /dev/null and b/qtflyingbus/core/images/menu/button/restart_pressed.png differ diff --git a/qtflyingbus/core/images/menu/button/retry.png b/qtflyingbus/core/images/menu/button/retry.png new file mode 100644 index 0000000..5d63206 Binary files /dev/null and b/qtflyingbus/core/images/menu/button/retry.png differ diff --git a/qtflyingbus/core/images/menu/button/retry_pressed.png b/qtflyingbus/core/images/menu/button/retry_pressed.png new file mode 100644 index 0000000..232f73d Binary files /dev/null and b/qtflyingbus/core/images/menu/button/retry_pressed.png differ diff --git a/qtflyingbus/core/images/menu/button/yes.png b/qtflyingbus/core/images/menu/button/yes.png new file mode 100644 index 0000000..5abceeb Binary files /dev/null and b/qtflyingbus/core/images/menu/button/yes.png differ diff --git a/qtflyingbus/core/images/menu/button/yes_pressed.png b/qtflyingbus/core/images/menu/button/yes_pressed.png new file mode 100644 index 0000000..5e66611 Binary files /dev/null and b/qtflyingbus/core/images/menu/button/yes_pressed.png differ diff --git a/qtflyingbus/core/images/menu/complete_title.png b/qtflyingbus/core/images/menu/complete_title.png new file mode 100644 index 0000000..d5bd2e5 Binary files /dev/null and b/qtflyingbus/core/images/menu/complete_title.png differ diff --git a/qtflyingbus/core/images/menu/details.png b/qtflyingbus/core/images/menu/details.png new file mode 100644 index 0000000..b56046a Binary files /dev/null and b/qtflyingbus/core/images/menu/details.png differ diff --git a/qtflyingbus/core/images/menu/dot.png b/qtflyingbus/core/images/menu/dot.png new file mode 100644 index 0000000..27aa29e Binary files /dev/null and b/qtflyingbus/core/images/menu/dot.png differ diff --git a/qtflyingbus/core/images/menu/highscore.png b/qtflyingbus/core/images/menu/highscore.png new file mode 100644 index 0000000..80eb1ad Binary files /dev/null and b/qtflyingbus/core/images/menu/highscore.png differ diff --git a/qtflyingbus/core/images/menu/leave_title.png b/qtflyingbus/core/images/menu/leave_title.png new file mode 100644 index 0000000..2506291 Binary files /dev/null and b/qtflyingbus/core/images/menu/leave_title.png differ diff --git a/qtflyingbus/core/images/menu/menu.png b/qtflyingbus/core/images/menu/menu.png new file mode 100644 index 0000000..447251c Binary files /dev/null and b/qtflyingbus/core/images/menu/menu.png differ diff --git a/qtflyingbus/core/images/menu/menu_div.png b/qtflyingbus/core/images/menu/menu_div.png new file mode 100644 index 0000000..1cf4a94 Binary files /dev/null and b/qtflyingbus/core/images/menu/menu_div.png differ diff --git a/qtflyingbus/core/images/menu/menu_gameover.png b/qtflyingbus/core/images/menu/menu_gameover.png new file mode 100644 index 0000000..532e96c Binary files /dev/null and b/qtflyingbus/core/images/menu/menu_gameover.png differ diff --git a/qtflyingbus/core/images/menu/menu_youwin.png b/qtflyingbus/core/images/menu/menu_youwin.png new file mode 100644 index 0000000..67f2b25 Binary files /dev/null and b/qtflyingbus/core/images/menu/menu_youwin.png differ diff --git a/qtflyingbus/core/images/menu/yourscore.png b/qtflyingbus/core/images/menu/yourscore.png new file mode 100644 index 0000000..ed17ab6 Binary files /dev/null and b/qtflyingbus/core/images/menu/yourscore.png differ diff --git a/qtflyingbus/core/images/scene/elements/bigmountain1.png b/qtflyingbus/core/images/scene/elements/bigmountain1.png new file mode 100644 index 0000000..94e5990 Binary files /dev/null and b/qtflyingbus/core/images/scene/elements/bigmountain1.png differ diff --git a/qtflyingbus/core/images/scene/elements/bigmountain2.png b/qtflyingbus/core/images/scene/elements/bigmountain2.png new file mode 100644 index 0000000..9d2c4b8 Binary files /dev/null and b/qtflyingbus/core/images/scene/elements/bigmountain2.png differ diff --git a/qtflyingbus/core/images/scene/elements/bush.png b/qtflyingbus/core/images/scene/elements/bush.png new file mode 100644 index 0000000..f521226 Binary files /dev/null and b/qtflyingbus/core/images/scene/elements/bush.png differ diff --git a/qtflyingbus/core/images/scene/elements/cloud1.png b/qtflyingbus/core/images/scene/elements/cloud1.png new file mode 100644 index 0000000..9fc2c6f Binary files /dev/null and b/qtflyingbus/core/images/scene/elements/cloud1.png differ diff --git a/qtflyingbus/core/images/scene/elements/cloud2.png b/qtflyingbus/core/images/scene/elements/cloud2.png new file mode 100644 index 0000000..41765d7 Binary files /dev/null and b/qtflyingbus/core/images/scene/elements/cloud2.png differ diff --git a/qtflyingbus/core/images/scene/elements/cloud3.png b/qtflyingbus/core/images/scene/elements/cloud3.png new file mode 100644 index 0000000..840cdab Binary files /dev/null and b/qtflyingbus/core/images/scene/elements/cloud3.png differ diff --git a/qtflyingbus/core/images/scene/elements/cloud4.png b/qtflyingbus/core/images/scene/elements/cloud4.png new file mode 100644 index 0000000..3533465 Binary files /dev/null and b/qtflyingbus/core/images/scene/elements/cloud4.png differ diff --git a/qtflyingbus/core/images/scene/elements/cloud5.png b/qtflyingbus/core/images/scene/elements/cloud5.png new file mode 100644 index 0000000..28ff7ec Binary files /dev/null and b/qtflyingbus/core/images/scene/elements/cloud5.png differ diff --git a/qtflyingbus/core/images/scene/elements/grass.png b/qtflyingbus/core/images/scene/elements/grass.png new file mode 100644 index 0000000..b99356c Binary files /dev/null and b/qtflyingbus/core/images/scene/elements/grass.png differ diff --git a/qtflyingbus/core/images/scene/elements/ground.png b/qtflyingbus/core/images/scene/elements/ground.png new file mode 100644 index 0000000..8a42fd5 Binary files /dev/null and b/qtflyingbus/core/images/scene/elements/ground.png differ diff --git a/qtflyingbus/core/images/scene/elements/moon.png b/qtflyingbus/core/images/scene/elements/moon.png new file mode 100644 index 0000000..95e049a Binary files /dev/null and b/qtflyingbus/core/images/scene/elements/moon.png differ diff --git a/qtflyingbus/core/images/scene/elements/mountain.png b/qtflyingbus/core/images/scene/elements/mountain.png new file mode 100644 index 0000000..282705e Binary files /dev/null and b/qtflyingbus/core/images/scene/elements/mountain.png differ diff --git a/qtflyingbus/core/images/scene/elements/road.png b/qtflyingbus/core/images/scene/elements/road.png new file mode 100644 index 0000000..81cb8ac Binary files /dev/null and b/qtflyingbus/core/images/scene/elements/road.png differ diff --git a/qtflyingbus/core/images/scene/elements/sand.png b/qtflyingbus/core/images/scene/elements/sand.png new file mode 100644 index 0000000..323a49a Binary files /dev/null and b/qtflyingbus/core/images/scene/elements/sand.png differ diff --git a/qtflyingbus/core/images/scene/elements/street.png b/qtflyingbus/core/images/scene/elements/street.png new file mode 100644 index 0000000..184073b Binary files /dev/null and b/qtflyingbus/core/images/scene/elements/street.png differ diff --git a/qtflyingbus/core/images/scene/elements/sun.png b/qtflyingbus/core/images/scene/elements/sun.png new file mode 100644 index 0000000..1a96729 Binary files /dev/null and b/qtflyingbus/core/images/scene/elements/sun.png differ diff --git a/qtflyingbus/core/images/scene/elements/sunlight.png b/qtflyingbus/core/images/scene/elements/sunlight.png new file mode 100644 index 0000000..1033da6 Binary files /dev/null and b/qtflyingbus/core/images/scene/elements/sunlight.png differ diff --git a/qtflyingbus/core/images/scene/elements/water.png b/qtflyingbus/core/images/scene/elements/water.png new file mode 100644 index 0000000..b72f168 Binary files /dev/null and b/qtflyingbus/core/images/scene/elements/water.png differ diff --git a/qtflyingbus/core/images/scene/sky/dark.png b/qtflyingbus/core/images/scene/sky/dark.png new file mode 100644 index 0000000..6a0b584 Binary files /dev/null and b/qtflyingbus/core/images/scene/sky/dark.png differ diff --git a/qtflyingbus/core/images/scene/sky/gray.png b/qtflyingbus/core/images/scene/sky/gray.png new file mode 100644 index 0000000..b969757 Binary files /dev/null and b/qtflyingbus/core/images/scene/sky/gray.png differ diff --git a/qtflyingbus/core/images/scene/sky/light.png b/qtflyingbus/core/images/scene/sky/light.png new file mode 100644 index 0000000..d6c4368 Binary files /dev/null and b/qtflyingbus/core/images/scene/sky/light.png differ diff --git a/qtflyingbus/core/images/score.png b/qtflyingbus/core/images/score.png new file mode 100644 index 0000000..1283f89 Binary files /dev/null and b/qtflyingbus/core/images/score.png differ diff --git a/qtflyingbus/core/images/splash/background.png b/qtflyingbus/core/images/splash/background.png new file mode 100644 index 0000000..ef55f59 Binary files /dev/null and b/qtflyingbus/core/images/splash/background.png differ diff --git a/qtflyingbus/core/images/splash/finalbackground.png b/qtflyingbus/core/images/splash/finalbackground.png new file mode 100644 index 0000000..18d716f Binary files /dev/null and b/qtflyingbus/core/images/splash/finalbackground.png differ diff --git a/qtflyingbus/core/images/splash/n8.png b/qtflyingbus/core/images/splash/n8.png new file mode 100644 index 0000000..aa27e82 Binary files /dev/null and b/qtflyingbus/core/images/splash/n8.png differ diff --git a/qtflyingbus/core/images/splash/note.png b/qtflyingbus/core/images/splash/note.png new file mode 100644 index 0000000..8ed027c Binary files /dev/null and b/qtflyingbus/core/images/splash/note.png differ diff --git a/qtflyingbus/core/images/splash/tablet.png b/qtflyingbus/core/images/splash/tablet.png new file mode 100644 index 0000000..5577e6c Binary files /dev/null and b/qtflyingbus/core/images/splash/tablet.png differ diff --git a/qtflyingbus/core/images/splash/van.png b/qtflyingbus/core/images/splash/van.png new file mode 100644 index 0000000..e3ee35c Binary files /dev/null and b/qtflyingbus/core/images/splash/van.png differ diff --git a/qtflyingbus/core/images/sprites/elements/balloon.png b/qtflyingbus/core/images/sprites/elements/balloon.png new file mode 100644 index 0000000..94ad9cc Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/balloon.png differ diff --git a/qtflyingbus/core/images/sprites/elements/bird1.png b/qtflyingbus/core/images/sprites/elements/bird1.png new file mode 100644 index 0000000..a5fe85f Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/bird1.png differ diff --git a/qtflyingbus/core/images/sprites/elements/bird2.png b/qtflyingbus/core/images/sprites/elements/bird2.png new file mode 100644 index 0000000..792019d Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/bird2.png differ diff --git a/qtflyingbus/core/images/sprites/elements/bird3.png b/qtflyingbus/core/images/sprites/elements/bird3.png new file mode 100644 index 0000000..4a73bc0 Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/bird3.png differ diff --git a/qtflyingbus/core/images/sprites/elements/bird4.png b/qtflyingbus/core/images/sprites/elements/bird4.png new file mode 100644 index 0000000..403dbae Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/bird4.png differ diff --git a/qtflyingbus/core/images/sprites/elements/bird5.png b/qtflyingbus/core/images/sprites/elements/bird5.png new file mode 100644 index 0000000..c80fb4e Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/bird5.png differ diff --git a/qtflyingbus/core/images/sprites/elements/cloud1.png b/qtflyingbus/core/images/sprites/elements/cloud1.png new file mode 100644 index 0000000..863d77c Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/cloud1.png differ diff --git a/qtflyingbus/core/images/sprites/elements/cloud2.png b/qtflyingbus/core/images/sprites/elements/cloud2.png new file mode 100644 index 0000000..ac5ce08 Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/cloud2.png differ diff --git a/qtflyingbus/core/images/sprites/elements/cloud3.png b/qtflyingbus/core/images/sprites/elements/cloud3.png new file mode 100644 index 0000000..71f3b6d Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/cloud3.png differ diff --git a/qtflyingbus/core/images/sprites/elements/cloud4.png b/qtflyingbus/core/images/sprites/elements/cloud4.png new file mode 100644 index 0000000..0a375ab Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/cloud4.png differ diff --git a/qtflyingbus/core/images/sprites/elements/cloud5.png b/qtflyingbus/core/images/sprites/elements/cloud5.png new file mode 100644 index 0000000..e57066e Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/cloud5.png differ diff --git a/qtflyingbus/core/images/sprites/elements/cloud6.png b/qtflyingbus/core/images/sprites/elements/cloud6.png new file mode 100644 index 0000000..0e19fd9 Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/cloud6.png differ diff --git a/qtflyingbus/core/images/sprites/elements/cloud7.png b/qtflyingbus/core/images/sprites/elements/cloud7.png new file mode 100644 index 0000000..82e255e Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/cloud7.png differ diff --git a/qtflyingbus/core/images/sprites/elements/ladybug1.png b/qtflyingbus/core/images/sprites/elements/ladybug1.png new file mode 100644 index 0000000..de5d2ce Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/ladybug1.png differ diff --git a/qtflyingbus/core/images/sprites/elements/ladybug2.png b/qtflyingbus/core/images/sprites/elements/ladybug2.png new file mode 100644 index 0000000..36c8247 Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/ladybug2.png differ diff --git a/qtflyingbus/core/images/sprites/elements/ladybug3.png b/qtflyingbus/core/images/sprites/elements/ladybug3.png new file mode 100644 index 0000000..7aa5cc7 Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/ladybug3.png differ diff --git a/qtflyingbus/core/images/sprites/elements/peace1.png b/qtflyingbus/core/images/sprites/elements/peace1.png new file mode 100644 index 0000000..a9fc7b0 Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/peace1.png differ diff --git a/qtflyingbus/core/images/sprites/elements/peace2.png b/qtflyingbus/core/images/sprites/elements/peace2.png new file mode 100644 index 0000000..2b0fe6e Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/peace2.png differ diff --git a/qtflyingbus/core/images/sprites/elements/peace3.png b/qtflyingbus/core/images/sprites/elements/peace3.png new file mode 100644 index 0000000..a6af9b5 Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/peace3.png differ diff --git a/qtflyingbus/core/images/sprites/elements/peace4.png b/qtflyingbus/core/images/sprites/elements/peace4.png new file mode 100644 index 0000000..38fcb81 Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/peace4.png differ diff --git a/qtflyingbus/core/images/sprites/elements/peace5.png b/qtflyingbus/core/images/sprites/elements/peace5.png new file mode 100644 index 0000000..7a56bf9 Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/peace5.png differ diff --git a/qtflyingbus/core/images/sprites/elements/stone.png b/qtflyingbus/core/images/sprites/elements/stone.png new file mode 100644 index 0000000..cf4793d Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/stone.png differ diff --git a/qtflyingbus/core/images/sprites/elements/tree1.png b/qtflyingbus/core/images/sprites/elements/tree1.png new file mode 100644 index 0000000..849b0b8 Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/tree1.png differ diff --git a/qtflyingbus/core/images/sprites/elements/tree2.png b/qtflyingbus/core/images/sprites/elements/tree2.png new file mode 100644 index 0000000..e91448c Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/tree2.png differ diff --git a/qtflyingbus/core/images/sprites/elements/tree3.png b/qtflyingbus/core/images/sprites/elements/tree3.png new file mode 100644 index 0000000..60d6f01 Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/tree3.png differ diff --git a/qtflyingbus/core/images/sprites/elements/tree4.png b/qtflyingbus/core/images/sprites/elements/tree4.png new file mode 100644 index 0000000..2c614bf Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/tree4.png differ diff --git a/qtflyingbus/core/images/sprites/elements/tree5.png b/qtflyingbus/core/images/sprites/elements/tree5.png new file mode 100644 index 0000000..ee0c7d3 Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/tree5.png differ diff --git a/qtflyingbus/core/images/sprites/elements/tree6.png b/qtflyingbus/core/images/sprites/elements/tree6.png new file mode 100644 index 0000000..46bec32 Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/tree6.png differ diff --git a/qtflyingbus/core/images/sprites/elements/tree7.png b/qtflyingbus/core/images/sprites/elements/tree7.png new file mode 100644 index 0000000..3f3c17c Binary files /dev/null and b/qtflyingbus/core/images/sprites/elements/tree7.png differ diff --git a/qtflyingbus/core/images/sprites/qml.png b/qtflyingbus/core/images/sprites/qml.png new file mode 100644 index 0000000..785b473 Binary files /dev/null and b/qtflyingbus/core/images/sprites/qml.png differ diff --git a/qtflyingbus/core/images/sprites/star.png b/qtflyingbus/core/images/sprites/star.png new file mode 100644 index 0000000..e41a8bb Binary files /dev/null and b/qtflyingbus/core/images/sprites/star.png differ diff --git a/qtflyingbus/core/images/sprites/std.png b/qtflyingbus/core/images/sprites/std.png new file mode 100644 index 0000000..0c96b9d Binary files /dev/null and b/qtflyingbus/core/images/sprites/std.png differ diff --git a/qtflyingbus/core/images/sprites/van/inflating/1.png b/qtflyingbus/core/images/sprites/van/inflating/1.png new file mode 100644 index 0000000..307aec0 Binary files /dev/null and b/qtflyingbus/core/images/sprites/van/inflating/1.png differ diff --git a/qtflyingbus/core/images/sprites/van/inflating/2.png b/qtflyingbus/core/images/sprites/van/inflating/2.png new file mode 100644 index 0000000..7db91b0 Binary files /dev/null and b/qtflyingbus/core/images/sprites/van/inflating/2.png differ diff --git a/qtflyingbus/core/images/sprites/van/inflating/3.png b/qtflyingbus/core/images/sprites/van/inflating/3.png new file mode 100644 index 0000000..35f1a2f Binary files /dev/null and b/qtflyingbus/core/images/sprites/van/inflating/3.png differ diff --git a/qtflyingbus/core/images/sprites/van/inflating/4.png b/qtflyingbus/core/images/sprites/van/inflating/4.png new file mode 100644 index 0000000..c940ee1 Binary files /dev/null and b/qtflyingbus/core/images/sprites/van/inflating/4.png differ diff --git a/qtflyingbus/core/images/sprites/van/inflating/5.png b/qtflyingbus/core/images/sprites/van/inflating/5.png new file mode 100644 index 0000000..6d9b10f Binary files /dev/null and b/qtflyingbus/core/images/sprites/van/inflating/5.png differ diff --git a/qtflyingbus/core/images/sprites/van/inflating/6.png b/qtflyingbus/core/images/sprites/van/inflating/6.png new file mode 100644 index 0000000..024346a Binary files /dev/null and b/qtflyingbus/core/images/sprites/van/inflating/6.png differ diff --git a/qtflyingbus/core/images/sprites/van/running/1.png b/qtflyingbus/core/images/sprites/van/running/1.png new file mode 100644 index 0000000..7af2854 Binary files /dev/null and b/qtflyingbus/core/images/sprites/van/running/1.png differ diff --git a/qtflyingbus/core/images/sprites/van/running/2.png b/qtflyingbus/core/images/sprites/van/running/2.png new file mode 100644 index 0000000..cfddd19 Binary files /dev/null and b/qtflyingbus/core/images/sprites/van/running/2.png differ diff --git a/qtflyingbus/core/images/sprites/van/running/3.png b/qtflyingbus/core/images/sprites/van/running/3.png new file mode 100644 index 0000000..2b72d9b Binary files /dev/null and b/qtflyingbus/core/images/sprites/van/running/3.png differ diff --git a/qtflyingbus/core/images/sprites/van/running/4.png b/qtflyingbus/core/images/sprites/van/running/4.png new file mode 100644 index 0000000..70b28d4 Binary files /dev/null and b/qtflyingbus/core/images/sprites/van/running/4.png differ diff --git a/qtflyingbus/core/images/sprites/van/running/5.png b/qtflyingbus/core/images/sprites/van/running/5.png new file mode 100644 index 0000000..00e266b Binary files /dev/null and b/qtflyingbus/core/images/sprites/van/running/5.png differ diff --git a/qtflyingbus/core/images/sprites/van/running/6.png b/qtflyingbus/core/images/sprites/van/running/6.png new file mode 100644 index 0000000..fb7ac1b Binary files /dev/null and b/qtflyingbus/core/images/sprites/van/running/6.png differ diff --git a/qtflyingbus/core/levels/1.xml b/qtflyingbus/core/levels/1.xml new file mode 100644 index 0000000..cf3a6cb --- /dev/null +++ b/qtflyingbus/core/levels/1.xml @@ -0,0 +1,153 @@ + + + + 426 + 462 + Bird + + + 800 + 800 + Cloud + + + 880 + 508 + LadyBug + + + 1372 + 440 + Balloon + + + 1752 + 604 + LadyBug + + + 2370 + 470 + LadyBug + + + 2584 + 300 + Bird + + + + 638 + 470 + Peace + + + 1098 + 300 + Peace + + + 1900 + 280 + Peace + + + + 2000 + 180 + Tree + + + + 320 + 86 + Stone + + + 770 + 86 + Stone + + + 1488 + 86 + Stone + + + 1582 + 86 + Stone + + + 2744 + 86 + Stone + + + + 0.00000001 + 480 + 98 + 0.00000001 + 0.00000001 + images/scene/sky/light.png + + + 100 + 260 + 98 + 0.00000001 + 0.8 + images/scene/elements/sun.png + + + + 130 + 660 + 98 + 0.1 + 0.9 + images/scene/elements/cloud2.png + + + 630 + 480 + 98 + 0.1 + 0.9 + images/scene/elements/cloud3.png + + + 900 + 530 + 98 + 0.1 + 0.9 + images/scene/elements/cloud4.png + + + 0.00000001 + 240 + 99 + 0.1 + 0.9 + images/scene/elements/cloud1.png + + + + 0.00000001 + 180 + 99 + 0.3 + 0.95 + images/scene/elements/mountain.png + + + 0.00000001 + 54 + 99 + 1.0 + 1.0 + images/scene/elements/ground.png + + diff --git a/qtflyingbus/core/levels/2.xml b/qtflyingbus/core/levels/2.xml new file mode 100644 index 0000000..a67f3f9 --- /dev/null +++ b/qtflyingbus/core/levels/2.xml @@ -0,0 +1,127 @@ + + + + 880 + 208 + LadyBug + + + 1372 + 400 + LadyBug + + + 1752 + 500 + Balloon + + + 2370 + 380 + Bird + + + 2584 + 200 + LadyBug + + + + 638 + 330 + Peace + + + 1098 + 200 + Peace + + + 1974 + 500 + Peace + + + + 770 + 86 + Stone + + + 1188 + 86 + Stone + + + 1582 + 86 + Stone + + + + 0.00000001 + 480 + 98 + 0.00000001 + 0.00000001 + images/scene/sky/gray.png + + + 100 + 360 + 98 + 0.00000001 + 0.8 + images/scene/elements/sun.png + + + + 0.00000001 + 560 + 98 + 0.1 + 0.9 + images/scene/elements/cloud2.png + + + 680 + 680 + 98 + 0.1 + 0.9 + images/scene/elements/cloud3.png + + + 1000 + 630 + 98 + 0.1 + 0.9 + images/scene/elements/cloud4.png + + + + 0.00000001 + 190 + 99 + 0.3 + 0.95 + images/scene/elements/water.png + + + 0.00000001 + 145 + 99 + 0.3 + 1.0 + images/scene/elements/sand.png + + + 0.00000001 + 74 + 99 + 1.0 + 1.0 + images/scene/elements/street.png + + diff --git a/qtflyingbus/core/levels/3.xml b/qtflyingbus/core/levels/3.xml new file mode 100644 index 0000000..6b37617 --- /dev/null +++ b/qtflyingbus/core/levels/3.xml @@ -0,0 +1,156 @@ + + + + 880 + 440 + LadyBug + + + 1372 + 600 + Balloon + + + 1752 + 620 + Balloon + + + 4000 + 410 + LadyBug + + + 1300 + 400 + Bird + + + + 638 + 540 + Peace + + + 1098 + 600 + Peace + + + 1974 + 300 + Peace + + + 1600 + 620 + Peace + + + + 600 + 86 + Stone + + + 1200 + 86 + Stone + + + 1600 + 86 + Stone + + + 2600 + 86 + Stone + + + + 0.00000001 + 480 + 98 + 0.00000001 + 0.00000001 + images/scene/sky/dark.png + + + 240 + 560 + 98 + 0.00000001 + 0.8 + images/scene/elements/moon.png + + + + 0.00000001 + 520 + 98 + 0.1 + 0.9 + images/scene/elements/cloud2.png + + + 500 + 640 + 98 + 0.1 + 0.9 + images/scene/elements/cloud3.png + + + 900 + -400 + 98 + 0.1 + 0.9 + images/scene/elements/cloud4.png + + + 0.00000001 + 160 + 99 + 0.1 + 0.9 + images/scene/elements/cloud1.png + + + + 0.00000001 + 460 + 99 + 0.3 + 0.95 + images/scene/elements/bigmountain2.png + + + + 0.00000001 + 540 + 99 + 0.3 + 0.95 + images/scene/elements/bigmountain1.png + + + + 0.00000001 + 240 + 99 + 1.0 + 1.0 + images/scene/elements/bush.png + + + + 0.00000001 + 70 + 99 + 1.0 + 1.0 + images/scene/elements/road.png + + diff --git a/qtflyingbus/core/resource.qrc b/qtflyingbus/core/resource.qrc new file mode 100644 index 0000000..64edf47 --- /dev/null +++ b/qtflyingbus/core/resource.qrc @@ -0,0 +1,206 @@ + + + ./Background.qml + ./FinalSplash.qml + ./Splash.qml + ./sprites/Peace.qml + ./sprites/Balloon.qml + ./sprites/Bird.qml + ./sprites/Stone.qml + ./sprites/Cloud.qml + ./sprites/Tree.qml + ./sprites/LadyBug.qml + ./AboutMenu.qml + ./FrameSprite.qml + ./Score.qml + ./Sprite.qml + ./Player.qml + ./ScoreMenu.qml + ./Main.qml + ./Balloon.qml + ./DigitLabel.qml + ./FinalSplashItem.qml + ./LevelModel.qml + ./MenuAnimation.qml + ./YouWinMenu.qml + ./levels/1.xml + ./levels/3.xml + ./levels/2.xml + ./PlayMenu.qml + ./images/sprites/std.png + ./images/sprites/elements/tree5.png + ./images/sprites/elements/ladybug3.png + ./images/sprites/elements/peace4.png + ./images/sprites/elements/ladybug2.png + ./images/sprites/elements/bird3.png + ./images/sprites/elements/bird4.png + ./images/sprites/elements/cloud2.png + ./images/sprites/elements/cloud3.png + ./images/sprites/elements/peace1.png + ./images/sprites/elements/peace5.png + ./images/sprites/elements/cloud7.png + ./images/sprites/elements/cloud6.png + ./images/sprites/elements/cloud1.png + ./images/sprites/elements/tree7.png + ./images/sprites/elements/tree6.png + ./images/sprites/elements/tree1.png + ./images/sprites/elements/peace2.png + ./images/sprites/elements/tree2.png + ./images/sprites/elements/tree3.png + ./images/sprites/elements/bird5.png + ./images/sprites/elements/cloud4.png + ./images/sprites/elements/bird2.png + ./images/sprites/elements/cloud5.png + ./images/sprites/elements/bird1.png + ./images/sprites/elements/ladybug1.png + ./images/sprites/elements/balloon.png + ./images/sprites/elements/tree4.png + ./images/sprites/elements/peace3.png + ./images/sprites/elements/stone.png + ./images/sprites/star.png + ./images/sprites/qml.png + ./images/sprites/van/running/2.png + ./images/sprites/van/running/6.png + ./images/sprites/van/running/1.png + ./images/sprites/van/running/4.png + ./images/sprites/van/running/5.png + ./images/sprites/van/running/3.png + ./images/sprites/van/inflating/2.png + ./images/sprites/van/inflating/6.png + ./images/sprites/van/inflating/1.png + ./images/sprites/van/inflating/4.png + ./images/sprites/van/inflating/5.png + ./images/sprites/van/inflating/3.png + ./images/splash/note.png + ./images/splash/tablet.png + ./images/splash/n8.png + ./images/splash/van.png + ./images/splash/finalbackground.png + ./images/splash/background.png + ./images/scene/elements/street.png + ./images/scene/elements/moon.png + ./images/scene/elements/sunlight.png + ./images/scene/elements/sand.png + ./images/scene/elements/cloud2.png + ./images/scene/elements/cloud3.png + ./images/scene/elements/bigmountain1.png + ./images/scene/elements/road.png + ./images/scene/elements/cloud1.png + ./images/scene/elements/sun.png + ./images/scene/elements/ground.png + ./images/scene/elements/water.png + ./images/scene/elements/mountain.png + ./images/scene/elements/cloud4.png + ./images/scene/elements/cloud5.png + ./images/scene/elements/bigmountain2.png + ./images/scene/elements/bush.png + ./images/scene/elements/grass.png + ./images/scene/sky/light.png + ./images/scene/sky/dark.png + ./images/scene/sky/gray.png + ./images/balloons/blue/2.png + ./images/balloons/blue/6.png + ./images/balloons/blue/1.png + ./images/balloons/blue/4.png + ./images/balloons/blue/5.png + ./images/balloons/blue/3.png + ./images/balloons/pink/2.png + ./images/balloons/pink/6.png + ./images/balloons/pink/1.png + ./images/balloons/pink/4.png + ./images/balloons/pink/5.png + ./images/balloons/pink/3.png + ./images/balloons/green/2.png + ./images/balloons/green/6.png + ./images/balloons/green/1.png + ./images/balloons/green/4.png + ./images/balloons/green/5.png + ./images/balloons/green/3.png + ./images/balloons/yellow/2.png + ./images/balloons/yellow/6.png + ./images/balloons/yellow/1.png + ./images/balloons/yellow/4.png + ./images/balloons/yellow/5.png + ./images/balloons/yellow/3.png + ./images/balloons/red/2.png + ./images/balloons/red/6.png + ./images/balloons/red/1.png + ./images/balloons/red/4.png + ./images/balloons/red/5.png + ./images/balloons/red/3.png + ./images/balloons/line.png + ./images/score.png + ./images/life.png + ./images/menu/about.png + ./images/menu/menu_youwin.png + ./images/menu/details.png + ./images/menu/leave_title.png + ./images/menu/menu_gameover.png + ./images/menu/yourscore.png + ./images/menu/button/play_pressed.png + ./images/menu/button/exit.png + ./images/menu/button/about.png + ./images/menu/button/next_level_pressed.png + ./images/menu/button/about_pressed.png + ./images/menu/button/no.png + ./images/menu/button/no_pressed.png + ./images/menu/button/menu_pressed.png + ./images/menu/button/yes_pressed.png + ./images/menu/button/retry.png + ./images/menu/button/help.png + ./images/menu/button/help_pressed.png + ./images/menu/button/yes.png + ./images/menu/button/retry_pressed.png + ./images/menu/button/exit_pressed.png + ./images/menu/button/next_level.png + ./images/menu/button/play.png + ./images/menu/button/restart.png + ./images/menu/button/restart_pressed.png + ./images/menu/button/menu.png + ./images/menu/complete_title.png + ./images/menu/highscore.png + ./images/menu/menu_div.png + ./images/menu/dot.png + ./images/menu/menu.png + ./images/LICENSE.txt + ./images/buttons/pause.png + ./images/buttons/close.png + ./images/buttons/play2.png + ./images/buttons/pause2.png + ./images/buttons/back2.png + ./images/buttons/play.png + ./images/buttons/back.png + ./images/buttons/close2.png + ./images/digits/2.png + ./images/digits/minus.png + ./images/digits/9.png + ./images/digits/0.png + ./images/digits/6.png + ./images/digits/1.png + ./images/digits/8.png + ./images/digits/7.png + ./images/digits/4.png + ./images/digits/5.png + ./images/digits/3.png + ./images/help/ladybug.png + ./images/help/rock.png + ./images/help/title.png + ./images/help/tap.png + ./images/help/peace.png + ./images/help/tree.png + ./images/help/cloud.png + ./images/help/playnow.png + ./images/help/bird.png + ./images/help/background.png + ./images/help/balloon.png + ./images/help/pop.png + ./HelpScreen.qml + ./Button.qml + ./engine.js + ./Base.qml + ./LeaveMenu.qml + ./GameOverMenu.qml + ./CompleteMenu.qml + ./Menu.qml + + \ No newline at end of file diff --git a/qtflyingbus/core/sprites/Balloon.qml b/qtflyingbus/core/sprites/Balloon.qml new file mode 100644 index 0000000..d0367ec --- /dev/null +++ b/qtflyingbus/core/sprites/Balloon.qml @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 +import "../" + +Sprite { + type: 1 + velocity: 1 + topOffset: 4 + leftOffset: 4 + rightOffset: 4 + bottomOffset: 30 + + image: "images/sprites/elements/balloon.png" +} diff --git a/qtflyingbus/core/sprites/Bird.qml b/qtflyingbus/core/sprites/Bird.qml new file mode 100644 index 0000000..e46e338 --- /dev/null +++ b/qtflyingbus/core/sprites/Bird.qml @@ -0,0 +1,65 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 +import "../" + +FrameSprite { + type: 1 + damage: 2 + velocity: 4 + + topOffset: 30 + leftOffset: 4 + rightOffset: 4 + bottomOffset: 8 + + frameImages: [ + "images/sprites/elements/bird1.png", + "images/sprites/elements/bird2.png", + "images/sprites/elements/bird3.png", + "images/sprites/elements/bird4.png", + "images/sprites/elements/bird5.png", + "images/sprites/elements/bird4.png", + "images/sprites/elements/bird3.png", + "images/sprites/elements/bird2.png" + ] +} diff --git a/qtflyingbus/core/sprites/Cloud.qml b/qtflyingbus/core/sprites/Cloud.qml new file mode 100644 index 0000000..a356cc0 --- /dev/null +++ b/qtflyingbus/core/sprites/Cloud.qml @@ -0,0 +1,78 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 +import "../" + +FrameSprite { + type: 1 + topOffset: 4 + leftOffset: 34 + rightOffset: 34 + bottomOffset: 4 + + property int interval : 40 + property bool flash : false + + frameImages: [ + "images/sprites/elements/cloud1.png", + "images/sprites/elements/cloud2.png", + "images/sprites/elements/cloud3.png", + "images/sprites/elements/cloud4.png", + "images/sprites/elements/cloud5.png", + "images/sprites/elements/cloud6.png", + "images/sprites/elements/cloud7.png" + ] + + function advance(phase) { + if (phase % interval == 0) + flash = true; + + if (flash && phase % 2 == 0) { + if (frameIndex < 6) + frameIndex++; + else { + flash = false; + frameIndex = 0; + } + } + } +} diff --git a/qtflyingbus/core/sprites/LadyBug.qml b/qtflyingbus/core/sprites/LadyBug.qml new file mode 100644 index 0000000..4e70eba --- /dev/null +++ b/qtflyingbus/core/sprites/LadyBug.qml @@ -0,0 +1,59 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 +import "../" + +FrameSprite { + type: 1 + velocity: 1 + topOffset: 8 + leftOffset: 2 + rightOffset: 16 + bottomOffset: 18 + + frameImages: [ + "images/sprites/elements/ladybug1.png", + "images/sprites/elements/ladybug2.png", + "images/sprites/elements/ladybug3.png", + "images/sprites/elements/ladybug2.png" + ] +} diff --git a/qtflyingbus/core/sprites/Peace.qml b/qtflyingbus/core/sprites/Peace.qml new file mode 100644 index 0000000..5f8a5e3 --- /dev/null +++ b/qtflyingbus/core/sprites/Peace.qml @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 +import "../" + +FrameSprite { + type: 2 + topOffset: 4 + leftOffset: 34 + rightOffset: 34 + bottomOffset: 4 + + frameImages: [ + "images/sprites/elements/peace1.png", + "images/sprites/elements/peace2.png", + "images/sprites/elements/peace3.png", + "images/sprites/elements/peace4.png", + "images/sprites/elements/peace5.png", + "images/sprites/elements/peace4.png", + "images/sprites/elements/peace3.png", + "images/sprites/elements/peace2.png" + ] +} diff --git a/qtflyingbus/core/sprites/Stone.qml b/qtflyingbus/core/sprites/Stone.qml new file mode 100644 index 0000000..9d70de7 --- /dev/null +++ b/qtflyingbus/core/sprites/Stone.qml @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 +import "../" + +Sprite { + type: 1 + topOffset: 8 + leftOffset: 8 + rightOffset: 8 + bottomOffset: 8 + + image: "images/sprites/elements/stone.png" +} diff --git a/qtflyingbus/core/sprites/Tree.qml b/qtflyingbus/core/sprites/Tree.qml new file mode 100644 index 0000000..a7d95f0 --- /dev/null +++ b/qtflyingbus/core/sprites/Tree.qml @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 +import "../" + +Sprite { + type: 1 + topOffset: 16 + leftOffset: 64 + rightOffset: 64 + bottomOffset: 4 + + image: "images/sprites/elements/tree1.png" +} diff --git a/qtflyingbus/main_640_360.qml b/qtflyingbus/main_640_360.qml new file mode 100644 index 0000000..a118a6c --- /dev/null +++ b/qtflyingbus/main_640_360.qml @@ -0,0 +1,55 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 +import "core" + +Item { + width: main.width + height: main.height + + Main { + id: main + clip: true + width: 640 + height: 360 + } +} diff --git a/qtflyingbus/main_800_480.qml b/qtflyingbus/main_800_480.qml new file mode 100644 index 0000000..a94b7df --- /dev/null +++ b/qtflyingbus/main_800_480.qml @@ -0,0 +1,55 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 +import "core" + +Item { + width: main.width + height: main.height + + Main { + id: main + clip: true + width: 800 + height: 480 + } +} diff --git a/qtflyingbus/main_864_480.qml b/qtflyingbus/main_864_480.qml new file mode 100644 index 0000000..920ee58 --- /dev/null +++ b/qtflyingbus/main_864_480.qml @@ -0,0 +1,55 @@ +/**************************************************************************** +** +** This file is part of QtFlyingBus +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).* +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** 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." +** +****************************************************************************/ + +import Qt 4.7 +import "core" + +Item { + width: main.width + height: main.height + + Main { + id: main + clip: true + width: 864 + height: 480 + } +} diff --git a/qtflyingbus/qtflyingbus b/qtflyingbus/qtflyingbus new file mode 100644 index 0000000..e69de29 diff --git a/weather-qml/.DS_Store b/weather-qml/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/weather-qml/.DS_Store differ diff --git a/weather-qml/.gitignore b/weather-qml/.gitignore new file mode 100644 index 0000000..87cab50 --- /dev/null +++ b/weather-qml/.gitignore @@ -0,0 +1,19 @@ +*.o +moc_*.cpp +Makefile +qrc_*.cpp +*.moc +*~ +*.inf +*.sis +*.mmp +*.rss +*.pkg +*.loc +*.mk +*.cache +*# +.cproject +.project +.make.cache +ABLD.BAT diff --git a/weather-qml/CityModel.qml b/weather-qml/CityModel.qml new file mode 100644 index 0000000..d4760a8 --- /dev/null +++ b/weather-qml/CityModel.qml @@ -0,0 +1,183 @@ +import Qt 4.6 + +ListModel { + ListElement { + cityId: "Mostly Cloudy" + cityName: "Mostly Cloudy" + lower: 18 + upper: 31 + current: 22 + isNight: false + weather: "MostlyCloudy" + } + + ListElement { + cityId: "Mostly Cloudy 2" + cityName: "Mostly Cloudy 2" + lower: 18 + upper: 31 + current: 22 + isNight: true + weather: "MostlyCloudy" + } + + ListElement { + cityId: "Storm" + cityName: "Storm" + lower: 2 + upper: 21 + current: 8 + isNight: false + weather: "Storm" + } + + ListElement { + cityId: "Storm 2" + cityName: "Storm 2" + lower: 2 + upper: 21 + current: 8 + isNight: true + weather: "Storm" + } + + ListElement { + cityId: "Thunderstorm" + cityName: "Thunderstorm" + lower: 10 + upper: 13 + current: 7 + isNight: false + weather: "Thunderstorm" + } + + ListElement { + cityId: "Thunderstorm 2" + cityName: "Thunderstorm 2" + lower: 10 + upper: 13 + current: 7 + isNight: true + weather: "Thunderstorm" + } + + ListElement { + cityId: "Rain" + cityName: "Rain" + lower: 11 + upper: 25 + current: 12 + isNight: false + weather: "Rain" + } + + ListElement { + cityId: "Rain 2" + cityName: "Rain 2" + lower: 11 + upper: 25 + current: 12 + isNight: true + weather: "Rain" + } + + ListElement { + cityId: "Mist" + cityName: "Mist" + lower: 21 + upper: 25 + current: 22 + isNight: false + weather: "Mist" + } + + ListElement { + cityId: "Mist 2" + cityName: "Mist 2" + lower: 21 + upper: 25 + current: 22 + isNight: true + weather: "Mist" + } + + ListElement { + cityId: "Haze" + cityName: "Haze" + lower: 1 + upper: 9 + current: 11 + isNight: false + weather: "Haze" + } + + ListElement { + cityId: "Haze 2" + cityName: "Haze 2" + lower: 1 + upper: 9 + current: 11 + isNight: true + weather: "Haze" + } + + ListElement { + cityId: "Fog" + cityName: "Fog" + lower: 28 + upper: 35 + current: 30 + isNight: false + weather: "Fog" + } + + ListElement { + cityId: "Fog 2" + cityName: "Fog 2" + lower: 28 + upper: 35 + current: 30 + isNight: true + weather: "Fog" + } + + ListElement { + cityId: "Cloudy" + cityName: "Cloudy" + lower: 25 + upper: 28 + current: 27 + isNight: false + weather: "Cloudy" + } + + ListElement { + cityId: "Cloudy 2" + cityName: "Cloudy 2" + lower: 25 + upper: 28 + current: 27 + isNight: true + weather: "Cloudy" + } + + ListElement { + cityId: "Mostly Sunny" + cityName: "Mostly Sunny" + lower: 33 + upper: 39 + current: 36 + isNight: false + weather: "MostlySunny" + } + + ListElement { + cityId: "Mostly Sunny 2" + cityName: "Mostly Sunny 2" + lower: 33 + upper: 39 + current: 36 + isNight: true + weather: "MostlySunny" + } +} diff --git a/weather-qml/CityPanel.qml b/weather-qml/CityPanel.qml new file mode 100644 index 0000000..19b4ef1 --- /dev/null +++ b/weather-qml/CityPanel.qml @@ -0,0 +1,154 @@ +import Qt 4.6 + +Item { + id: root + width: window.width + + property string currentMessage; + + signal gotoCity(string cityId); + + MouseArea { + id: overlay + anchors.fill: parent + visible: false + onClicked: root.state = "" + } + + Image { + id: backPanel + opacity: 0.0 + y: frontPanel.y + source: "images/city_panel_bg.png" + } + + Rectangle { + id: cityRect + x: 0 + y: 36 + width: 360 + height: 64 + color: "#071217" + opacity: 0.0 + anchors.topMargin: -1 // XXX workaround for internal rounding bug + anchors.top: backPanel.bottom + anchors.left: parent.left + anchors.right: parent.right + + /// XXX: list item bg + height: (80 * Math.min(cityListView.count, 5)) + 17 + + Component { + id: cityDelegate + Item { + id: cityItem + width: background.width + height: background.height + + ListView.onRemove: SequentialAnimation { + PropertyAction { target: cityItem; property: "ListView.delayRemove"; value: true } + NumberAnimation { target: cityItem; property: "opacity"; to: 0 } + NumberAnimation { target: cityItem; property: "height"; to: 0; duration: 9000; } + PropertyAction { target: cityItem; property: "ListView.delayRemove"; value: false } + } + + ListView.onAdd: SequentialAnimation { + PropertyAction { target: cityItem; property: "opacity"; value: 0 } + NumberAnimation { target: cityItem; property: "height"; from: 0; to: background.height; duration: 9000;} + NumberAnimation { target: cityItem; property: "opacity"; from: 0; to: 1 } + } + + Image { + id: background; + source: "images/list_item_bg.png" + MouseArea { + anchors.fill: parent + onClicked: { root.gotoCity(cityId); } + } + } + + Text { + text: cityName + color: "white" + font.family: "Nokia Sans" + font.pixelSize: 38 + anchors.fill: parent + anchors.leftMargin: 30 + anchors.rightMargin: 30 + verticalAlignment: "AlignVCenter" + } + } + } + + ListView { + id: cityListView; + clip: true; + model: cityModel + opacity: 0.0 + delegate: cityDelegate + anchors.fill: cityRect + anchors.topMargin: -17 + anchors.bottomMargin: 35 + + ScrollBar { + id: scroll + pageSize: cityListView.height / cityListView.contentHeight + position: cityListView.contentY / cityListView.contentHeight + anchors.top: cityListView.top + anchors.bottom: cityListView.bottom + anchors.right: cityListView.right + anchors.rightMargin: 10 + anchors.bottomMargin: 15 + width: 8 + } + } + } + + Image { + id: frontPanel + source: "images/city_name_background_bigger.png" + anchors.bottom: root.bottom + MouseArea { + anchors.fill: frontPanel + onClicked: { root.state = "final"; } + } + } + + states : State { + name: "final" + PropertyChanges { target: frontPanel; opacity: 0.0; visible: false; } + PropertyChanges { target: backPanel; opacity: 1.0; } + PropertyChanges { target: cityRect; opacity: 1.0; } + PropertyChanges { target: backPanel; y: root.height - cityRect.height; } + PropertyChanges { target: overlay; visible: true; } + PropertyChanges { target: cityListView; opacity: 1.0; } + } + + transitions: Transition { + from: ""; to: "final" + SequentialAnimation { + ParallelAnimation { + NumberAnimation { target: backPanel; properties: "opacity"; duration: 300 } + NumberAnimation { target: cityRect; properties: "opacity"; duration: 300 } + } + NumberAnimation { target: frontPanel; properties: "opacity"; duration: 300 } + NumberAnimation { target: frontPanel; properties: "visible"; duration: 0 } + NumberAnimation { target: backPanel; properties: "y"; duration: 250 } + NumberAnimation { target: cityListView; properties: "opacity"; duration: 200 } + } + } + + transitions: Transition { + from: "final"; to: "" + SequentialAnimation { + NumberAnimation { target: cityListView; properties: "opacity"; duration: 200 } + NumberAnimation { target: backPanel; properties: "y"; duration: 250 } + NumberAnimation { target: frontPanel; properties: "opacity"; duration: 300 } + NumberAnimation { target: frontPanel; properties: "visible"; duration: 0 } + ParallelAnimation { + NumberAnimation { target: backPanel; properties: "opacity"; duration: 300 } + NumberAnimation { target: cityRect; properties: "opacity"; duration: 300 } + } + } + } +} diff --git a/weather-qml/Cloudy.qml b/weather-qml/Cloudy.qml new file mode 100644 index 0000000..84e6f92 --- /dev/null +++ b/weather-qml/Cloudy.qml @@ -0,0 +1,106 @@ +import Qt 4.6 + +ForecastView { + id: root + isClear: false + + SmallCloud { + id: cloud5 + x: scaledX(-22) + y: scaledY(-800) + finalY: scaledY(-477); + type: isDay ? "cloud" : "cloud_rain" + } + + SmallCloud { + id: cloud4 + x: scaledX(317) + y: scaledY(-800) + finalY: scaledY(-480); + type: isDay ? "cloud" : "cloud_rain" + } + + HungItem { + id: sun + x: isDay ? scaledX(198) : scaledX(220) + y: scaledY(-800) + itemX: 0 + itemY: isDay ? 176 : 180 + height: isDay ? 460 : 440 + finalY: isDay ? scaledY(-255) : scaledY(-205) + itemImage: isDay ? "images/cold_sun.png" : "images/moon.png" + lineImage: isDay ? "images/cold_sun_line.png" : "images/moon_line.png" + } + + MediumCloud { + id: cloud3 + x: scaledX(215) + y: scaledY(-800) + finalY: scaledY(-340) + type: isDay ? "cloud" : "cloud_rain" + } + + LargeCloud { + id: cloud2 + x: scaledX(-1) + y: scaledY(-800) + finalY: scaledY(-333) + type: isDay ? "cloud" : "cloud_rain" + } + + LargeCloud { + id: cloud1 + x: scaledX(318) + y: scaledY(-800) + finalY: scaledY(-331) + type: isDay ? "cloud" : "cloud_rain" + } + + states : State { + name: "final" + PropertyChanges { target: sun; y: sun.finalY; } + PropertyChanges { target: cloud1; y: cloud1.finalY; } + PropertyChanges { target: cloud2; y: cloud2.finalY; } + PropertyChanges { target: cloud3; y: cloud3.finalY; } + PropertyChanges { target: cloud4; y: cloud4.finalY; } + PropertyChanges { target: cloud5; y: cloud5.finalY; } + } + + transitions: Transition { + SequentialAnimation { + ParallelAnimation { + NumberAnimation { target: cloud1; properties: "y"; + easing.type: "OutBack"; duration: 500 } + + SequentialAnimation { + PauseAnimation { duration: 200 } + NumberAnimation { target: cloud3; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + + SequentialAnimation { + PauseAnimation { duration: 400 } + NumberAnimation { target: cloud2; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + + SequentialAnimation { + PauseAnimation { duration: 600 } + NumberAnimation { target: cloud4; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + + SequentialAnimation { + PauseAnimation { duration: 600 } + NumberAnimation { target: cloud5; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + } + + NumberAnimation { target: sun; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + } + + onPresent: { root.state = "final"; } +} diff --git a/weather-qml/Fog.qml b/weather-qml/Fog.qml new file mode 100644 index 0000000..3def8af --- /dev/null +++ b/weather-qml/Fog.qml @@ -0,0 +1,67 @@ +import Qt 4.6 + +ForecastView { + id: root + isClear: false + + SmallCloud { + id: cloud2 + x: scaledX(308) + y: scaledY(-800) + finalY: scaledY(-468); + type: "cloud_rain" + } + + HungItem { + id: sun + x: isDay ? scaledX(198) : scaledX(220) + y: scaledY(-800) + itemX: 0 + itemY: isDay ? 176 : 180 + height: isDay ? 460 : 440 + finalY: isDay ? scaledY(-255) : scaledY(-205) + itemImage: isDay ? "images/cold_sun.png" : "images/moon.png" + lineImage: isDay ? "images/cold_sun_line.png" : "images/moon_line.png" + } + + MediumCloud { + id: cloud1 + x: scaledX(3) + y: scaledY(-800) + finalY: scaledY(-296) + type: "cloud_rain" + } + + Image { + id: fog + x: scaledX(-30) + source: "images/fog.png" + } + + states : State { + name: "final" + PropertyChanges { target: sun; y: sun.finalY; } + PropertyChanges { target: cloud1; y: cloud1.finalY; } + PropertyChanges { target: cloud2; y: cloud2.finalY; } + } + + transitions: Transition { + SequentialAnimation { + ParallelAnimation { + NumberAnimation { target: cloud1; properties: "y"; + easing.type: "OutBack"; duration: 500 } + + SequentialAnimation { + PauseAnimation { duration: 200 } + NumberAnimation { target: cloud2; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + } + + NumberAnimation { target: sun; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + } + + onPresent: { root.state = "final"; } +} diff --git a/weather-qml/ForecastLabel.qml b/weather-qml/ForecastLabel.qml new file mode 100644 index 0000000..60a4440 --- /dev/null +++ b/weather-qml/ForecastLabel.qml @@ -0,0 +1,70 @@ +import Qt 4.6 + +Item { + id: root + + property string lowTemperature + property string highTemperature + property string currentTemperature + + Row { + anchors.bottom: line.bottom + anchors.bottomMargin: 58 + anchors.bottom: parent.bottom + anchors.horizontalCenter: line.horizontalCenter + + Text { + text: currentTemperature + font.family: "Nokia Sans" + font.pixelSize: 120 + font.bold: true + color: "white" + } + + Image { + source: "images/centigrades.png" + } + } + + Image { + id: line + source: "images/division_line.png" + anchors.top: parent.top + anchors.topMargin: 104 + anchors.horizontalCenter: parent.horizontalCenter + } + + Row { + anchors.left: line.left + anchors.top: line.bottom + + Image { + source: "images/icon_max.png" + } + + Text { + text: highTemperature + "°C" + font.family: "Nokia Sans" + font.pixelSize: 30 + color: "white" + opacity: 0.7 + } + } + + Row { + anchors.right: line.right + anchors.top: line.bottom + + Image { + source: "images/icon_min.png" + } + + Text { + text: lowTemperature + "°C" + font.family: "Nokia Sans" + font.pixelSize: 30 + color: "white" + opacity: 0.7 + } + } +} diff --git a/weather-qml/ForecastView.qml b/weather-qml/ForecastView.qml new file mode 100644 index 0000000..9aace9c --- /dev/null +++ b/weather-qml/ForecastView.qml @@ -0,0 +1,60 @@ +import Qt 4.6 + +Item { + id: root + anchors.fill: parent + + signal present(); + + property bool isDay : true; + property bool isClear : true; + property string cityName; + property int lowTemperature; + property int highTemperature; + property int currentTemperature; + + function scaledX(x) { + return x * window.scaleFactorX; + } + + function scaledY(y) { + return y * window.scaleFactorY; + } + + Image { + id: bg + x: root.width / 2 - bg.width / 2 + source: root.isDay ? (root.isClear ? "images/bg_day_clear.png" : "images/bg_day_rain.png") + : (root.isClear ? "images/bg_night_clear.png" : "images/bg_night_rain.png"); + } + + ForecastLabel { + id: display1 + x: 110 + z: 99 + width: 260 + height: 180 + anchors.bottomMargin: 115 + anchors.bottom: parent.bottom + currentTemperature: root.currentTemperature + lowTemperature: root.lowTemperature + highTemperature: root.highTemperature + } + + Text { + id: cityLabel + z: 99 + text: root.cityName + font.family: "Nokia Sans" + font.pixelSize: 40 + color: "#ffffff" + horizontalAlignment: "AlignHCenter" + anchors.left: parent.left + anchors.right: parent.right + anchors.leftMargin: 50 + anchors.bottomMargin: 76 + anchors.bottom: parent.bottom + } + + Connections { target: parent; onPresent: present(); } +} diff --git a/weather-qml/Haze.qml b/weather-qml/Haze.qml new file mode 100644 index 0000000..7da5e67 --- /dev/null +++ b/weather-qml/Haze.qml @@ -0,0 +1,67 @@ +import Qt 4.6 + +ForecastView { + id: root + isClear: false + + SmallCloud { + id: cloud2 + x: scaledX(341) + y: scaledY(-800) + finalY: scaledY(-469); + type: "cloud_rain" + } + + HungItem { + id: sun + x: isDay ? scaledX(198) : scaledX(220) + y: scaledY(-800) + itemX: 0 + itemY: isDay ? 176 : 180 + height: isDay ? 460 : 440 + finalY: isDay ? scaledY(-255) : scaledY(-205) + itemImage: isDay ? "images/cold_sun.png" : "images/moon.png" + lineImage: isDay ? "images/cold_sun_line.png" : "images/moon_line.png" + } + + MediumCloud { + id: cloud1 + x: scaledX(6) + y: scaledY(-800) + finalY: scaledY(-296) + type: "cloud_rain" + } + + Image { + id: haze + x: scaledX(-30) + source: "images/haze.png" + } + + states : State { + name: "final" + PropertyChanges { target: sun; y: sun.finalY; } + PropertyChanges { target: cloud1; y: cloud1.finalY; } + PropertyChanges { target: cloud2; y: cloud2.finalY; } + } + + transitions: Transition { + SequentialAnimation { + ParallelAnimation { + NumberAnimation { target: cloud1; properties: "y"; + easing.type: "OutBack"; duration: 500 } + + SequentialAnimation { + PauseAnimation { duration: 200 } + NumberAnimation { target: cloud2; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + } + + NumberAnimation { target: sun; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + } + + onPresent: { root.state = "final"; } +} diff --git a/weather-qml/HungItem.qml b/weather-qml/HungItem.qml new file mode 100644 index 0000000..cf14c09 --- /dev/null +++ b/weather-qml/HungItem.qml @@ -0,0 +1,28 @@ +import Qt 4.6 + +Item { + id: root + + property real itemX + property real itemY + property real finalY + property string lineImage + property string itemImage + + width: item.width + height: itemY + item.height + + Image { + id: line + source: root.lineImage + anchors.horizontalCenter: root.horizontalCenter + } + + Image { + id: item + x: root.itemX + y: root.itemY + source: root.itemImage + anchors.bottom: parent.bottom + } +} diff --git a/weather-qml/LargeCloud.qml b/weather-qml/LargeCloud.qml new file mode 100644 index 0000000..c05e234 --- /dev/null +++ b/weather-qml/LargeCloud.qml @@ -0,0 +1,11 @@ +import Qt 4.6 + +HungItem { + id: root + itemX: 15; + itemY: 420; + + property string type: "cloud"; + itemImage: "images/" + root.type + "_1.png" + lineImage: "images/" + root.type + "_1_line.png" +} diff --git a/weather-qml/MediumCloud.qml b/weather-qml/MediumCloud.qml new file mode 100644 index 0000000..527ce97 --- /dev/null +++ b/weather-qml/MediumCloud.qml @@ -0,0 +1,11 @@ +import Qt 4.6 + +HungItem { + id: root + itemX: 13; + itemY: 420; + + property string type: "cloud"; + itemImage: "images/" + root.type + "_2.png" + lineImage: "images/" + root.type + "_2_line.png" +} diff --git a/weather-qml/Mist.qml b/weather-qml/Mist.qml new file mode 100644 index 0000000..d30e604 --- /dev/null +++ b/weather-qml/Mist.qml @@ -0,0 +1,119 @@ +import Qt 4.6 + +ForecastView { + id: root + isClear: false + + SmallCloud { + id: cloud5 + x: scaledX(297) + y: scaledY(-800) + finalY: scaledY(-460); + type: "cloud_rain" + } + + SmallCloud { + id: cloud4 + x: scaledX(64) + y: scaledY(-800) + finalY: scaledY(-436) + type: "cloud_rain" + } + + HungItem { + id: sun + x: isDay ? scaledX(198) : scaledX(220) + y: scaledY(-800) + itemX: 0 + itemY: isDay ? 176 : 180 + height: isDay ? 460 : 440 + finalY: isDay ? scaledY(-255) : scaledY(-205) + itemImage: isDay ? "images/cold_sun.png" : "images/moon.png" + lineImage: isDay ? "images/cold_sun_line.png" : "images/moon_line.png" + } + + MediumCloud { + id: cloud3 + x: scaledX(154) + y: scaledY(-800) + finalY: scaledY(-296) + type: "cloud_rain" + } + + RainItem { + id: rain + x: scaledX(70) + y: scaledY(376) + visible: false + rainType: "mist" + } + + LargeCloud { + id: cloud2 + x: scaledX(315) + y: scaledY(-800) + finalY: scaledY(-351) + type: "cloud_rain" + } + + LargeCloud { + id: cloud1 + x: scaledX(-70) + y: scaledY(-800) + finalY: scaledY(-294) + type: "cloud_rain" + } + + states : State { + name: "final" + PropertyChanges { target: sun; y: sun.finalY; } + PropertyChanges { target: cloud1; y: cloud1.finalY; } + PropertyChanges { target: cloud2; y: cloud2.finalY; } + PropertyChanges { target: cloud3; y: cloud3.finalY; } + PropertyChanges { target: cloud4; y: cloud4.finalY; } + PropertyChanges { target: cloud5; y: cloud5.finalY; } + PropertyChanges { target: rain; visible: true; } + } + + transitions: Transition { + SequentialAnimation { + ParallelAnimation { + NumberAnimation { target: cloud1; properties: "y"; + easing.type: "OutBack"; duration: 500 } + + SequentialAnimation { + PauseAnimation { duration: 200 } + NumberAnimation { target: cloud2; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + + SequentialAnimation { + PauseAnimation { duration: 400 } + NumberAnimation { target: cloud3; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + + SequentialAnimation { + PauseAnimation { duration: 600 } + NumberAnimation { target: cloud4; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + + SequentialAnimation { + PauseAnimation { duration: 800 } + NumberAnimation { target: cloud5; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + } + + NumberAnimation { target: sun; properties: "y"; + easing.type: "OutBack"; duration: 500 } + + PauseAnimation { duration: 100 } + + NumberAnimation { target: rain; properties: "visible"; duration: 0 } + } + } + + onPresent: { root.state = "final"; } +} diff --git a/weather-qml/MostlyCloudy.qml b/weather-qml/MostlyCloudy.qml new file mode 100644 index 0000000..8485f2f --- /dev/null +++ b/weather-qml/MostlyCloudy.qml @@ -0,0 +1,91 @@ +import Qt 4.6 + +ForecastView { + id: root + isClear: false + + SmallCloud { + id: cloud4 + x: scaledX(84) + y: scaledY(-800) + finalY: scaledY(-483); + type: isDay ? "cloud" : "cloud_rain" + } + + HungItem { + id: sun + x: isDay ? scaledX(198) : scaledX(220) + y: scaledY(-800) + itemX: 0 + itemY: isDay ? 176 : 180 + height: isDay ? 460 : 440 + finalY: isDay ? scaledY(-255) : scaledY(-205) + itemImage: isDay ? "images/cold_sun.png" : "images/moon.png" + lineImage: isDay ? "images/cold_sun_line.png" : "images/moon_line.png" + } + + MediumCloud { + id: cloud3 + x: scaledX(-43) + y: scaledY(-800) + finalY: scaledY(-333) + type: isDay ? "cloud" : "cloud_rain" + } + + MediumCloud { + id: cloud2 + x: scaledX(374) + y: scaledY(-800) + finalY: scaledY(-334) + type: isDay ? "cloud" : "cloud_rain" + } + + LargeCloud { + id: cloud1 + x: scaledX(235) + y: scaledY(-800) + finalY: scaledY(-298) + type: isDay ? "cloud" : "cloud_rain" + } + + states : State { + name: "final" + PropertyChanges { target: sun; y: sun.finalY; } + PropertyChanges { target: cloud1; y: cloud1.finalY; } + PropertyChanges { target: cloud2; y: cloud2.finalY; } + PropertyChanges { target: cloud3; y: cloud3.finalY; } + PropertyChanges { target: cloud4; y: cloud4.finalY; } + } + + transitions: Transition { + SequentialAnimation { + ParallelAnimation { + NumberAnimation { target: cloud1; properties: "y"; + easing.type: "OutBack"; duration: 500 } + + SequentialAnimation { + PauseAnimation { duration: 200 } + NumberAnimation { target: cloud3; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + + SequentialAnimation { + PauseAnimation { duration: 400 } + NumberAnimation { target: cloud2; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + + SequentialAnimation { + PauseAnimation { duration: 600 } + NumberAnimation { target: cloud4; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + } + + NumberAnimation { target: sun; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + } + + onPresent: { root.state = "final"; } +} diff --git a/weather-qml/MostlySunny.qml b/weather-qml/MostlySunny.qml new file mode 100644 index 0000000..4970238 --- /dev/null +++ b/weather-qml/MostlySunny.qml @@ -0,0 +1,75 @@ +import Qt 4.6 + +ForecastView { + id: root + + SmallCloud { + id: cloud3 + x: scaledX(-7) + y: scaledY(-800) + finalY: scaledY(-540); + type: isDay ? "cloud" : "cloud_rain" + } + + SmallCloud { + id: cloud2 + x: scaledX(399) + y: scaledY(-800) + finalY: scaledY(-409); + type: isDay ? "cloud" : "cloud_rain" + } + + HungItem { + id: sun + x: isDay ? scaledX(120) : scaledX(220) + y: scaledY(-800) + itemX: 0 + itemY: isDay ? 200 : 180 + height: isDay ? 500 : 440 + finalY: isDay ? scaledY(-198) : scaledY(-205) + itemImage: isDay ? "images/sun.png" : "images/moon.png" + lineImage: isDay ? "images/sun_line.png" : "images/moon_line.png" + } + + MediumCloud { + id: cloud1 + x: scaledX(-20) + y: scaledY(-800) + finalY: scaledY(-218) + type: isDay ? "cloud" : "cloud_rain" + } + + states : State { + name: "final" + PropertyChanges { target: sun; y: sun.finalY; } + PropertyChanges { target: cloud1; y: cloud1.finalY; } + PropertyChanges { target: cloud2; y: cloud2.finalY; } + PropertyChanges { target: cloud3; y: cloud3.finalY; } + } + + transitions: Transition { + SequentialAnimation { + ParallelAnimation { + NumberAnimation { target: cloud1; properties: "y"; + easing.type: "OutBack"; duration: 500 } + + SequentialAnimation { + PauseAnimation { duration: 200 } + NumberAnimation { target: cloud2; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + + SequentialAnimation { + PauseAnimation { duration: 400 } + NumberAnimation { target: cloud3; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + } + + NumberAnimation { target: sun; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + } + + onPresent: { root.state = "final"; } +} diff --git a/weather-qml/ParallaxView.qml b/weather-qml/ParallaxView.qml new file mode 100644 index 0000000..cfd4414 --- /dev/null +++ b/weather-qml/ParallaxView.qml @@ -0,0 +1,60 @@ +import Qt 4.6 + +Item { + id: root + + Component { + id: cityDelegate + + Item { + id: itemInner + width: 432 + height: window.height + + signal present(); + + Component.onCompleted: { + var component = createComponent(weather + ".qml"); + var element = component.createObject(); + + if (element != 0) { + element.parent = itemInner; + element.cityName = cityName; + element.isDay = !isNight; + element.lowTemperature = lower; + element.highTemperature = upper; + element.currentTemperature = current; + } + } + } + } + + ListView { + id: list + property bool moving: false + + anchors.fill: parent + orientation: "Horizontal" + currentIndex: window.currentIndex + + onCurrentIndexChanged: { + if (!moving && currentItem) + currentItem.present(); + } + + onMovementStarted: { + moving = true; + } + + onMovementEnded: { + moving = false; + currentItem.present(); + } + + model: cityModel + delegate: cityDelegate + + snapMode: ListView.SnapOneItem + highlightRangeMode: "StrictlyEnforceRange" + } +} diff --git a/weather-qml/PartlyCloudy.qml b/weather-qml/PartlyCloudy.qml new file mode 100644 index 0000000..39a01a8 --- /dev/null +++ b/weather-qml/PartlyCloudy.qml @@ -0,0 +1,75 @@ +import Qt 4.6 + +ForecastView { + id: root + + SmallCloud { + id: cloud3 + x: scaledX(396) + y: scaledY(-800) + finalY: scaledY(-446); + type: isDay ? "cloud" : "cloud_rain" + } + + HungItem { + id: sun + x: isDay ? scaledX(120) : scaledX(220) + y: scaledY(-800) + itemX: 0 + itemY: isDay ? 200 : 180 + height: isDay ? 500 : 440 + finalY: isDay ? scaledY(-198) : scaledY(-205) + itemImage: isDay ? "images/sun.png" : "images/moon.png" + lineImage: isDay ? "images/sun_line.png" : "images/moon_line.png" + } + + MediumCloud { + id: cloud2 + x: scaledX(0) + y: scaledY(-800) + finalY: scaledY(-307) + type: isDay ? "cloud" : "cloud_rain" + } + + LargeCloud { + id: cloud1 + x: scaledX(267) + y: scaledY(-800) + finalY: scaledY(-291) + type: isDay ? "cloud" : "cloud_rain" + } + + states : State { + name: "final" + PropertyChanges { target: sun; y: sun.finalY; } + PropertyChanges { target: cloud1; y: cloud1.finalY; } + PropertyChanges { target: cloud2; y: cloud2.finalY; } + PropertyChanges { target: cloud3; y: cloud3.finalY; } + } + + transitions: Transition { + SequentialAnimation { + ParallelAnimation { + NumberAnimation { target: cloud1; properties: "y"; + easing.type: "OutBack"; duration: 500 } + + SequentialAnimation { + PauseAnimation { duration: 200 } + NumberAnimation { target: cloud2; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + + SequentialAnimation { + PauseAnimation { duration: 400 } + NumberAnimation { target: cloud3; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + } + + NumberAnimation { target: sun; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + } + + onPresent: { root.state = "final"; } +} diff --git a/weather-qml/README.rtf b/weather-qml/README.rtf new file mode 100644 index 0000000..2819044 --- /dev/null +++ b/weather-qml/README.rtf @@ -0,0 +1,7 @@ +{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\paperw11900\paperh16840\margl1440\margr1440\vieww9000\viewh8400\viewkind0 +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural + +\f0\fs24 \cf0 Just need to run the "default.qml" file.} \ No newline at end of file diff --git a/weather-qml/Rain.qml b/weather-qml/Rain.qml new file mode 100644 index 0000000..1774b2b --- /dev/null +++ b/weather-qml/Rain.qml @@ -0,0 +1,119 @@ +import Qt 4.6 + +ForecastView { + id: root + isClear: false + + SmallCloud { + id: cloud5 + x: scaledX(300) + y: scaledY(-800) + finalY: scaledY(-469); + type: "cloud_rain" + } + + HungItem { + id: sun + x: isDay ? scaledX(198) : scaledX(220) + y: scaledY(-800) + itemX: 0 + itemY: isDay ? 176 : 180 + height: isDay ? 460 : 440 + finalY: isDay ? scaledY(-255) : scaledY(-205) + itemImage: isDay ? "images/cold_sun.png" : "images/moon.png" + lineImage: isDay ? "images/cold_sun_line.png" : "images/moon_line.png" + } + + MediumCloud { + id: cloud4 + x: scaledX(100) + y: scaledY(-800) + finalY: scaledY(-356) + type: "cloud_rain" + } + + MediumCloud { + id: cloud3 + x: scaledX(340) + y: scaledY(-800) + finalY: scaledY(-339) + type: "cloud_rain" + } + + RainItem { + id: rain + x: scaledX(70) + y: scaledY(376) + visible: false + rainType: "rain" + } + + LargeCloud { + id: cloud2 + x: scaledX(186) + y: scaledY(-800) + finalY: scaledY(-319) + type: "cloud_rain" + } + + LargeCloud { + id: cloud1 + x: scaledX(-62) + y: scaledY(-800) + finalY: scaledY(-289) + type: "cloud_rain" + } + + states : State { + name: "final" + PropertyChanges { target: sun; y: sun.finalY; } + PropertyChanges { target: cloud1; y: cloud1.finalY; } + PropertyChanges { target: cloud2; y: cloud2.finalY; } + PropertyChanges { target: cloud3; y: cloud3.finalY; } + PropertyChanges { target: cloud4; y: cloud4.finalY; } + PropertyChanges { target: cloud5; y: cloud5.finalY; } + PropertyChanges { target: rain; visible: true; } + } + + transitions: Transition { + SequentialAnimation { + ParallelAnimation { + NumberAnimation { target: cloud1; properties: "y"; + easing.type: "OutBack"; duration: 500 } + + SequentialAnimation { + PauseAnimation { duration: 200 } + NumberAnimation { target: cloud2; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + + SequentialAnimation { + PauseAnimation { duration: 400 } + NumberAnimation { target: cloud3; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + + SequentialAnimation { + PauseAnimation { duration: 600 } + NumberAnimation { target: cloud4; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + + SequentialAnimation { + PauseAnimation { duration: 800 } + NumberAnimation { target: cloud5; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + } + + NumberAnimation { target: sun; properties: "y"; + easing.type: "OutBack"; duration: 500 } + + PauseAnimation { duration: 100 } + + NumberAnimation { target: rain; properties: "visible"; duration: 0 } + } + } + + onPresent: { root.state = "final"; } +} diff --git a/weather-qml/RainItem.qml b/weather-qml/RainItem.qml new file mode 100644 index 0000000..47d9e6f --- /dev/null +++ b/weather-qml/RainItem.qml @@ -0,0 +1,15 @@ +import Qt 4.6 + +Image { + id: rainItem + property int frame : 1; + property string rainType: "rain"; + + source: "images/" + rainType + "_0" + rainItem.frame + ".png" + + frame: NumberAnimation { + repeat: true + duration: 1100 + from: 1; to: 5; + } +} diff --git a/weather-qml/ScrollBar.qml b/weather-qml/ScrollBar.qml new file mode 100644 index 0000000..2361c32 --- /dev/null +++ b/weather-qml/ScrollBar.qml @@ -0,0 +1,27 @@ +import Qt 4.6 + +Item { + id: scrollBar + + property real position + property real pageSize + + Rectangle { + id: background + anchors.fill: parent + opacity: 0.3 + color: "white" + radius: (width / 2 - 1) + } + + Rectangle { + opacity: 0.7 + color: "black" + radius: (width / 2 - 1) + x: 1 + y: Math.min(Math.max(0.0, scrollBar.position), + Math.max(0.0, 1.0 - scrollBar.pageSize)) * (scrollBar.height - 2) + 1 + width: parent.width - 2 + height: Math.min(1.0, scrollBar.pageSize) * (scrollBar.height - 2) + } +} diff --git a/weather-qml/SmallCloud.qml b/weather-qml/SmallCloud.qml new file mode 100644 index 0000000..38db715 --- /dev/null +++ b/weather-qml/SmallCloud.qml @@ -0,0 +1,11 @@ +import Qt 4.6 + +HungItem { + id: root + itemX: 10; + itemY: 492; + + property string type: "cloud"; + itemImage: "images/" + root.type + "_3.png" + lineImage: "images/" + root.type + "_3_line.png" +} diff --git a/weather-qml/SplashScreen.qml b/weather-qml/SplashScreen.qml new file mode 100644 index 0000000..bee13c8 --- /dev/null +++ b/weather-qml/SplashScreen.qml @@ -0,0 +1,53 @@ +import Qt 4.6 + +Item { + id: splash + + Image { + id: bg + source: "images/bg_loading.png" + anchors.fill: parent + } + + Image { + id: bottomMenu + source: "images/city_name_background_bigger.png" + anchors.bottom: bottomBar.top + anchors.horizontalCenter: parent.horizontalCenter + } + + Throbber { + id: "progress" + anchors.topMargin: 10 + anchors.top: infoLabel.bottom + anchors.horizontalCenter: parent.horizontalCenter + } + + Text { + id: infoLabel + text: "Loading" + color: "white" + font.family: "Nokia Sans" + font.pixelSize: 22 + anchors.top: parent.top + anchors.topMargin: parent.height * 0.3 + anchors.horizontalCenter: parent.horizontalCenter + verticalAlignment: "AlignVCenter" + horizontalAlignment: "AlignHCenter" + } + + Image { + id: umbrella + source: "images/umbrella.png" + anchors.bottom: bottomBar.top + anchors.bottomMargin: 20 + anchors.horizontalCenter: parent.horizontalCenter + } + + Image { + id: bottomBar + source: "images/bg_bottom_options.png" + anchors.bottom: parent.bottom + anchors.horizontalCenter: parent.horizontalCenter + } +} diff --git a/weather-qml/Storm.qml b/weather-qml/Storm.qml new file mode 100644 index 0000000..d92de47 --- /dev/null +++ b/weather-qml/Storm.qml @@ -0,0 +1,119 @@ +import Qt 4.6 + +ForecastView { + id: root + isClear: false + + SmallCloud { + id: cloud5 + x: scaledX(280) + y: scaledY(-800) + finalY: scaledY(-480) + type: "cloud_storm" + } + + SmallCloud { + id: cloud4 + x: scaledX(36) + y: scaledY(-800) + finalY: scaledY(-494) + type: "cloud_storm" + } + + HungItem { + id: sun + x: isDay ? scaledX(198) : scaledX(220) + y: scaledY(-800) + itemX: 0 + itemY: isDay ? 176 : 180 + height: isDay ? 460 : 440 + finalY: isDay ? scaledY(-255) : scaledY(-205) + itemImage: isDay ? "images/cold_sun.png" : "images/moon.png" + lineImage: isDay ? "images/cold_sun_line.png" : "images/moon_line.png" + } + + MediumCloud { + id: cloud2 + x: scaledX(340) + y: scaledY(-800) + finalY: scaledY(-350) + type: "cloud_storm" + } + + LargeCloud { + id: cloud3 + x: scaledX(-30) + y: scaledY(-800) + finalY: scaledY(-345) + type: "cloud_storm" + } + + RainItem { + id: rain + x: scaledX(70) + y: scaledY(376) + visible: false + rainType: "storm" + } + + LargeCloud { + id: cloud1 + x: scaledX(202) + y: scaledY(-800) + finalY: scaledY(-310) + type: "cloud_storm" + } + + states : State { + name: "final" + PropertyChanges { target: sun; y: sun.finalY; } + PropertyChanges { target: cloud1; y: cloud1.finalY; } + PropertyChanges { target: cloud2; y: cloud2.finalY; } + PropertyChanges { target: cloud3; y: cloud3.finalY; } + PropertyChanges { target: cloud4; y: cloud4.finalY; } + PropertyChanges { target: cloud5; y: cloud5.finalY; } + PropertyChanges { target: rain; visible: true; } + } + + transitions: Transition { + SequentialAnimation { + ParallelAnimation { + NumberAnimation { target: cloud1; properties: "y"; + easing.type: "OutBack"; duration: 500 } + + SequentialAnimation { + PauseAnimation { duration: 200 } + NumberAnimation { target: cloud3; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + + SequentialAnimation { + PauseAnimation { duration: 400 } + NumberAnimation { target: cloud2; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + + SequentialAnimation { + PauseAnimation { duration: 600 } + NumberAnimation { target: cloud4; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + + SequentialAnimation { + PauseAnimation { duration: 800 } + NumberAnimation { target: cloud5; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + } + + NumberAnimation { target: sun; properties: "y"; + easing.type: "OutBack"; duration: 500 } + + PauseAnimation { duration: 100 } + + NumberAnimation { target: rain; properties: "visible"; duration: 0 } + } + } + + onPresent: { root.state = "final"; } +} diff --git a/weather-qml/Sunny.qml b/weather-qml/Sunny.qml new file mode 100644 index 0000000..046ba6d --- /dev/null +++ b/weather-qml/Sunny.qml @@ -0,0 +1,31 @@ +import Qt 4.6 + +ForecastView { + id: root + + HungItem { + id: sun + x: isDay ? scaledX(120) : scaledX(220) + y: scaledY(-800) + itemX: 0 + itemY: isDay ? 200 : 180 + height: isDay ? 500 : 440 + finalY: isDay ? scaledY(-198) : scaledY(-205) + itemImage: isDay ? "images/sun.png" : "images/moon.png" + lineImage: isDay ? "images/sun_line.png" : "images/moon_line.png" + } + + states : State { + name: "final" + PropertyChanges { target: sun; y: sun.finalY; } + } + + transitions : Transition { + SequentialAnimation { + NumberAnimation { target: sun; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + } + + onPresent: root.state = "final" +} diff --git a/weather-qml/Throbber.qml b/weather-qml/Throbber.qml new file mode 100644 index 0000000..8174c1d --- /dev/null +++ b/weather-qml/Throbber.qml @@ -0,0 +1,14 @@ +import Qt 4.6 + +Image { + id: throbber + property int frame : 1; + + source: "images/loading_" + throbber.frame + ".png" + + frame: NumberAnimation { + repeat: true + duration: 700 + from: 1; to: 25; + } +} diff --git a/weather-qml/Thunderstorm.qml b/weather-qml/Thunderstorm.qml new file mode 100644 index 0000000..094c23c --- /dev/null +++ b/weather-qml/Thunderstorm.qml @@ -0,0 +1,119 @@ +import Qt 4.6 + +ForecastView { + id: root + isClear: false + + SmallCloud { + id: cloud5 + x: scaledX(56) + y: scaledY(-800) + finalY: scaledY(-481) + type: "cloud_storm" + } + + MediumCloud { + id: cloud4 + x: scaledX(275) + y: scaledY(-800) + finalY: scaledY(-359) + type: "cloud_storm" + } + + HungItem { + id: sun + x: isDay ? scaledX(198) : scaledX(220) + y: scaledY(-800) + itemX: 0 + itemY: isDay ? 176 : 180 + height: isDay ? 460 : 440 + finalY: isDay ? scaledY(-255) : scaledY(-205) + itemImage: isDay ? "images/cold_sun.png" : "images/moon.png" + lineImage: isDay ? "images/cold_sun_line.png" : "images/moon_line.png" + } + + MediumCloud { + id: cloud2 + x: scaledX(115) + y: scaledY(-800) + finalY: scaledY(-350) + type: "cloud_tstorm" + } + + LargeCloud { + id: cloud3 + x: scaledX(-12) + y: scaledY(-800) + finalY: scaledY(-323) + type: "cloud_storm" + } + + RainItem { + id: rain + x: scaledX(70) + y: scaledY(376) + visible: false + rainType: "storm" + } + + LargeCloud { + id: cloud1 + x: scaledX(249) + y: scaledY(-850) + finalY: scaledY(-310) + type: "cloud_tstorm" + } + + states : State { + name: "final" + PropertyChanges { target: sun; y: sun.finalY; } + PropertyChanges { target: cloud1; y: cloud1.finalY; } + PropertyChanges { target: cloud2; y: cloud2.finalY; } + PropertyChanges { target: cloud3; y: cloud3.finalY; } + PropertyChanges { target: cloud4; y: cloud4.finalY; } + PropertyChanges { target: cloud5; y: cloud5.finalY; } + PropertyChanges { target: rain; visible: true; } + } + + transitions: Transition { + SequentialAnimation { + ParallelAnimation { + NumberAnimation { target: cloud1; properties: "y"; + easing.type: "OutBack"; duration: 500 } + + SequentialAnimation { + PauseAnimation { duration: 200 } + NumberAnimation { target: cloud3; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + + SequentialAnimation { + PauseAnimation { duration: 400 } + NumberAnimation { target: cloud2; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + + SequentialAnimation { + PauseAnimation { duration: 600 } + NumberAnimation { target: cloud4; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + + SequentialAnimation { + PauseAnimation { duration: 800 } + NumberAnimation { target: cloud5; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + } + + NumberAnimation { target: sun; properties: "y"; + easing.type: "OutBack"; duration: 500 } + + PauseAnimation { duration: 100 } + + NumberAnimation { target: rain; properties: "visible"; duration: 0 } + } + } + + onPresent: { root.state = "final"; } +} diff --git a/weather-qml/UnknownForecast.qml b/weather-qml/UnknownForecast.qml new file mode 100644 index 0000000..4f86cbe --- /dev/null +++ b/weather-qml/UnknownForecast.qml @@ -0,0 +1,30 @@ +import Qt 4.6 + +ForecastView { + id: root + isClear: true + + HungItem { + id: question + x: scaledX(260) + y: scaledY(-800) + itemX: 8 + itemY: 190 + height: 476 + finalY: scaledY(-255) + itemImage: "images/na_icon.png" + lineImage: "images/na_icon_line.png" + } + + states : State { + name: "final" + PropertyChanges { target: question; y: question.finalY; } + } + + transitions: Transition { + NumberAnimation { target: question; properties: "y"; + easing.type: "OutBack"; duration: 500 } + } + + onPresent: { root.state = "final"; } +} diff --git a/weather-qml/Weather.qmlproject b/weather-qml/Weather.qmlproject new file mode 100644 index 0000000..3923c0e --- /dev/null +++ b/weather-qml/Weather.qmlproject @@ -0,0 +1,19 @@ +// File generated by QtCreator + +import QmlProject 1.0 + +Project { + // Scan current directory and subdirectories for .qml, .js, and image files + QmlFiles { + directory: "." + recursive: true + } + JavaScriptFiles { + directory: "." + recursive: true + } + ImageFiles { + directory: "." + recursive: true + } +} diff --git a/weather-qml/default.qml b/weather-qml/default.qml new file mode 100644 index 0000000..64c4ce7 --- /dev/null +++ b/weather-qml/default.qml @@ -0,0 +1,73 @@ +import Qt 4.6 + +Rectangle { + id: window + width: 360 + height: 640 + color: "black" + + property int currentIndex : -1; + property bool splashVisible : true + property string weatherSource : "" + + property int verticalOffset: -40 + property real scaleFactorX: window.width / 480.0 + property real scaleFactorY: window.height / 864.0 + + CityModel { + id: cityModel + } + + ParallaxView { + id: view + x: -58 + width: 432 + height: window.height + } + + CityPanel { + id: cityPanel + anchors.top: parent.top + anchors.bottom: bottomBar.top + + onGotoCity: console.log("todo: goto city") + } + + Image { + id: bottomBar + source: "images/bg_bottom_options.png" + anchors.bottom: parent.bottom + } + + SplashScreen { + id: splash + anchors.fill: parent + visible: true + } + + Timer { + interval: 1000 + repeat: false + running: true + onTriggered: splash.visible = false; + } + + Text { + id: exitLabel + text: "Exit" + color: "white" + font.family: "Nokia Sans" + font.pixelSize: 22 + + anchors.fill: bottomBar + anchors.rightMargin: 15 + anchors.leftMargin: window.width / 2 + verticalAlignment: "AlignVCenter" + horizontalAlignment: "AlignRight" + + MouseArea { + anchors.fill: parent + onClicked: { Qt.quit(); } + } + } +} diff --git a/weather-qml/images/bg_bottom_options.png b/weather-qml/images/bg_bottom_options.png new file mode 100644 index 0000000..10a2877 Binary files /dev/null and b/weather-qml/images/bg_bottom_options.png differ diff --git a/weather-qml/images/bg_day_clear.png b/weather-qml/images/bg_day_clear.png new file mode 100644 index 0000000..2609bbb Binary files /dev/null and b/weather-qml/images/bg_day_clear.png differ diff --git a/weather-qml/images/bg_day_heavyrain.png b/weather-qml/images/bg_day_heavyrain.png new file mode 100644 index 0000000..6f0f80e Binary files /dev/null and b/weather-qml/images/bg_day_heavyrain.png differ diff --git a/weather-qml/images/bg_day_rain.png b/weather-qml/images/bg_day_rain.png new file mode 100644 index 0000000..f3a578e Binary files /dev/null and b/weather-qml/images/bg_day_rain.png differ diff --git a/weather-qml/images/bg_loading.png b/weather-qml/images/bg_loading.png new file mode 100644 index 0000000..aa9a5f8 Binary files /dev/null and b/weather-qml/images/bg_loading.png differ diff --git a/weather-qml/images/bg_night_clear.png b/weather-qml/images/bg_night_clear.png new file mode 100644 index 0000000..bfe23ce Binary files /dev/null and b/weather-qml/images/bg_night_clear.png differ diff --git a/weather-qml/images/bg_night_rain.png b/weather-qml/images/bg_night_rain.png new file mode 100644 index 0000000..db8ffba Binary files /dev/null and b/weather-qml/images/bg_night_rain.png differ diff --git a/weather-qml/images/bt_options_bg.png b/weather-qml/images/bt_options_bg.png new file mode 100644 index 0000000..10a2877 Binary files /dev/null and b/weather-qml/images/bt_options_bg.png differ diff --git a/weather-qml/images/button_list_delete.png b/weather-qml/images/button_list_delete.png new file mode 100755 index 0000000..81358e7 Binary files /dev/null and b/weather-qml/images/button_list_delete.png differ diff --git a/weather-qml/images/centigrades.png b/weather-qml/images/centigrades.png new file mode 100644 index 0000000..fabfd9f Binary files /dev/null and b/weather-qml/images/centigrades.png differ diff --git a/weather-qml/images/city_name_background_bigger.png b/weather-qml/images/city_name_background_bigger.png new file mode 100644 index 0000000..a5e83d0 Binary files /dev/null and b/weather-qml/images/city_name_background_bigger.png differ diff --git a/weather-qml/images/city_panel_bg.png b/weather-qml/images/city_panel_bg.png new file mode 100644 index 0000000..6dde03f Binary files /dev/null and b/weather-qml/images/city_panel_bg.png differ diff --git a/weather-qml/images/cloud_1.png b/weather-qml/images/cloud_1.png new file mode 100644 index 0000000..dfab8e2 Binary files /dev/null and b/weather-qml/images/cloud_1.png differ diff --git a/weather-qml/images/cloud_1_line.png b/weather-qml/images/cloud_1_line.png new file mode 100644 index 0000000..8a4b090 Binary files /dev/null and b/weather-qml/images/cloud_1_line.png differ diff --git a/weather-qml/images/cloud_2.png b/weather-qml/images/cloud_2.png new file mode 100644 index 0000000..a219b5e Binary files /dev/null and b/weather-qml/images/cloud_2.png differ diff --git a/weather-qml/images/cloud_2_line.png b/weather-qml/images/cloud_2_line.png new file mode 100644 index 0000000..b9b8ca3 Binary files /dev/null and b/weather-qml/images/cloud_2_line.png differ diff --git a/weather-qml/images/cloud_3.png b/weather-qml/images/cloud_3.png new file mode 100644 index 0000000..45cde4d Binary files /dev/null and b/weather-qml/images/cloud_3.png differ diff --git a/weather-qml/images/cloud_3_line.png b/weather-qml/images/cloud_3_line.png new file mode 100644 index 0000000..0486741 Binary files /dev/null and b/weather-qml/images/cloud_3_line.png differ diff --git a/weather-qml/images/cloud_rain_1.png b/weather-qml/images/cloud_rain_1.png new file mode 100644 index 0000000..063be25 Binary files /dev/null and b/weather-qml/images/cloud_rain_1.png differ diff --git a/weather-qml/images/cloud_rain_1_line.png b/weather-qml/images/cloud_rain_1_line.png new file mode 100644 index 0000000..204207b Binary files /dev/null and b/weather-qml/images/cloud_rain_1_line.png differ diff --git a/weather-qml/images/cloud_rain_2.png b/weather-qml/images/cloud_rain_2.png new file mode 100644 index 0000000..fc7a9c3 Binary files /dev/null and b/weather-qml/images/cloud_rain_2.png differ diff --git a/weather-qml/images/cloud_rain_2_line.png b/weather-qml/images/cloud_rain_2_line.png new file mode 100644 index 0000000..ddef2d4 Binary files /dev/null and b/weather-qml/images/cloud_rain_2_line.png differ diff --git a/weather-qml/images/cloud_rain_3.png b/weather-qml/images/cloud_rain_3.png new file mode 100644 index 0000000..89b64dd Binary files /dev/null and b/weather-qml/images/cloud_rain_3.png differ diff --git a/weather-qml/images/cloud_rain_3_line.png b/weather-qml/images/cloud_rain_3_line.png new file mode 100644 index 0000000..862f631 Binary files /dev/null and b/weather-qml/images/cloud_rain_3_line.png differ diff --git a/weather-qml/images/cloud_storm_1.png b/weather-qml/images/cloud_storm_1.png new file mode 100644 index 0000000..77ef7c1 Binary files /dev/null and b/weather-qml/images/cloud_storm_1.png differ diff --git a/weather-qml/images/cloud_storm_1_line.png b/weather-qml/images/cloud_storm_1_line.png new file mode 100644 index 0000000..013a082 Binary files /dev/null and b/weather-qml/images/cloud_storm_1_line.png differ diff --git a/weather-qml/images/cloud_storm_2.png b/weather-qml/images/cloud_storm_2.png new file mode 100644 index 0000000..1ab2ea6 Binary files /dev/null and b/weather-qml/images/cloud_storm_2.png differ diff --git a/weather-qml/images/cloud_storm_2_line.png b/weather-qml/images/cloud_storm_2_line.png new file mode 100644 index 0000000..51b38b1 Binary files /dev/null and b/weather-qml/images/cloud_storm_2_line.png differ diff --git a/weather-qml/images/cloud_storm_3.png b/weather-qml/images/cloud_storm_3.png new file mode 100644 index 0000000..e896b01 Binary files /dev/null and b/weather-qml/images/cloud_storm_3.png differ diff --git a/weather-qml/images/cloud_storm_3_line.png b/weather-qml/images/cloud_storm_3_line.png new file mode 100644 index 0000000..ad52b91 Binary files /dev/null and b/weather-qml/images/cloud_storm_3_line.png differ diff --git a/weather-qml/images/cloud_tstorm_1.png b/weather-qml/images/cloud_tstorm_1.png new file mode 100644 index 0000000..784a4be Binary files /dev/null and b/weather-qml/images/cloud_tstorm_1.png differ diff --git a/weather-qml/images/cloud_tstorm_1_line.png b/weather-qml/images/cloud_tstorm_1_line.png new file mode 100644 index 0000000..013a082 Binary files /dev/null and b/weather-qml/images/cloud_tstorm_1_line.png differ diff --git a/weather-qml/images/cloud_tstorm_2.png b/weather-qml/images/cloud_tstorm_2.png new file mode 100644 index 0000000..130c3cd Binary files /dev/null and b/weather-qml/images/cloud_tstorm_2.png differ diff --git a/weather-qml/images/cloud_tstorm_2_line.png b/weather-qml/images/cloud_tstorm_2_line.png new file mode 100644 index 0000000..51b38b1 Binary files /dev/null and b/weather-qml/images/cloud_tstorm_2_line.png differ diff --git a/weather-qml/images/cold_sun.png b/weather-qml/images/cold_sun.png new file mode 100644 index 0000000..deefdef Binary files /dev/null and b/weather-qml/images/cold_sun.png differ diff --git a/weather-qml/images/cold_sun_line.png b/weather-qml/images/cold_sun_line.png new file mode 100644 index 0000000..f51062b Binary files /dev/null and b/weather-qml/images/cold_sun_line.png differ diff --git a/weather-qml/images/division_line.png b/weather-qml/images/division_line.png new file mode 100644 index 0000000..896c69c Binary files /dev/null and b/weather-qml/images/division_line.png differ diff --git a/weather-qml/images/fog.png b/weather-qml/images/fog.png new file mode 100644 index 0000000..6066207 Binary files /dev/null and b/weather-qml/images/fog.png differ diff --git a/weather-qml/images/haze.png b/weather-qml/images/haze.png new file mode 100644 index 0000000..58c1532 Binary files /dev/null and b/weather-qml/images/haze.png differ diff --git a/weather-qml/images/icon_max.png b/weather-qml/images/icon_max.png new file mode 100644 index 0000000..e6910d1 Binary files /dev/null and b/weather-qml/images/icon_max.png differ diff --git a/weather-qml/images/icon_min.png b/weather-qml/images/icon_min.png new file mode 100644 index 0000000..04f2819 Binary files /dev/null and b/weather-qml/images/icon_min.png differ diff --git a/weather-qml/images/list_item_bg.png b/weather-qml/images/list_item_bg.png new file mode 100644 index 0000000..4b61700 Binary files /dev/null and b/weather-qml/images/list_item_bg.png differ diff --git a/weather-qml/images/list_item_pressed_bg.png b/weather-qml/images/list_item_pressed_bg.png new file mode 100644 index 0000000..2941e00 Binary files /dev/null and b/weather-qml/images/list_item_pressed_bg.png differ diff --git a/weather-qml/images/list_item_selected_bg.png b/weather-qml/images/list_item_selected_bg.png new file mode 100644 index 0000000..aa4ffb9 Binary files /dev/null and b/weather-qml/images/list_item_selected_bg.png differ diff --git a/weather-qml/images/list_top.png b/weather-qml/images/list_top.png new file mode 100644 index 0000000..b943e0b Binary files /dev/null and b/weather-qml/images/list_top.png differ diff --git a/weather-qml/images/loading_1.png b/weather-qml/images/loading_1.png new file mode 100644 index 0000000..c06c275 Binary files /dev/null and b/weather-qml/images/loading_1.png differ diff --git a/weather-qml/images/loading_10.png b/weather-qml/images/loading_10.png new file mode 100644 index 0000000..22d483e Binary files /dev/null and b/weather-qml/images/loading_10.png differ diff --git a/weather-qml/images/loading_11.png b/weather-qml/images/loading_11.png new file mode 100644 index 0000000..3723524 Binary files /dev/null and b/weather-qml/images/loading_11.png differ diff --git a/weather-qml/images/loading_12.png b/weather-qml/images/loading_12.png new file mode 100644 index 0000000..bc8cb15 Binary files /dev/null and b/weather-qml/images/loading_12.png differ diff --git a/weather-qml/images/loading_13.png b/weather-qml/images/loading_13.png new file mode 100644 index 0000000..6b0999a Binary files /dev/null and b/weather-qml/images/loading_13.png differ diff --git a/weather-qml/images/loading_14.png b/weather-qml/images/loading_14.png new file mode 100644 index 0000000..b93671d Binary files /dev/null and b/weather-qml/images/loading_14.png differ diff --git a/weather-qml/images/loading_15.png b/weather-qml/images/loading_15.png new file mode 100644 index 0000000..5e6cf81 Binary files /dev/null and b/weather-qml/images/loading_15.png differ diff --git a/weather-qml/images/loading_16.png b/weather-qml/images/loading_16.png new file mode 100644 index 0000000..5bb7fce Binary files /dev/null and b/weather-qml/images/loading_16.png differ diff --git a/weather-qml/images/loading_17.png b/weather-qml/images/loading_17.png new file mode 100644 index 0000000..5cdf620 Binary files /dev/null and b/weather-qml/images/loading_17.png differ diff --git a/weather-qml/images/loading_18.png b/weather-qml/images/loading_18.png new file mode 100644 index 0000000..c0fe963 Binary files /dev/null and b/weather-qml/images/loading_18.png differ diff --git a/weather-qml/images/loading_19.png b/weather-qml/images/loading_19.png new file mode 100644 index 0000000..2ba879b Binary files /dev/null and b/weather-qml/images/loading_19.png differ diff --git a/weather-qml/images/loading_2.png b/weather-qml/images/loading_2.png new file mode 100644 index 0000000..d8f06e1 Binary files /dev/null and b/weather-qml/images/loading_2.png differ diff --git a/weather-qml/images/loading_20.png b/weather-qml/images/loading_20.png new file mode 100644 index 0000000..d1b665b Binary files /dev/null and b/weather-qml/images/loading_20.png differ diff --git a/weather-qml/images/loading_21.png b/weather-qml/images/loading_21.png new file mode 100644 index 0000000..5d8f865 Binary files /dev/null and b/weather-qml/images/loading_21.png differ diff --git a/weather-qml/images/loading_22.png b/weather-qml/images/loading_22.png new file mode 100644 index 0000000..ab23e6d Binary files /dev/null and b/weather-qml/images/loading_22.png differ diff --git a/weather-qml/images/loading_23.png b/weather-qml/images/loading_23.png new file mode 100644 index 0000000..0da026d Binary files /dev/null and b/weather-qml/images/loading_23.png differ diff --git a/weather-qml/images/loading_24.png b/weather-qml/images/loading_24.png new file mode 100644 index 0000000..09a123f Binary files /dev/null and b/weather-qml/images/loading_24.png differ diff --git a/weather-qml/images/loading_25.png b/weather-qml/images/loading_25.png new file mode 100644 index 0000000..9946381 Binary files /dev/null and b/weather-qml/images/loading_25.png differ diff --git a/weather-qml/images/loading_3.png b/weather-qml/images/loading_3.png new file mode 100644 index 0000000..55bb39e Binary files /dev/null and b/weather-qml/images/loading_3.png differ diff --git a/weather-qml/images/loading_4.png b/weather-qml/images/loading_4.png new file mode 100644 index 0000000..6036e50 Binary files /dev/null and b/weather-qml/images/loading_4.png differ diff --git a/weather-qml/images/loading_5.png b/weather-qml/images/loading_5.png new file mode 100644 index 0000000..28e1994 Binary files /dev/null and b/weather-qml/images/loading_5.png differ diff --git a/weather-qml/images/loading_6.png b/weather-qml/images/loading_6.png new file mode 100644 index 0000000..18cf24c Binary files /dev/null and b/weather-qml/images/loading_6.png differ diff --git a/weather-qml/images/loading_7.png b/weather-qml/images/loading_7.png new file mode 100644 index 0000000..a43d161 Binary files /dev/null and b/weather-qml/images/loading_7.png differ diff --git a/weather-qml/images/loading_8.png b/weather-qml/images/loading_8.png new file mode 100644 index 0000000..99706c2 Binary files /dev/null and b/weather-qml/images/loading_8.png differ diff --git a/weather-qml/images/loading_9.png b/weather-qml/images/loading_9.png new file mode 100644 index 0000000..113aa50 Binary files /dev/null and b/weather-qml/images/loading_9.png differ diff --git a/weather-qml/images/minus_sign.png b/weather-qml/images/minus_sign.png new file mode 100644 index 0000000..6a9c06a Binary files /dev/null and b/weather-qml/images/minus_sign.png differ diff --git a/weather-qml/images/mist_01.png b/weather-qml/images/mist_01.png new file mode 100644 index 0000000..c3b5d5c Binary files /dev/null and b/weather-qml/images/mist_01.png differ diff --git a/weather-qml/images/mist_02.png b/weather-qml/images/mist_02.png new file mode 100644 index 0000000..63b15d8 Binary files /dev/null and b/weather-qml/images/mist_02.png differ diff --git a/weather-qml/images/mist_03.png b/weather-qml/images/mist_03.png new file mode 100644 index 0000000..7e67747 Binary files /dev/null and b/weather-qml/images/mist_03.png differ diff --git a/weather-qml/images/mist_04.png b/weather-qml/images/mist_04.png new file mode 100644 index 0000000..42bb6b8 Binary files /dev/null and b/weather-qml/images/mist_04.png differ diff --git a/weather-qml/images/mist_05.png b/weather-qml/images/mist_05.png new file mode 100644 index 0000000..636b4a6 Binary files /dev/null and b/weather-qml/images/mist_05.png differ diff --git a/weather-qml/images/moon.png b/weather-qml/images/moon.png new file mode 100644 index 0000000..5862179 Binary files /dev/null and b/weather-qml/images/moon.png differ diff --git a/weather-qml/images/moon_line.png b/weather-qml/images/moon_line.png new file mode 100644 index 0000000..449cb4a Binary files /dev/null and b/weather-qml/images/moon_line.png differ diff --git a/weather-qml/images/na_icon.png b/weather-qml/images/na_icon.png new file mode 100644 index 0000000..2a7877f Binary files /dev/null and b/weather-qml/images/na_icon.png differ diff --git a/weather-qml/images/na_icon_line.png b/weather-qml/images/na_icon_line.png new file mode 100644 index 0000000..449cb4a Binary files /dev/null and b/weather-qml/images/na_icon_line.png differ diff --git a/weather-qml/images/rain_01.png b/weather-qml/images/rain_01.png new file mode 100644 index 0000000..04ec51a Binary files /dev/null and b/weather-qml/images/rain_01.png differ diff --git a/weather-qml/images/rain_02.png b/weather-qml/images/rain_02.png new file mode 100644 index 0000000..fcc9e7e Binary files /dev/null and b/weather-qml/images/rain_02.png differ diff --git a/weather-qml/images/rain_03.png b/weather-qml/images/rain_03.png new file mode 100644 index 0000000..4ab82aa Binary files /dev/null and b/weather-qml/images/rain_03.png differ diff --git a/weather-qml/images/rain_04.png b/weather-qml/images/rain_04.png new file mode 100644 index 0000000..0cd9506 Binary files /dev/null and b/weather-qml/images/rain_04.png differ diff --git a/weather-qml/images/rain_05.png b/weather-qml/images/rain_05.png new file mode 100644 index 0000000..cf59516 Binary files /dev/null and b/weather-qml/images/rain_05.png differ diff --git a/weather-qml/images/scroll.png b/weather-qml/images/scroll.png new file mode 100644 index 0000000..8ebce0f Binary files /dev/null and b/weather-qml/images/scroll.png differ diff --git a/weather-qml/images/scroll_knob.png b/weather-qml/images/scroll_knob.png new file mode 100644 index 0000000..379e54a Binary files /dev/null and b/weather-qml/images/scroll_knob.png differ diff --git a/weather-qml/images/star_01.png b/weather-qml/images/star_01.png new file mode 100644 index 0000000..6e60dcc Binary files /dev/null and b/weather-qml/images/star_01.png differ diff --git a/weather-qml/images/star_02.png b/weather-qml/images/star_02.png new file mode 100644 index 0000000..6ca331a Binary files /dev/null and b/weather-qml/images/star_02.png differ diff --git a/weather-qml/images/star_03.png b/weather-qml/images/star_03.png new file mode 100644 index 0000000..f8ebb43 Binary files /dev/null and b/weather-qml/images/star_03.png differ diff --git a/weather-qml/images/storm_01.png b/weather-qml/images/storm_01.png new file mode 100644 index 0000000..436df98 Binary files /dev/null and b/weather-qml/images/storm_01.png differ diff --git a/weather-qml/images/storm_02.png b/weather-qml/images/storm_02.png new file mode 100644 index 0000000..16da93f Binary files /dev/null and b/weather-qml/images/storm_02.png differ diff --git a/weather-qml/images/storm_03.png b/weather-qml/images/storm_03.png new file mode 100644 index 0000000..7ca4192 Binary files /dev/null and b/weather-qml/images/storm_03.png differ diff --git a/weather-qml/images/storm_04.png b/weather-qml/images/storm_04.png new file mode 100644 index 0000000..f2ba7ce Binary files /dev/null and b/weather-qml/images/storm_04.png differ diff --git a/weather-qml/images/storm_05.png b/weather-qml/images/storm_05.png new file mode 100644 index 0000000..c35fd7f Binary files /dev/null and b/weather-qml/images/storm_05.png differ diff --git a/weather-qml/images/sun.png b/weather-qml/images/sun.png new file mode 100644 index 0000000..f99abdf Binary files /dev/null and b/weather-qml/images/sun.png differ diff --git a/weather-qml/images/sun_line.png b/weather-qml/images/sun_line.png new file mode 100644 index 0000000..f963c27 Binary files /dev/null and b/weather-qml/images/sun_line.png differ diff --git a/weather-qml/images/thunder.png b/weather-qml/images/thunder.png new file mode 100644 index 0000000..de95d9a Binary files /dev/null and b/weather-qml/images/thunder.png differ diff --git a/weather-qml/images/umbrella.png b/weather-qml/images/umbrella.png new file mode 100644 index 0000000..afc79e4 Binary files /dev/null and b/weather-qml/images/umbrella.png differ -- cgit v1.2.3